diff --git a/DEPS b/DEPS index d639013..ebbd87d 100644 --- a/DEPS +++ b/DEPS
@@ -314,7 +314,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'd410e03a6b9b0e7f77fe4bb562f396a97345d070', + 'skia_revision': '267bb43e822d827737b04b07cdd2015c6a081b40', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -389,7 +389,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling chromium_variations # and whatever else without interference from each other. - 'chromium_variations_revision': '802527f86612c8249a75cf83f432160f0c1ac990', + 'chromium_variations_revision': '97af9cd3bd80748042952adc1aba9cb3ece2349e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling CrossBench # and whatever else without interference from each other. @@ -445,7 +445,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '1b2986736fd23e2620a7ff5f828c56b3fa464cee', + 'dawn_revision': 'b7bd8d85b52e92ef2bf9aa901e7e6219dc9df3b0', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -489,7 +489,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'cros_components_revision': '699de65af0f1f6194db905908ced137597994916', + 'cros_components_revision': 'e012464ddb8baeb541159efc7d6967c0481c298a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -845,7 +845,7 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - 'b59e8eb3544c68291e7cb11b2b5eeb52e359982e', + '890f83c8971c3574be289f7599d4c1b23f5daf12', 'condition': 'checkout_android and checkout_src_internal', }, @@ -1790,7 +1790,7 @@ Var('pdfium_git') + '/pdfium.git' + '@' + Var('pdfium_revision'), 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + 'd5143d26fa22bca22e967663bee851c3c209af84', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '116a2d5dc0e6f86faf48fb5aa8b5977001990c67', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1935,7 +1935,7 @@ 'dep_type': 'cipd', }, - 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@7baa5f7cc56a48ea2783c7370413ed8c7f513719', + 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@34349287c87688eb8a0d704829032bbf6cfc7c0a', 'src/third_party/vulkan_memory_allocator': Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'e87036508bb156f9986ea959323de1869e328f58', @@ -4245,7 +4245,7 @@ 'src/components/test/data/autofill/heuristics-json/internal': { 'url': Var('chrome_git') + '/chrome/test/autofill/structured_forms.git' + '@' + - '8bacdfed38e4a6d441c97a86f1bab04642c6a7e0', + '9f0e8bbbf0b14d20b237840289044c13095ed872', 'condition': 'checkout_chromium_autofill_test_dependencies', }, @@ -4269,7 +4269,7 @@ 'src/ios_internal': { 'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' + - '0d10fcb7443afd9b61d1e301dc77d953fda91a26', + 'cc4f4c31573a927a0c209bc94565d243243e4e4f', 'condition': 'checkout_ios and checkout_src_internal', },
diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_main_delegate.cc index 2bad87c..9624f99 100644 --- a/android_webview/lib/aw_main_delegate.cc +++ b/android_webview/lib/aw_main_delegate.cc
@@ -264,6 +264,9 @@ features.DisableIfNotSet(::features::kPeriodicBackgroundSync); + // Disable Reducing User Agent minor version on WebView. + features.DisableIfNotSet(blink::features::kReduceUserAgentMinorVersion); + // Disabled until viz scheduling can be improved. features.DisableIfNotSet(::features::kUseSurfaceLayerForVideoDefault);
diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc index 39abc16..74b4f734 100644 --- a/ash/display/display_manager_unittest.cc +++ b/ash/display/display_manager_unittest.cc
@@ -3718,20 +3718,8 @@ namespace { -constexpr display::Display::Rotation kRotation = display::Display::ROTATE_0; -constexpr gfx::Insets* kInsetsToSet = nullptr; -constexpr gfx::Size kResolutionInPixels(1366, 768); -constexpr float kDeviceScaleFactor = 1.0f; -constexpr float kDisplayZoom = 1.0f; -constexpr float kRefreshRate = 60.0f; -constexpr bool kIsInterlaced = false; -constexpr display::VariableRefreshRateState kVariableRefreshRateState = - display::kVrrNotCapable; -constexpr absl::optional<uint16_t> kVsyncRateMin = absl::nullopt; - std::unique_ptr<display::DisplayMode> MakeDisplayMode() { - return display::CreateDisplayModePtrForTest(kResolutionInPixels, - kIsInterlaced, kRefreshRate); + return display::CreateDisplayModePtrForTest(gfx::Size(1366, 768), false, 60); } } // namespace @@ -3763,13 +3751,6 @@ .AddMode(MakeDisplayMode()) .SetOrigin({0, 1000}) .Build(); - // Register mode info for external display so that it could be found for - // matched mode called via |DisplayManager::GetMatchingModeForDisplayId|. - // Same as below. - display_manager()->RegisterDisplayProperty( - external_id, kRotation, kInsetsToSet, kResolutionInPixels, - kDeviceScaleFactor, kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); // "Connected display" has the current mode. external_snapshot->set_current_mode(external_snapshot->native_mode()); @@ -3821,10 +3802,6 @@ .SetNativeMode(MakeDisplayMode()) .AddMode(MakeDisplayMode()) .Build(); - display_manager()->RegisterDisplayProperty( - external_id, kRotation, kInsetsToSet, kResolutionInPixels, - kDeviceScaleFactor, kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); // "Connected display" has the current mode. external_snapshot->set_current_mode(external_snapshot->native_mode()); outputs.push_back(external_snapshot.get()); @@ -3893,15 +3870,6 @@ outputs.push_back(snapshot1.get()); outputs.push_back(snapshot2.get()); - display_manager()->RegisterDisplayProperty( - id1, kRotation, kInsetsToSet, kResolutionInPixels, kDeviceScaleFactor, - kDisplayZoom, kRefreshRate, kIsInterlaced, kVariableRefreshRateState, - kVsyncRateMin); - display_manager()->RegisterDisplayProperty( - id2, kRotation, kInsetsToSet, kResolutionInPixels, kDeviceScaleFactor, - kDisplayZoom, kRefreshRate, kIsInterlaced, kVariableRefreshRateState, - kVsyncRateMin); - EXPECT_EQ(display::MULTIPLE_DISPLAY_STATE_MULTI_EXTENDED, observer.GetStateForDisplayIds(outputs));
diff --git a/ash/display/privacy_screen_controller_unittest.cc b/ash/display/privacy_screen_controller_unittest.cc index 28003adf..4a6a73e 100644 --- a/ash/display/privacy_screen_controller_unittest.cc +++ b/ash/display/privacy_screen_controller_unittest.cc
@@ -123,18 +123,6 @@ : display::kNotSupported) .Build()); outputs.push_back(owned_snapshots_.back().get()); - // Register mode info for external display so that it could be found for - // matched mode called via |DisplayManager::GetMatchingModeForDisplayId|. - if (!param.is_internal_display) { - display_manager()->RegisterDisplayProperty( - param.id, /*rotation=*/display::Display::ROTATE_0, - /*overscan_insets=*/nullptr, /*resolution_in_pixels=*/kDisplaySize, - /*device_scale_factor=*/1.0f, - /*display_zoom_factor=*/1.0f, /*refresh_rate=*/60.0f, - /*is_interlaced=*/false, - /*variable_refresh_rate_state=*/display::kVrrNotCapable, - /*vsync_rate_min=*/absl::nullopt); - } } native_display_delegate_->set_outputs(outputs);
diff --git a/ash/frame_sink/ui_resource_manager.cc b/ash/frame_sink/ui_resource_manager.cc index 52b337c..a98a1ec 100644 --- a/ash/frame_sink/ui_resource_manager.cc +++ b/ash/frame_sink/ui_resource_manager.cc
@@ -128,7 +128,8 @@ to_be_exported_resource->sync_token, to_be_exported_resource->resource_size, to_be_exported_resource->format, - to_be_exported_resource->is_overlay_candidate); + to_be_exported_resource->is_overlay_candidate, + viz::TransferableResource::ResourceSource::kUI); transferable_resource.id = resource_id; exported_resources_pool_[resource_id] = std::move(to_be_exported_resource);
diff --git a/ash/hud_display/hud_settings_view.cc b/ash/hud_display/hud_settings_view.cc index 695368a..bbf2f43 100644 --- a/ash/hud_display/hud_settings_view.cc +++ b/ash/hud_display/hud_settings_view.cc
@@ -4,6 +4,7 @@ #include "ash/hud_display/hud_settings_view.h" +#include <set> #include <string> #include "ash/hud_display/ash_tracing_handler.h" @@ -14,6 +15,7 @@ #include "base/compiler_specific.h" #include "base/functional/bind.h" #include "base/memory/raw_ptr.h" +#include "base/strings/strcat.h" #include "base/strings/stringprintf.h" #include "base/time/time.h" #include "cc/debug/layer_tree_debug_state.h" @@ -26,7 +28,10 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/compositor/compositor.h" #include "ui/compositor/scoped_animation_duration_scale_mode.h" +#include "ui/events/event.h" +#include "ui/events/types/event_type.h" #include "ui/gfx/canvas.h" +#include "ui/gfx/geometry/point.h" #include "ui/gfx/paint_throbber.h" #include "ui/views/accessibility/view_accessibility.h" #include "ui/views/background.h" @@ -519,6 +524,16 @@ ->set_cross_axis_alignment( views::BoxLayout::CrossAxisAlignment::kStretch); + // Show cursor position. + constexpr int kCursorPositionDisplayButtonMargin = 6; + views::View* cursor_position_display = + AddChildView(std::make_unique<views::View>()); + cursor_position_display + ->SetLayoutManager(std::make_unique<views::BoxLayout>( + views::BoxLayout::Orientation::kVertical)) + ->set_cross_axis_alignment( + views::BoxLayout::CrossAxisAlignment::kStretch); + // Tracing controls. constexpr int kTracingControlButtonMargin = 6; views::View* tracing_controls = AddChildView(std::make_unique<views::View>()); @@ -537,6 +552,15 @@ std::u16string())); UpdateDevToolsControlButtonLabel(); + cursor_position_display->SetBorder( + views::CreateEmptyBorder(kCursorPositionDisplayButtonMargin)); + cursor_position_display_button_ = + cursor_position_display->AddChildView(std::make_unique<HUDActionButton>( + base::BindRepeating( + &HUDSettingsView::OnEnableCursorPositionDisplayButtonPressed, + base::Unretained(this)), + u"Show cursor position")); + tracing_controls->SetBorder( views::CreateEmptyBorder(kTracingControlButtonMargin)); tracing_control_button_ = @@ -570,10 +594,15 @@ UpdateTracingControlButton(); AshTracingManager::Get().AddObserver(this); + aura::Env* env = aura::Env::GetInstance(); + env->AddEventObserver( + this, env, + std::set<ui::EventType>({ui::ET_MOUSE_DRAGGED, ui::ET_MOUSE_MOVED})); } HUDSettingsView::~HUDSettingsView() { AshTracingManager::Get().RemoveObserver(this); + aura::Env::GetInstance()->RemoveEventObserver(this); } void HUDSettingsView::OnTracingStatusChange() { @@ -599,6 +628,31 @@ } } +void HUDSettingsView::OnEnableCursorPositionDisplayButtonPressed( + const ui::Event& event) { + showing_cursor_position_ = !showing_cursor_position_; + if (showing_cursor_position_) { + cursor_position_display_button_->SetText(base::ASCIIToUTF16(base::StrCat( + {"Cursor: ", + aura::Env::GetInstance()->last_mouse_location().ToString()}))); + } else { + cursor_position_display_button_->SetText(u"Show cursor position"); + } +} + +void HUDSettingsView::OnEvent(ui::Event* event) { + views::View::OnEvent(event); +} + +void HUDSettingsView::OnEvent(const ui::Event& event) { + if (!showing_cursor_position_ || !event.IsMouseEvent()) { + return; + } + + cursor_position_display_button_->SetText(base::ASCIIToUTF16( + base::StrCat({"Cursor: ", event.AsMouseEvent()->location().ToString()}))); +} + void HUDSettingsView::ToggleVisibility() { const bool is_shown = !GetVisible(); if (is_shown) {
diff --git a/ash/hud_display/hud_settings_view.h b/ash/hud_display/hud_settings_view.h index 0c8b592..cd6b2902 100644 --- a/ash/hud_display/hud_settings_view.h +++ b/ash/hud_display/hud_settings_view.h
@@ -12,6 +12,7 @@ #include "ash/hud_display/hud_constants.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" +#include "ui/events/event_observer.h" #include "ui/views/view.h" namespace ui { @@ -33,7 +34,9 @@ class HUDActionButton; } -class HUDSettingsView : public AshTracingManager::Observer, public views::View { +class HUDSettingsView : public AshTracingManager::Observer, + public views::View, + public ui::EventObserver { public: METADATA_HEADER(HUDSettingsView); @@ -52,11 +55,20 @@ // Creates Ui Dev Tools. void OnEnableUiDevToolsButtonPressed(const ui::Event& event); + // Show or hide cursor position. + void OnEnableCursorPositionDisplayButtonPressed(const ui::Event& event); + // Starts tracing. void OnEnableTracingButtonPressed(const ui::Event& event); ASH_EXPORT void ToggleTracingForTesting(); + // views::View: + void OnEvent(ui::Event* event) override; + + // ui::EventObserver: + void OnEvent(const ui::Event& event) override; + private: // Starts/Stops tracing. void ToggleTracing(); @@ -73,6 +85,14 @@ raw_ptr<views::LabelButton, ExperimentalAsh> ui_dev_tools_control_button_ = nullptr; + // Conrainer for "Show cursor position: button or "Cursor Position: " label. + raw_ptr<views::LabelButton, ExperimentalAsh> cursor_position_display_button_ = + nullptr; + + // Switches whether `cursor_position_display_button_` is showing cursor + // position or not. + bool showing_cursor_position_ = false; + raw_ptr<HUDActionButton, ExperimentalAsh> tracing_control_button_ = nullptr; raw_ptr<views::Label, ExperimentalAsh> tracing_status_message_ = nullptr;
diff --git a/ash/login/ui/login_user_view.cc b/ash/login/ui/login_user_view.cc index f9e5374..8aec04b 100644 --- a/ash/login/ui/login_user_view.cc +++ b/ash/login/ui/login_user_view.cc
@@ -32,6 +32,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" #include "ui/chromeos/styles/cros_tokens_color_mappings.h" +#include "ui/color/color_id.h" #include "ui/compositor/layer.h" #include "ui/compositor/layer_animation_sequence.h" #include "ui/compositor/layer_animator.h" @@ -168,12 +169,20 @@ enterprise_icon_container_->SetLayoutManager( std::make_unique<EnterpriseBadgeLayout>(icon_size)); + const bool is_jelly = chromeos::features::IsJellyrollEnabled(); + ui::ColorId icon_background_color_id = + is_jelly ? static_cast<ui::ColorId>(cros_tokens::kCrosSysSecondary) + : kColorAshIconColorSecondaryBackground; + ui::ColorId icon_color_id = + is_jelly ? static_cast<ui::ColorId>(cros_tokens::kCrosSysOnSecondary) + : kColorAshIconColorSecondary; + views::ImageView* icon_ = enterprise_icon_container_->AddChildView( std::make_unique<views::ImageView>(ui::ImageModel::FromVectorIcon( - chromeos::kEnterpriseIcon, kColorAshIconColorSecondary, + chromeos::kEnterpriseIcon, icon_color_id, icon_size * kIconProportion))); icon_->SetBackground(views::CreateThemedRoundedRectBackground( - kColorAshIconColorSecondaryBackground, icon_size / 2)); + icon_background_color_id, icon_size / 2)); } UserImage(const UserImage&) = delete;
diff --git a/ash/system/night_light/night_light_controller_unittest.cc b/ash/system/night_light/night_light_controller_unittest.cc index 2cd4e69..b7798bf 100644 --- a/ash/system/night_light/night_light_controller_unittest.cc +++ b/ash/system/night_light/night_light_controller_unittest.cc
@@ -49,16 +49,6 @@ constexpr char kUser1Email[] = "user1@nightlight"; constexpr char kUser2Email[] = "user2@nightlight"; -constexpr display::Display::Rotation kRotation = display::Display::ROTATE_0; -constexpr gfx::Insets* kInsetsToSet = nullptr; -constexpr float kDeviceScaleFactor = 1.0f; -constexpr float kDisplayZoom = 1.0f; -constexpr float kRefreshRate = 60.0f; -constexpr bool kIsInterlaced = false; -constexpr display::VariableRefreshRateState kVariableRefreshRateState = - display::kVrrNotCapable; -constexpr absl::optional<uint16_t> kVsyncRateMin = absl::nullopt; - enum AmPm { kAM, kPM }; // Convenience function for constructing a TimeOfDay object for exact hours @@ -1284,13 +1274,6 @@ snapshot_params[1].correction_in_linear_space) .Build()); owned_snapshots_.back()->set_origin({1030, 0}); - // Register mode info for external display so that it could be found for - // matched mode called via |DisplayManager::GetMatchingModeForDisplayId|. - // Same as below. - display_manager()->RegisterDisplayProperty( - kId2, kRotation, kInsetsToSet, kDisplaySize, kDeviceScaleFactor, - kDisplayZoom, kRefreshRate, kIsInterlaced, kVariableRefreshRateState, - kVsyncRateMin); std::vector<display::DisplaySnapshot*> outputs = { owned_snapshots_[0].get(), owned_snapshots_[1].get()}; return outputs; @@ -1829,10 +1812,6 @@ .SetCurrentMode(kDisplaySize) .SetOrigin({1030, 0}) .Build()); - display_manager()->RegisterDisplayProperty( - kExternalDisplayId, kRotation, kInsetsToSet, kDisplaySize, - kDeviceScaleFactor, kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); std::vector<display::DisplaySnapshot*> outputs = { owned_snapshots_[0].get(), owned_snapshots_[1].get()};
diff --git a/ash/utility/layer_util.cc b/ash/utility/layer_util.cc index 0cffbc5..bd151e9 100644 --- a/ash/utility/layer_util.cc +++ b/ash/utility/layer_util.cc
@@ -29,7 +29,8 @@ mailbox_holder.mailbox, mailbox_holder.texture_target, mailbox_holder.sync_token, copy_result->size(), viz::SinglePlaneFormat::kRGBA_8888, - /*is_overlay_candidate=*/false); + /*is_overlay_candidate=*/false, + viz::TransferableResource::ResourceSource::kUI); viz::CopyOutputResult::ReleaseCallbacks release_callbacks = copy_result->TakeTextureOwnership();
diff --git a/base/BUILD.gn b/base/BUILD.gn index 07a4747..fe842c0 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -1964,8 +1964,8 @@ "apple/scoped_mach_port.h", "apple/scoped_mach_vm.cc", "apple/scoped_mach_vm.h", - "apple/scoped_nsautorelease_pool.cc", "apple/scoped_nsautorelease_pool.h", + "apple/scoped_nsautorelease_pool.mm", "apple/scoped_nsobject.h", "apple/scoped_objc_class_swizzler.h", "apple/scoped_objc_class_swizzler.mm", @@ -3738,6 +3738,7 @@ "allocator/partition_allocator/shim/malloc_zone_functions_apple_unittest.cc", "apple/call_with_eh_frame_unittest.mm", "apple/scoped_mach_vm_unittest.cc", + "apple/scoped_nsautorelease_pool_unittest.mm", "apple/scoped_objc_class_swizzler_unittest.mm", "enterprise_util_mac_unittest.mm", "mac/launch_application_unittest.mm",
diff --git a/base/allocator/partition_allocator/partition_alloc.gni b/base/allocator/partition_allocator/partition_alloc.gni index 9126dda..cf8dbd2 100644 --- a/base/allocator/partition_allocator/partition_alloc.gni +++ b/base/allocator/partition_allocator/partition_alloc.gni
@@ -319,10 +319,11 @@ # pkeys support is explicitly disabled in all Cronet builds, as some test # dependencies that use partition_allocator are compiled in AOSP against a # version of glibc that does not include pkeys syscall numbers. - enable_pkeys = is_linux && target_cpu == "x64" && !is_cronet_build + enable_pkeys = + (is_linux || is_chromeos) && target_cpu == "x64" && !is_cronet_build } -assert(!enable_pkeys || (is_linux && target_cpu == "x64"), - "Pkeys are only supported on x64 linux") +assert(!enable_pkeys || ((is_linux || is_chromeos) && target_cpu == "x64"), + "Pkeys are only supported on x64 linux and ChromeOS") # Some implementations of raw_ptr<>, like BackupRefPtr, require zeroing when # constructing, destructing or moving out of a pointer. Some don't, like
diff --git a/base/allocator/partition_allocator/thread_isolation/pkey.cc b/base/allocator/partition_allocator/thread_isolation/pkey.cc index 9f2f792..041cb83 100644 --- a/base/allocator/partition_allocator/thread_isolation/pkey.cc +++ b/base/allocator/partition_allocator/thread_isolation/pkey.cc
@@ -15,8 +15,8 @@ #include "base/allocator/partition_allocator/partition_alloc_check.h" #include "base/allocator/partition_allocator/thread_isolation/thread_isolation.h" -#if !BUILDFLAG(IS_LINUX) -#error "This pkey code is currently only supported on Linux" +#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) +#error "This pkey code is currently only supported on Linux and ChromeOS" #endif namespace partition_alloc::internal {
diff --git a/base/apple/scoped_nsautorelease_pool.cc b/base/apple/scoped_nsautorelease_pool.cc deleted file mode 100644 index 5793482..0000000 --- a/base/apple/scoped_nsautorelease_pool.cc +++ /dev/null
@@ -1,34 +0,0 @@ -// Copyright 2010 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/apple/scoped_nsautorelease_pool.h" - -// Note that this uses the direct runtime interface to the autorelease pool. -// https://clang.llvm.org/docs/AutomaticReferenceCounting.html#runtime-support -// This is so this can work when compiled for ARC. - -extern "C" { -void* objc_autoreleasePoolPush(void); -void objc_autoreleasePoolPop(void* pool); -} - -namespace base::apple { - -ScopedNSAutoreleasePool::ScopedNSAutoreleasePool() - : autorelease_pool_(objc_autoreleasePoolPush()) {} - -ScopedNSAutoreleasePool::~ScopedNSAutoreleasePool() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - objc_autoreleasePoolPop(autorelease_pool_); -} - -// Cycle the internal pool, allowing everything there to get cleaned up and -// start anew. -void ScopedNSAutoreleasePool::Recycle() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - objc_autoreleasePoolPop(autorelease_pool_); - autorelease_pool_ = objc_autoreleasePoolPush(); -} - -} // namespace base::apple
diff --git a/base/apple/scoped_nsautorelease_pool.h b/base/apple/scoped_nsautorelease_pool.h index 3d6b0d17..056668b 100644 --- a/base/apple/scoped_nsautorelease_pool.h +++ b/base/apple/scoped_nsautorelease_pool.h
@@ -6,8 +6,10 @@ #define BASE_APPLE_SCOPED_NSAUTORELEASE_POOL_H_ #include "base/base_export.h" +#include "base/dcheck_is_on.h" #include "base/memory/raw_ptr_exclusion.h" #include "base/memory/stack_allocated.h" +#include "base/thread_annotations.h" #include "base/threading/thread_checker.h" namespace base::apple { @@ -43,11 +45,21 @@ void Recycle(); private: + // Pushes the autorelease pool and does all required verification. + void PushImpl() VALID_CONTEXT_REQUIRED(thread_checker_); + + // Pops the autorelease pool and does all required verification. + void PopImpl() VALID_CONTEXT_REQUIRED(thread_checker_); + // This field is not a raw_ptr<> because it is a pointer to an Objective-C // object. RAW_PTR_EXCLUSION void* autorelease_pool_ GUARDED_BY_CONTEXT(thread_checker_); THREAD_CHECKER(thread_checker_); + +#if DCHECK_IS_ON() + unsigned long level_ = 0; +#endif }; } // namespace base::apple
diff --git a/base/apple/scoped_nsautorelease_pool.mm b/base/apple/scoped_nsautorelease_pool.mm new file mode 100644 index 0000000..f3a71c6 --- /dev/null +++ b/base/apple/scoped_nsautorelease_pool.mm
@@ -0,0 +1,140 @@ +// Copyright 2010 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/apple/scoped_nsautorelease_pool.h" + +#include "base/dcheck_is_on.h" + +#if DCHECK_IS_ON() +#import <Foundation/Foundation.h> + +#include "base/debug/crash_logging.h" +#include "base/debug/stack_trace.h" +#include "base/immediate_crash.h" +#include "base/strings/sys_string_conversions.h" +#endif + +// Note that this uses the direct runtime interface to the autorelease pool. +// https://clang.llvm.org/docs/AutomaticReferenceCounting.html#runtime-support +// This is so this can work when compiled for ARC. +extern "C" { +void* objc_autoreleasePoolPush(void); +void objc_autoreleasePoolPop(void* pool); +} + +namespace base::apple { + +#if DCHECK_IS_ON() +namespace { + +using BlockReturningStackTrace = debug::StackTrace (^)(); + +// Because //base is not allowed to define Objective-C classes, which would be +// the most reasonable way to wrap a C++ object like base::debug::StackTrace, do +// it in a much more absurd, yet not completely unreasonable, way. +// +// This uses a default argument for the stack trace so that the creation of the +// stack trace is attributed to the parent function. +BlockReturningStackTrace MakeBlockReturningStackTrace( + debug::StackTrace stack_trace = debug::StackTrace()) { + // Return a block that references the stack trace. That will cause a copy of + // the stack trace to be made by the block, and because blocks are effectively + // Objective-C objects, they can be used in the NSThread thread dictionary. + return ^() { + return stack_trace; + }; +} + +// For each NSThread, maintain an array of stack traces, one for the state of +// the stack for each invocation of an autorelease pool push. Even though one is +// allowed to clear out an entire stack of autorelease pools by releasing one +// near the bottom, because the stack abstraction is mapped to C++ classes, this +// cannot be allowed. +NSMutableArray<BlockReturningStackTrace>* GetLevelStackTraces() { + NSMutableArray* traces = + NSThread.currentThread + .threadDictionary[@"CrScopedNSAutoreleasePoolTraces"]; + if (traces) { + return traces; + } + + traces = [NSMutableArray array]; + NSThread.currentThread.threadDictionary[@"CrScopedNSAutoreleasePoolTraces"] = + traces; + return traces; +} + +} // namespace +#endif + +ScopedNSAutoreleasePool::ScopedNSAutoreleasePool() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + PushImpl(); +} + +ScopedNSAutoreleasePool::~ScopedNSAutoreleasePool() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + PopImpl(); +} + +void ScopedNSAutoreleasePool::Recycle() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + // Cycle the internal pool, allowing everything there to get cleaned up and + // start anew. + PopImpl(); + PushImpl(); +} + +void ScopedNSAutoreleasePool::PushImpl() { +#if DCHECK_IS_ON() + [GetLevelStackTraces() addObject:MakeBlockReturningStackTrace()]; + level_ = GetLevelStackTraces().count; +#endif + autorelease_pool_ = objc_autoreleasePoolPush(); +} + +void ScopedNSAutoreleasePool::PopImpl() { +#if DCHECK_IS_ON() + auto level_count = GetLevelStackTraces().count; + if (level_ != level_count) { + NSLog(@"Popping autorelease pool at level %lu while pools exist through " + @"level %lu", + level_, level_count); + if (level_ < level_count) { + NSLog(@"WARNING: This abandons ScopedNSAutoreleasePool objects which now " + @"have no corresponding implementation."); + } else { + NSLog(@"ERROR: This is an abandoned ScopedNSAutoreleasePool that cannot " + @"release; expect the autorelease machinery to crash."); + } + NSLog(@"===================="); + NSString* current_stack = SysUTF8ToNSString(debug::StackTrace().ToString()); + NSLog(@"Pop:\n%@", current_stack); + [GetLevelStackTraces() + enumerateObjectsWithOptions:NSEnumerationReverse + usingBlock:^(BlockReturningStackTrace obj, + NSUInteger idx, BOOL* stop) { + NSLog(@"===================="); + NSLog(@"Autorelease pool level %lu was pushed:\n%@", + idx + 1, SysUTF8ToNSString(obj().ToString())); + }]; + // Assume an interactive use of Chromium where crashing immediately is + // desirable, and die. When investigating a failing automated test that dies + // here, remove these crash keys and call to ImmediateCrash() to reveal + // where the abandoned ScopedNSAutoreleasePool was expected to be released. + SCOPED_CRASH_KEY_NUMBER("ScopedNSAutoreleasePool", "currentlevel", level_); + SCOPED_CRASH_KEY_NUMBER("ScopedNSAutoreleasePool", "levelcount", + level_count); + SCOPED_CRASH_KEY_STRING1024("ScopedNSAutoreleasePool", "currentstack", + SysNSStringToUTF8(current_stack)); + SCOPED_CRASH_KEY_STRING1024("ScopedNSAutoreleasePool", "recentstack", + GetLevelStackTraces().lastObject().ToString()); + ImmediateCrash(); + } + [GetLevelStackTraces() removeLastObject]; +#endif + objc_autoreleasePoolPop(autorelease_pool_); +} + +} // namespace base::apple
diff --git a/base/apple/scoped_nsautorelease_pool_unittest.mm b/base/apple/scoped_nsautorelease_pool_unittest.mm new file mode 100644 index 0000000..8bd1120 --- /dev/null +++ b/base/apple/scoped_nsautorelease_pool_unittest.mm
@@ -0,0 +1,26 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "base/apple/scoped_nsautorelease_pool.h" + +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace base::apple { + +#if DCHECK_IS_ON() +TEST(ScopedNSAutoreleasePoolTest, DieOutOfOrder) { + absl::optional<ScopedNSAutoreleasePool> pool1; + absl::optional<ScopedNSAutoreleasePool> pool2; + + // Instantiate the pools in the order 1, then 2. + pool1.emplace(); + pool2.emplace(); + + // Destroy in the wrong order; ensure death. + ASSERT_DEATH(pool1.reset(), "autorelease"); +} +#endif + +} // namespace base::apple
diff --git a/base/debug/stack_trace_android.cc b/base/debug/stack_trace_android.cc index 3911830..814a498 100644 --- a/base/debug/stack_trace_android.cc +++ b/base/debug/stack_trace_android.cc
@@ -31,7 +31,7 @@ max_depth(max_depth), have_skipped_self(false) {} - raw_ptr<uintptr_t> frames; + raw_ptr<uintptr_t, AllowPtrArithmetic> frames; size_t frame_count; size_t max_depth; bool have_skipped_self;
diff --git a/base/metrics/persistent_histogram_allocator.cc b/base/metrics/persistent_histogram_allocator.cc index 3af7db72..d30f105 100644 --- a/base/metrics/persistent_histogram_allocator.cc +++ b/base/metrics/persistent_histogram_allocator.cc
@@ -457,34 +457,6 @@ return; } - // TODO(crbug/1432981): Remove this. Used to investigate unexpected failures. - HistogramType type = existing->GetHistogramType(); - if ((type == HistogramType::HISTOGRAM || - type == HistogramType::LINEAR_HISTOGRAM || - type == HistogramType::BOOLEAN_HISTOGRAM || - type == HistogramType::CUSTOM_HISTOGRAM) && - histogram->GetHistogramType() == type) { - const BucketRanges* existing_buckets = - static_cast<Histogram*>(existing)->bucket_ranges(); - const BucketRanges* histogram_buckets = - static_cast<Histogram*>(histogram)->bucket_ranges(); - DCHECK(existing_buckets->HasValidChecksum() && - histogram_buckets->HasValidChecksum()); - - // If the buckets do not match, then the call to AddSamples() below should - // trigger a NOTREACHED(). This may be indicative that a child process is - // emitting a histogram with different parameters than the browser - // process, for example. - if (!existing_buckets->Equals(histogram_buckets)) { -#if !BUILDFLAG(IS_NACL) - SCOPED_CRASH_KEY_STRING256("PersistentHistogramAllocator", "histogram", - existing->histogram_name()); -#endif // !BUILDFLAG(IS_NACL) - existing->AddSamples(*histogram->SnapshotDelta()); - return; - } - } - // Merge the delta from the passed object to the one in the SR. existing->AddSamples(*histogram->SnapshotDelta()); } @@ -674,8 +646,50 @@ HistogramBase* existing = StatisticsRecorder::FindHistogram(histogram->histogram_name()); - if (existing) + if (existing) { +#if !BUILDFLAG(IS_NACL) + // If the passed |histogram| does not match the one registered with the + // global StatisticsRecorder (e.g. not same type of histogram, or they + // specify different buckets), then unexpected things may happen further + // down the line. This may be indicative that a child process is emitting a + // histogram with different parameters than the browser process, for + // example. + // TODO(crbug/1432981): Remove this. Used to investigate failures when + // merging histograms from an allocator to the global StatisticsRecorder. + bool histograms_match = true; + HistogramType existing_type = existing->GetHistogramType(); + if (histogram->GetHistogramType() != existing_type) { + // Different histogram types. + histograms_match = false; + } else if (existing_type == HistogramType::HISTOGRAM || + existing_type == HistogramType::LINEAR_HISTOGRAM || + existing_type == HistogramType::BOOLEAN_HISTOGRAM || + existing_type == HistogramType::CUSTOM_HISTOGRAM) { + // Only numeric histograms make use of BucketRanges. + const BucketRanges* existing_buckets = + static_cast<const Histogram*>(existing)->bucket_ranges(); + const BucketRanges* histogram_buckets = + static_cast<const Histogram*>(histogram)->bucket_ranges(); + // DCHECK because HasValidChecksum() recomputes the checksum which can be + // expensive to do in a loop. + DCHECK(existing_buckets->HasValidChecksum() && + histogram_buckets->HasValidChecksum()); + + if (existing_buckets->checksum() != histogram_buckets->checksum()) { + // Different buckets. + histograms_match = false; + } + } + + if (!histograms_match) { + SCOPED_CRASH_KEY_STRING256("PersistentHistogramAllocator", "histogram", + existing->histogram_name()); + NOTREACHED(); + } +#endif // !BUILDFLAG(IS_NACL) + return existing; + } // Adding the passed histogram to the SR would cause a problem if the // allocator that holds it eventually goes away. Instead, create a new
diff --git a/base/synchronization/condition_variable_posix.cc b/base/synchronization/condition_variable_posix.cc index 4a9d680..c497ea5 100644 --- a/base/synchronization/condition_variable_posix.cc +++ b/base/synchronization/condition_variable_posix.cc
@@ -31,7 +31,7 @@ // Use to evaluate if the hack is still needed. See https://crbug.com/517681. BASE_FEATURE(kSkipConditionVariableWakeupHack, "SkipConditionVariableWakeupHack", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); std::atomic_bool g_skip_wakeup_hack = false; #endif } // namespace
diff --git a/build/config/siso/linux.star b/build/config/siso/linux.star index b3f1c67..86249a5c 100644 --- a/build/config/siso/linux.star +++ b/build/config/siso/linux.star
@@ -51,7 +51,9 @@ "./obj/chrome/test/browser_tests/device_local_account_browsertest.o", "./obj/chrome/test/browser_tests/file_manager_browsertest_base.o", "./obj/chrome/test/browser_tests/remote_apps_manager_browsertest.o", + "./obj/chrome/test/browser_tests/spoken_feedback_browsertest.o", "./obj/chrome/test/unit_tests/chrome_browsing_data_remover_delegate_unittest.o", + "./obj/chrome/test/unit_tests/site_settings_handler_unittest.o", "./obj/fuchsia_web/runners/cast_runner_integration_tests__exec/cast_runner_integration_test.o", "./obj/fuchsia_web/webengine/web_engine_core/frame_impl.o", "./ash_clang_x64/obj/chrome/browser/ash/ash/autotest_private_api.o",
diff --git a/cc/layers/heads_up_display_layer_impl.cc b/cc/layers/heads_up_display_layer_impl.cc index 3168aa1..09cfb114 100644 --- a/cc/layers/heads_up_display_layer_impl.cc +++ b/cc/layers/heads_up_display_layer_impl.cc
@@ -417,7 +417,9 @@ // Exports the backing to the ResourceProvider, giving it a ResourceId that // can be used in a DrawQuad. - bool exported = pool_->PrepareForExport(pool_resource); + bool exported = pool_->PrepareForExport( + pool_resource, + viz::TransferableResource::ResourceSource::kHeadsUpDisplay); DCHECK(exported); viz::ResourceId resource_id = pool_resource.resource_id_for_export();
diff --git a/cc/metrics/frame_sequence_tracker.cc b/cc/metrics/frame_sequence_tracker.cc index e493ad3..5b2167a 100644 --- a/cc/metrics/frame_sequence_tracker.cc +++ b/cc/metrics/frame_sequence_tracker.cc
@@ -384,8 +384,6 @@ compositor_frame_submitted_ = false; submitted_frame_had_new_main_content_ = false; last_processed_main_sequence_latency_ = 0; - - DCHECK(is_inside_frame_) << TRACKER_DCHECK_MSG; is_inside_frame_ = false; DCHECK_EQ(last_started_impl_sequence_, last_processed_impl_sequence_) @@ -459,9 +457,6 @@ main_frames_.pop_front(); } if (main_frames_.size() < size_before_erase) { - DCHECK_LT(main_throughput().frames_produced, - main_throughput().frames_expected) - << TRACKER_DCHECK_MSG; ++main_throughput().frames_produced; if (metrics()->GetEffectiveThread() == ThreadType::kMain) { metrics()->AdvanceTrace(feedback.timestamp, frame_token); @@ -584,8 +579,22 @@ frame_data->previous_source == source_id) { uint32_t current_latency = sequence_number - frame_data->previous_sequence - throttled_frame_count; - DCHECK_GT(current_latency, 0u) << TRACKER_DCHECK_MSG; - frame_data->previous_sequence_delta = current_latency; + if (current_latency > 0u) { + frame_data->previous_sequence_delta = current_latency; + } else { + // It is possible for the `current_latency` to be 0. This can occur when + // the Renderer or VideoFrameSubmitter is detached from Viz as a client. + // Before being re-attached during the same frame. This can be caused by + // re-embedding this client. Such as when triggering Picture-in-Picture + // mode. + // + // These special-case re-embedding lead to the `source_id` staying the + // same. As it is the same instance of Viz. + // + // We do not want to error on such a transition, so we treat the + // transition as a single frame delta. + frame_data->previous_sequence_delta = 1; + } } else { frame_data->previous_sequence_delta = 1; }
diff --git a/cc/resources/resource_pool.cc b/cc/resources/resource_pool.cc index 5acb51e1..027d92a2 100644 --- a/cc/resources/resource_pool.cc +++ b/cc/resources/resource_pool.cc
@@ -306,7 +306,9 @@ busy_resources_.erase(busy_it); } -bool ResourcePool::PrepareForExport(const InUsePoolResource& in_use_resource) { +bool ResourcePool::PrepareForExport( + const InUsePoolResource& in_use_resource, + viz::TransferableResource::ResourceSource resource_source) { PoolResource* resource = in_use_resource.resource_; // Exactly one of gpu or software backing should exist. DCHECK(resource->gpu_backing() || resource->software_backing()); @@ -325,14 +327,14 @@ transferable = viz::TransferableResource::MakeGpu( gpu_backing->mailbox, gpu_backing->texture_target, gpu_backing->mailbox_sync_token, resource->size(), resource->format(), - gpu_backing->overlay_candidate); + gpu_backing->overlay_candidate, resource_source); if (gpu_backing->wait_on_fence_required) transferable.synchronization_type = viz::TransferableResource::SynchronizationType::kGpuCommandsCompleted; } else { transferable = viz::TransferableResource::MakeSoftware( resource->software_backing()->shared_bitmap_id, resource->size(), - resource->format()); + resource->format(), resource_source); } transferable.color_space = resource->color_space(); resource->set_resource_id(resource_provider_->ImportResource(
diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h index 8731e5d5..eb3708e 100644 --- a/cc/resources/resource_pool.h +++ b/cc/resources/resource_pool.h
@@ -27,6 +27,7 @@ #include "components/viz/common/resources/resource_sizes.h" #include "components/viz/common/resources/shared_bitmap.h" #include "components/viz/common/resources/shared_image_format.h" +#include "components/viz/common/resources/transferable_resource.h" #include "gpu/command_buffer/common/sync_token.h" #include "third_party/khronos/GLES2/gl2.h" #include "ui/gfx/color_space.h" @@ -236,7 +237,9 @@ // Returns false if the backing does not contain valid data, in particular // a zero mailbox for GpuBacking, in which case the resource is not exported, // and true otherwise. - bool PrepareForExport(const InUsePoolResource& resource); + bool PrepareForExport( + const InUsePoolResource& resource, + viz::TransferableResource::ResourceSource resource_source); // Marks any resources in the pool as invalid, preventing their reuse. Call if // previous resources were allocated in one way, but future resources should
diff --git a/cc/resources/resource_pool_unittest.cc b/cc/resources/resource_pool_unittest.cc index 2e76151..5cea93f 100644 --- a/cc/resources/resource_pool_unittest.cc +++ b/cc/resources/resource_pool_unittest.cc
@@ -245,7 +245,8 @@ resource_pool_->AcquireResource(size, format, color_space); SetBackingOnResource(resource); - EXPECT_TRUE(resource_pool_->PrepareForExport(resource)); + EXPECT_TRUE(resource_pool_->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTest)); std::vector<viz::ResourceId> export_ids = {resource.resource_id_for_export()}; std::vector<viz::TransferableResource> transferable_resources; @@ -280,7 +281,8 @@ EXPECT_EQ(40000u, resource_pool_->GetTotalMemoryUsageForTesting()); EXPECT_EQ(1u, resource_pool_->resource_count()); - EXPECT_TRUE(resource_pool_->PrepareForExport(resource)); + EXPECT_TRUE(resource_pool_->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTest)); std::vector<viz::TransferableResource> transfers; resource_provider_->PrepareSendToParent( @@ -328,7 +330,8 @@ EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting()); // Export the resource to the display compositor. - EXPECT_TRUE(resource_pool_->PrepareForExport(resource)); + EXPECT_TRUE(resource_pool_->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTest)); std::vector<viz::TransferableResource> transfers; resource_provider_->PrepareSendToParent( {resource.resource_id_for_export()}, &transfers, @@ -537,7 +540,8 @@ ResourcePool::InUsePoolResource resource = resource_pool_->AcquireResource(size, format, color_space); SetBackingOnResource(resource); - EXPECT_TRUE(resource_pool_->PrepareForExport(resource)); + EXPECT_TRUE(resource_pool_->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTest)); EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting()); EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting()); @@ -591,7 +595,8 @@ ResourcePool::InUsePoolResource busy_resource = resource_pool_->AcquireResource(size, format, color_space); SetBackingOnResource(busy_resource); - EXPECT_TRUE(resource_pool_->PrepareForExport(busy_resource)); + EXPECT_TRUE(resource_pool_->PrepareForExport( + busy_resource, viz::TransferableResource::ResourceSource::kTest)); EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting()); EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting()); EXPECT_EQ(1u, resource_pool_->resource_count()); @@ -711,7 +716,8 @@ resource.gpu_backing()->wait_on_fence_required = true; resource.gpu_backing()->overlay_candidate = true; - EXPECT_TRUE(resource_pool_->PrepareForExport(resource)); + EXPECT_TRUE(resource_pool_->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTest)); std::vector<viz::TransferableResource> transfer; resource_provider_->PrepareSendToParent( @@ -760,7 +766,8 @@ backing->overlay_candidate = true; resource.set_gpu_backing(std::move(backing)); - EXPECT_FALSE(resource_pool_->PrepareForExport(resource)); + EXPECT_FALSE(resource_pool_->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTest)); resource_pool_->ReleaseResource(std::move(resource));
diff --git a/cc/slim/frame_sink_impl.cc b/cc/slim/frame_sink_impl.cc index 2613202..da9ab77 100644 --- a/cc/slim/frame_sink_impl.cc +++ b/cc/slim/frame_sink_impl.cc
@@ -174,7 +174,8 @@ uploaded_resource.viz_resource_id = resource_provider_.ImportResource( viz::TransferableResource::MakeGpu( uploaded_resource.mailbox, texture_target, sync_token, - resource_bitmap.GetSize(), format, /*is_overlay_candidate=*/false), + resource_bitmap.GetSize(), format, /*is_overlay_candidate=*/false, + viz::TransferableResource::ResourceSource::kUI), base::BindOnce(&FrameSinkImpl::UIResourceReleased, base::Unretained(this), resource_id)); uploaded_resource.size = resource_bitmap.GetSize();
diff --git a/cc/tiles/tile_manager.cc b/cc/tiles/tile_manager.cc index 4f6dbaee..fca1907 100644 --- a/cc/tiles/tile_manager.cc +++ b/cc/tiles/tile_manager.cc
@@ -1561,7 +1561,8 @@ // Once raster is done, allow the resource to be exported to the display // compositor, by giving it a ResourceId. - bool exported = resource_pool_->PrepareForExport(resource); + bool exported = resource_pool_->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTileRasterTask); // In SMOOTHNESS_TAKES_PRIORITY mode, we wait for GPU work to complete for a // tile before setting it as ready to draw.
diff --git a/cc/tiles/tile_manager.h b/cc/tiles/tile_manager.h index 64b84027..7b1e6685 100644 --- a/cc/tiles/tile_manager.h +++ b/cc/tiles/tile_manager.h
@@ -241,7 +241,8 @@ resource.gpu_backing()->mailbox_sync_token.Set( gpu::GPU_IO, gpu::CommandBufferId::FromUnsafeValue(1), 1); } - bool exported = resource_pool_->PrepareForExport(resource); + bool exported = resource_pool_->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTest); DCHECK(exported); draw_info.SetResource(std::move(resource), false, false); draw_info.set_resource_ready_for_draw();
diff --git a/cc/tiles/tile_manager_unittest.cc b/cc/tiles/tile_manager_unittest.cc index 92f08e1..3620d2609 100644 --- a/cc/tiles/tile_manager_unittest.cc +++ b/cc/tiles/tile_manager_unittest.cc
@@ -2317,7 +2317,8 @@ gfx::ColorSpace::CreateSRGB()); resource.set_software_backing(std::make_unique<TestSoftwareBacking>()); - host_impl->resource_pool()->PrepareForExport(resource); + host_impl->resource_pool()->PrepareForExport( + resource, viz::TransferableResource::ResourceSource::kTest); host_impl->resource_pool()->OnContentReplaced(resource, kInvalidatedId); host_impl->resource_pool()->ReleaseResource(std::move(resource));
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 0e46e3d8..4cba17a3 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc
@@ -4711,12 +4711,13 @@ transferable = viz::TransferableResource::MakeGpu( mailbox, texture_target, sync_token, upload_size, format, - overlay_candidate); + overlay_candidate, viz::TransferableResource::ResourceSource::kUI); } else { layer_tree_frame_sink_->DidAllocateSharedBitmap(std::move(shm.region), shared_bitmap_id); - transferable = viz::TransferableResource::MakeSoftware(shared_bitmap_id, - upload_size, format); + transferable = viz::TransferableResource::MakeSoftware( + shared_bitmap_id, upload_size, format, + viz::TransferableResource::ResourceSource::kUI); } transferable.color_space = color_space; id = resource_provider_.ImportResource(
diff --git a/chrome/VERSION b/chrome/VERSION index d3928cb..4b1678d5 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=119 MINOR=0 -BUILD=6036 +BUILD=6037 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index 6247fb0..91f3226 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -1694,7 +1694,6 @@ "//components/background_task_scheduler:background_task_scheduler_task_ids_java", "//components/bookmarks/common/android:bookmarks_java", "//components/browser_ui/accessibility/android:lib_java", - "//components/browser_ui/accessibility/android:page_zoom_utils_java", "//components/browser_ui/bottomsheet/android:factory_java", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/bottomsheet/android:manager_java",
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingIntegrationTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingIntegrationTest.java index 12297a7..bab69ae 100644 --- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingIntegrationTest.java +++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingIntegrationTest.java
@@ -237,7 +237,6 @@ @Test @SmallTest - @DisabledTest(message = "https://crbug.com/1466461") public void testSelectingNonPasswordInputDismissesAccessory() throws TimeoutException { mHelper.loadTestPage(false);
diff --git a/chrome/android/java/res/layout/autofill_save_card_bottom_sheet.xml b/chrome/android/java/res/layout/autofill_save_card_bottom_sheet.xml index 10a8ba4..7ce3da5 100644 --- a/chrome/android/java/res/layout/autofill_save_card_bottom_sheet.xml +++ b/chrome/android/java/res/layout/autofill_save_card_bottom_sheet.xml
@@ -108,7 +108,7 @@ <org.chromium.ui.widget.ButtonCompat android:id="@+id/autofill_save_card_confirm_button" - style="@style/FilledButton" + style="@style/FilledButton.Flat" android:layout_width="match_parent" android:layout_height="wrap_content" android:textAlignment="center"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java index c61fac7..c01d9bb0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -1425,13 +1425,8 @@ loadUrlParams.setNavigationUIDataSupplier(navData::createUnownedNativeCopy); } } else { - if (ChromeFeatureList.isEnabled(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS) - || metadata != null && metadata.isRendererInitiated()) { - // Intent is not coming from Chrome, the sender can't be trusted. - // Even if the feature isn't enabled we still need to apply an opaque Origin to - // intents coming from the renderer. https://crbug.com/1368230 - loadUrlParams.setInitiatorOrigin(Origin.createOpaqueOrigin()); - } + // Intent is not coming from Chrome, the sender can't be trusted. + loadUrlParams.setInitiatorOrigin(Origin.createOpaqueOrigin()); } loadUrlParams.setVerbatimHeaders(headers); loadUrlParams.setIsRendererInitiated(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/HiddenTabHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/HiddenTabHolder.java index b5f4482..3f2c77f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/HiddenTabHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/HiddenTabHolder.java
@@ -19,7 +19,6 @@ import org.chromium.base.TraceEvent; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.RedirectHandlerTabHelper; import org.chromium.chrome.browser.tab.Tab; @@ -129,11 +128,9 @@ if (!referrer.isEmpty()) { loadParams.setReferrer(new Referrer(referrer, ReferrerPolicy.DEFAULT)); } - if (ChromeFeatureList.isEnabled(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS)) { - // The sender of an intent can't be trusted, so we navigate from an opaque Origin to - // avoid sending same-site cookies. - loadParams.setInitiatorOrigin(Origin.createOpaqueOrigin()); - } + // The sender of an intent can't be trusted, so we navigate from an opaque Origin to + // avoid sending same-site cookies. + loadParams.setInitiatorOrigin(Origin.createOpaqueOrigin()); loadParams.setTransitionType(PageTransition.LINK | PageTransition.FROM_API); RedirectHandlerTabHelper.getOrCreateHandlerFor(tab).setIsPrefetchLoadForIntent(true);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java index 591ae49d..df675a95 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java
@@ -35,7 +35,6 @@ import org.chromium.chrome.browser.customtabs.CustomTabsConnection; import org.chromium.chrome.browser.dependency_injection.ActivityScope; import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver; @@ -221,11 +220,9 @@ params.setTransitionType(IntentHandler.getTransitionTypeFromIntent( mIntentDataProvider.getIntent(), transition)); - if (ChromeFeatureList.isEnabled(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS)) { - // The sender of an intent can't be trusted, so we navigate from an opaque Origin to - // avoid sending same-site cookies. - params.setInitiatorOrigin(Origin.createOpaqueOrigin()); - } + // The sender of an intent can't be trusted, so we navigate from an opaque Origin to + // avoid sending same-site cookies. + params.setInitiatorOrigin(Origin.createOpaqueOrigin()); tab.loadUrl(params); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java index eb131240..d9f1d100 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -15,6 +15,7 @@ import android.view.View.OnAttachStateChangeListener; import android.view.accessibility.AccessibilityEvent; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; @@ -1406,7 +1407,7 @@ * * @param webContents The WebContents object that will initialize all the browser components. */ - private void initWebContents(WebContents webContents) { + private void initWebContents(@NonNull WebContents webContents) { try { TraceEvent.begin("ChromeTab.initWebContents"); WebContents oldWebContents = mWebContents;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettingsTest.java index 96a69b1..10583a14 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettingsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettingsTest.java
@@ -6,7 +6,6 @@ import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; -import static androidx.test.espresso.assertion.ViewAssertions.matches; import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; @@ -15,19 +14,14 @@ import android.content.Intent; import android.content.IntentFilter; import android.provider.Settings; -import android.view.View; import androidx.preference.Preference; -import androidx.test.espresso.action.ViewActions; import androidx.test.espresso.contrib.RecyclerViewActions; import androidx.test.filters.SmallTest; import androidx.test.platform.app.InstrumentationRegistry; -import org.hamcrest.BaseMatcher; -import org.hamcrest.Description; import org.junit.After; import org.junit.Assert; -import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -36,8 +30,8 @@ import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; import org.chromium.base.test.util.CriteriaHelper; +import org.chromium.base.test.util.DisabledTest; import org.chromium.base.test.util.Feature; -import org.chromium.base.test.util.Features.EnableFeatures; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.settings.SettingsActivityTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @@ -45,16 +39,12 @@ import org.chromium.chrome.test.util.browser.Features.DisableFeatures; import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.accessibility.FontSizePrefs; -import org.chromium.components.browser_ui.accessibility.PageZoomPreference; -import org.chromium.components.browser_ui.accessibility.PageZoomUtils; import org.chromium.components.browser_ui.accessibility.TextScalePreference; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.content_public.browser.test.util.UiUtils; import org.chromium.ui.accessibility.AccessibilityState; -import org.chromium.ui.test.util.ViewUtils; -import org.chromium.ui.widget.ChromeImageButton; import java.text.NumberFormat; @@ -67,27 +57,15 @@ @RunWith(ChromeJUnit4ClassRunner.class) public class AccessibilitySettingsTest { private static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions"; - private AccessibilitySettings mAccessibilitySettings; - private PageZoomPreference mPageZoomPref; @Rule public SettingsActivityTestRule<AccessibilitySettings> mSettingsActivityTestRule = new SettingsActivityTestRule<>(AccessibilitySettings.class); - @Before - public void setUp() { - // Enable screen reader to display all settings options. - TestThreadUtils.runOnUiThreadBlocking( - () -> AccessibilityState.setIsScreenReaderEnabledForTesting(true)); - - mSettingsActivityTestRule.startSettingsActivity(); - mAccessibilitySettings = mSettingsActivityTestRule.getFragment(); - } - @After public void tearDown() { TestThreadUtils.runOnUiThreadBlocking( - () -> AccessibilityState.setIsScreenReaderEnabledForTesting(false)); + () -> { AccessibilityState.setIsScreenReaderEnabledForTesting(false); }); } /** @@ -97,13 +75,16 @@ @Test @SmallTest @Feature({"Accessibility"}) - @DisableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) + @DisableFeatures(ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM) public void testAccessibilitySettings() throws Exception { + mSettingsActivityTestRule.startSettingsActivity(); + AccessibilitySettings accessibilitySettings = mSettingsActivityTestRule.getFragment(); + TextScalePreference textScalePref = - (TextScalePreference) mAccessibilitySettings.findPreference( + (TextScalePreference) accessibilitySettings.findPreference( AccessibilitySettings.PREF_TEXT_SCALE); ChromeSwitchPreference forceEnableZoomPref = - (ChromeSwitchPreference) mAccessibilitySettings.findPreference( + (ChromeSwitchPreference) accessibilitySettings.findPreference( AccessibilitySettings.PREF_FORCE_ENABLE_ZOOM); NumberFormat percentFormat = NumberFormat.getPercentInstance(); // Arbitrary value 0.4f to be larger and smaller than threshold. @@ -112,7 +93,7 @@ float fontBiggerThanThreshold = FontSizePrefs.FORCE_ENABLE_ZOOM_THRESHOLD_MULTIPLIER + 0.4f; // Set the textScaleFactor above the threshold. - userSetTextScale(mAccessibilitySettings, textScalePref, fontBiggerThanThreshold); + userSetTextScale(accessibilitySettings, textScalePref, fontBiggerThanThreshold); UiUtils.settleDownUI(InstrumentationRegistry.getInstrumentation()); // Since above the threshold, this will check the force enable zoom button. Assert.assertEquals( @@ -121,7 +102,7 @@ assertFontSizePrefs(true, fontBiggerThanThreshold); // Set the textScaleFactor below the threshold. - userSetTextScale(mAccessibilitySettings, textScalePref, fontSmallerThanThreshold); + userSetTextScale(accessibilitySettings, textScalePref, fontSmallerThanThreshold); UiUtils.settleDownUI(InstrumentationRegistry.getInstrumentation()); // Since below the threshold and userSetForceEnableZoom is false, this will uncheck // the force enable zoom button. @@ -130,13 +111,13 @@ Assert.assertFalse(forceEnableZoomPref.isChecked()); assertFontSizePrefs(false, fontSmallerThanThreshold); - userSetTextScale(mAccessibilitySettings, textScalePref, fontBiggerThanThreshold); + userSetTextScale(accessibilitySettings, textScalePref, fontBiggerThanThreshold); // Sets onUserSetForceEnableZoom to be true. - userSetForceEnableZoom(mAccessibilitySettings, forceEnableZoomPref, true); + userSetForceEnableZoom(accessibilitySettings, forceEnableZoomPref, true); UiUtils.settleDownUI(InstrumentationRegistry.getInstrumentation()); // Since userSetForceEnableZoom is true, when the text scale is moved below the threshold // ForceEnableZoom should remain checked. - userSetTextScale(mAccessibilitySettings, textScalePref, fontSmallerThanThreshold); + userSetTextScale(accessibilitySettings, textScalePref, fontSmallerThanThreshold); Assert.assertTrue(forceEnableZoomPref.isChecked()); assertFontSizePrefs(true, fontSmallerThanThreshold); } @@ -144,21 +125,24 @@ @Test @SmallTest @Feature({"Accessibility"}) - @DisableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) + @DisableFeatures(ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM) public void testChangedFontPrefSavedOnStop() { + mSettingsActivityTestRule.startSettingsActivity(); + AccessibilitySettings accessibilitySettings = mSettingsActivityTestRule.getFragment(); + TextScalePreference textScalePref = - mAccessibilitySettings.findPreference(AccessibilitySettings.PREF_TEXT_SCALE); + accessibilitySettings.findPreference(AccessibilitySettings.PREF_TEXT_SCALE); // Change text scale a couple of times. - userSetTextScale(mAccessibilitySettings, textScalePref, 0.5f); - userSetTextScale(mAccessibilitySettings, textScalePref, 1.75f); + userSetTextScale(accessibilitySettings, textScalePref, 0.5f); + userSetTextScale(accessibilitySettings, textScalePref, 1.75f); Assert.assertEquals("Histogram should not be recorded yet.", 0, RecordHistogram.getHistogramTotalCountForTesting( FontSizePrefs.FONT_SIZE_CHANGE_HISTOGRAM)); // Simulate activity stopping. - TestThreadUtils.runOnUiThreadBlocking(() -> mAccessibilitySettings.onStop()); + TestThreadUtils.runOnUiThreadBlocking(() -> accessibilitySettings.onStop()); Assert.assertEquals("Histogram should have been recorded once.", 1, RecordHistogram.getHistogramTotalCountForTesting( @@ -171,10 +155,13 @@ @Test @SmallTest @Feature({"Accessibility"}) - @DisableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) + @DisableFeatures(ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM) public void testUnchangedFontPrefNotSavedOnStop() { + mSettingsActivityTestRule.startSettingsActivity(); + AccessibilitySettings accessibilitySettings = mSettingsActivityTestRule.getFragment(); + // Simulate activity stopping. - TestThreadUtils.runOnUiThreadBlocking(() -> mAccessibilitySettings.onStop()); + TestThreadUtils.runOnUiThreadBlocking(() -> accessibilitySettings.onStop()); Assert.assertEquals("Histogram should not have been recorded.", 0, RecordHistogram.getHistogramTotalCountForTesting( FontSizePrefs.FONT_SIZE_CHANGE_HISTOGRAM)); @@ -184,8 +171,11 @@ @SmallTest @Feature({"Accessibility"}) public void testCaptionPreferences() { + mSettingsActivityTestRule.startSettingsActivity(); + AccessibilitySettings accessibilitySettings = mSettingsActivityTestRule.getFragment(); + Preference captionsPref = - mAccessibilitySettings.findPreference(AccessibilitySettings.PREF_CAPTIONS); + accessibilitySettings.findPreference(AccessibilitySettings.PREF_CAPTIONS); Assert.assertNotNull(captionsPref); Assert.assertNotNull(captionsPref.getOnPreferenceClickListener()); @@ -206,10 +196,44 @@ @Test @SmallTest @Feature({"Accessibility"}) - @DisableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) + @DisabledTest(message = "https://crbug.com/1480116") + public void testZoomInfoPreference() { + mSettingsActivityTestRule.startSettingsActivity(); + AccessibilitySettings accessibilitySettings = mSettingsActivityTestRule.getFragment(); + + Preference zoomInfoPref = + accessibilitySettings.findPreference(AccessibilitySettings.PREF_ZOOM_INFO); + Assert.assertNotNull(zoomInfoPref); + Assert.assertNotNull(zoomInfoPref.getOnPreferenceClickListener()); + + Instrumentation.ActivityMonitor monitor = + InstrumentationRegistry.getInstrumentation().addMonitor( + new IntentFilter(), null, false); + + // First scroll to the Zoom preference, then click. + onView(withId(R.id.recycler_view)) + .perform(RecyclerViewActions.scrollTo( + hasDescendant(withText(R.string.zoom_info_preference_title)))); + onView(withText(R.string.zoom_info_preference_title)).perform(click()); + monitor.waitForActivityWithTimeout(CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL); + Assert.assertEquals("Monitor for has not been called", 1, monitor.getHits()); + InstrumentationRegistry.getInstrumentation().removeMonitor(monitor); + } + + @Test + @SmallTest + @Feature({"Accessibility"}) public void testImageDescriptionsPreferences_Enabled() { + // Enable screen reader to display settings option. + TestThreadUtils.runOnUiThreadBlocking( + () -> { AccessibilityState.setIsScreenReaderEnabledForTesting(true); }); + + mSettingsActivityTestRule.startSettingsActivity(); + + AccessibilitySettings accessibilitySettings = mSettingsActivityTestRule.getFragment(); + Preference imageDescriptionsPref = - mAccessibilitySettings.findPreference(PREF_IMAGE_DESCRIPTIONS); + accessibilitySettings.findPreference(PREF_IMAGE_DESCRIPTIONS); Assert.assertNotNull(imageDescriptionsPref); Assert.assertTrue( @@ -232,240 +256,6 @@ InstrumentationRegistry.getInstrumentation().removeMonitor(monitor); } - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_savedZoomLevelsPreference() { - Preference zoomInfoPref = - mAccessibilitySettings.findPreference(AccessibilitySettings.PREF_ZOOM_INFO); - Assert.assertNotNull(zoomInfoPref); - Assert.assertNotNull(zoomInfoPref.getOnPreferenceClickListener()); - - Instrumentation.ActivityMonitor monitor = - InstrumentationRegistry.getInstrumentation().addMonitor( - new IntentFilter(), null, false); - - // First scroll to the "Saved zoom levels" preference, then click. - onView(withId(R.id.recycler_view)) - .perform(RecyclerViewActions.scrollTo( - hasDescendant(withText(R.string.zoom_info_preference_title)))); - onView(withText(R.string.zoom_info_preference_title)).perform(click()); - - // The activity is blocked, so just wait for the ActivityMonitor to capture an Intent. - CriteriaHelper.pollInstrumentationThread(() - -> monitor.getHits() >= 1, - "Clicking 'Saved zoom levels' should open Site Settings page."); - - InstrumentationRegistry.getInstrumentation().removeMonitor(monitor); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @DisableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_hiddenWhenDisabled() { - mPageZoomPref = (PageZoomPreference) mAccessibilitySettings.findPreference( - AccessibilitySettings.PREF_PAGE_ZOOM_DEFAULT_ZOOM); - Assert.assertNotNull(mPageZoomPref); - Assert.assertFalse("Page Zoom default zoom option should not be visible when disabled", - mPageZoomPref.isVisible()); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM}) - public void testPageZoomPreference_visibleWhenEnabled() { - getPageZoomPref(); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures(ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM) - @DisableFeatures(ContentFeatureList.SMART_ZOOM) - public void testPageZoomPreference_smartZoom_hiddenWhenDisabled() { - getPageZoomPref(); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_title), ViewUtils.VIEW_GONE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_summary), ViewUtils.VIEW_GONE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_current_value_text), ViewUtils.VIEW_GONE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_decrease_zoom_button), ViewUtils.VIEW_GONE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_slider), ViewUtils.VIEW_GONE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_increase_zoom_button), ViewUtils.VIEW_GONE); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_smartZoom_visibleWhenEnabled() { - getPageZoomPref(); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_title), ViewUtils.VIEW_VISIBLE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_summary), ViewUtils.VIEW_VISIBLE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_current_value_text), ViewUtils.VIEW_VISIBLE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_decrease_zoom_button), ViewUtils.VIEW_VISIBLE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_slider), ViewUtils.VIEW_VISIBLE); - ViewUtils.waitForViewCheckingState( - withId(R.id.text_size_contrast_increase_zoom_button), ViewUtils.VIEW_VISIBLE); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures(ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM) - @DisableFeatures(ContentFeatureList.SMART_ZOOM) - public void testPageZoomPreference_decreaseButtonUpdatesValue() { - getPageZoomPref(); - - int startingVal = mPageZoomPref.getZoomSliderForTesting().getProgress(); - onView(withId(R.id.page_zoom_decrease_zoom_button)).perform(click()); - Assert.assertTrue(startingVal > mPageZoomPref.getZoomSliderForTesting().getProgress()); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures(ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM) - @DisableFeatures(ContentFeatureList.SMART_ZOOM) - public void testPageZoomPreference_decreaseButtonProperlyDisabled() { - getPageZoomPref(); - TestThreadUtils.runOnUiThreadBlocking(() -> { mPageZoomPref.setZoomValueForTesting(0); }); - onView(withId(R.id.page_zoom_decrease_zoom_button)).check(matches(sDisabled)); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures(ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM) - @DisableFeatures(ContentFeatureList.SMART_ZOOM) - public void testPageZoomPreference_increaseButtonUpdatesValue() { - getPageZoomPref(); - - int startingVal = mPageZoomPref.getZoomSliderForTesting().getProgress(); - onView(withId(R.id.page_zoom_increase_zoom_button)).perform(click()); - Assert.assertTrue(startingVal < mPageZoomPref.getZoomSliderForTesting().getProgress()); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures(ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM) - @DisableFeatures(ContentFeatureList.SMART_ZOOM) - public void testPageZoomPreference_increaseButtonProperlyDisabled() { - getPageZoomPref(); - TestThreadUtils.runOnUiThreadBlocking(() -> { - mPageZoomPref.setZoomValueForTesting(PageZoomUtils.PAGE_ZOOM_MAXIMUM_SEEKBAR_VALUE); - }); - onView(withId(R.id.page_zoom_increase_zoom_button)).check(matches(sDisabled)); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_zoomSliderUpdatesValue() { - getPageZoomPref(); - int startingVal = mPageZoomPref.getZoomSliderForTesting().getProgress(); - onView(withId(R.id.page_zoom_slider)).perform(ViewActions.swipeRight()); - Assert.assertNotEquals(startingVal, mPageZoomPref.getZoomSliderForTesting().getProgress()); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_smartZoom_decreaseButtonUpdatesValue() { - getPageZoomPref(); - - TestThreadUtils.runOnUiThreadBlocking( - () -> { mPageZoomPref.setTextContrastValueForTesting(20); }); - int startingVal = mPageZoomPref.getTextSizeContrastSliderForTesting().getProgress(); - onView(withId(R.id.text_size_contrast_decrease_zoom_button)).perform(click()); - Assert.assertTrue( - startingVal > mPageZoomPref.getTextSizeContrastSliderForTesting().getProgress()); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_smartZoom_decreaseButtonProperlyDisabled() { - getPageZoomPref(); - TestThreadUtils.runOnUiThreadBlocking( - () -> { mPageZoomPref.setTextContrastValueForTesting(0); }); - onView(withId(R.id.text_size_contrast_decrease_zoom_button)).check(matches(sDisabled)); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_smartZoom_increaseButtonUpdatesValue() { - getPageZoomPref(); - - int startingVal = mPageZoomPref.getTextSizeContrastSliderForTesting().getProgress(); - onView(withId(R.id.text_size_contrast_increase_zoom_button)).perform(click()); - Assert.assertTrue( - startingVal < mPageZoomPref.getTextSizeContrastSliderForTesting().getProgress()); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_smartZoom_increaseButtonProperlyDisabled() { - getPageZoomPref(); - TestThreadUtils.runOnUiThreadBlocking(() -> { - mPageZoomPref.setTextContrastValueForTesting( - PageZoomUtils.TEXT_SIZE_CONTRAST_MAX_LEVEL); - }); - onView(withId(R.id.text_size_contrast_increase_zoom_button)).check(matches(sDisabled)); - } - - @Test - @SmallTest - @Feature({"Accessibility"}) - @EnableFeatures({ContentFeatureList.ACCESSIBILITY_PAGE_ZOOM, ContentFeatureList.SMART_ZOOM}) - public void testPageZoomPreference_smartZoom_zoomSliderUpdatesValue() { - getPageZoomPref(); - int startingVal = mPageZoomPref.getTextSizeContrastSliderForTesting().getProgress(); - onView(withId(R.id.text_size_contrast_slider)).perform(ViewActions.swipeRight()); - Assert.assertNotEquals( - startingVal, mPageZoomPref.getTextSizeContrastSliderForTesting().getProgress()); - } - - private static final BaseMatcher<View> sDisabled = new BaseMatcher<View>() { - @Override - public boolean matches(Object o) { - return !((ChromeImageButton) o).isEnabled(); - } - - @Override - public void describeTo(Description description) { - description.appendText("View was enabled, but should have been disabled."); - } - }; - - private void getPageZoomPref() { - mPageZoomPref = (PageZoomPreference) mAccessibilitySettings.findPreference( - AccessibilitySettings.PREF_PAGE_ZOOM_DEFAULT_ZOOM); - Assert.assertNotNull(mPageZoomPref); - Assert.assertTrue( - "Page Zoom pref should be visible when enabled.", mPageZoomPref.isVisible()); - } - private void assertFontSizePrefs( final boolean expectedForceEnableZoom, final float expectedFontScale) { TestThreadUtils.runOnUiThreadBlocking(() -> {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java index 443fc89b..402ff5ab 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java
@@ -2049,7 +2049,7 @@ assertTrue(isTranslucent); } - private void doOpaqueOriginTest(boolean enabled, boolean prefetch) throws Exception { + private void doOpaqueOriginTest(boolean prefetch) throws Exception { TestWebServer webServer = TestWebServer.start(); String url = webServer.setResponse("/ok.html", "<html>ok</html>", null); CustomTabsConnection connection = CustomTabsTestUtils.warmUpAndWait(); @@ -2071,36 +2071,20 @@ mCustomTabActivityTestRule.startCustomTabActivityWithIntent(intent); } String actualHeader = webServer.getLastRequest("/ok.html").headerValue("Sec-Fetch-Site"); - assertEquals(enabled ? "cross-site" : "none", actualHeader); + assertEquals("cross-site", actualHeader); webServer.shutdown(); } @Test @LargeTest - @EnableFeatures(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS) public void testOpaqueOriginFromPrefetch_Enabled() throws Exception { - doOpaqueOriginTest(true, true); + doOpaqueOriginTest(true); } @Test @LargeTest - @DisableFeatures(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS) - public void testOpaqueOriginFromPrefetch_Disabled() throws Exception { - doOpaqueOriginTest(false, true); - } - - @Test - @LargeTest - @EnableFeatures(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS) public void testOpaqueOriginFromIntent_Enabled() throws Exception { - doOpaqueOriginTest(true, false); - } - - @Test - @LargeTest - @DisableFeatures(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS) - public void testOpaqueOriginFromIntent_Disabled() throws Exception { - doOpaqueOriginTest(false, false); + doOpaqueOriginTest(false); } /** Asserts that the Overlay Panel is set to allow or not allow ever hiding the Toolbar. */
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/page_info/PageInfoViewTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/page_info/PageInfoViewTest.java index d7e8160..e14f300 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/page_info/PageInfoViewTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/page_info/PageInfoViewTest.java
@@ -882,7 +882,7 @@ mTestServerRule.getServer().getURLWithHostName("www.example.com", "/")); final CallbackHelper onDidStartNavigationHelper = new CallbackHelper(); - final WebContentsObserver observer = TestThreadUtils.runOnUiThreadBlocking(() -> { + TestThreadUtils.runOnUiThreadBlocking(() -> { return new WebContentsObserver(sActivityTestRule.getWebContents()) { @Override public void didStartNavigationInPrimaryMainFrame( @@ -920,22 +920,6 @@ @Test @MediumTest @Feature({"RenderTest"}) - @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) - public void testShowAdPersonalizationInfoSubPage() throws IOException { - loadUrlAndOpenPageInfo( - mTestServerRule.getServer().getURLWithHostName("example.com", sSimpleHtml)); - onView(withId(PageInfoAdPersonalizationController.ROW_ID)).perform(click()); - onViewWaiting(allOf(withText(R.string.page_info_ad_manage_interests), isDisplayed())); - mRenderTestRule.render(getPageInfoView(), "PageInfo_AdPersonalizationSubPage"); - } - - /** - * Tests ad personalization subpage. - */ - @Test - @MediumTest - @Feature({"RenderTest"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testShowAdPersonalizationInfoSubPageV4() throws IOException { loadUrlAndOpenPageInfo( mTestServerRule.getServer().getURLWithHostName("example.com", sSimpleHtml)); @@ -950,27 +934,6 @@ */ @Test @MediumTest - @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) - public void testOpenAdPersonalizationSettings() throws IOException { - loadUrlAndOpenPageInfo( - mTestServerRule.getServer().getURLWithHostName("example.com", sSimpleHtml)); - onView(withId(PageInfoAdPersonalizationController.ROW_ID)).perform(click()); - onViewWaiting(allOf(withText(R.string.page_info_ad_manage_interests), isDisplayed())) - .perform(click()); - // Check that settings are displayed. - onView(withText(R.string.privacy_sandbox_topic_interests_subtitle)) - .check(matches(isDisplayed())); - // Leave settings view. - onView(withContentDescription("Navigate up")).perform(click()); - onView(withText(R.string.privacy_sandbox_topic_interests_subtitle)).check(doesNotExist()); - } - - /** - * Tests opening ad personalization settings. - */ - @Test - @MediumTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testOpenAdPersonalizationSettingsV4() throws IOException { loadUrlAndOpenPageInfo( mTestServerRule.getServer().getURLWithHostName("example.com", sSimpleHtml));
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsFragmentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsFragmentTest.java index c806b2c..fab8b86 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsFragmentTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsFragmentTest.java
@@ -54,7 +54,6 @@ import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.R; import org.chromium.chrome.test.util.ChromeRenderTestRule; -import org.chromium.chrome.test.util.browser.Features.DisableFeatures; import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.chrome.test.util.browser.signin.SigninTestRule; import org.chromium.components.policy.test.annotations.Policies; @@ -72,8 +71,7 @@ @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) @DoNotBatch(reason = "Child account can leak to other tests in the suite.") public class PrivacySettingsFragmentTest { - // Index of the Privacy Sandbox row entry in the settings list when PRIVACY_SANDBOX_SETTINGS_4 - // is enabled. + // Index of the Privacy Sandbox row entry in the settings list. public static final int PRIVACY_SANDBOX_V4_POS_IDX = 4; // Name of the histogram to record the entry on Privacy Guide via the S&P link-row. public static final String ENTRY_EXIT_HISTOGRAM = "Settings.PrivacyGuide.EntryExit"; @@ -223,20 +221,6 @@ @Test @LargeTest - @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) - public void testPrivacySandboxV3View() throws IOException { - mSettingsActivityTestRule.startSettingsActivity(); - // Scroll down and open Privacy Sandbox page. - scrollToSetting(withText(R.string.prefs_privacy_sandbox)); - onView(withText(R.string.prefs_privacy_sandbox)).perform(click()); - // Verify that the right view is shown depending on feature state. - onView(withText(R.string.privacy_sandbox_ad_personalization_title)) - .check(matches(isDisplayed())); - } - - @Test - @LargeTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testPrivacySandboxV4View() throws IOException { mSettingsActivityTestRule.startSettingsActivity(); // Scroll down and open Privacy Sandbox page. @@ -248,7 +232,6 @@ @Test @LargeTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testPrivacySandboxV4RestrictedWithRestrictedNoticeEnabled() throws IOException { mFakePrivacySandboxBridge.setRestrictedNoticeEnabled(true); mFakePrivacySandboxBridge.setPrivacySandboxRestricted(true); @@ -266,7 +249,6 @@ @Test @LargeTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testPrivacySandboxV4NotRestrictedWithRestrictedNoticeEnabled() throws IOException { mFakePrivacySandboxBridge.setRestrictedNoticeEnabled(true); mFakePrivacySandboxBridge.setPrivacySandboxRestricted(false); @@ -283,22 +265,6 @@ @Test @LargeTest - @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) - public void testPrivacySandboxV3ViewRestricted() throws IOException { - mFakePrivacySandboxBridge.setPrivacySandboxRestricted(true); - mSettingsActivityTestRule.startSettingsActivity(); - PrivacySettings fragment = mSettingsActivityTestRule.getFragment(); - // Scroll down and verify that the Privacy Sandbox is not there. - TestThreadUtils.runOnUiThreadBlocking(() -> { - RecyclerView recyclerView = fragment.getView().findViewById(R.id.recycler_view); - recyclerView.scrollToPosition(recyclerView.getAdapter().getItemCount() - 1); - }); - onView(withText(R.string.prefs_privacy_sandbox)).check(doesNotExist()); - } - - @Test - @LargeTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testPrivacySandboxV4ViewRestricted() throws IOException { mFakePrivacySandboxBridge.setPrivacySandboxRestricted(true); mSettingsActivityTestRule.startSettingsActivity(); @@ -313,7 +279,6 @@ @Test @LargeTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testTrackingProtectionWithSandboxV4() throws IOException { setShowTrackingProtection(true); mSettingsActivityTestRule.startSettingsActivity();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/PermissionInfoTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/PermissionInfoTest.java index 6fdfbba..10d9eb6 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/PermissionInfoTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/PermissionInfoTest.java
@@ -96,7 +96,7 @@ private void setSettingAndExpectValue(@ContentSettingsType int type, String origin, String embedder, @ContentSettingValues int setting, Profile profile, @ContentSettingValues int expectedSetting) { - PermissionInfo info = new PermissionInfo(type, origin, embedder, /*isEmbargoed=*/false); + PermissionInfo info = new PermissionInfo(type, origin, embedder); TestThreadUtils.runOnUiThreadBlocking(() -> info.setContentSetting(profile, setting));
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettingsTest.java index 6fbe84cf..ecb6f518 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettingsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SingleWebsiteSettingsTest.java
@@ -4,18 +4,8 @@ package org.chromium.chrome.browser.site_settings; -import static androidx.test.espresso.Espresso.onView; -import static androidx.test.espresso.action.ViewActions.click; -import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist; -import static androidx.test.espresso.assertion.ViewAssertions.matches; -import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; -import static androidx.test.espresso.matcher.ViewMatchers.withText; - import static com.google.common.truth.Truth.assertThat; -import static org.hamcrest.Matchers.containsString; -import static org.junit.Assert.assertEquals; - import android.os.Build; import androidx.test.filters.SmallTest; @@ -36,7 +26,6 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.DisableIf; import org.chromium.chrome.browser.flags.ChromeSwitches; -import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.settings.SettingsActivity; import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate; import org.chromium.chrome.test.ChromeTabbedActivityTestRule; @@ -44,16 +33,15 @@ import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.site_settings.ContentSettingException; +import org.chromium.components.browser_ui.site_settings.PermissionInfo; import org.chromium.components.browser_ui.site_settings.SingleWebsiteSettings; import org.chromium.components.browser_ui.site_settings.SiteSettingsUtil; import org.chromium.components.browser_ui.site_settings.Website; import org.chromium.components.browser_ui.site_settings.WebsiteAddress; -import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; import org.chromium.components.content_settings.ContentSettingValues; import org.chromium.components.content_settings.ContentSettingsType; import org.chromium.components.permissions.PermissionsAndroidFeatureList; import org.chromium.content_public.browser.test.util.TestThreadUtils; -import org.chromium.url.GURL; import java.util.ArrayList; import java.util.List; @@ -153,53 +141,21 @@ @Test @SmallTest @EnableFeatures(PermissionsAndroidFeatureList.PERMISSION_STORAGE_ACCESS) - public void testStorageAccessPermission() { - int type = ContentSettingsType.STORAGE_ACCESS; - GURL example = new GURL("https://example.com"); - GURL embedded2 = new GURL("https://embedded2.com"); - + public void testStorageAccessePermission() { Website website = createWebsiteWithStorageAccessPermission( - "https://[*.]embedded.com", "https://[*.]example.com", ContentSettingValues.ALLOW); - Website website2 = createWebsiteWithStorageAccessPermission( - "https://[*.]embedded2.com", "https://[*.]example.com", ContentSettingValues.BLOCK); + "https://[*.]embedded.com", "https://[*.]example.com"); Website other = createWebsiteWithStorageAccessPermission( - "https://[*.]embedded.com", "https://[*.]foo.com", ContentSettingValues.BLOCK); + "https://[*.]embedded.com", "https://[*.]foo.com"); Website merged = SingleWebsiteSettings.mergePermissionAndStorageInfoForTopLevelOrigin( - WebsiteAddress.create(EXAMPLE_ADDRESS), List.of(website, website2, other)); + WebsiteAddress.create(EXAMPLE_ADDRESS), List.of(website, other)); + assertThat(merged.getEmbeddedPermissionInfos()) + .isEqualTo(website.getEmbeddedPermissionInfos()); - var exceptions = merged.getEmbeddedPermissions().get(type); - assertThat(exceptions.size()).isEqualTo(2); - assertThat(exceptions.get(0).getContentSetting()).isEqualTo(ContentSettingValues.ALLOW); - assertThat(exceptions.get(1).getContentSetting()).isEqualTo(ContentSettingValues.BLOCK); - assertEquals(ContentSettingValues.BLOCK, getStorageAccessSetting(type, embedded2, example)); - - // Open site settings. SettingsActivity activity = SiteSettingsTestUtils.startSingleWebsitePreferences(merged); - onView(withText("embedded.com")).check(matches(isDisplayed())); - - // Toggle the second permission. - onView(withText("embedded2.com")).check(matches(isDisplayed())).perform(click()); - assertEquals(ContentSettingValues.ALLOW, getStorageAccessSetting(type, embedded2, example)); - - // Reset permission. - onView(withText(containsString("reset permissions"))).perform(click()); - onView(withText("Delete & reset")).perform(click()); - onView(withText("Embedded content")).check(doesNotExist()); - assertEquals(ContentSettingValues.ASK, getStorageAccessSetting(type, embedded2, example)); + // TODO(crbug.com/1478113): Test UI when it is implemented. activity.finish(); } - private static int getStorageAccessSetting( - @ContentSettingsType int contentSettingType, GURL primaryUrl, GURL secondaryUrl) { - int[] result = {0}; - TestThreadUtils.runOnUiThreadBlocking(() -> { - result[0] = - WebsitePreferenceBridge.getContentSetting(Profile.getLastUsedRegularProfile(), - contentSettingType, primaryUrl, secondaryUrl); - }); - return result[0]; - } - /** * Helper function for creating a {@link ParameterSet} for {@link SingleWebsiteSettingsParams}. */ @@ -249,7 +205,7 @@ String prefKey = SingleWebsiteSettings.getPreferenceKey(mContentSettingsType); ChromeSwitchPreference switchPref = websitePreferences.findPreference(prefKey); Assert.assertNotNull("Preference cannot be found on screen.", switchPref); - assertEquals("Switch check state is different than test setting.", + Assert.assertEquals("Switch check state is different than test setting.", mContentSettingValue == ContentSettingValues.ALLOW, switchPref.isChecked()); } } @@ -266,16 +222,11 @@ } private static Website createWebsiteWithStorageAccessPermission( - String origin, String embedder, @ContentSettingValues int setting) { + String origin, String embedder) { Website website = new Website(WebsiteAddress.create(origin), WebsiteAddress.create(embedder)); - ContentSettingException info = new ContentSettingException( - ContentSettingsType.STORAGE_ACCESS, origin, embedder, ContentSettingValues.ASK, - /*source=*/"", /*expiration=*/0, /*isEmbargoed=*/false); - // Set setting explicitly to write it to prefs. - TestThreadUtils.runOnUiThreadBlocking( - () -> { info.setContentSetting(Profile.getLastUsedRegularProfile(), setting); }); - website.addEmbeddedPermission(info); + website.addEmbeddedPermissionInfo(new PermissionInfo( + ContentSettingsType.STORAGE_ACCESS, origin, embedder, /*isEmbargoed=*/false)); return website; } }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java index dbe04b0..bdfe9b1 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
@@ -675,7 +675,6 @@ @Test @SmallTest @Feature({"Preferences"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) @DisabledTest(message = "https://crbug.com/1395173") public void testSiteExceptionSiteDataBlocked() throws Exception { setGlobalToggleForCategory(SiteSettingsCategory.Type.SITE_DATA, true); @@ -1113,20 +1112,6 @@ settingsActivity.finish(); } - /** Test that showing the Site Settings menu contains only the "Cookies" row. */ - @Test - @SmallTest - @Feature({"Preferences"}) - @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) - public void testSiteSettingsMenuWithPSS4Disabled() { - final SettingsActivity settingsActivity = SiteSettingsTestUtils.startSiteSettingsMenu(""); - SiteSettings websitePreferences = (SiteSettings) settingsActivity.getMainFragment(); - assertNotNull(websitePreferences.findPreference("cookies")); - assertNull(websitePreferences.findPreference("third_party_cookies")); - assertNull(websitePreferences.findPreference("site_data")); - settingsActivity.finish(); - } - /** * Test that showing the Site Settings menu contains the "Third-party cookies" and "Site data" * rows. @@ -1134,7 +1119,6 @@ @Test @SmallTest @Feature({"Preferences"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testSiteSettingsMenuWithPSS4Enabled() { final SettingsActivity settingsActivity = SiteSettingsTestUtils.startSiteSettingsMenu(""); SiteSettings websitePreferences = (SiteSettings) settingsActivity.getMainFragment(); @@ -1304,7 +1288,6 @@ @Test @SmallTest @Feature({"Preferences"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testOnlyExpectedPreferencesThirdPartyCookies() { testExpectedPreferences(SiteSettingsCategory.Type.THIRD_PARTY_COOKIES, new String[] {"info_text", "tri_state_cookie_toggle", "add_exception"}, @@ -1314,7 +1297,6 @@ @Test @SmallTest @Feature({"Preferences"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testOnlyExpectedPreferencesSiteData() { testExpectedPreferences(SiteSettingsCategory.Type.SITE_DATA, BINARY_TOGGLE_WITH_EXCEPTION_AND_INFO_TEXT, @@ -1324,7 +1306,6 @@ @Test @SmallTest @Feature({"Preferences"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testOnlyExpectedExceptionsSiteData() { createCookieExceptions(); SiteSettingsTestUtils.startSiteSettingsCategory(SiteSettingsCategory.Type.SITE_DATA); @@ -1336,7 +1317,6 @@ @Test @SmallTest @Feature({"Preferences"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testOnlyExpectedExceptionsThirdPartyCookies() { createCookieExceptions(); SiteSettingsTestUtils.startSiteSettingsCategory( @@ -1381,10 +1361,8 @@ @Test @SmallTest @Feature({"Preferences"}) - @EnableFeatures({ChromeFeatureList.PRIVACY_SANDBOX_FPS_UI, - ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4}) - public void - testExpectedCookieButtonsCheckedWhenFPSUiAndPSS4Enabled() { + @EnableFeatures({ChromeFeatureList.PRIVACY_SANDBOX_FPS_UI}) + public void testExpectedCookieButtonsCheckedWhenFPSUiAndPSS4Enabled() { SettingsActivity settingsActivity = SiteSettingsTestUtils.startSiteSettingsCategory( SiteSettingsCategory.Type.THIRD_PARTY_COOKIES); @@ -2297,7 +2275,6 @@ @Test @SmallTest @Feature({"RenderTest"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testRenderSiteDataPage() throws Exception { renderCategoryPage(SiteSettingsCategory.Type.SITE_DATA, "site_settings_site_data_page"); } @@ -2305,7 +2282,6 @@ @Test @SmallTest @Feature({"RenderTest"}) - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_FPS_UI) public void testRenderThirdPartyCookiesPage() throws Exception { renderCategoryPage(SiteSettingsCategory.Type.THIRD_PARTY_COOKIES, @@ -2315,10 +2291,8 @@ @Test @SmallTest @Feature({"RenderTest"}) - @EnableFeatures({ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4, - ChromeFeatureList.PRIVACY_SANDBOX_FPS_UI}) - public void - testRenderThirdPartyCookiesPageWithFPS() throws Exception { + @EnableFeatures({ChromeFeatureList.PRIVACY_SANDBOX_FPS_UI}) + public void testRenderThirdPartyCookiesPageWithFPS() throws Exception { renderCategoryPage(SiteSettingsCategory.Type.THIRD_PARTY_COOKIES, "site_settings_third_party_cookies_page_fps"); } @@ -2326,18 +2300,16 @@ @Test @SmallTest @Feature({"RenderTest"}) - @DisableFeatures({ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4, - ChromeFeatureList.PRIVACY_SANDBOX_FPS_UI}) - public void - testRenderCookiesPage() throws Exception { - renderCategoryPage(SiteSettingsCategory.Type.COOKIES, "site_settings_cookies_page"); + @DisableFeatures({ChromeFeatureList.PRIVACY_SANDBOX_FPS_UI}) + public void testRenderCookiesPageThirdPartyCookiesPageWithoutFPS() throws Exception { + renderCategoryPage(SiteSettingsCategory.Type.THIRD_PARTY_COOKIES, + "site_settings_third_party_cookies_page_without_fps"); } @Test @SmallTest @Feature({"RenderTest"}) @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_FPS_UI) - @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testRenderCookiesPageWithFPS() throws Exception { renderCategoryPage(SiteSettingsCategory.Type.COOKIES, "site_settings_cookies_page_fps"); } @@ -2417,8 +2389,6 @@ public void testCookiesSettingsManagedForURL(String setting) throws Exception { final SettingsActivity settingsActivity = SiteSettingsTestUtils.startSiteSettingsCategory(SiteSettingsCategory.Type.COOKIES); - String managedText = ApplicationProvider.getApplicationContext().getString( - R.string.managed_by_your_organization); SingleCategorySettings websitePreferences = (SingleCategorySettings) settingsActivity.getMainFragment();
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/IntentHandlerRobolectricTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/IntentHandlerRobolectricTest.java index a61817c4..639024a 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/IntentHandlerRobolectricTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/IntentHandlerRobolectricTest.java
@@ -45,14 +45,11 @@ import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; import org.chromium.chrome.browser.customtabs.CustomTabsConnection; import org.chromium.chrome.browser.customtabs.CustomTabsIntentTestUtils; -import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler; -import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler.RequestMetadata; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.AsyncTabCreationParams; import org.chromium.chrome.browser.webapps.WebappLauncherActivity; import org.chromium.chrome.test.util.browser.Features; -import org.chromium.chrome.test.util.browser.Features.DisableFeatures; import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.chrome.test.util.browser.webapps.WebappTestHelper; import org.chromium.components.embedder_support.util.UrlConstants; @@ -211,7 +208,6 @@ @Test @SmallTest - @EnableFeatures(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS) public void testNewIntentInitiator() throws Exception { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(GOOGLE_URL)); @@ -227,24 +223,6 @@ @Test @SmallTest - @DisableFeatures(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS) - public void testNewIntentInitiatorFromRenderer() throws Exception { - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setData(Uri.parse(GOOGLE_URL)); - - LoadUrlParams params = IntentHandler.createLoadUrlParamsForIntent(GOOGLE_URL, intent, 0); - Assert.assertNull(params.getInitiatorOrigin()); - - RequestMetadata metadata = new RequestMetadata(true, true); - IntentWithRequestMetadataHandler.getInstance().onNewIntentWithRequestMetadata( - intent, metadata); - - params = IntentHandler.createLoadUrlParamsForIntent(GOOGLE_URL, intent, 0); - Assert.assertTrue(params.getInitiatorOrigin().isOpaque()); - } - - @Test - @SmallTest @Feature({"Android-AppBase"}) public void testAcceptedUrls() { processUrls(ACCEPTED_NON_HTTP_AND_HTTPS_URLS, true);
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityUrlLoadingTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityUrlLoadingTest.java index 22dca20f..ce1a4c2 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityUrlLoadingTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityUrlLoadingTest.java
@@ -43,7 +43,6 @@ import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.test.util.browser.Features; import org.chromium.chrome.test.util.browser.Features.DisableFeatures; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.components.embedder_support.util.UrlUtilitiesJni; import org.chromium.content_public.browser.LoadUrlParams; @@ -57,7 +56,6 @@ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE, shadows = {CustomTabActivityUrlLoadingTest.ShadowOrigin.class}) @DisableFeatures(ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS) -@EnableFeatures(ChromeFeatureList.OPAQUE_ORIGIN_FOR_INCOMING_INTENTS) public class CustomTabActivityUrlLoadingTest { public static final String PASSWORD_CHANGE_USERNAME = "Peter";
diff --git a/chrome/app/app_management_strings.grdp b/chrome/app/app_management_strings.grdp index f2cae8f..71879b9 100644 --- a/chrome/app/app_management_strings.grdp +++ b/chrome/app/app_management_strings.grdp
@@ -213,8 +213,8 @@ Permissions that you allow for <ph name="APP_NAME">$1<ex>Citrix</ex></ph> will also be allowed for its installed and streamed apps. </message> - <message name="IDS_APP_MANAGEMENT_SUB_APP_PERMISSION_EXPLANATION" desc="Explanation text that appears underneath the Permission header on an app's settings page. Any changes the user makes to the app's parent app's permissions also apply to this app."> - Permissions that you allow for <ph name="APP_NAME">$1<ex>Citrix</ex></ph> will also be allowed for this app. + <message name="IDS_APP_MANAGEMENT_SUB_APP_PERMISSION_EXPLANATION" desc="Explanation text that appears underneath the Permission header on an app's settings page. Any changes the user makes to the app's parent app's permissions also apply to this app. The 'Manage' link takes the user to the parent app's settings page where they can change the permissions."> + Permissions that you allow for <ph name="APP_NAME">$1<ex>Citrix</ex></ph> will also be allowed for this app. <ph name="BEGIN_LINK"><a href="#"></ph>Manage<ph name="END_LINK"></a></ph> </message> </grit-part>
diff --git a/chrome/app/app_management_strings_grdp/IDS_APP_MANAGEMENT_SUB_APP_PERMISSION_EXPLANATION.png.sha1 b/chrome/app/app_management_strings_grdp/IDS_APP_MANAGEMENT_SUB_APP_PERMISSION_EXPLANATION.png.sha1 index 1ce8781f..46e41d46 100644 --- a/chrome/app/app_management_strings_grdp/IDS_APP_MANAGEMENT_SUB_APP_PERMISSION_EXPLANATION.png.sha1 +++ b/chrome/app/app_management_strings_grdp/IDS_APP_MANAGEMENT_SUB_APP_PERMISSION_EXPLANATION.png.sha1
@@ -1 +1 @@ -b911cd475a124ce23845f0cfba84f018ed6231f5 \ No newline at end of file +49a37941cd86e918e81f03aba9ef3b7b0bf81905 \ No newline at end of file
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index 4d875e8..e3aa957 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> onthou hoe jy aangemeld het en meld jou outomaties aan indien dit moontlik is. Indien dit afgeskakel is, sal jy elke keer vir bevestiging gevra word.</translation> <translation id="1008544602823861396">is geblokkeer om jou inligting te gebruik op</translation> <translation id="1008557486741366299">Nie nou nie</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Om jou data te beskerm, is toestemmings verwyder van ’n werf wat jy 2 maande laas besoek het}other{Om jou data te beskerm, is toestemmings verwyder van werwe wat jy 2 maande laas besoek het}}</translation> <translation id="1009663062402466586">Speletjiekontroles nou beskikbaar</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Bladsy reageer nie}other{Bladsye reageer nie}}</translation> <translation id="1011003645819296594">Gestoorde toestelle</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopieer skakeladres</translation> <translation id="1085064499066015002">Altyd op alle werwe</translation> <translation id="1085697365578766383">Kon nie die virtuele masjien begin nie. Probeer asseblief weer.</translation> -<translation id="1087965115100412394">Moenie werwe toelaat om aan MIDI-toestelle te koppel nie</translation> <translation id="1088659085457112967">Gaan by lesermodus in</translation> <translation id="1090126737595388931">Geen agtergrondprogramme wat loop nie</translation> <translation id="1090541560108055381">Voordat jy saambind, moet jy seker maak dat hierdie kode dieselfde is op albei toestelle</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">Maak oortjie toe</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Word uitgevee wanneer jy uitgaan</translation> -<translation id="3553487194781590058">Moenie werwe toelaat om ’n prent-in-prent-venster oop te maak wanneer jy na ’n ander oortjie verander nie</translation> <translation id="3554493885489666172">Jou toestel word bestuur deur <ph name="PROFILE_NAME" />. Administrateurs het toegang tot die data in enige profiel op hierdie toestel.</translation> <translation id="3555812735919707620">Verwyder uitbreiding</translation> <translation id="3557101512409028104">Stel webwerfbeperkings en skermtydlimiete met Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Verduideliking</translation> <translation id="3975565978598857337">Kon nie bediener vir domein kontak nie</translation> <translation id="3976108569178263973">Daar is geen drukkers beskikbaar nie.</translation> -<translation id="3976244126942806443">Werwe koppel gewoonlik aan MIDI-toestelle om musiek te skep en te redigeer</translation> <translation id="397703832102027365">Finaliseer tans …</translation> <translation id="3977145907578671392">Kenmerke op sommige werwe sal dalk nie in Incognitomodus werk nie</translation> <translation id="3977886311744775419">Outomatiese opdaterings laai nie op hierdie netwerktipe af nie, maar jy kan self vir opdaterings kyk.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Stilus se jongste nota op sluitskerm</translation> <translation id="4730888769809690665">Kennisgewings word toegelaat vir <ph name="SITE" /></translation> <translation id="4731306954230393087">Toegelaat om inligting te gebruik wat hulle oor jou gestoor het</translation> -<translation id="473140019006744096">Daar is te min spasie op dié toestel om hierdie opdatering te voltooi. Maak <ph name="NECESSARY_SPACE" /> beskikbaar op jou toestel en probeer weer.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (links)</translation> <translation id="4733793249294335256">Ligging</translation> <translation id="473546211690256853">Hierdie rekening word bestuur deur <ph name="DOMAIN" /></translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">Kenmerke wat kennisgewings nodig het, sal nie werk nie</translation> <translation id="532943162177641444">Tik op die kennisgewing op jou <ph name="PHONE_NAME" /> om die mobiele warmkol op te stel wat deur hierdie toestel gebruik kan word.</translation> <translation id="5329858601952122676">Vee uit</translation> -<translation id="5330592967519769658">Word toegelaat om ’n prent-in-prent-venster oop te maak wanneer jy na ’n ander oortjie verander</translation> <translation id="5331069282670671859">Jy het geen sertifikate in hierdie kategorie nie</translation> <translation id="5331568967879689647">Chrome-bedryfstelsel se stelselprogram</translation> <translation id="5331975486040154427">USB C-toestel (agterste poort aan linkerkant)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">Deur voort te gaan, stem jy in dat hierdie toestel ook outomaties opdaterings en apps van Google, jou kind se diensverskaffer en hierdie toestel se vervaardiger af kan aflaai en installeer – moontlik met gebruik van sellulêre data. Sommige van hierdie apps kan inappaankope aanbied.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN moet minstens 1 karakter wees}other{PIN moet minstens # karakters wees}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> vereis dat jy nou aan wi-fi koppel en 'n opdatering aflaai. Of laai oor 'n beperkte verbinding af (heffings kan geld).</translation> -<translation id="5478520208448702555">Werwe kan dalk ’n prent-in-prent-venster oopmaak wanneer jy na ’n ander oortjie verander</translation> <translation id="5481273127572794904">Mag nie outomaties veelvuldige lêers aflaai nie</translation> <translation id="5481941284378890518">Voeg nabygeleë drukkers by</translation> <translation id="5484181871714116891">Wanneer dit aan is, word toegangsleutels in iCloud Keychain geskep en is dit beskikbaar op jou Apple-toestelle. Wanneer dit af is, word toegangsleutels in jou Chrome-profiel op hierdie toestel geskep.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">Dit neem 'n paar maklike stappe om te installeer Jy sal nog 'n kans kry om te bevestig voordat veranderinge aan jou rekenaar gemaak word.</translation> <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB se mobiele data sal gebruik word om opdatering af te laai. Wil jy voortgaan?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Mag nie aan MIDI-toestelle koppel nie</translation> <translation id="5601833336918638013">Moenie werwe toelaat om Bluetooth-toestelle te soek nie</translation> <translation id="5602586420788540146">Maak in nuwe oortjiegroep oop</translation> <translation id="5605758115928394442">'n Kennisgewing is na jou foon toe gestuur om te bevestig dat dit jy is.</translation> @@ -5853,7 +5845,6 @@ <translation id="5707185214361380026">Kon nie uitbreiding hiervandaan laai nie:</translation> <translation id="5708171344853220004">Microsoft-hoofnaam</translation> <translation id="5709557627224531708">Stel Chrome as jou verstekblaaier</translation> -<translation id="5710122160114032242">Word nie toegelaat om ’n prent-in-prent-venster oop te maak wanneer jy na ’n ander oortjie verander nie</translation> <translation id="5711010025974903573">Diensloglêers</translation> <translation id="5711983031544731014">Kan nie ontsluit nie. Voer jou wagwoord in.</translation> <translation id="5712153969432126546">Werwe publiseer soms PDF's, soos dokumente, kontrakte en vorms</translation> @@ -6615,7 +6606,6 @@ <translation id="6326175484149238433">Verwyder van Chrome af</translation> <translation id="6326855256003666642">Telling van aktiewe aktiwiteite</translation> <translation id="6327785803543103246">Webinstaanbediener-outo-ontdekking</translation> -<translation id="6331818708794917058">Werwe kan vra om aan MIDI-toestelle te koppel</translation> <translation id="6333064448949140209">Lêer sal vir ontfouting na Google gestuur word</translation> <translation id="6333170995003625229">Jou e-posadres of wagwoord kon nie geverifieer word nie. Probeer weer aanmeld.</translation> <translation id="6334267141726449402">Kopieer en stuur hierdie skakel na die gebruiker om die logs te versamel.</translation> @@ -6765,7 +6755,6 @@ <translation id="6458701200018867744">Kon nie oplaai nie (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Gebruik Selection for Find</translation> <translation id="6459799433792303855">Aktiewe venster is na 'n ander vertoonskerm geskuif.</translation> -<translation id="6460566145397380451">Mag aan MIDI-toestelle koppel</translation> <translation id="6460601847208524483">Vind volgende</translation> <translation id="6461170143930046705">Soek tans na netwerke …</translation> <translation id="6463795194797719782">Wysig</translation> @@ -7091,7 +7080,6 @@ <translation id="6735304988756581115">Wys webkoekies en ander werfdata …</translation> <translation id="6736243959894955139">Adres</translation> <translation id="6737663862851963468">Verwyder Kerberos-kaartjie</translation> -<translation id="6737931010859480781">Hierdie app is vooraf op jou toestel geïnstalleer</translation> <translation id="6738180164164974883">Laat toe dat derdepartywebkoekies gestel word</translation> <translation id="6738430949033571771">Verifieer tans rekening …</translation> <translation id="6739923123728562974">Wys werkskermkortpad</translation> @@ -8485,7 +8473,6 @@ <translation id="7853747251428735">Meer nutsgoed</translation> <translation id="7853999103056713222">Gebruik ’n veiliger wagwoord</translation> <translation id="7855678561139483478">Skuif oortjie na nuwe venster</translation> -<translation id="7855729579456690716">Werwe kan ’n prent-in-prent-venster oopmaak wanneer jy na ’n ander oortjie verander</translation> <translation id="7857004848504343806">Jou rekenaar bevat ’n veilige module wat gebruik word om baie kritieke sekuriteitskenmerke in Chrome OS Flex te implementeer. Besoek die Chromebook-hulpsentrum om meer te wete te kom: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Teksvoorstelle</translation> <translation id="7857949311770343000">Is dit die nuwe oortjiebladsy wat jy verwag het?</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 7201595..1acbc8d 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> እንዴት በመለያ እንደገቡ ያስታውሳል እና በሚቻልበት ጊዜ በራስ-ሰር በመለያ ያስገባዎታል። በሚጠፋበት ጊዜ በእያንዳንዱ ጊዜ ማረጋገጫ ይጠየቃሉ።</translation> <translation id="1008544602823861396">በሚከተለው ላይ መረጃዎን ከመጠቀም ታግዷል</translation> <translation id="1008557486741366299">አሁን አይደለም</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{ውሂብዎን ለመጠበቅ ፈቃዶች በ2 ወራት ውስጥ ካልጎበኙት ጣቢያ ተወግደዋል}one{ውሂብዎን ለመጠበቅ ፈቃዶች በ2 ወራት ውስጥ ካልጎበኙት ጣቢያ ተወግደዋል}other{ውሂብዎን ለመጠበቅ ፈቃዶች በ2 ወራት ውስጥ ካልጎበኟቸው ጣቢያዎች ተወግደዋል}}</translation> <translation id="1009663062402466586">የጨዋታ መቆጣጠሪያዎች አሁን ይገኛሉ</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ገፅ ምላሽ አይሰጥም}one{ገጾች ምላሽ አይሰጡም}other{ገጾች ምላሽ አይሰጡም}}</translation> <translation id="1011003645819296594">የተቀመጡ መሣሪያዎች</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">የአገናኝ አድ&ራሻ ቅዳ</translation> <translation id="1085064499066015002">ሁሉም ጣቢያዎችን ሁሌም አብራ</translation> <translation id="1085697365578766383">ምናባዊ ማሽንን ማስጀመር አልተቻለም። እባክዎ እንደገና ይሞክሩ።</translation> -<translation id="1087965115100412394">ጣቢያዎች ከ MIDI መሣሪያዎች ጋር እንዲገናኙ አይፍቀዱ</translation> <translation id="1088659085457112967">ወደ የአንባቢ ሁነታ ግባ</translation> <translation id="1090126737595388931">ምንም የሚያሂዱ የጀርባ መተግበሪያዎች የሉም</translation> <translation id="1090541560108055381">ከማጣመርዎ በፊት ይህ ኮድ በሁለቱም መሣሪያዎች ላይ ተመሳሳይ መሆኑን ያረጋግጡ</translation> @@ -3226,7 +3224,6 @@ <translation id="3551320343578183772">ትር ዝጋ</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">በመውጫ ላይ ጸድቷል</translation> -<translation id="3553487194781590058">እርስዎ ወደ የተለየ ትር ሲለውጡ ጣቢያዎች የስዕል-ላይ-ስዕል መስኮት እንዲከፍቱ አይፍቀዱ</translation> <translation id="3554493885489666172">የእርስዎ መሣሪያ በ<ph name="PROFILE_NAME" /> ነው የሚተዳደረው። አስተዳዳሪዎች በዚህ መሣሪያ ላይ በማንኛውም መገለጫ ውስጥ ያለውን ውሂብ መድረስ ይችላሉ።</translation> <translation id="3555812735919707620">ቅጥያ አስወገድ</translation> <translation id="3557101512409028104">የድር ጣቢያ ገደቦችን እና የማያ ገፅ ጊዜ ገደቦችን በFamily Link ያቀናብሩ</translation> @@ -3785,7 +3782,6 @@ <translation id="3975201861340929143">ገለጻ</translation> <translation id="3975565978598857337">ለማከማቸት አገልጋይን ማግኘት አልተሳካም</translation> <translation id="3976108569178263973">ምንም የሚገኙ አታሚዎች የሉም።</translation> -<translation id="3976244126942806443">ጣቢያዎች ሙዚቃ ለመፍጠር እና ለማርትዕ በአብዛኛው ከMIDI መሣሪያዎች ጋር ይገናኛሉ</translation> <translation id="397703832102027365">በማጠናቀቅ ላይ...</translation> <translation id="3977145907578671392">በአንዳንድ ጣቢያዎች ላይ ያሉ ባህሪያት ማንነትን በማያሳውቅ ውስጥ ላይሰሩ ይችላሉ</translation> <translation id="3977886311744775419">ራስሰር ዝማኔዎች በዚህ ዓይነቱ አውታረ መረብ ላይ አይወርድም ሆኖም ግን በእጅ ዝማኔዎችን መፈለግ ይችላሉ።</translation> @@ -4683,7 +4679,6 @@ <translation id="4730492586225682674">በማያ ገፅ ቁልፍ ላይ የስታይለስ የቅርብ ጊዜ ማስታወሻ</translation> <translation id="4730888769809690665">ማሳወቂያዎች ለ<ph name="SITE" /> ተፈቅደዋል</translation> <translation id="4731306954230393087">ስለ እርስዎ ያስቀመጡትን መረጃ እንዲጠቀም ለሚለው ተፈቅዷል</translation> -<translation id="473140019006744096">ይህን ዝማኔ ለማጠናቀቅ በዚህ መሣሪያ ላይ በቂ ቦታ የለም። በመሣሪያዎ ላይ <ph name="NECESSARY_SPACE" /> ያጽዱ እና እንደገና ይሞክሩ።</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ግራ)</translation> <translation id="4733793249294335256">አካባቢ</translation> <translation id="473546211690256853">ይህ መለያ በ<ph name="DOMAIN" /> ነው የሚተዳደረው</translation> @@ -5385,7 +5380,6 @@ <translation id="5327912693242073631">ማሳወቂያዎች የሚያስፈልጋቸው ባህሪዎች አይሰሩም</translation> <translation id="532943162177641444">ይህ መሣሪያ ሊጠቀሙበት የሚችልበት የተንቀሳቃሽ ስልክ መገናኛ ነጥብ ለማቀናበር በእርስዎ <ph name="PHONE_NAME" /> ላይ ያለውን ማሳወቂያ መታ ያድርጉ።</translation> <translation id="5329858601952122676">&ሠርዝ</translation> -<translation id="5330592967519769658">እርስዎ ወደ የተለየ ትር ሲለውጡ የስዕል-ላይ-ስዕል መስኮት መክፈት ተፈቅዷል</translation> <translation id="5331069282670671859">በዚህ ምድብ ውስጥ የዕውቅና ማረጋገጫዎች የሉዎትም</translation> <translation id="5331568967879689647">የChromeOS ስርዓት መተግበሪያ</translation> <translation id="5331975486040154427">USB-C መሣሪያ (የግራ ጎን ኋላ ወደብ)</translation> @@ -5563,7 +5557,6 @@ <translation id="5473099001878321374">በመቀጠልዎ ይህ መሣሪያ እንዲሁም ዝማኔዎችን እና መተግበሪያዎችን ከGoogle፣ ከልጅዎ አገልግሎት አቅራቢ እና ከዚህ መሣሪያ አምራች፣ ምናልባት የተንቀሳቃሽ ውሂብን በመጠቀም፣ በራስ-ሰር ሊያወርድ እና ሊጭን እንደሚችል መስማማትዎን ያረጋግጣሉ። አንዳንድ መተግበሪያዎች የውስጠ-መተግበሪያ ግዢዎችን ሊያቀርቡ ይችላሉ።</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ፒን ቢያንስ አንድ ቁምፊ መሆን አለበት}one{ፒን ቢያንስ # ቁምፊዎች መሆን አለበት}other{ፒን ቢያንስ # ቁምፊዎች መሆን አለበት}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> አሁን ከWi-Fi ጋር እንዲገናኙ እና አንድ ዝማኔ እንዲያወርዱ ይፈልግብዎታል። ወይም ደግሞ ከሚለካ ግንኙነት ያውርዱ (ክፍያዎች ሊከፈልባቸው ይችላል)።</translation> -<translation id="5478520208448702555">እርስዎ ወደ የተለየ ትር ሲለውጡ ጣቢያዎች የስዕል-ላይ-ስዕል መስኮት ሊከፍቱ ይችላሉ</translation> <translation id="5481273127572794904">ብዙ ፋይሎችን በራስ-ሰር ለማውረድ አልተፈቀደም</translation> <translation id="5481941284378890518">አቅራቢያ ያሉ አታሚዎችን አክል</translation> <translation id="5484181871714116891">በሚበራበት ጊዜ የይለፍ ቁልፎች በiCloud Keychain ውስጥ ይፈጠራሉ እና በመላው የApple መሣሪያዎችዎ ላይ ይገኛሉ። በሚጠፋበት ጊዜ የይለፍ ቁልፎች በዚህ መሣሪያ ላይ ባለው የChrome መገለጫዎ ውስጥ ይፈጠራሉ።</translation> @@ -5721,7 +5714,6 @@ <translation id="5600348067066185292">ጭነት ጥቂት ቀላል ደረጃዎችን ይወስዳል። በኮምፒተርዎ ላይ ለውጦች ከመደረጋቸው በፊት ለማረጋገጥ ሌላ ዕድል ይኖርዎታል።</translation> <translation id="5600706100022181951">ዝማኔው ከሞባይል ውሂብ <ph name="UPDATE_SIZE_MB" /> ሜባ በመጠቀም ይወርዳል። መቀጠል ይፈልጋሉ?</translation> <translation id="5601503069213153581">ፒን</translation> -<translation id="5601823921345337195">ከMIDI መሣሪያዎች ጋር እንዲገናኝ አልተፈቀደም</translation> <translation id="5601833336918638013">ጣቢያዎች የብሉቱዝ መሣሪያዎችን እንዲፈልጉ አይፍቀዱ</translation> <translation id="5602586420788540146">በአዲስ ትር ቡድን ውስጥ ይክፈቱ</translation> <translation id="5605758115928394442">እርስዎ መሆንዎን ለማረጋገጥ አንድ ማሳወቂያ ወደ ስልክዎ ተልኳል።</translation> @@ -5843,7 +5835,6 @@ <translation id="5707185214361380026">ቅጥያዎችን ከሚከተለው መጫን አልተቻለም፦</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chromeን እንደ ነባሪ አሳሽዎ አድርገው ያቀናብሩት</translation> -<translation id="5710122160114032242">እርስዎ ወደሌላ ትር ሲለውጡ የስዕል-ላይ-ስዕል መስኮት መክፈት አልተፈቀደም</translation> <translation id="5711010025974903573">የአገልግሎት ምዝግብ ማስታወሻዎች</translation> <translation id="5711983031544731014">ማስከፈት አልተቻለም። የይለፍ ቃልዎን ያስገቡ።</translation> <translation id="5712153969432126546">ጣቢያዎች አንዳንድ ጊዜ እንደ ሰነዶች፣ ውሎች እና ቅጾች ያሉ በPDF ያትማሉ</translation> @@ -6605,7 +6596,6 @@ <translation id="6326175484149238433">ከChrome አስወግድ</translation> <translation id="6326855256003666642">የKeepalive ብዛት</translation> <translation id="6327785803543103246">የድር ተኪ ራስ-ግኝት</translation> -<translation id="6331818708794917058">ጣቢያዎች ከMIDI መሣሪያዎች ጋር ለመገናኘት መጠየቅ ይችላሉ</translation> <translation id="6333064448949140209">ፋይሉ ለመታረም ወደ Google ይላካል</translation> <translation id="6333170995003625229">የእርስዎ ኢሜይል አድራሻ ወይም የይለፍ ቃል መረጋገጥ አልቻለም። እንደገና ለመግባት ይሞክሩ።</translation> <translation id="6334267141726449402">ምዝግብ ማስታወሻዎቹን ለመሰብሰብ ይህን አገናኝ ይቅዱ እና ለተጠቃሚው ይላኩ።</translation> @@ -6755,7 +6745,6 @@ <translation id="6458701200018867744">ዝማኔ አልተሳካም (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)።</translation> <translation id="6459488832681039634">ለማግኘት የተመረጡትን ተጠቀም</translation> <translation id="6459799433792303855">ንቁ መስኮት ወደ ሌላ ማሳያ ተዛውሯል።</translation> -<translation id="6460566145397380451">ከMIDI መሣሪያዎች ጋር እንዲገናኝ ተፈቅዷል</translation> <translation id="6460601847208524483">ቀጣዩን አግኝ</translation> <translation id="6461170143930046705">አውታረ መረብን በመፈለግ ላይ...</translation> <translation id="6463795194797719782">&አርትዕ</translation> @@ -7083,7 +7072,6 @@ <translation id="6735304988756581115">ኩኪዎችንና የሌላ ጣቢያ ውሂብ አሳይ…</translation> <translation id="6736243959894955139">አድራሻ</translation> <translation id="6737663862851963468">የKerberos ቲኬትን ያስወግዱ</translation> -<translation id="6737931010859480781">ይህ መተግበሪያ በእርስዎ መሣሪያ ላይ አስቀድሞ ተጭኗል</translation> <translation id="6738180164164974883">የሦስተኛ ወገን ኩኪዎችን ለማቀናበር ፍቀድ</translation> <translation id="6738430949033571771">የመለያ ትክክለኛነትን በማረጋገጥ ላይ</translation> <translation id="6739923123728562974">የዴስክቶፕ አቋራጭን አሳይ</translation> @@ -8478,7 +8466,6 @@ <translation id="7853747251428735">ተጨማሪ መሣሪያዎ&ች</translation> <translation id="7853999103056713222">ይበልጥ ደህንነቱ የተጠበቀ የይለፍ ቃል ይጠቀሙ</translation> <translation id="7855678561139483478">ትር ወደ አዲስ መስኮት ውሰድ</translation> -<translation id="7855729579456690716">እርስዎ ወደሌላ ትር ሲለውጡ ጣቢያዎች ስዕል-ላይ-ስዕል መስኮት ሊከፍቱ ይችላሉ</translation> <translation id="7857004848504343806">የእርስዎ ኮምፒውተር የደህንነት ሞዱል አለው፣ ይህም በChromeOS Flex ውስጥ ብዙ ወሳኝ የደህንነት ባህሪያትን ለመተግበር ሥራ ላይ ይውላል። የበለጠ ለመረዳት የChromebook እገዛ ማዕከሉን ይጎብኙ፦ https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">የጽሑፍ ጥቆማ አስተያየቶች</translation> <translation id="7857949311770343000">የጠበቁት የአዲስ ትር ገፅ ይሄ ነው?</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index 8b941c31..b0d62454 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">يتذكّر "<ph name="BRAND" />" طريقة تسجيل دخولك ويسجِّل دخولك تلقائيًا إن أمكن ذلك. وعندما يكون متوقفًا، سيُطلَب منك تأكيد البيانات في كل مرّة.</translation> <translation id="1008544602823861396">محظور من استخدام معلوماتك في</translation> <translation id="1008557486741366299">ليس الآن</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{لحماية بياناتك، تمّت إزالة الأذونات من موقع إلكتروني لم تزُره منذ شهرَين.}zero{لحماية بياناتك، تمّت إزالة الأذونات من مواقع إلكترونية لم تزُرها منذ شهرَين.}two{لحماية بياناتك، تمّت إزالة الأذونات من موقعَين إلكترونيَّين لم تزُرهما منذ شهرَين.}few{لحماية بياناتك، تمّت إزالة الأذونات من مواقع إلكترونية لم تزُرها منذ شهرَين.}many{لحماية بياناتك، تمّت إزالة الأذونات من مواقع إلكترونية لم تزُرها منذ شهرَين.}other{لحماية بياناتك، تمّت إزالة الأذونات من مواقع إلكترونية لم تزُرها منذ شهرَين.}}</translation> <translation id="1009663062402466586">عناصر التحكُّم في الألعاب متاحة الآن</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ صفحة واحدة غير مستجيبة}zero{ صفحات غير مستجيبة}two{صفحتان غير مستجيبتين}few{ صفحات غير مستجيبة}many{ صفحة غير مستجيبة}other{ من الصفحات غير مستجيبة}}</translation> <translation id="1011003645819296594">الأجهزة المحفوظة</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">نسخ &عنوان الرّابط</translation> <translation id="1085064499066015002">تفعيل الإضافة دائمًا على جميع المواقع الإلكترونية</translation> <translation id="1085697365578766383">حدث خطأ أثناء بدء تشغيل الآلة الافتراضية. يُرجى إعادة المحاولة.</translation> -<translation id="1087965115100412394">عدم السماح للمواقع الإلكترونية بالاتصال بأجهزة MIDI</translation> <translation id="1088659085457112967">الدخول إلى وضع القارئ</translation> <translation id="1090126737595388931">ليس هناك تطبيقات خلفية قيد التشغيل</translation> <translation id="1090541560108055381">يجب أن يكون الرمز متطابقًا على كلا الجهازين قبل الإقران.</translation> @@ -3221,7 +3219,6 @@ <translation id="3551320343578183772">إغلاق علامة التبويب</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">تم المحو عند الخروج</translation> -<translation id="3553487194781590058">يمنع هذا الخيار المواقع الإلكترونية من فتح النوافذ على وضع "نافذة ضمن النافذة" عند الانتقال إلى علامة تبويب مختلفة.</translation> <translation id="3554493885489666172">تتم إدارة جهازك من قِبل <ph name="PROFILE_NAME" />. يمكن للمشرفين الوصول إلى البيانات في أي ملف شخصي على هذا الجهاز.</translation> <translation id="3555812735919707620">إزالة الإضافة</translation> <translation id="3557101512409028104">ضبط الحدود القصوى المسموح بها للقيود على المواقع الإلكترونية ووقت النظر إلى الشاشة باستخدام Family Link</translation> @@ -3778,7 +3775,6 @@ <translation id="3975201861340929143">الشرح</translation> <translation id="3975565978598857337">تعذّر الاتصال بخادم النطاق</translation> <translation id="3976108569178263973">لا تتوفر أي طابعات.</translation> -<translation id="3976244126942806443">تتصل المواقع الإلكترونية عادةً بأجهزة MIDI لإنشاء الموسيقى وتعديلها.</translation> <translation id="397703832102027365">جارٍ الإنهاء...</translation> <translation id="3977145907578671392">قد لا تعمل ميزات بعض المواقع الإلكترونية في "وضع التصفُّح المتخفي".</translation> <translation id="3977886311744775419">لا يتم تنزيل التحديثات التلقائية على نوع الشبكة هذا، ولكن يمكنك التحقق من التحديثات يدويًا.</translation> @@ -4678,7 +4674,6 @@ <translation id="4730492586225682674">أحدث ملاحظة باستخدام قلم الشاشة في وضع قفل الشاشة</translation> <translation id="4730888769809690665">مسموح للموقع الإلكتروني <ph name="SITE" /> بإرسال إشعارات.</translation> <translation id="4731306954230393087">المواقع الإلكترونية التي يُسمَح لها باستخدام المعلومات التي تم حفظها بشأنك</translation> -<translation id="473140019006744096">المساحة على هذا الجهاز غير كافية لإكمال عملية التحديث. يُرجى توفير مساحة بمقدار <ph name="NECESSARY_SPACE" /> على جهازك وإعادة المحاولة.</translation> <translation id="4733161265940833579">%<ph name="BATTERY_PERCENTAGE" /> (السماعة اليسرى)</translation> <translation id="4733793249294335256">الموقع</translation> <translation id="473546211690256853">تتم إدارة هذا الحساب من خلال <ph name="DOMAIN" /></translation> @@ -5380,7 +5375,6 @@ <translation id="5327912693242073631">لن تعمل الميزات التي تحتاج إلى الإشعارات.</translation> <translation id="532943162177641444">يُرجى نقر الإشعار على جهاز <ph name="PHONE_NAME" /> لإعداد نقطة اتصال الجوّال التي يمكن لهذا الجهاز استخدامها.</translation> <translation id="5329858601952122676">&حذف</translation> -<translation id="5330592967519769658">قائمة المواقع الإلكترونية التي يُسمح لها بفتح النوافذ على وضع "نافذة ضمن النافذة" عند الانتقال إلى علامة تبويب مختلفة</translation> <translation id="5331069282670671859">ليس لديك أي شهادات في هذه الفئة</translation> <translation id="5331568967879689647">تطبيق نظام التشغيل Chrome</translation> <translation id="5331975486040154427">جهاز USB-C (المنفذ الخلفي الأيسر)</translation> @@ -5558,7 +5552,6 @@ <translation id="5473099001878321374">تعني المتابعة أنّك تسمح لهذا الجهاز أيضًا بأن ينزِّل التحديثات والتطبيقات ويثبتها تلقائيًا من Google ومشغِّل شبكة جوّال طفلك والشركة المصنِّعة لهذا الجهاز مع احتمالية استخدام بيانات شبكة الجوّال. قد تتيح بعض هذه التطبيقات عمليات شراء داخل التطبيق.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{يجب ألا يقلّ رقم التعريف الشخصي عن حرف واحد.}zero{يجب ألا يقلّ رقم التعريف الشخصي عن # حرف.}two{يجب ألا يقلّ رقم التعريف الشخصي عن حرفَين.}few{يجب ألا يقلّ رقم التعريف الشخصي عن # أحرف.}many{يجب ألا يقلّ رقم التعريف الشخصي عن # حرفًا.}other{يجب ألا يقلّ رقم التعريف الشخصي عن # حرف.}}</translation> <translation id="5474859849784484111">يتطلّب <ph name="MANAGER" /> الاتصال بشبكة Wi-Fi الآن وتنزيل تحديث أو التنزيل من خلال اتصال يفرض تكلفة استخدام ( قد يتم تحصيل رسوم).</translation> -<translation id="5478520208448702555">قد تفتح المواقع الإلكترونية نافذة على وضع "نافذة ضِمن النافذة" عند الانتقال إلى علامة تبويب مختلفة.</translation> <translation id="5481273127572794904">المواقع الإلكترونية التي لا يُسمح لها بتنزيل الملفات المتعدّدة تلقائيًا</translation> <translation id="5481941284378890518">إضافة طابعات مجاورة</translation> <translation id="5484181871714116891">عندما يكون هذا الخيار مفعَّلاً، يتم إنشاء مفاتيح المرور في iCloud Keychain، وتكون متاحة على جميع أجهزة Apple الخاصة بك. وعندما يكون هذا الخيار غير مفعَّل، يتم إنشاء مفاتيح المرور في ملفك الشخصي على Chrome على هذا الجهاز.</translation> @@ -5716,7 +5709,6 @@ <translation id="5600348067066185292">تتطلب عملية التثبيت اتخاذ بضع خطوات سهلة. وستُتاح لك فرصة أخرى للتأكيد قبل تطبيق التغييرات على الكمبيوتر.</translation> <translation id="5600706100022181951">سيستهلك تنزيل التحديث <ph name="UPDATE_SIZE_MB" /> ميغابايت من بيانات الجوّال. هل ترغب في المتابعة؟</translation> <translation id="5601503069213153581">رقم التعريف الشخصي</translation> -<translation id="5601823921345337195">المواقع الإلكترونية التي لا يُسمح لها بالاتصال بأجهزة MIDI</translation> <translation id="5601833336918638013">عدم السماح للمواقع الإلكترونية بالبحث عن أجهزة تتضمّن بلوتوث</translation> <translation id="5602586420788540146">فتح في مجموعة علامات تبويب جديدة</translation> <translation id="5605758115928394442">تم إرسال إشعار إلى هاتفك لتأكيد هويتك.</translation> @@ -5838,7 +5830,6 @@ <translation id="5707185214361380026">فشل تحميل الإضافة من:</translation> <translation id="5708171344853220004">الاسم الأساسي في Microsoft</translation> <translation id="5709557627224531708">اختيار Chrome كمتصفِّح تلقائي</translation> -<translation id="5710122160114032242">قائمة المواقع الإلكترونية التي لا يُسمح لها بفتح النوافذ على وضع "نافذة ضمن النافذة" عند الانتقال إلى علامة تبويب مختلفة</translation> <translation id="5711010025974903573">سجلات الخدمة</translation> <translation id="5711983031544731014">يتعذر فتح القفل. أدخل كلمة المرور.</translation> <translation id="5712153969432126546">تنشر المواقع الإلكترونية أحيانًا ملفات PDF، مثل مستندات أو عقود أو نماذج.</translation> @@ -6600,7 +6591,6 @@ <translation id="6326175484149238433">إزالة من Chrome</translation> <translation id="6326855256003666642">عدد مرات التحقق من الاتصال</translation> <translation id="6327785803543103246">اكتشاف الخادم الوكيل للويب تلقائيًا</translation> -<translation id="6331818708794917058">السماح للمواقع الإلكترونية بطلب الاتصال بأجهزة MIDI</translation> <translation id="6333064448949140209">سيتم إرسال الملف إلى Google لتصحيح الأخطاء</translation> <translation id="6333170995003625229">تعذّر التحقُّق من عنوان بريدك الإلكتروني أو كلمة مرورك. حاوِل تسجيل الدخول مرة أخرى.</translation> <translation id="6334267141726449402">انسخ هذا الرابط وأرسِله إلى المستخدم لتجميع السجلات.</translation> @@ -6750,7 +6740,6 @@ <translation id="6458701200018867744">تعذَّر التحميل (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">استخدام التحديد للبحث</translation> <translation id="6459799433792303855">تم نقل نافذة نشطة إلى شاشة عرض أخرى.</translation> -<translation id="6460566145397380451">المواقع الإلكترونية التي يُسمح لها بالاتصال بأجهزة MIDI</translation> <translation id="6460601847208524483">البحث عن التالي</translation> <translation id="6461170143930046705">جارٍ البحث عن شبكات...</translation> <translation id="6463795194797719782">ت&عديل</translation> @@ -7084,7 +7073,6 @@ <translation id="6735304988756581115">عرض ملفات تعريف الارتباط وبيانات الموقع الأخرى...</translation> <translation id="6736243959894955139">العنوان</translation> <translation id="6737663862851963468">إزالة تذكرة Kerberos</translation> -<translation id="6737931010859480781">هذا التطبيق مثبَّت مُسبقًا على جهازك.</translation> <translation id="6738180164164974883">السماح بتحديد ملفات تعريف الارتباط التابعة لجهات خارجية</translation> <translation id="6738430949033571771">جارٍ إثبات ملكية الحساب...</translation> <translation id="6739923123728562974">عرض اختصار على سطح المكتب</translation> @@ -8479,7 +8467,6 @@ <translation id="7853747251428735">المزيد من الأد&وات</translation> <translation id="7853999103056713222">استخدام كلمة مرور أكثر أمانًا</translation> <translation id="7855678561139483478">نقل علامة التبويب إلى نافذة جديدة</translation> -<translation id="7855729579456690716">يتيح هذا الخيار للمواقع الإلكترونية إمكانية فتح النوافذ على وضع "نافذة ضمن النافذة" عند الانتقال إلى علامة تبويب مختلفة.</translation> <translation id="7857004848504343806">يحتوي الكمبيوتر على وحدة آمنة يتم استخدامها لتنفيذ العديد من ميزات الأمان المُهمة في نظام التشغيل ChromeOS Flex. ويُمكنك الانتقال إلى مركز مساعدة Chromebook للتعرّف على مزيد من المعلومات: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">اقتراحات نصية</translation> <translation id="7857949311770343000">هل هذه هي صفحة علامة التبويب الجديدة التي كنت تتوقع ظهورها؟</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index ebb2e3c..44eab02 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" />এ আপুনি কিদৰে ছাইন ইন কৰিছিল সেয়া মনত ৰাখে আৰু সম্ভৱ হ’লে আপোনাক স্বয়ংক্ৰিয়ভাৱে ছাইন ইন কৰায়। অফ হৈ থাকিলে, আপোনাক প্ৰতিবাৰে নিশ্চিতকৰণ কৰিবলৈ কোৱা হ’ব।</translation> <translation id="1008544602823861396">ইয়াত আপোনাৰ তথ্য ব্যৱহাৰ কৰাৰ পৰা অৱৰোধ কৰা হৈছে</translation> <translation id="1008557486741366299">এতিয়া নহয়</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{আপোনাৰ ডাটা সুৰক্ষিত কৰিবলৈ, আপুনি ২ মাহ ধৰি এক্সেছ নকৰা এটা ছাইটৰ পৰা অনুমতিসমূহ আঁতৰোৱা হৈছে}one{আপোনাৰ ডাটা সুৰক্ষিত কৰিবলৈ, আপুনি ২ মাহ ধৰি এক্সেছ নকৰা ছাইটসমূহৰ পৰা অনুমতিসমূহ আঁতৰোৱা হৈছে}other{আপোনাৰ ডাটা সুৰক্ষিত কৰিবলৈ, আপুনি ২ মাহ ধৰি এক্সেছ নকৰা ছাইটসমূহৰ পৰা অনুমতিসমূহ আঁতৰোৱা হৈছে}}</translation> <translation id="1009663062402466586">গে’মৰ নিয়ন্ত্ৰণসমূহ এতিয়া উপলব্ধ</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{পৃষ্ঠাটোৱে সঁহাৰি জনোৱা নাই}one{পৃষ্ঠাসমূহে সঁহাৰি জনোৱা নাই}other{পৃষ্ঠাসমূহে সঁহাৰি জনোৱা নাই}}</translation> <translation id="1011003645819296594">ছেভ কৰা ডিভাইচ</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">লিংকৰ ঠি&কনা প্ৰতিলিপি কৰক</translation> <translation id="1085064499066015002">সদায় আটাইবোৰ ছাইটত</translation> <translation id="1085697365578766383">ভাৰ্চুৱেল মেচিন আৰম্ভ কৰাত আসোঁৱাহ হৈছে৷ অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।</translation> -<translation id="1087965115100412394">ছাইটক MIDI ডিভাইচৰ সৈতে সংযোগ কৰাৰ অনুমতি নিদিব</translation> <translation id="1088659085457112967">ৰীডাৰ ম’ডলৈ যাওক</translation> <translation id="1090126737595388931">নেপথ্যত কোনো এপ্ চলি থকা নাই</translation> <translation id="1090541560108055381">পেয়াৰ কৰাৰ পূৰ্বে, দুয়োটা ডিভাইচতে এই ক’ডটো একেই হোৱাটো নিশ্চিত কৰক</translation> @@ -3230,7 +3228,6 @@ <translation id="3551320343578183772">টেব বন্ধ কৰক</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">বাহিৰ হওক-ত মচা হৈছে</translation> -<translation id="3553487194781590058">আপুনি বেলেগ এটা টেবলৈ সলনি কৰাৰ সময়ত ছাইটটোক এখন picture-in-picture ৱিণ্ড’ খুলিবলৈ অনুমতি নিদিব</translation> <translation id="3554493885489666172">আপোনাৰ ডিভাইচটো <ph name="PROFILE_NAME" />এ পৰিচালনা কৰে। প্ৰশাসকে এই ডিভাইচটোত থকা যিকোনো প্ৰ’ফাইলত ডেটা এক্সেছ কৰিব পাৰে।</translation> <translation id="3555812735919707620">এক্সটেনশ্বন আঁতৰাওক</translation> <translation id="3557101512409028104">Family Linkৰ জৰিয়তে ৱেবছাইট সম্পর্কীয় প্ৰতিবন্ধকতা আৰু স্ক্ৰীন সক্ৰিয় হৈ থকাৰ সময় সীমা ছেট কৰক</translation> @@ -3788,7 +3785,6 @@ <translation id="3975201861340929143">ব্যাখ্যা</translation> <translation id="3975565978598857337">ক্ষেত্ৰ বিফল হোৱাৰ বাবে ছার্ভাৰৰ সৈতে যোগাযোগ কৰি থকা হৈছে</translation> <translation id="3976108569178263973">উপলব্ধ কোনো প্ৰিণ্টাৰ নাই।</translation> -<translation id="3976244126942806443">ছাইটসমূহে সচৰাচৰ সংগীত সৃষ্টি আৰু সম্পাদনা কৰাৰ বাবে MIDI ডিভাইচসমূহৰ সৈতে সংযোগ কৰে</translation> <translation id="397703832102027365">সম্পূৰ্ণ কৰি থকা হৈছে...</translation> <translation id="3977145907578671392">ইনক’গনিট’ ম’ডত কিছুমান ছাইটৰ সুবিধাসমূহে কাম নকৰিব পাৰে</translation> <translation id="3977886311744775419">এই প্ৰকাৰৰ নেটৱৰ্কত স্বয়ংক্ৰিয় আপডে’টসমূহ ডাউনল’ড নহয়, কিন্তু আপুনি আপডে’টসমূহ মেনুৱেলী বিচাৰিব পাৰে।</translation> @@ -4689,7 +4685,6 @@ <translation id="4730492586225682674">লক স্ক্ৰীনত ষ্টাইলাছৰ শেহতীয়া টোকা</translation> <translation id="4730888769809690665"><ph name="SITE" />ৰ বাবে জাননীৰ অনুমতি দিয়া হৈছে</translation> <translation id="4731306954230393087">সেইসমূহে আপোনাৰ বিষয়ে ছেভ কৰি ৰখা তথ্য ব্যৱহাৰ কৰাৰ অনুমতি আছে</translation> -<translation id="473140019006744096">এই আপডে’টটো সম্পূৰ্ণ কৰিবলৈ এই ডিভাইচটোত পৰ্যাপ্ত খালী ঠাই নাই। আপোনাৰ ডিভাইচত <ph name="NECESSARY_SPACE" /> খালী কৰক আৰু পুনৰ চেষ্টা কৰক।</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (বাকী আছে)</translation> <translation id="4733793249294335256">অৱস্থান</translation> <translation id="473546211690256853">এই একাউণ্টটো <ph name="DOMAIN" />য়ে পৰিচালনা কৰে</translation> @@ -5391,7 +5386,6 @@ <translation id="5327912693242073631">জাননীৰ প্ৰয়োজন হোৱা সুবিধাসমূহে কাম নকৰিব</translation> <translation id="532943162177641444">এই ডিভাইচটোৱে ব্যৱহাৰ কৰিব পৰা ম’বাইল হটস্পট ছেট আপ কৰিবলৈ আপোনাৰ <ph name="PHONE_NAME" />ত টিপক।</translation> <translation id="5329858601952122676">&মচক</translation> -<translation id="5330592967519769658">আপুনি বেলেগ এটা টেবলৈ সলনি কৰাৰ সময়ত picture-in-picture ৱিণ্ড’ খুলিবলৈ অনুমতি দিয়া হয়</translation> <translation id="5331069282670671859">এই শিতানত আপোনাৰ কোনো প্ৰমাণপত্ৰ নাই</translation> <translation id="5331568967879689647">ChromeOS System এপ্</translation> <translation id="5331975486040154427">USB-C ডিভাইচ (বাওঁফালৰ বেকপর্টত)</translation> @@ -5569,7 +5563,6 @@ <translation id="5473099001878321374">অব্যাহত ৰাখি আপুনি সন্মতি দিয়ে যে এই ডিভাইচটোৱে স্বয়ংক্ৰিয়ভাৱে Google, আপোনাৰ শিশুৰ বাহক আৰু এই ডিভাইচটোৰ নিৰ্মাতাৰ পৰা সম্ভৱতঃ চেলুলাৰ ডেটা ব্যৱহাৰ কৰি আপডে’ট আৰু এপ্ ডাউনল’ড আৰু ইনষ্টল কৰিবও পাৰে। এই এপ্সমূহৰ কিছুমানে এপৰ ভিতৰত ক্ৰয় কৰাৰ সুবিধা আগবঢ়াব পাৰে।</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{পিনত অতি কমেও এটা বৰ্ণ থাকিবই লাগিব}one{পিনত অতি কমেও # টা বৰ্ণ থাকিবই লাগিব}other{পিনত অতি কমেও # টা বৰ্ণ থাকিবই লাগিব}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" />ৰ বাবে আপুনি এতিয়াই এটা ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযোগ কৰিব লাগিব আৰু এটা আপডে’ট ডাউনল’ড কৰিব লাগিব। অথবা, এটা নিৰিখ-নিৰ্দিষ্ট সংযোগৰ পৰা ডাউনল’ড কৰক (মাচুল প্ৰযোজ্য হ’ব পাৰে)।</translation> -<translation id="5478520208448702555">আপুনি বেলেগ এটা টেবলৈ সলনি কৰাৰ সময়ত ছাইটটোৱে হয়তো এখন picture-in-picture ৱিণ্ড’ খুলিব পাৰে</translation> <translation id="5481273127572794904">স্বয়ংক্ৰিয়ভাৱে একাধিক ফাইল ডাউনল’ড কৰাৰ অনুমতি নাই</translation> <translation id="5481941284378890518">নিকটৱৰ্তী প্ৰিণ্টাৰ যোগ কৰক</translation> <translation id="5484181871714116891">অন কৰা থাকিলে, পাছকীসমূহ iCloud কীচেইনত সৃষ্টি কৰা হয় আৰু আপোনাৰ সমগ্ৰ Apple ডিভাইচত উপলব্ধ হয়। অফ কৰা থাকিলে পাছকীসমূহ এই ডিভাইচটোত আপোনাৰ Chrome প্ৰ’ফাইলত সৃষ্টি কৰা হয়।</translation> @@ -5727,7 +5720,6 @@ <translation id="5600348067066185292">ইনষ্টল কৰিবলৈ কেইটামান সহজ পদক্ষেপ গ্ৰহণ কৰিব লাগে। আপোনাৰ কম্পিউটাৰত সালসলনি কৰাৰ আগতে নিশ্চিত কৰিবলৈ আপুনি আৰু এটা সুযোগ পাব।</translation> <translation id="5600706100022181951">আপডে’টটো ম’বাইল ডেটাৰ <ph name="UPDATE_SIZE_MB" /> এম.বি. ব্যৱহাৰ কৰি ডাউনল’ড কৰা হ’ব। আপুনি অব্যাহত ৰাখিবলৈ বিচাৰেনে?</translation> <translation id="5601503069213153581">পিন</translation> -<translation id="5601823921345337195">MIDI ডিভাইচৰ সৈতে সংযোগ কৰাৰ অনুমতি নাই</translation> <translation id="5601833336918638013">ছাইটক ব্লুটুথ ডিভাইচ বিচাৰিবলৈ নিদিব</translation> <translation id="5602586420788540146">নতুন টেবৰ গোটত খোলক</translation> <translation id="5605758115928394442">এইগৰাকী আপুনিয়েই হয় বুলি নিশ্চিত কৰিবলৈ আপোনাৰ ফ'নলৈ এটা জাননী পঠিওৱা হৈছে।</translation> @@ -5849,7 +5841,6 @@ <translation id="5707185214361380026">এইটোৰ পৰা এক্সটেনশ্বন ল’ড কৰিব পৰা নগ’ল:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chromeক আপোনাৰ ডিফ'ল্ট ব্ৰাউজাৰ হিচাপে ছেট কৰক</translation> -<translation id="5710122160114032242">আপুনি বেলেগ এটা টেবলৈ সলনি কৰাৰ সময়ত picture-in-picture ৱিণ্ড’ খুলিবলৈ অনুমতি দিয়া নহয়</translation> <translation id="5711010025974903573">সেৱাৰ লগ</translation> <translation id="5711983031544731014">আনলক কৰিব পৰা নগ’ল। আপোনাৰ পাছৱৰ্ড দিয়ক।</translation> <translation id="5712153969432126546">ছাইটে কেতিয়াবা কেতিয়াবা নথি, সম্পৰ্ক আৰু ফৰ্মৰ দৰে PDF প্ৰকাশ কৰে</translation> @@ -6611,7 +6602,6 @@ <translation id="6326175484149238433">Chromeৰ পৰা আঁতৰাওক</translation> <translation id="6326855256003666642">সক্রিয় ৰখাৰ সংখ্যা</translation> <translation id="6327785803543103246">ৱেব প্ৰক্সিৰ স্বয়ংক্রিয় চিনাক্তকৰণ</translation> -<translation id="6331818708794917058">ছাইটসমূহে MIDI ডিভাইচৰ সৈতে সংযোগ কৰিবলৈ বিচাৰিব পাৰে</translation> <translation id="6333064448949140209">ডিবাগ কৰাৰ বাবে Google লৈ ফাইল পঠিওৱা হ’ব</translation> <translation id="6333170995003625229">আপোনাৰ ইমেইল ঠিকনা অথবা পাছৱৰ্ড সত্যাপন কৰিব নোৱাৰি। পুনৰ ছাইন ইন কৰি চাওক।</translation> <translation id="6334267141726449402">লগসমূহ সংগ্ৰহ কৰিবলৈ এই লিংকটোৰ প্ৰতিলিপি কৰক আৰু এইটো ব্যৱহাৰকাৰীলৈ পঠিয়াওক।</translation> @@ -6761,7 +6751,6 @@ <translation id="6458701200018867744">আপল’ড কৰিব পৰা নগ’ল (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)।</translation> <translation id="6459488832681039634">বিচাৰিবলৈ বাছনি কৰাবোৰ ব্যৱহাৰ কৰক</translation> <translation id="6459799433792303855">সক্ৰিয় উইণ্ড’ অন্য ডিছপ্লে’লৈ স্থানান্তৰ কৰা হ’ল।</translation> -<translation id="6460566145397380451">MIDI ডিভাইচৰ সৈতে সংযোগ কৰাৰ অনুমতি আছে</translation> <translation id="6460601847208524483">পৰৱৰ্তী বস্তু বিচাৰক</translation> <translation id="6461170143930046705">নেটৱৰ্কসমূহ বিচাৰি থকা হৈছে...</translation> <translation id="6463795194797719782">&সম্পাদনা কৰক</translation> @@ -7089,7 +7078,6 @@ <translation id="6735304988756581115">কুকি আৰু অন্য ছাইট ডেটা দেখুৱাওক...</translation> <translation id="6736243959894955139">ঠিকনা</translation> <translation id="6737663862851963468">Kerberosৰ টিকেটটো আঁতৰাওক</translation> -<translation id="6737931010859480781">এই এপ্টো আপোনাৰ ডিভাইচত পূৰ্বৰে পৰা ইনষ্টল হৈ আছে</translation> <translation id="6738180164164974883">তৃতীয় পক্ষৰ কুকি ছেট কৰাৰ অনুমতি দিয়ক</translation> <translation id="6738430949033571771">একাউণ্ট সত্যাপন কৰি থকা হৈছে...</translation> <translation id="6739923123728562974">ডেস্কটপ শ্বৰ্টকাট দেখুৱাওক</translation> @@ -8483,7 +8471,6 @@ <translation id="7853747251428735">অধিক সঁজু&লি</translation> <translation id="7853999103056713222">এটা সুৰক্ষিত পাছৱৰ্ড ব্যৱহাৰ কৰক</translation> <translation id="7855678561139483478">টেবটো নতুন ৱিণ্ড’লৈ স্থানান্তৰ কৰক</translation> -<translation id="7855729579456690716">আপুনি বেলেগ এটা টেবলৈ সলনি কৰাৰ সময়ত ছাইটটোৱে এখন picture-in-picture ৱিণ্ড’ খুলিব পাৰে</translation> <translation id="7857004848504343806">আপোনাৰ কম্পিউটাৰটোত এটা সুৰক্ষিত মডিউল আছে যিটোক ChromeOS Flexত বহুতো গুৰুত্বপূৰ্ণ সুৰক্ষা সম্পৰ্কীয় সুবিধা কাৰ্যকৰী কৰিবলৈ ব্যৱহাৰ কৰা হয়। অধিক জানিবলৈ Chromebookৰ সহায় কেন্দ্ৰলৈ যাওক: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">পাঠৰ পৰামৰ্শ</translation> <translation id="7857949311770343000">আপুনি বিচৰা নতুন পৃষ্ঠা এইটো হয়নে?</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 35d274c..810e14d 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> giriş qaydanızı yadda saxlayır və mümkün olduqda sizi avtomatik daxil edir. Deaktiv olduqda hər dəfə təsdiq tələb ediləcək.</translation> <translation id="1008544602823861396">məlumatınızdan istifadə edə bilməz</translation> <translation id="1008557486741366299">İndi yox</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Datanızı qorumaq üçün 2 ay ərzində ziyarət etmədiyiniz saytdan icazələr silindi}other{Datanızı qorumaq üçün 2 ay ərzində ziyarət etmədiyiniz saytlardan icazələr silindi}}</translation> <translation id="1009663062402466586">Oyun nəzarətləri indi əlçatandır</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Səhifə Cavab vermir}other{Səhifələr Cavab vermir}}</translation> <translation id="1011003645819296594">Yadda saxlanmış cihazlar</translation> @@ -120,7 +119,6 @@ <translation id="1084824384139382525">Link ünvanını kopyalayın</translation> <translation id="1085064499066015002">Həmişə bütün saytlarda</translation> <translation id="1085697365578766383">Virtual cihaz işə düşmədi. Sonra yenidən cəhd edin.</translation> -<translation id="1087965115100412394">Saytlara MIDI cihazlarına qoşulmaq icazəsi verməyin</translation> <translation id="1088659085457112967">Oxucu Rejiminə daxil olun</translation> <translation id="1090126737595388931">Axra fonda tətbiq işləmir</translation> <translation id="1090541560108055381">Birləşdirməzdən əvvəl, bu kodun hər iki cihazda eyni olduğuna əmin olun</translation> @@ -3226,7 +3224,6 @@ <translation id="3551320343578183772">Paneli qapadın</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Çıxışda təmizləndi</translation> -<translation id="3553487194781590058">Başqa taba dəyişəndə saytlara şəkildə şəkil pəncərəsi açmaq icazəsi verməyin</translation> <translation id="3554493885489666172">Cihazınız <ph name="PROFILE_NAME" /> tərəfindən idarə olunur. Administratorlar bu cihazda istənilən profildəki dataya giriş edə bilərlər.</translation> <translation id="3555812735919707620">Artırmanı silin</translation> <translation id="3557101512409028104">Family Link ilə veb sayt məhdudiyyətləri və ekran vaxtı limitləri ayarlaya bilərsiniz.</translation> @@ -3785,7 +3782,6 @@ <translation id="3975201861340929143">İzahat</translation> <translation id="3975565978598857337">Sahə üçün serverin qoşulması alınmadı</translation> <translation id="3976108569178263973">Əlçatan printer yoxdur.</translation> -<translation id="3976244126942806443">Saytlar, adətən, musiqi yaratmaq və redaktə etmək üçün MIDI cihazlarına qoşulur</translation> <translation id="397703832102027365">Yekunlaşır...</translation> <translation id="3977145907578671392">Bəzi saytlardakı funksiyalar Anonim rejimdə işləməyə bilər</translation> <translation id="3977886311744775419">Avtomatik güncəlləmələr bu şəbəkə növündə endirilmir, lakin manual olaraq güncəlləmələri yoxlaya bilərsiniz.</translation> @@ -4683,7 +4679,6 @@ <translation id="4730492586225682674">Kilid ekranında ən son stilus qeydi</translation> <translation id="4730888769809690665"><ph name="SITE" /> üçün bildirişlərə icazə verilib</translation> <translation id="4731306954230393087">Haqqınızda yadda saxlanan məlumatdan istifadə icazəsi verilib</translation> -<translation id="473140019006744096">Bu güncəlləməni tamamlamaq üçün bu cihazda kifayət qədər yer yoxdur. Cihazınızda <ph name="NECESSARY_SPACE" /> yer boşaldın və yenidən cəhd edin.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% qalıb</translation> <translation id="4733793249294335256">Məkan</translation> <translation id="473546211690256853">Bu hesab <ph name="DOMAIN" /> tərəfindən idarə olunur</translation> @@ -5385,7 +5380,6 @@ <translation id="5327912693242073631">Bildiriş tələb edən funksiyalar işləməyəcək</translation> <translation id="532943162177641444">Bu cihazın istifadə edə biləcəyi mobil hotspotu quraşdırmaq üçün <ph name="PHONE_NAME" /> telefonunda bildirişə klikləyin.</translation> <translation id="5329858601952122676">&Silin</translation> -<translation id="5330592967519769658">Başqa taba dəyişəndə şəkildə şəkil pəncərəsi açmaq icazəsi verilib</translation> <translation id="5331069282670671859">Bu kateqoriyada sertifikat yoxdur</translation> <translation id="5331568967879689647">ChromeOS Sistem Tətbiqi</translation> <translation id="5331975486040154427">USB-C cihazı (arxa sol port)</translation> @@ -5563,7 +5557,6 @@ <translation id="5473099001878321374">Davam etməklə, bu cihazın mobil data istifadə edərək Google'dan, övladınızın operatorundan və bu cihazın istehsalçısından avtomatik yeniliklər və tətbiqlər endirməsi və quraşdırması ilə razılaşırsınız. Bu tətbiqlərdən bəziləri tətbiqdaxili satınalmalar təklif edə bilər.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN minimum bir simvoldan ibarət olmalıdır}other{PIN minimum # simvoldan ibarət olmalıdır}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> sizdən indi Wi-Fi'a qoşulmağınızı və güncəlləməni endirməyinizi tələb edir. Ya da limitli bağlantı vasitəsilə endirin (ödəmə tutula bilər).</translation> -<translation id="5478520208448702555">Başqa taba dəyişəndə saytlar şəkildə şəkil pəncərəsi aça bilər</translation> <translation id="5481273127572794904">Çoxsaylı faylların avtomatik endirilməsinə icazə verilmədi</translation> <translation id="5481941284378890518">Yaxınlıqdakı Printerləri əlavə edin</translation> <translation id="5484181871714116891">Aktiv olduqda giriş açarları iCloud Keychain-də yaradılır və Apple cihazlarında əlçatan olur. Deaktiv olduqda giriş açarları bu cihazdakı Chrome profilində yaradılır.</translation> @@ -5721,7 +5714,6 @@ <translation id="5600348067066185292">Quraşdırma bir neçə sadə addımdan ibarətdir. Kompüterinizdə dəyişiklik etməzdən əvvəl təsdiqləmək üçün başqa bir şansınız olacaq.</translation> <translation id="5600706100022181951">Güncəlləmə <ph name="UPDATE_SIZE_MB" /> MB mobil data istifadə edərək endiriləcək. Davam etmək istərdiniz?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI cihazlarına qoşulmağa icazə verilməyib</translation> <translation id="5601833336918638013">Saytlara Bluetooth cihazlarını axtarmağa icazə verməyin</translation> <translation id="5602586420788540146">Yeni tab qrupunda açın</translation> <translation id="5605758115928394442">Kimliyinizi doğrulamaq üçün telefona bildiriş göndərildi.</translation> @@ -5843,7 +5835,6 @@ <translation id="5707185214361380026">Artırma formasını yükləmək alınmadı:</translation> <translation id="5708171344853220004">Microsoft İştirakçı Adı</translation> <translation id="5709557627224531708">Chrome'u defolt brauzer kimi quraşdırın</translation> -<translation id="5710122160114032242">Başqa taba dəyişəndə şəkildə şəkil pəncərəsi açmaq icazəsi verilməyib</translation> <translation id="5711010025974903573">Xidmət girişləri</translation> <translation id="5711983031544731014">Kilidi açmaq mümkün olmadı. Şifrənizi daxil edin.</translation> <translation id="5712153969432126546">Saytlar bəzən sənədlər, müqavilələr və formalar kimi PDF-lər yayımlayır</translation> @@ -6604,7 +6595,6 @@ <translation id="6326175484149238433">Chrome'dan silin</translation> <translation id="6326855256003666642">İstifadə Edilən Artırma Sayı</translation> <translation id="6327785803543103246">Veb proksi avtomatik aşkarlama</translation> -<translation id="6331818708794917058">Saytlar MIDI cihazlara qoşulmaq üçün icazə istəyə bilər</translation> <translation id="6333064448949140209">Fayl sazlama üçün Google'a göndəriləcək</translation> <translation id="6333170995003625229">E-poçt ünvanı və ya parolunuzu doğrulamaq mümkün olmadı. Yenidən daxil olmağa cəhd edin.</translation> <translation id="6334267141726449402">Jurnalları toplamaq üçün bu keçidi kopyalayıb, istifadəçiyə göndərin.</translation> @@ -6754,7 +6744,6 @@ <translation id="6458701200018867744">Yükləmək alınmadı (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Tapmaq üçün Seçimi istifadə edin</translation> <translation id="6459799433792303855">Aktiv pəncərə digər ekrana köçürüldü.</translation> -<translation id="6460566145397380451">MIDI cihazlarına qoşulmaq icazəsi verilib</translation> <translation id="6460601847208524483">Növbətini Tapın</translation> <translation id="6461170143930046705">Şəbəkə axtarılır...</translation> <translation id="6463795194797719782">Düzəliş edin</translation> @@ -7081,7 +7070,6 @@ <translation id="6735304988756581115">Kukilər və sayt datasını göstərin</translation> <translation id="6736243959894955139">Ünvan:</translation> <translation id="6737663862851963468">Kerberos biletini silin</translation> -<translation id="6737931010859480781">Bu tətbiq cihazda öncədən quraşdırılıb</translation> <translation id="6738180164164974883">Üçüncü tərəf kukilərini təyin etməyə icazə verin</translation> <translation id="6738430949033571771">Hesab doğrulanır...</translation> <translation id="6739923123728562974">Masaüstü qısayolunu göstərin</translation> @@ -8477,7 +8465,6 @@ <translation id="7853747251428735">Daha çox alətlər</translation> <translation id="7853999103056713222">Təhlükəsiz parol istifadə edin</translation> <translation id="7855678561139483478">Tabı yeni pəncərəyə daşıyın</translation> -<translation id="7855729579456690716">Başqa taba dəyişəndə saytlar şəkildə şəkil pəncərəsi aça bilər</translation> <translation id="7857004848504343806">Kompüter ChromeOS Flex'də bir çox kritik təhlükəsizlik funksiyalarının tətbiqi üçün istifadə olunan təhlükəsizlik modulundan ibarətdir. Ətraflı məlumat üçün Chromebook Yardım Mərkəzinə daxil olun: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Mətn təklifləri</translation> <translation id="7857949311770343000">Gözlədiyiniz yeni tab səhifəsi budur?</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index d950c77..baac2a9 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> запамінае вашы даныя для ўваходу і, калі магчыма, будзе выконваць уваход аўтаматычна. Калі гэтая функцыя выключана, ад вас будзе патрабавацца пацвярджэнне пры кожным уваходзе.</translation> <translation id="1008544602823861396">забаронена выкарыстоўваць інфармацыю пра вас на</translation> <translation id="1008557486741366299">Не зараз</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{У мэтах абароны вашых даных адкліканы дазволы ў сайта, які вы не наведвалі на працягу 2 месяцаў}one{У мэтах абароны вашых даных адкліканы дазволы ў сайтаў, якія вы не наведвалі на працягу 2 месяцаў}few{У мэтах абароны вашых даных адкліканы дазволы ў сайтаў, якія вы не наведвалі на працягу 2 месяцаў}many{У мэтах абароны вашых даных адкліканы дазволы ў сайтаў, якія вы не наведвалі на працягу 2 месяцаў}other{У мэтах абароны вашых даных адкліканы дазволы ў сайтаў, якія вы не наведвалі на працягу 2 месяцаў}}</translation> <translation id="1009663062402466586">Цяпер можна кіраваць гульнёй</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Старонка не адказвае}one{Старонкі не адказваюць}few{Старонкі не адказваюць}many{Старонкі не адказваюць}other{Старонкі не адказваюць}}</translation> <translation id="1011003645819296594">Захаваныя прылады</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Капіраваць &адрас спасылкі</translation> <translation id="1085064499066015002">Заўсёды на ўсіх сайтах</translation> <translation id="1085697365578766383">Памылка падчас запуску віртуальнай машыны. Паўтарыце спробу.</translation> -<translation id="1087965115100412394">Не дазваляць сайтам падключацца да прылад MIDI</translation> <translation id="1088659085457112967">Перайсці ў рэжым чытання</translation> <translation id="1090126737595388931">Няма праграм, якія працуюць у фонавым рэжыме</translation> <translation id="1090541560108055381">Перад спалучэннем упэўніцеся, што гэты код – аднолькавы на абедзвюх прыладах</translation> @@ -3218,7 +3216,6 @@ <translation id="3551320343578183772">Закрыць укладку</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Будзе выдалены пры выхадзе</translation> -<translation id="3553487194781590058">Не дазваляць сайтам адкрываць акно ў рэжыме "відарыс у відарысе", калі вы пераходзіце на іншую ўкладку</translation> <translation id="3554493885489666172">Гэтай прыладай кіруе <ph name="PROFILE_NAME" />. Адміністратары маюць доступ да даных ва ўсіх профілях на гэтай прыладзе.</translation> <translation id="3555812735919707620">Выдаліць пашырэнне</translation> <translation id="3557101512409028104">Наладжвайце доступ да вэб-сайтаў і абмяжоўвайце час карыстання прыладай праз Family Link</translation> @@ -3775,7 +3772,6 @@ <translation id="3975201861340929143">Тлумачэнне</translation> <translation id="3975565978598857337">Памылка сувязі з серверам па ўказанай вобласці</translation> <translation id="3976108569178263973">Няма даступных прынтараў.</translation> -<translation id="3976244126942806443">Сайты звычайна падключаюцца да прылад MIDI для стварэння і манціравання музыкі</translation> <translation id="397703832102027365">Завяршэнне...</translation> <translation id="3977145907578671392">На некаторых сайтах у рэжыме інкогніта можа не працаваць частка функцый</translation> <translation id="3977886311744775419">Сетка гэтага тыпу не падтрымлівае спампоўку аўтаматычных абнаўленняў, але вы можаце праверыць наяўнасць абнаўленняў уручную.</translation> @@ -4675,7 +4671,6 @@ <translation id="4730492586225682674">Апошняя зробленая пяром нататка на экране блакіроўкі</translation> <translation id="4730888769809690665">Сайту <ph name="SITE" /> дазволена адпраўляць апавяшчэнні</translation> <translation id="4731306954230393087">Сайты, якім дазволена выкарыстоўваць захаваную інфармацыю пра вас</translation> -<translation id="473140019006744096">На прыладзе недастаткова месца, каб завяршыць абнаўленне. Вызваліце <ph name="NECESSARY_SPACE" /> і паўтарыце спробу.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (левы)</translation> <translation id="4733793249294335256">Месцазнаходжанне</translation> <translation id="473546211690256853">Гэты ўліковы запіс належыць дамену <ph name="DOMAIN" />.</translation> @@ -5377,7 +5372,6 @@ <translation id="5327912693242073631">Функцыі, для якіх патрэбны апавяшчэнні, не будуць працаваць</translation> <translation id="532943162177641444">Націсніце на апавяшчэнне на тэлефоне <ph name="PHONE_NAME" />, каб наладзіць мабільны хот-спот, які гэта прылада зможа выкарыстоўваць.</translation> <translation id="5329858601952122676">&Выдаліць</translation> -<translation id="5330592967519769658">Сайты, якім дазволена адкрываць акно ў рэжыме "відарыс у відарысе", калі вы пераходзіце на іншую ўкладку</translation> <translation id="5331069282670671859">У вас няма сертыфікатаў у гэтай катэгорыі</translation> <translation id="5331568967879689647">Праграма сістэмы Chrome OS</translation> <translation id="5331975486040154427">Прылада USB-C (задні порт злева)</translation> @@ -5555,7 +5549,6 @@ <translation id="5473099001878321374">Працягваючы, вы згаджаецеся, што гэта прылада таксама можа аўтаматычна спампоўваць і ўсталёўваць абнаўленні і праграмы ад Google, аператара вашага дзіцяці і вытворцы прылады, магчыма, з выкарыстаннем сотавай перадачы даных. Некаторыя з гэтых праграм могуць прапаноўваць куплі ў праграмах.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-код павінен змяшчаць як мінімум 1 сімвал}one{PIN-код павінен змяшчаць як мінімум # сімвал}few{PIN-код павінен змяшчаць як мінімум # сімвалы}many{PIN-код павінен змяшчаць як мінімум # сімвалаў}other{PIN-код павінен змяшчаць як мінімум # сімвала}}</translation> <translation id="5474859849784484111">Выкарыстанне дамена "<ph name="MANAGER" />" патрабуе падключэння да сеткі Wi-Fi і спампоўвання абнаўлення. Вы можаце таксама спампаваць яго праз падключэнне з падлікам трафіка (можа спаганяцца плата).</translation> -<translation id="5478520208448702555">Сайты могуць адкрываць акно ў рэжыме "відарыс у відарысе", калі вы пераходзіце на іншую ўкладку</translation> <translation id="5481273127572794904">Не дазволена аўтаматычна спампоўваць некалькі файлаў</translation> <translation id="5481941284378890518">Дадаць прынтары паблізу</translation> <translation id="5484181871714116891">Калі гэта налада ўключана, ключы доступу ствараюцца ў iCloud Keychain і даступныя на ўсіх вашых прыладах Apple. Калі гэта налада выключана, ключы доступу ствараюцца ў вашым профілі Chrome на гэтай прыладзе.</translation> @@ -5713,7 +5706,6 @@ <translation id="5600348067066185292">Усталяванне складаецца з двух простых крокаў. У вас будзе яшчэ адна магчымасць пацвердзіць змены, перш чым яны будуць унесены ў камп'ютар.</translation> <translation id="5600706100022181951">Для спампоўкі абнаўлення спатрэбіцца <ph name="UPDATE_SIZE_MB" /> МБ мабільнага трафіка. Працягнуць?</translation> <translation id="5601503069213153581">PIN-код</translation> -<translation id="5601823921345337195">Не дазволена падключацца да прылад MIDI</translation> <translation id="5601833336918638013">Сайтам забаронена шукаць прылады з Bluetooth</translation> <translation id="5602586420788540146">Адкрыць у новай групе ўкладак</translation> <translation id="5605758115928394442">Вам на тэлефон для пацвярджэння вашай асобы адпраўлена апавяшчэнне.</translation> @@ -5835,7 +5827,6 @@ <translation id="5707185214361380026">Не ўдалося загрузіць пашырэнне з наступнай крыніцы:</translation> <translation id="5708171344853220004">Галоўнае імя Microsoft</translation> <translation id="5709557627224531708">Зрабіць Chrome стандартным браўзерам</translation> -<translation id="5710122160114032242">Сайты, якім не дазволена адкрываць акно ў рэжыме "відарыс у відарысе", калі вы пераходзіце на іншую ўкладку</translation> <translation id="5711010025974903573">Журналы абслугоўвання</translation> <translation id="5711983031544731014">Не ўдалося разблакіраваць. Увядзіце пароль.</translation> <translation id="5712153969432126546">Часам сайты публікуюць PDF-файлы (напрыклад, дакументы, кантракты і формы)</translation> @@ -6597,7 +6588,6 @@ <translation id="6326175484149238433">Выдаліць з Chrome</translation> <translation id="6326855256003666642">Лік актыўных працэсаў</translation> <translation id="6327785803543103246">Аўтаматычная наладка проксі-сервера</translation> -<translation id="6331818708794917058">Сайты могуць запытваць дазвол на падключэнне да прылад MIDI</translation> <translation id="6333064448949140209">Файл будзе адпраўлены ў Google на адладку</translation> <translation id="6333170995003625229">Адрас электроннай пошты або пароль спраўдзіць не ўдалося. Увайдзіце яшчэ раз.</translation> <translation id="6334267141726449402">Скапіруйце і адпраўце спасылку карыстальніку для збору журналаў.</translation> @@ -6747,7 +6737,6 @@ <translation id="6458701200018867744">Збой запампоўвання (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Выкарыстаць вылучанае для пошуку</translation> <translation id="6459799433792303855">Актыўнае акно перамешчана на іншы дысплэй.</translation> -<translation id="6460566145397380451">Дазволена падключацца да прылад MIDI</translation> <translation id="6460601847208524483">Знайсці далей</translation> <translation id="6461170143930046705">Ідзе пошук сетак...</translation> <translation id="6463795194797719782">&Змяніць</translation> @@ -7079,7 +7068,6 @@ <translation id="6735304988756581115">Паказаць файлы cookie і іншыя даныя сайта...</translation> <translation id="6736243959894955139">Адрас</translation> <translation id="6737663862851963468">Выдаліць білет Kerberos</translation> -<translation id="6737931010859480781">Гэта праграма папярэдне ўсталявана на прыладзе</translation> <translation id="6738180164164974883">Дазволіць усталёўваць староннія файлы cookie</translation> <translation id="6738430949033571771">Ідзе спраўджанне ўліковага запісу...</translation> <translation id="6739923123728562974">Паказваць ярлык на працоўным стале</translation> @@ -8473,7 +8461,6 @@ <translation id="7853747251428735">Іншыя &інструменты</translation> <translation id="7853999103056713222">Выкарыстоўвайце больш бяспечны пароль</translation> <translation id="7855678561139483478">Перамясціць укладку ў новае акно</translation> -<translation id="7855729579456690716">Сайты могуць адкрываць акно ў рэжыме "відарыс у відарысе", калі вы пераходзіце на іншую ўкладку</translation> <translation id="7857004848504343806">У вашым камп'ютары ўсталяваны модуль бяспекі, які выкарыстоўваецца для рэалізацыі многіх крытычна важных функцый бяспекі ў Chrome OS Flex. Каб даведацца больш, адкрыйце Даведачны цэнтр Chromebook: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Тэкставыя прапановы</translation> <translation id="7857949311770343000">Ці з'яўляецца старонка новай укладкі той, якую вы чакалі ўбачыць?</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index 723081a..4df854c 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> помни как сте влезли в профила си и след това автоматично влиза в него, когато е възможно. Ако настройката е изключена, всеки път ще се иска потвърждение от вас.</translation> <translation id="1008544602823861396">не може да използва информацията ви на</translation> <translation id="1008557486741366299">Не сега</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{За да защитим данните ви, премахнахме разрешенията за сайт, който не сте посещавали от 2 месеца}other{За да защитим данните ви, премахнахме разрешенията за сайтовете, които не сте посещавали от 2 месеца}}</translation> <translation id="1009663062402466586">Вече се предлагат контроли за игри</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Блокирала страница}other{Блокирали страници}}</translation> <translation id="1011003645819296594">Запазени устройства</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Копиране на адреса на вр&ъзката</translation> <translation id="1085064499066015002">Винаги на всички сайтове</translation> <translation id="1085697365578766383">Грешка при стартирането на виртуалната машина. Моля, опитайте отново.</translation> -<translation id="1087965115100412394">Да не се разрешава на сайтовете да се свързват с MIDI устройства</translation> <translation id="1088659085457112967">Вход в режим за четене</translation> <translation id="1090126737595388931">Не се изпълняват приложения на заден план</translation> <translation id="1090541560108055381">Преди сдвояването се уверете, че този код е един и същ и на двете устройства</translation> @@ -3228,7 +3226,6 @@ <translation id="3551320343578183772">Затваряне на раздела</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Изчистено при изход</translation> -<translation id="3553487194781590058">Да не се разрешава на сайтовете да отварят прозорец в режим „картина в картината“, когато преминавате към друг раздел</translation> <translation id="3554493885489666172">Устройството ви се управлява от <ph name="PROFILE_NAME" />. Администраторите имат достъп до данните в потребителските профили на това устройство.</translation> <translation id="3555812735919707620">Премахване на разширението</translation> <translation id="3557101512409028104">Задаване на ограничения за уебсайтовете и времето на ползване с Family Link</translation> @@ -3788,7 +3785,6 @@ <translation id="3975201861340929143">Обяснение</translation> <translation id="3975565978598857337">Свързването със сървъра за областта не бе успешно</translation> <translation id="3976108569178263973">Няма принтери.</translation> -<translation id="3976244126942806443">Сайтовете обикновено се свързват с MIDI устройства с цел създаване и редактиране на музика</translation> <translation id="397703832102027365">Довършва се...</translation> <translation id="3977145907578671392">Функциите в някои сайтове може да не работят в режим „инкогнито“</translation> <translation id="3977886311744775419">Автоматичните актуализации не се изтеглят при този тип мрежа, но можете ръчно да проверявате за актуализации.</translation> @@ -4689,7 +4685,6 @@ <translation id="4730492586225682674">Последната бележка, написана с писалка, на заключения екран</translation> <translation id="4730888769809690665">Известията са разрешени за <ph name="SITE" /></translation> <translation id="4731306954230393087">Разрешено е използването на информация, която сайтовете са запазили за вас</translation> -<translation id="473140019006744096">На това устройство няма достатъчно място за завършване на актуализацията. Освободете <ph name="NECESSARY_SPACE" /> и опитайте отново.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (лява)</translation> <translation id="4733793249294335256">Местоположение</translation> <translation id="473546211690256853">Този профил се управлява от <ph name="DOMAIN" /></translation> @@ -5391,7 +5386,6 @@ <translation id="5327912693242073631">Функциите, за които са нужни известия, няма да работят</translation> <translation id="532943162177641444">Докоснете известието на телефона си <ph name="PHONE_NAME" />, за да настроите мобилната точка за достъп, която да може да се използва от това устройство.</translation> <translation id="5329858601952122676">&Изтриване</translation> -<translation id="5330592967519769658">Има разрешение да отваря прозорец в режим „картина в картината“, когато преминавате към друг раздел</translation> <translation id="5331069282670671859">Нямате сертификати от тази категория</translation> <translation id="5331568967879689647">Системно приложение на Chrome OS</translation> <translation id="5331975486040154427">Устройство с USB-C (задният ляв порт)</translation> @@ -5569,7 +5563,6 @@ <translation id="5473099001878321374">С продължаването си приемате, че това устройство може също автоматично да изтегля и инсталира актуализации и приложения от Google, оператора на детето ви и производителя си, при което е възможно да използва мобилни данни. В някои от тези приложения може да се предлагат покупки.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ПИН кодът трябва да е с дължина поне един знак}other{ПИН кодът трябва да е с дължина поне # знака}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> изисква да се свържете с Wi-Fi сега и да изтеглите актуализация. За целта можете да използвате и връзка с отчитане (възможно е да ви бъдат начислени такси).</translation> -<translation id="5478520208448702555">Възможно е сайтовете да отварят прозорец в режим „картина в картината“, когато преминавате към друг раздел</translation> <translation id="5481273127572794904">Сайтове без разрешение за автоматично изтегляне на няколко файла</translation> <translation id="5481941284378890518">Добавяне на принтери в близост</translation> <translation id="5484181871714116891">Когато опцията е включена, ключовете за достъп се създават в iCloud Keychain и са налице на всичките ви устройства от Apple. Когато опцията е изключена, ключовете за достъп се създават в потребителския ви профил в Chrome на това устройство.</translation> @@ -5727,7 +5720,6 @@ <translation id="5600348067066185292">Инсталирането се извършва в няколко лесни стъпки. Ще имате друга възможност да потвърдите, преди да бъдат извършени промени в компютъра ви.</translation> <translation id="5600706100022181951">За изтеглянето на актуализацията ще се използват мобилни данни (<ph name="UPDATE_SIZE_MB" /> МБ). Искате ли да продължите?</translation> <translation id="5601503069213153581">ПИН код</translation> -<translation id="5601823921345337195">Сайтове без разрешение за свързване с MIDI устройства</translation> <translation id="5601833336918638013">Забраняване на сайтовете да търсят устройства с Bluetooth</translation> <translation id="5602586420788540146">Отваряне в нова група раздели</translation> <translation id="5605758115928394442">На телефона ви бе изпратено известие, за да потвърдите, че това сте вие.</translation> @@ -5850,7 +5842,6 @@ <translation id="5707185214361380026">Неуспешно зареждане на разширение от:</translation> <translation id="5708171344853220004">Основно име от Microsoft</translation> <translation id="5709557627224531708">Задаване на Chrome като браузър по подразбиране</translation> -<translation id="5710122160114032242">Няма разрешение да отваря прозорец в режим „картина в картината“, когато преминавате към друг раздел</translation> <translation id="5711010025974903573">Регистрационни файлове за услугата</translation> <translation id="5711983031544731014">Не може да се отключи. Въведете паролата си.</translation> <translation id="5712153969432126546">Сайтовете понякога публикуват PDF файлове, като например документи, договори и формуляри</translation> @@ -6612,7 +6603,6 @@ <translation id="6326175484149238433">Премахване от Chrome</translation> <translation id="6326855256003666642">Брой на активно използващите</translation> <translation id="6327785803543103246">Автоматично откриване на уеб прокси сървъра</translation> -<translation id="6331818708794917058">Сайтовете могат да извеждат запитвания за свързване с MIDI устройства</translation> <translation id="6333064448949140209">Файлът ще бъде изпратен до Google за отстраняване на грешки</translation> <translation id="6333170995003625229">Имейл адресът или паролата ви не бяха потвърдени. Опитайте да влезете отново.</translation> <translation id="6334267141726449402">Копирайте и изпратете тази връзка до потребителя, за да извлече регистрационните файлове.</translation> @@ -6762,7 +6752,6 @@ <translation id="6458701200018867744">Качването не бе успешно (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Използване на избраното за търсене</translation> <translation id="6459799433792303855">Активният прозорец е преместен на друг екран.</translation> -<translation id="6460566145397380451">Сайтове с разрешение за свързване с MIDI устройства</translation> <translation id="6460601847208524483">Търсене на следващото</translation> <translation id="6461170143930046705">Търсят се мрежи...</translation> <translation id="6463795194797719782">&Редактиране</translation> @@ -7088,7 +7077,6 @@ <translation id="6735304988756581115">Показване на „бисквитките“ и другите данни за сайтове...</translation> <translation id="6736243959894955139">Адрес</translation> <translation id="6737663862851963468">Премахване на пропуск за Kerberos</translation> -<translation id="6737931010859480781">Това приложение е предварително инсталирано на устройството ви</translation> <translation id="6738180164164974883">Разрешаване на задаването на „бисквитки“ на трети страни</translation> <translation id="6738430949033571771">Профилът се потвърждава...</translation> <translation id="6739923123728562974">Показване на прекия път на работния плот</translation> @@ -8483,7 +8471,6 @@ <translation id="7853747251428735">Още инструмен&ти</translation> <translation id="7853999103056713222">Използвайте по-надеждна парола</translation> <translation id="7855678561139483478">Преместване на раздела в нов прозорец</translation> -<translation id="7855729579456690716">Сайтовете могат да отварят прозорец в режим „картина в картината“, когато преминавате към друг раздел</translation> <translation id="7857004848504343806">Компютърът ви съдържа модул за сигурност, който служи за реализиране на множество критични защитни функции в ChromeOS Flex. За да научите повече, посетете Помощния център на Chromebook: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Текстови предложения</translation> <translation id="7857949311770343000">Това очакваният от вас нов раздел ли е?</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 62d0df9..24a61d90 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> আপনি কীভাবে সাইন-ইন করলেন তা মনে রাখে এবং যখন সম্ভব তখন আপনাকে অটোমেটিক সাইন-ইন করিয়ে দেয়। বন্ধ থাকাকালীন, প্রত্যেকবার কনফার্ম করার জন্য আপনাকে বলা হবে।</translation> <translation id="1008544602823861396">এতে আপনার তথ্যের ব্যবহার ব্লক করা হয়েছে</translation> <translation id="1008557486741366299">এখনই নয়</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{আপনার ডেটা সুরক্ষিত রাখতে, সাইট থেকে অনুমতি সরিয়ে নেওয়া হয়েছে, যা ২ মাস ধরে দেখেননি}one{আপনার ডেটা সুরক্ষিত রাখতে, সাইট থেকে অনুমতি সরিয়ে নেওয়া হয়েছে, যা ২ মাস ধরে দেখেননি}other{আপনার ডেটা সুরক্ষিত রাখতে, সাইট থেকে অনুমতি সরিয়ে নেওয়া হয়েছে, যা ২ মাস ধরে দেখেননি}}</translation> <translation id="1009663062402466586">গেম কন্ট্রোল এখন উপলভ্য</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{পৃষ্ঠা প্রতিক্রিয়াবিহীন}one{পৃষ্ঠাগুলি প্রতিক্রিয়াবিহীন}other{পৃষ্ঠাগুলি প্রতিক্রিয়াবিহীন}}</translation> <translation id="1011003645819296594">সেভ করা ডিভাইস</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">লিঙ্ক ঠিওকানা কপি করুন</translation> <translation id="1085064499066015002">সব সাইটে সবসময় অ্যাক্সেস পাবে</translation> <translation id="1085697365578766383">ভার্চুয়াল মেশিন চালাতে সমস্যা হচ্ছে। অনুগ্রহ করে আবার চেষ্টা করুন।</translation> -<translation id="1087965115100412394">সাইটগুলিকে MID ডিভাইস কানেক্ট করার অনুমতি দেয় না</translation> <translation id="1088659085457112967">রিডার মোডে যান</translation> <translation id="1090126737595388931">কোনো পৃষ্ঠভূমি অ্যাপ্লিকেশান চলছে না</translation> <translation id="1090541560108055381">পেয়ার করার আগে, এই কোডটি দুটি ডিভাইসে একই আছে কিনা ভাল করে দেখে নিন</translation> @@ -3233,7 +3231,6 @@ <translation id="3551320343578183772">ট্যাব বন্ধ করুন</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">'বেরিয়ে আসুন' থেকে সাফ করা হয়েছে</translation> -<translation id="3553487194781590058">আপনি অন্য কোনও ট্যাবে পরিবর্তন করার সময়ে সাইটকে ছবির-মধ্যে-ছবি উইন্ডো খোলার অনুমতি দেয় না</translation> <translation id="3554493885489666172">আপনার ডিভাইস <ph name="PROFILE_NAME" /> ম্যানেজ করে। এই ডিভাইসের যেকোনও প্রোফাইলের ডেটা অ্যাডমিনিস্ট্রেটর অ্যাক্সেস করতে পারবেন।</translation> <translation id="3555812735919707620">এক্সটেনশন সরান</translation> <translation id="3557101512409028104">Family Link-এর সাহায্যে ওয়েবসাইট অ্যাক্সেস করার ব্যাপারে সীমাবদ্ধতা ও স্ক্রিন টাইমের সীমা সেট করুন</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">ব্যাখ্যা</translation> <translation id="3975565978598857337">রিলমের জন্য সার্ভারের সাথে কানেক্ট করা যায়নি</translation> <translation id="3976108569178263973">কোনও প্রিন্টার উপলভ্য নেই।</translation> -<translation id="3976244126942806443">মিউজিক তৈরি ও এডিট করার জন্য সাইট সাধারণত MIDI ডিভাইসের সাথে কানেক্ট করে</translation> <translation id="397703832102027365">চূড়ান্ত হচ্ছে...</translation> <translation id="3977145907578671392">কিছু সাইটের ফিচার ছদ্মবেশী মোডে কাজ নাও করতে পারে</translation> <translation id="3977886311744775419">এই ধরনের নেটওয়ার্কে অটোমেটিক আপডেট ডাউনলোড হয় না, কিন্তু আপনি নিজে কোনও আপডেট আছে কিনা তা দেখে নিতে পারেন।</translation> @@ -4694,7 +4690,6 @@ <translation id="4730492586225682674">লক স্ক্রিনে স্টাইলাস ব্যবহার করে নেওয়া লেটেস্ট নোট দেখানো</translation> <translation id="4730888769809690665"><ph name="SITE" />-এর জন্য বিজ্ঞপ্তিতে অনুমতি দেওয়া হয়েছে</translation> <translation id="4731306954230393087">আপনার সম্পর্কে যে তথ্য সেভ করেছে সেগুলি ব্যবহার করার অনুমতি দেওয়া হয়েছে</translation> -<translation id="473140019006744096">এই আপডেটটি সম্পূর্ণ করার জন্য এই ডিভাইসে পর্যাপ্ত স্থান নেই। আপনার ডিভাইসে <ph name="NECESSARY_SPACE" /> খালি করুন এবং আবার চেষ্টা করুন।</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (বাঁদিক)</translation> <translation id="4733793249294335256">লোকেশন</translation> <translation id="473546211690256853">এই অ্যাকাউন্টটি <ph name="DOMAIN" /> দ্বারা পরিচালিত</translation> @@ -5396,7 +5391,6 @@ <translation id="5327912693242073631">যেসব ফিচার ব্যবহার করতে বিজ্ঞপ্তি দরকার সেগুলি কাজ করবে না</translation> <translation id="532943162177641444">এই ডিভাইসে ব্যবহার করার জন্য মোবাইল হটস্পট সেট-আপ করতে আপনার <ph name="PHONE_NAME" /> এ বিজ্ঞপ্তিটির উপরে ক্লিক করুন।</translation> <translation id="5329858601952122676">&মুছুন</translation> -<translation id="5330592967519769658">আপনি অন্য কোনও ট্যাবে পরিবর্তন করার সময়ে ছবির-মধ্যে-ছবি উইন্ডো খোলার অনুমতি দেয়</translation> <translation id="5331069282670671859">এই বিভাগে আপনার কোনও শংসাপত্র নেই</translation> <translation id="5331568967879689647">ChromeOS সিস্টেম অ্যাপ</translation> <translation id="5331975486040154427">USB-C ডিভাইস (বাঁ দিকের পিছনের পোর্ট)</translation> @@ -5574,7 +5568,6 @@ <translation id="5473099001878321374">এছাড়াও চালিয়ে যাওয়ার অর্থ আপনি সম্মতি জানাচ্ছেন যে Google, আপনার সন্তানের পরিষেবা প্রদানকারী এবং ডিভাইসের প্রস্তুতকারকের থেকে এই ডিভাইস আপডেট অটোমেটিক ডাউনলোড ও ইনস্টল করতে পারে এবং সেটি করার জন্য খুব সম্ভবত মোবাইল ডেটা ব্যবহার করতে পারে। এর মধ্যে কিছু অ্যাপে অ্যাপ-মধ্যস্থ কেনাকাটা অফার করা হতে পারে।</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{পিন অন্তত একটি অক্ষরের হতে হবে}one{পিন অন্তত # অক্ষরের হতে হবে}other{পিন অন্তত # অক্ষরের হতে হবে}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" />-এর প্রয়োজন অনুযায়ী, আপনাকে এখনই ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করতে হবে এবং একটি আপডেট ডাউনলোড করতে হবে। অথবা, মিটার্ড ইন্টারনেট কানেকশন ব্যবহার করেও ডাউনলোড করতে পারবেন (এর জন্য চার্জ দিতে হতে পারে)।</translation> -<translation id="5478520208448702555">আপনি অন্য কোনও ট্যাবে পরিবর্তন করার সময়ে সাইটগুলি ছবির-মধ্যে-ছবি খুলতে পারে</translation> <translation id="5481273127572794904">একাধিক ফাইল অটোমেটিক ডাউনলোড করার অনুমতি দেওয়া হয়নি</translation> <translation id="5481941284378890518">আশেপাশের প্রিন্টারগুলি যোগ করুন</translation> <translation id="5484181871714116891">চালু হলে, iCloud Keychain-এ পাসকী তৈরি করা হয় এবং আপনার সমস্ত Apple ডিভাইসে উপলভ্য হয়। বন্ধ হলে, এই ডিভাইসে আপনার Chrome প্রোফাইলে পাসকী তৈরি করা হয়।</translation> @@ -5732,7 +5725,6 @@ <translation id="5600348067066185292">ইনস্টলেশনের জন্য কয়েকটি সহজ ধাপ প্রয়োজন। আপনার কম্পিউটারে পরিবর্তন করার আগে আপনি কনফার্ম করার আরও একটি সুযোগ পাবেন।</translation> <translation id="5600706100022181951">আপডেটটি ডাউনলোড করতে <ph name="UPDATE_SIZE_MB" /> এমবি মোবাইল ডেটা খরচ হবে। ডাউনলোড করতে চান?</translation> <translation id="5601503069213153581">পিন</translation> -<translation id="5601823921345337195">MIDI ডিভাইসের সাথে কানেক্ট করার অনুমতি দেওয়া হয়নি</translation> <translation id="5601833336918638013">সাইটকে ব্লুটুথ ডিভাইস খোঁজার জন্য অনুমতি দেবেন না</translation> <translation id="5602586420788540146">নতুন ট্যাব গ্রুপে খুলুন</translation> <translation id="5605758115928394442">এটি যে আপনি তা কনফার্ম করতে আপনার ফোনে একটি বিজ্ঞপ্তি পাঠানো হয়েছে।</translation> @@ -5855,7 +5847,6 @@ <translation id="5707185214361380026">এর থেকে এক্সটেনশন লোড করা যায়নি:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chrome-কে আপনার ডিফল্ট ব্রাউজার হিসেবে সেট করুন</translation> -<translation id="5710122160114032242">আপনি অন্য কোনও ট্যাবে পরিবর্তন করার সময়ে ছবির-মধ্যে-ছবি উইন্ডো খোলার অনুমতি দেয় না</translation> <translation id="5711010025974903573">সার্ভিস লগ</translation> <translation id="5711983031544731014">আনলক করতে অক্ষম৷ আপনার পাসওয়ার্ড লিখুন৷</translation> <translation id="5712153969432126546">সাইট কখনও কখনও পিডিএফ ফাইল প্রকাশ করে, যেমন ডকুমেন্ট, চুক্তিপত্র এবং ফর্ম</translation> @@ -6618,7 +6609,6 @@ <translation id="6326175484149238433">Chrome থেকে সরান</translation> <translation id="6326855256003666642">সক্রিয়-রাখার সংখ্যা</translation> <translation id="6327785803543103246">ওয়েব প্রক্সী স্বতঃআবিষ্কার</translation> -<translation id="6331818708794917058">MIDI ডিভাইসের সাথে কানেক্ট করতে, সাইট অনুমতি চাইতে পারে</translation> <translation id="6333064448949140209">ফাইল ডিবাগ করার জন্য Google-এ পাঠানো হবে</translation> <translation id="6333170995003625229">আপনার ইমেল আইডি বা পাসওয়ার্ড যাচাই করা যায়নি। আবার সাইন-ইন করে দেখুন।</translation> <translation id="6334267141726449402">লগ সংগ্রহ করার জন্য এই লিঙ্ক কপি করে ব্যবহারকারীকে পাঠান।</translation> @@ -6768,7 +6758,6 @@ <translation id="6458701200018867744">আপলোড করা যায়নি (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)।</translation> <translation id="6459488832681039634">খোঁজার জন্য নির্বাচন ব্যবহার করুন</translation> <translation id="6459799433792303855">অন্য ডিসপ্লেতে সক্রিয় উইন্ডোটি সরিয়ে দেওয়া হয়েছে।</translation> -<translation id="6460566145397380451">MIDI ডিভাইসের সাথে কানেক্ট করার অনুমতি দেওয়া হয়েছে</translation> <translation id="6460601847208524483">পরবর্তী খুঁজুন</translation> <translation id="6461170143930046705">নেটওয়ার্ক সার্চ করা হচ্ছে…</translation> <translation id="6463795194797719782">&সম্পাদনা</translation> @@ -7096,7 +7085,6 @@ <translation id="6735304988756581115">কুকিজ এবং অন্য সাইট ডেটা দেখান...</translation> <translation id="6736243959894955139">ঠিকানা</translation> <translation id="6737663862851963468">Kerberos টিকিট সরান</translation> -<translation id="6737931010859480781">আপনার ডিভাইসে এই অ্যাপ আগে থেকে ইনস্টল করা আছে</translation> <translation id="6738180164164974883">থার্ড-পার্টি কুকি সেট করার অনুমতি দিন</translation> <translation id="6738430949033571771">অ্যাকাউন্ট যাচাই করা হচ্ছে...</translation> <translation id="6739923123728562974">ডেস্কটপ শর্টকাট দেখান</translation> @@ -8490,7 +8478,6 @@ <translation id="7853747251428735">আরও সর&ঞ্জাম</translation> <translation id="7853999103056713222">নিরাপদ পাসওয়ার্ড ব্যবহার করুন</translation> <translation id="7855678561139483478">ট্যাবটি নতুন উইন্ডোতে খুলুন</translation> -<translation id="7855729579456690716">আপনি অন্য কোনও ট্যাবে পরিবর্তন করার সময়ে সাইটগুলি ছবির-মধ্যে-ছবি খুলতে পারে</translation> <translation id="7857004848504343806">আপনার কম্পিউটারে একটি নিরাপদ মডিউল আছে, যেটির সাহায্যে ChromeOS Flex-এর বিভিন্ন জটিল নিরাপত্তা ফিচার ব্যবহার করা হয়। আরও জানতে Chromebook সহায়তা কেন্দ্রে যান: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">টেক্সট সংক্রান্ত সাজেশন</translation> <translation id="7857949311770343000">আপনি কি এই পৃষ্ঠাটিকে নতুন ট্যাব পৃষ্ঠা হিসাবে আশা করছিলেন?</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index 80fa783..3b7e07c 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">Usluga <ph name="BRAND" /> pamti kako ste se prijavili i automatski vas prijavljuje kada je moguće. Kada je isključena, svaki put će se tražiti potvrda.</translation> <translation id="1008544602823861396">je blokiran i ne može koristiti informacije o vama na</translation> <translation id="1008557486741366299">Ne sada</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Radi zaštite vaših podataka uklonjena su odobrenja s web lokacije koju niste posjetili 2 mjeseca}one{Radi zaštite vaših podataka uklonjena su odobrenja s web lokacija koju niste posjetili 2 mjeseca}few{Radi zaštite vaših podataka uklonjena su odobrenja s web lokacija koju niste posjetili 2 mjeseca}other{Radi zaštite vaših podataka uklonjena su odobrenja s web lokacija koju niste posjetili 2 mjeseca}}</translation> <translation id="1009663062402466586">Kontrole igre su sada dostupne</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Stranica ne reagira}one{Stranice ne reagiraju}few{Stranice ne reagiraju}other{Stranice ne reagiraju}}</translation> <translation id="1011003645819296594">Sačuvani uređaji</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopiraj adr&esu linka</translation> <translation id="1085064499066015002">Uvijek na svim web lokacijama</translation> <translation id="1085697365578766383">Greška pri pokretanju virtuelne mašine. Pokušajte ponovo.</translation> -<translation id="1087965115100412394">Nemoj dozvoliti web lokacijama povezivanje s MIDI uređajima</translation> <translation id="1088659085457112967">Pokreni način rada za čitanje</translation> <translation id="1090126737595388931">Nema aplikacija koje rade u pozadini</translation> <translation id="1090541560108055381">Prije uparivanja, provjerite je li ovaj kôd prikazan na oba uređaja</translation> @@ -3241,7 +3239,6 @@ <translation id="3551320343578183772">Zatvori karticu</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Obrisano prilikom izlaska</translation> -<translation id="3553487194781590058">Nemojte dozvoliti web lokacijama da otvaraju prozor slike u slici kada pređete na drugu karticu</translation> <translation id="3554493885489666172">Vašim uređajem upravlja <ph name="PROFILE_NAME" />. Administratori mogu pristupiti podacima na bilo kojem profilu na ovom uređaju.</translation> <translation id="3555812735919707620">Ukloni ekstenziju</translation> <translation id="3557101512409028104">Postavite ograničenja pristupa web lokacijama i ograničenja vremena korištenja uređaja s Family Linkom.</translation> @@ -3800,7 +3797,6 @@ <translation id="3975201861340929143">Objašnjenje</translation> <translation id="3975565978598857337">Povezivanje servera za okruženje nije uspjelo</translation> <translation id="3976108569178263973">Nema dostupnih štampača.</translation> -<translation id="3976244126942806443">Web lokacije se obično povezuju s MIDI uređajima radi kreiranja i uređivanja muzike</translation> <translation id="397703832102027365">Završavanje...</translation> <translation id="3977145907578671392">Funkcije na nekim web lokacijama možda neće funkcionirati u anonimnom načinu rada</translation> <translation id="3977886311744775419">Automatska ažuriranja se ne preuzimaju na ovoj vrsti mreže, ali možete ručno provjeriti ima li ažuriranja.</translation> @@ -4701,7 +4697,6 @@ <translation id="4730492586225682674">Najnovija bilješka unesena olovkom na zaključanom ekranu</translation> <translation id="4730888769809690665">Obavještenja su dozvoljena za <ph name="SITE" /></translation> <translation id="4731306954230393087">Smije koristiti informacije o vama koje je sačuvala</translation> -<translation id="473140019006744096">Nema dovoljno prostora na uređaju za završetak ažuriranja. Obrišite <ph name="NECESSARY_SPACE" /> na uređaju i pokušajte ponovo.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (lijevo)</translation> <translation id="4733793249294335256">Lokacija</translation> <translation id="473546211690256853">Ovim računom upravlja <ph name="DOMAIN" /></translation> @@ -5403,7 +5398,6 @@ <translation id="5327912693242073631">Funkcije za koje su potrebna obavještenja neće raditi</translation> <translation id="532943162177641444">Dodirnite obavještenje na telefonu <ph name="PHONE_NAME" /> da postavite mobilnu prijenosnu tačku koju može koristiti ovaj uređaj.</translation> <translation id="5329858601952122676">&Obriši</translation> -<translation id="5330592967519769658">Dozvoljeno je otvaranje prozora slike u slici kada pređete na drugu karticu</translation> <translation id="5331069282670671859">Nemate certifikata u ovoj kategoriji</translation> <translation id="5331568967879689647">Sistemska aplikacija ChromeOS-a</translation> <translation id="5331975486040154427">USB-C uređaj (lijevi priključak na zadnjem dijelu)</translation> @@ -5581,7 +5575,6 @@ <translation id="5473099001878321374">Ako nastavite, slažete se da ovaj uređaj može također automatski preuzimati i instalirati ažuriranja i aplikacije od Googlea, mobilnog operatera vašeg djeteta i proizvođača ovog uređaja, uz mogući prijenos podataka na mobilnoj mreži. Moguće je da neke od tih aplikacija nude kupovinu unutar aplikacija.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN mora sadržavati najmanje jedan znak.}one{PIN mora sadržavati najmanje # znak.}few{PIN mora sadržavati najmanje # znaka.}other{PIN mora sadržavati najmanje # znakova.}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> zahtijeva da se sada povežete s WiFi mrežom i preuzmete ažuriranje. Možete ga preuzeti i putem veze s naplatom (mogu nastati troškovi).</translation> -<translation id="5478520208448702555">Web lokacije mogu otvoriti prozor slike u slici kada pređete na drugu karticu</translation> <translation id="5481273127572794904">Nije dozvoljeno automatsko preuzimanje više fajlova</translation> <translation id="5481941284378890518">Dodaj štampače u blizini</translation> <translation id="5484181871714116891">Kada je uključeno, pristupni ključevi se kreiraju u iCloud Keychainu i dostupni su na svim Apple uređajima. Kada je isključeno, pristupni ključevi se kreiraju na Chrome profilu na ovom uređaju.</translation> @@ -5739,7 +5732,6 @@ <translation id="5600348067066185292">Instalacija sadržava nekoliko lakih koraka. Imat ćete još jednu priliku da potvrdite prije izmjena na vašem računaru.</translation> <translation id="5600706100022181951">Preuzimanje ažuriranja će iskoristiti <ph name="UPDATE_SIZE_MB" /> MB mobilnih podataka. Želite li nastaviti?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Nije dozvoljeno povezivanje na MIDI uređaje</translation> <translation id="5601833336918638013">Nemoj dozvoliti web lokacijama da pretraže Bluetooth uređaje</translation> <translation id="5602586420788540146">Otvori u novoj grupi kartica</translation> <translation id="5605758115928394442">Na vaš telefon je poslano obavještenje da potvrdimo vaš identitet.</translation> @@ -5861,7 +5853,6 @@ <translation id="5707185214361380026">Nije uspjelo učitavanje ekstenzije iz:</translation> <translation id="5708171344853220004">Glavni Microsoft naziv</translation> <translation id="5709557627224531708">Postavite Chrome kao zadani preglednik</translation> -<translation id="5710122160114032242">Nije dozvoljeno otvaranje prozora slike u slici kada pređete na drugu karticu</translation> <translation id="5711010025974903573">Zapisnici usluge</translation> <translation id="5711983031544731014">Nije moguće otključati. Unesite lozinku.</translation> <translation id="5712153969432126546">Web lokacije ponekad objavljuju PDF-ove, kao što su dokumenti, ugovori i obrasci</translation> @@ -6624,7 +6615,6 @@ <translation id="6326175484149238433">Ukloni iz Chromea</translation> <translation id="6326855256003666642">Broj aktivnih radnji</translation> <translation id="6327785803543103246">Automatsko otkrivanje web proksi servera</translation> -<translation id="6331818708794917058">Web lokacije mogu tražiti da se povežu s MIDI uređajima</translation> <translation id="6333064448949140209">Fajl će se poslati Googleu radi otklanjanje grešaka</translation> <translation id="6333170995003625229">Potvrđivanje adrese e-pošte ili lozinke nije uspjelo. Pokušajte se ponovo prijaviti.</translation> <translation id="6334267141726449402">Kopirajte i pošaljite link korisniku da prikupi zapisnike.</translation> @@ -6774,7 +6764,6 @@ <translation id="6458701200018867744">Otpremanje nije uspjelo (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Koristi odabir za traženje</translation> <translation id="6459799433792303855">Aktivni prozor je premješten na drugi ekran.</translation> -<translation id="6460566145397380451">Dozvoljeno je povezivanje na MIDI uređaje</translation> <translation id="6460601847208524483">Pronađi sljedeće</translation> <translation id="6461170143930046705">Pretraživanje mreža...</translation> <translation id="6463795194797719782">&Uredi</translation> @@ -7105,7 +7094,6 @@ <translation id="6735304988756581115">Prikaži kolačiće i druge podatke o web lokaciji...</translation> <translation id="6736243959894955139">Adresa</translation> <translation id="6737663862851963468">Ukloni tiket za Kerberos</translation> -<translation id="6737931010859480781">Aplikacija je predinstalirana na uređaju</translation> <translation id="6738180164164974883">Dozvoli postavljanje kolačića treće strane</translation> <translation id="6738430949033571771">Potvrđivanje računa...</translation> <translation id="6739923123728562974">Prikaži prečicu na radnoj površini</translation> @@ -8502,7 +8490,6 @@ <translation id="7853747251428735">Više a&lata</translation> <translation id="7853999103056713222">Koristite sigurniju lozinku</translation> <translation id="7855678561139483478">Premjesti karticu u novi prozor</translation> -<translation id="7855729579456690716">Web lokacije mogu otvoriti prozor slike u slici kada pređete na drugu karticu</translation> <translation id="7857004848504343806">Računar sadržava sigurnosni modul koji se koristi za primjenu mnogih ključnih sigurnosnih funkcija u ChromeOS Flexu. Posjetite Chromebookov centar za pomoć da saznate više: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Prijedlozi teksta</translation> <translation id="7857949311770343000">Je li ovo stranica nove kartice koju ste očekivali?</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 70dd3cb..ca19e3d 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> recorda com has iniciat la sessió i t'inicia la sessió automàticament sempre que sigui possible. Si aquesta opció està desactivada, se't demanarà sempre que confirmis les credencials.</translation> <translation id="1008544602823861396">no pot utilitzar la teva informació a</translation> <translation id="1008557486741366299">Ara no</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Per protegir les teves dades, s'han suprimit els permisos d'un lloc web que no has visitat durant dos mesos}other{Per protegir les teves dades, s'han suprimit els permisos de llocs web que no has visitat durant dos mesos}}</translation> <translation id="1009663062402466586">Els controls de joc ja estan disponibles</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Pàgina que no respon}other{Pàgines que no responen}}</translation> <translation id="1011003645819296594">Dispositius desats</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copia l'adr&eça de l'enllaç</translation> <translation id="1085064499066015002">Sempre en tots els llocs web</translation> <translation id="1085697365578766383">S'ha produït un error en iniciar la màquina virtual. Torna-ho a provar.</translation> -<translation id="1087965115100412394">No permetis que els llocs web es connectin a dispositius MIDI</translation> <translation id="1088659085457112967">Entra al mode de lector</translation> <translation id="1090126737595388931">No hi cap aplicació en execució en segon pla</translation> <translation id="1090541560108055381">Abans de fer la vinculació, comprova que aquest codi sigui el mateix en els dos dispositius</translation> @@ -3227,7 +3225,6 @@ <translation id="3551320343578183772">Tanca la pestanya</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Esborra en sortir</translation> -<translation id="3553487194781590058">No permetis que els llocs web obrin una finestra d'imatge sobre imatge quan canviïs a una altra pestanya</translation> <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> gestiona el teu dispositiu. Els administradors poden accedir a les dades de qualsevol perfil d'aquest dispositiu.</translation> <translation id="3555812735919707620">Suprimeix l'extensió</translation> <translation id="3557101512409028104">Estableix restriccions de llocs web i límits de temps de connexió amb Family Link</translation> @@ -3785,7 +3782,6 @@ <translation id="3975201861340929143">Explicació</translation> <translation id="3975565978598857337">No s'ha pogut contactar amb el servidor del domini</translation> <translation id="3976108569178263973">No hi ha cap impressora disponible.</translation> -<translation id="3976244126942806443">Els llocs web solen connectar-se a dispositius MIDI per crear i editar música</translation> <translation id="397703832102027365">S'està finalitzant...</translation> <translation id="3977145907578671392">Pot ser que les funcions d'alguns llocs web no funcionin en el mode d'incògnit</translation> <translation id="3977886311744775419">Les actualitzacions automàtiques no es baixen en aquest tipus de xarxa, però pots comprovar manualment si hi ha actualitzacions.</translation> @@ -4685,7 +4681,6 @@ <translation id="4730492586225682674">Darrera nota amb llapis òptic a la pantalla de bloqueig</translation> <translation id="4730888769809690665">Es permeten les notificacions per a <ph name="SITE" /></translation> <translation id="4731306954230393087">Té permís per utilitzar la informació que ha desat sobre tu</translation> -<translation id="473140019006744096">No hi ha prou espai al dispositiu per completar aquesta actualització. Allibera <ph name="NECESSARY_SPACE" /> del teu dispositiu i torna-ho a provar.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (auricular esquerre)</translation> <translation id="4733793249294335256">Ubicació</translation> <translation id="473546211690256853"><ph name="DOMAIN" /> gestiona aquest compte.</translation> @@ -5388,7 +5383,6 @@ <translation id="5327912693242073631">Les funcions que necessitin enviar notificacions no funcionaran</translation> <translation id="532943162177641444">Toca la notificació que veuràs al telèfon <ph name="PHONE_NAME" /> per configurar el punt d'accés mòbil que pot utilitzar aquest dispositiu.</translation> <translation id="5329858601952122676">&Suprimeix</translation> -<translation id="5330592967519769658">Té permís per obrir una finestra d'imatge sobre imatge quan canviïs a una altra pestanya</translation> <translation id="5331069282670671859">No tens cap certificat en aquesta categoria</translation> <translation id="5331568967879689647">Aplicació del sistema Chrome OS</translation> <translation id="5331975486040154427">Dispositiu USB-C (port posterior esquerre)</translation> @@ -5566,7 +5560,6 @@ <translation id="5473099001878321374">En continuar, acceptes que aquest dispositiu també pugui baixar i instal·lar automàticament actualitzacions i aplicacions de Google, de l'operador de telefonia mòbil i del fabricant del dispositiu del teu fill o filla, i que és possible que ho faci utilitzant dades mòbils. Pot ser que algunes d'aquestes aplicacions ofereixin compres des de l'aplicació.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{El PIN ha de tenir almenys 1 caràcter}other{El PIN ha de tenir almenys # caràcters}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> requereix que et connectis a la Wi-Fi ara i que baixis una actualització. També pots baixar-la amb una connexió d'ús mesurat, però és possible que s'apliquin càrrecs.</translation> -<translation id="5478520208448702555">És possible que els llocs web obrin una finestra d'imatge sobre imatge quan canviïs a una altra pestanya</translation> <translation id="5481273127572794904">Sense permís per baixar automàticament diversos fitxers</translation> <translation id="5481941284378890518">Afegeix impressores properes</translation> <translation id="5484181871714116891">Quan aquesta opció està activada, les claus d'accés es creen al clauer de l'iCloud i estan disponibles en tots els teus dispositius Apple. Quan està desactivada, les claus d'accés es creen al teu perfil de Chrome en aquest dispositiu.</translation> @@ -5724,7 +5717,6 @@ <translation id="5600348067066185292">La instal·lació suposa uns pocs passos ben senzills. Tindràs una altra oportunitat de confirmar els canvis abans no s'apliquin a l'ordinador.</translation> <translation id="5600706100022181951">Per baixar l'actualització s'utilitzaran <ph name="UPDATE_SIZE_MB" /> MB de dades mòbils. Vols continuar?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Sense permís per connectar-se a dispositius MIDI</translation> <translation id="5601833336918638013">No permetis que els llocs web cerquin dispositius Bluetooth</translation> <translation id="5602586420788540146">Obre en un grup de pestanyes nou</translation> <translation id="5605758115928394442">S'ha enviat una notificació al teu telèfon per confirmar la teva identitat.</translation> @@ -5845,7 +5837,6 @@ <translation id="5707185214361380026">No s'ha pogut carregar l'extensió de:</translation> <translation id="5708171344853220004">Nom principal de Microsoft</translation> <translation id="5709557627224531708">Defineix Chrome com a navegador predeterminat</translation> -<translation id="5710122160114032242">No té permís per obrir una finestra d'imatge sobre imatge quan canviïs a una altra pestanya</translation> <translation id="5711010025974903573">Registres de servei</translation> <translation id="5711983031544731014">No es pot desbloquejar: introduïu la contrasenya</translation> <translation id="5712153969432126546">A vegades, els llocs web publiquen fitxers PDF, com ara documents, contractes i formularis</translation> @@ -6607,7 +6598,6 @@ <translation id="6326175484149238433">Suprimeix de Chrome</translation> <translation id="6326855256003666642">Nombre de processos actius</translation> <translation id="6327785803543103246">Detecció automàtica de servidors intermediaris web</translation> -<translation id="6331818708794917058">Els llocs web poden demanar permís per connectar-se a dispositius MIDI</translation> <translation id="6333064448949140209">El fitxer s'enviarà a Google per depurar-lo</translation> <translation id="6333170995003625229">La teva adreça electrònica o la contrasenya no s'han pogut verificar. Torna a iniciar la sessió.</translation> <translation id="6334267141726449402">Copia i envia aquest enllaç a l'usuari per recollir els registres.</translation> @@ -6757,7 +6747,6 @@ <translation id="6458701200018867744">Ha fallat la pujada (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Utilitza la selecció per a la cerca</translation> <translation id="6459799433792303855">La finestra activa s'ha mogut a una altra pantalla.</translation> -<translation id="6460566145397380451">Amb permís per connectar-se a dispositius MIDI</translation> <translation id="6460601847208524483">Cerca el següent</translation> <translation id="6461170143930046705">S'estan cercant xarxes...</translation> <translation id="6463795194797719782">E&dita</translation> @@ -7084,7 +7073,6 @@ <translation id="6735304988756581115">Mostra galetes i altres dades dels llocs web...</translation> <translation id="6736243959894955139">Adreça</translation> <translation id="6737663862851963468">Suprimeix el tiquet de Kerberos</translation> -<translation id="6737931010859480781">Aquesta aplicació està preinstal·lada al dispositiu</translation> <translation id="6738180164164974883">Permet configurar les galetes de tercers</translation> <translation id="6738430949033571771">S'està verificant el compte...</translation> <translation id="6739923123728562974">Mostra la drecera de l'escriptori</translation> @@ -8481,7 +8469,6 @@ <translation id="7853747251428735">Més &eines</translation> <translation id="7853999103056713222">Utilitza una contrasenya més segura</translation> <translation id="7855678561139483478">Mou la pestanya a una finestra nova</translation> -<translation id="7855729579456690716">Els llocs web poden obrin una finestra d'imatge sobre imatge quan canviïs a una altra pestanya</translation> <translation id="7857004848504343806">L'ordinador conté un mòdul de seguretat, que s'utilitza per implementar un gran nombre de funcions de seguretat clau a ChromeOS Flex. Visita el Centre d'ajuda de Chromebook per obtenir més informació: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Suggeriments de text</translation> <translation id="7857949311770343000">Aquesta és la pàgina de la pestanya nova que volíeu?</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 8f93e54..a4d9f50 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> si pamatuje, jak jste se přihlásili, a když je to možné, přihlásí vás automaticky. Když je tato funkce vypnutá, zobrazuje se pokaždé žádost o potvrzení.</translation> <translation id="1008544602823861396">má zablokováno používání vašich údajů na</translation> <translation id="1008557486741366299">Teď ne</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Z důvodu ochrany vašich dat byla odebrána oprávnění webu, který jste dva měsíce nenavštívili}few{Z důvodu ochrany vašich dat byla odebrána oprávnění webům, které jste dva měsíce nenavštívili}many{Z důvodu ochrany vašich dat byla odebrána oprávnění webům, které jste dva měsíce nenavštívili}other{Z důvodu ochrany vašich dat byla odebrána oprávnění webům, které jste dva měsíce nenavštívili}}</translation> <translation id="1009663062402466586">K dispozici jsou ovládací prvky hry</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Stránka nereaguje}few{Stránky nereagují}many{Stránky nereagují}other{Stránky nereagují}}</translation> <translation id="1011003645819296594">Uložená zařízení</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopírovat a&dresu odkazu</translation> <translation id="1085064499066015002">Vždy na všech webech</translation> <translation id="1085697365578766383">Při spouštění virtuálního počítače došlo k chybě. Zkuste to znovu.</translation> -<translation id="1087965115100412394">Nepovolovat webům připojení k zařízením MIDI</translation> <translation id="1088659085457112967">Zapnout režim čtečky</translation> <translation id="1090126737595388931">Na pozadí nejsou spuštěny žádné aplikace</translation> <translation id="1090541560108055381">Před spárováním se ujistěte, zda se tento kód na obou zařízeních shoduje</translation> @@ -3219,7 +3217,6 @@ <translation id="3551320343578183772">Zavřít kartu</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Při ukončení se vymaže</translation> -<translation id="3553487194781590058">Nepovolovat webům otevřít okno obrazu v obraze, když přejdete na jinou kartu</translation> <translation id="3554493885489666172">Toto zařízení spravuje organizace <ph name="PROFILE_NAME" />. K datům ve všech profilech v tomto zařízení mají přístup administrátoři.</translation> <translation id="3555812735919707620">Odstranit rozšíření</translation> <translation id="3557101512409028104">Nastavte pomocí služby Family Link omezení přístupu na webové stránky a limity času stráveného na zařízení</translation> @@ -3777,7 +3774,6 @@ <translation id="3975201861340929143">Vysvětlení</translation> <translation id="3975565978598857337">Kontaktování serveru pro sféru se nezdařilo</translation> <translation id="3976108569178263973">Nejsou k dispozici žádné tiskárny.</translation> -<translation id="3976244126942806443">K zařízením MIDI se weby připojují obvykle za účelem vytváření a úpravy hudby</translation> <translation id="397703832102027365">Dokončování...</translation> <translation id="3977145907578671392">Některé weby nemusejí v anonymním režimu fungovat správně.</translation> <translation id="3977886311744775419">Automatické aktualizace se v tomto typu sítě nestahují, ale můžete aktualizace vyhledat ručně.</translation> @@ -4677,7 +4673,6 @@ <translation id="4730492586225682674">Poslední poznámka napsaná dotykovým perem na obrazovce uzamčení</translation> <translation id="4730888769809690665">Oznámení webu <ph name="SITE" /> jsou povolena</translation> <translation id="4731306954230393087">Povoleno používání uložených informací o vás</translation> -<translation id="473140019006744096">Na tomto zařízení není dostatek místa k dokončení této aktualizace. Uvolněte na zařízení <ph name="NECESSARY_SPACE" /> a zkuste to znovu.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (vlevo)</translation> <translation id="4733793249294335256">Umístění</translation> <translation id="473546211690256853">Tento účet spravuje <ph name="DOMAIN" />.</translation> @@ -5379,7 +5374,6 @@ <translation id="5327912693242073631">Funkce vyžadující oznámení nebudou k dispozici</translation> <translation id="532943162177641444">Klepnutím na oznámení na telefonu nebo tabletu <ph name="PHONE_NAME" /> nastavte mobilní hotspot, který bude moci využít toto zařízení.</translation> <translation id="5329858601952122676">&Smazat</translation> -<translation id="5330592967519769658">Může otevřít okno obrazu v obraze, když přejdete na jinou kartu</translation> <translation id="5331069282670671859">Nemáte žádné certifikáty této kategorie</translation> <translation id="5331568967879689647">Systémová aplikace ChromeOS</translation> <translation id="5331975486040154427">Zařízení USB Type-C (levý zadní port)</translation> @@ -5557,7 +5551,6 @@ <translation id="5473099001878321374">Pokračováním vyjadřujete souhlas s tím, že toto zařízení může také automaticky stahovat a instalovat aktualizace a aplikace od společnosti Google, operátora a výrobce zařízení a v případě potřeby k tomu smí používat mobilní datové připojení. Některé z těchto aplikací mohou nabízet nákupy v aplikaci.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN musí obsahovat nejméně 1 znak}few{PIN musí obsahovat nejméně # znaky}many{PIN musí obsahovat nejméně # znaku}other{PIN musí obsahovat nejméně # znaků}}</translation> <translation id="5474859849784484111">Doména <ph name="MANAGER" /> vyžaduje, abyste se připojili k síti Wi-Fi a stáhli aktualizaci. Případně ji můžete stáhnout přes měřené připojení (mohou být účtovány poplatky).</translation> -<translation id="5478520208448702555">Weby mohou otevřít okno obrazu v obraze, když přejdete na jinou kartu</translation> <translation id="5481273127572794904">Zákaz stahovat automaticky několik souborů</translation> <translation id="5481941284378890518">Přidat tiskárny v okolí</translation> <translation id="5484181871714116891">Když je tato funkce zapnutá, přístupové klíče se vytvářejí v Klíčence na Cloudu a jsou dostupné ve všech vašich zařízeních Apple. Když je tato možnost vypnutá, přístupové klíče se vytvářejí ve vašem profilu Chrome na tomto zařízení.</translation> @@ -5715,7 +5708,6 @@ <translation id="5600348067066185292">K instalaci je potřeba jen několik snadných kroků. Než v počítači budou provedeny změny, budete mít ještě možnost je potvrdit.</translation> <translation id="5600706100022181951">Ke stažení aktualizace bude použito <ph name="UPDATE_SIZE_MB" /> MB mobilních dat. Chcete pokračovat?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Zákaz připojovat se k zařízením MIDI</translation> <translation id="5601833336918638013">Nepovolovat webům vyhledávat zařízení Bluetooth</translation> <translation id="5602586420788540146">Otevřít v nové skupině karet</translation> <translation id="5605758115928394442">Odeslali jsme vám na telefon oznámení, abychom si ověřili, zda jste to skutečně vy.</translation> @@ -5835,7 +5827,6 @@ <translation id="5707185214361380026">Načtení rozšíření z následujícího umístění se nezdařilo:</translation> <translation id="5708171344853220004">Hlavní název Microsoft</translation> <translation id="5709557627224531708">Nastavte si Chrome jako výchozí prohlížeč</translation> -<translation id="5710122160114032242">Nemůže otevřít okno obrazu v obraze, když přejdete na jinou kartu</translation> <translation id="5711010025974903573">Protokoly služby</translation> <translation id="5711983031544731014">Zařízení nelze odemknout. Zadejte heslo.</translation> <translation id="5712153969432126546">Weby někdy publikují soubory PDF, např. dokumenty, smlouvy a formuláře</translation> @@ -6596,7 +6587,6 @@ <translation id="6326175484149238433">Odstranit z Chromu</translation> <translation id="6326855256003666642">Aktivity zabraňující ukončení</translation> <translation id="6327785803543103246">Automatické zjišťování webového proxy serveru</translation> -<translation id="6331818708794917058">Weby mohou žádat o připojení k zařízením MIDI</translation> <translation id="6333064448949140209">Soubor bude odeslán do Googlu k ladění</translation> <translation id="6333170995003625229">Vaši e‑mailovou adresu nebo heslo se nepodařilo ověřit. Zkuste se přihlásit znovu.</translation> <translation id="6334267141726449402">Zkopírujte tento odkaz a odešlete ho uživateli, aby mohl shromáždit protokoly.</translation> @@ -6746,7 +6736,6 @@ <translation id="6458701200018867744">Nahrávání se nezdařilo (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Pro hledání použít výběr</translation> <translation id="6459799433792303855">Aktivní okno bylo přesunuto na jinou obrazovku.</translation> -<translation id="6460566145397380451">Povolení připojovat se k zařízením MIDI</translation> <translation id="6460601847208524483">Najít další</translation> <translation id="6461170143930046705">Vyhledávání sítí...</translation> <translation id="6463795194797719782">&Upravit</translation> @@ -7076,7 +7065,6 @@ <translation id="6735304988756581115">Zobrazit soubory cookie a jiná data webů...</translation> <translation id="6736243959894955139">Adresa</translation> <translation id="6737663862851963468">Odstranit lístek Kerberos</translation> -<translation id="6737931010859480781">Tato aplikace je v zařízení předinstalovaná</translation> <translation id="6738180164164974883">Povolit nastavení souborů cookie třetích stran</translation> <translation id="6738430949033571771">Ověřování účtu…</translation> <translation id="6739923123728562974">Zobrazit zástupce na ploše</translation> @@ -8470,7 +8458,6 @@ <translation id="7853747251428735">&Další nástroje</translation> <translation id="7853999103056713222">Použijte bezpečnější heslo</translation> <translation id="7855678561139483478">Přesunout kartu do nového okna</translation> -<translation id="7855729579456690716">Weby mohou otevřít okno obrazu v obraze, když přejdete na jinou kartu</translation> <translation id="7857004848504343806">Ve vašem počítači je bezpečnostní modul, jehož pomocí je do systému ChromeOS Flex implementováno mnoho důležitých bezpečnostních prvků. Další informace najdete v centru nápovědy k Chromebookům: http://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Textové návrhy</translation> <translation id="7857949311770343000">Je toto stránka nové karty, kterou jste očekávali?</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb index 2416ff3..f475982 100644 --- a/chrome/app/resources/generated_resources_cy.xtb +++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">Mae <ph name="BRAND" /> yn cofio sut y gwnaethoch chi fewngofnodi ac yn eich mewngofnodi'n awtomatig pan fo modd. Pan fydd wedi'i ddiffodd, gofynnir i chi am gadarnhad bob tro.</translation> <translation id="1008544602823861396">wedi'i rhwystro rhag defnyddio eich gwybodaeth ar</translation> <translation id="1008557486741366299">Nid Nawr</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{I warchod eich data, cafodd caniatâd ei dynnu o wefan nad ydych wedi ymweld â hi ers 2 fis}zero{I warchod eich data, cafodd caniatâd ei dynnu o wefannau nad ydych wedi ymweld â nhw ers 2 fis}two{I warchod eich data, cafodd caniatâd ei dynnu o wefannau nad ydych wedi ymweld â nhw ers 2 fis}few{I warchod eich data, cafodd caniatâd ei dynnu o wefannau nad ydych wedi ymweld â nhw ers 2 fis}many{I warchod eich data, cafodd caniatâd ei dynnu o wefannau nad ydych wedi ymweld â nhw ers 2 fis}other{I warchod eich data, cafodd caniatâd ei dynnu o wefannau nad ydych wedi ymweld â nhw ers 2 fis}}</translation> <translation id="1009663062402466586">Rheolaethau gêm bellach ar gael</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Tudalen Anymatebol}zero{Tudalennau Anymatebol}two{Tudalennau Anymatebol}few{Tudalennau Anymatebol}many{Tudalennau Anymatebol}other{Tudalennau Anymatebol}}</translation> <translation id="1011003645819296594">Dyfeisiau a gadwyd</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copïo cyfeiriad dolen</translation> <translation id="1085064499066015002">Bob amser ar bob gwefan</translation> <translation id="1085697365578766383">Bu gwall wrth ddechrau'r peiriant rhithwir. Rhowch gynnig arall arni.</translation> -<translation id="1087965115100412394">Peidio â chaniatáu i wefannau gysylltu â dyfeisiau MIDI</translation> <translation id="1088659085457112967">Dechrau'r Modd Darllenydd</translation> <translation id="1090126737595388931">Dim Apiau Cefndir yn Rhedeg</translation> <translation id="1090541560108055381">Cyn paru, sicrhewch fod y cod hwn yr un peth ar y ddwy ddyfais</translation> @@ -3235,7 +3233,6 @@ <translation id="3551320343578183772">Cau'r Tab</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Yn cael eu clirio wrth i chi Adael</translation> -<translation id="3553487194781590058">Peidio â chaniatáu i agor ffenestr llun mewn llun pan rydych yn newid i dab gwahanol</translation> <translation id="3554493885489666172">Rheolir eich dyfais gan <ph name="PROFILE_NAME" />. Gall gweinyddwyr gael mynediad at y data mewn unrhyw broffil ar y ddyfais hon.</translation> <translation id="3555812735919707620">Tynnu'r estyniad</translation> <translation id="3557101512409028104">Gosod cyfyngiadau gwefan a therfynau amser sgrîn gyda Family Link</translation> @@ -3794,7 +3791,6 @@ <translation id="3975201861340929143">Esboniad</translation> <translation id="3975565978598857337">Wedi methu â chysylltu â'r gweinydd ar gyfer yr ardal</translation> <translation id="3976108569178263973">Nid oes unrhyw argraffyddion ar gael.</translation> -<translation id="3976244126942806443">Mae gwefannau fel arfer yn cysylltu â dyfeisiau MIDI ar gyfer creu a golygu cerddoriaeth</translation> <translation id="397703832102027365">Wrthi'n gorffen...</translation> <translation id="3977145907578671392">Mae'n bosib na fydd nodweddion ar rai gwefannau yn gweithio yn y modd anhysbys</translation> <translation id="3977886311744775419">Nid yw diweddariadau awtomatig yn lawrlwytho ar y math hwn o rwydwaith, ond gallwch wirio am ddiweddariadau eich hun.</translation> @@ -4695,7 +4691,6 @@ <translation id="4730492586225682674">Nodyn diweddaraf y pwyntil ar y clo sgrîn</translation> <translation id="4730888769809690665">Caniateir hysbysiadau ar gyfer <ph name="SITE" /></translation> <translation id="4731306954230393087">Caniateir defnyddio'r wybodaeth y mae wedi cadw amdanoch chi</translation> -<translation id="473140019006744096">Nid oes digon o le ar y ddyfais hon i gwblhau'r diweddariad hwn. Glanhewch <ph name="NECESSARY_SPACE" /> ar eich dyfais a rhowch gynnig arall arni.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Chwith)</translation> <translation id="4733793249294335256">Lleoliad</translation> <translation id="473546211690256853">Rheolir y cyfrif hwn gan <ph name="DOMAIN" /></translation> @@ -5397,7 +5392,6 @@ <translation id="5327912693242073631">Ni fydd nodweddion sy'n gofyn am hysbysiadau yn gweithio</translation> <translation id="532943162177641444">Tapiwch yr hysbysiad ar eich <ph name="PHONE_NAME" /> i osod y poethfan symudol y gall y ddyfais hon ei ddefnyddio.</translation> <translation id="5329858601952122676">&Dileu</translation> -<translation id="5330592967519769658">Yn cael agor ffenestr llun mewn llun pan fyddwch yn newid i dab gwahanol</translation> <translation id="5331069282670671859">Nid oes gennych unrhyw dystysgrifau yn y categori hwn</translation> <translation id="5331568967879689647">Ap System ChromeOS</translation> <translation id="5331975486040154427">Dyfais USB-C (porth chwith ar y cefn)</translation> @@ -5575,7 +5569,6 @@ <translation id="5473099001878321374">Drwy barhau, rydych yn cytuno y gall y ddyfais hon hefyd lawrlwytho a gosod diweddariadau ac apiau yn awtomatig gan Google, cludydd eich plentyn a gwneuthurwr y ddyfais hon, gan ddefnyddio data symudol o bosib. Mae'n bosib y bydd rhai o'r apiau hyn yn cynnig pryniannau o fewn yr ap.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Rhaid i'r PIN fod o leiaf un nod}zero{Rhaid i'r PIN fod o leiaf # nod}two{Rhaid i'r PIN fod o leiaf # nod}few{Rhaid i'r PIN fod o leiaf # nod}many{Rhaid i'r PIN fod o leiaf # nod}other{Rhaid i'r PIN fod o leiaf # nod}}</translation> <translation id="5474859849784484111">Mae <ph name="MANAGER" /> yn gofyn i chi gysylltu â Wi-Fi nawr a lawrlwytho diweddariad. Neu, gallwch lawrlwytho o gysylltiad â mesurydd (gall taliadau fod yn berthnasol).</translation> -<translation id="5478520208448702555">Mae'n bosib y bydd gwefannau yn agor ffenestr llun mewn llun pan fyddwch yn newid i dab gwahanol</translation> <translation id="5481273127572794904">Ni chaniateir i lawrlwytho sawl ffeil yn awtomatig</translation> <translation id="5481941284378890518">Ychwanegu Argraffwyr Gerllaw</translation> <translation id="5484181871714116891">Pan fydd ymlaen, caiff codau pas eu creu yn iCloud Keychain ac maent ar gael ar draws eich dyfeisiau Apple. Pan fydd wedi'i ddiffodd, caiff cyfrineiriau eu creu yn eich proffil Chrome ar y ddyfais hon.</translation> @@ -5733,7 +5726,6 @@ <translation id="5600348067066185292">Mae gosod yn cymryd ychydig o gamau hawdd. Bydd gennych gyfle arall i gadarnhau cyn i newidiadau gael eu gwneud ar eich cyfrifiadur.</translation> <translation id="5600706100022181951">Bydd diweddariad yn cael ei lawrlwytho gan ddefnyddio <ph name="UPDATE_SIZE_MB" /> MB o ddata symudol. Hoffech chi barhau?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Ni chaniateir cysylltu â dyfeisiau MIDI</translation> <translation id="5601833336918638013">Peidio â chaniatáu i wefannau chwilio am ddyfeisiau Bluetooth</translation> <translation id="5602586420788540146">Agor mewn grŵp tabiau newydd</translation> <translation id="5605758115928394442">Anfonwyd hysbysiad i'ch ffôn i gadarnhau mai chi sydd yno.</translation> @@ -5855,7 +5847,6 @@ <translation id="5707185214361380026">Wedi methu â llwytho estyniad o:</translation> <translation id="5708171344853220004">Prif Enw Microsoft</translation> <translation id="5709557627224531708">Gosodwch Chrome fel eich porwr diofyn</translation> -<translation id="5710122160114032242">Ddim yn cael agor ffenestr llun mewn llun pan fyddwch yn newid i dab gwahanol</translation> <translation id="5711010025974903573">Cofnodion gwasanaeth</translation> <translation id="5711983031544731014">Methu â datgloi. Rhowch eich cyfrinair.</translation> <translation id="5712153969432126546">Weithiau mae gwefannau yn cyhoeddi ffeiliau PDF, megis dogfennau, contractau a ffurflenni</translation> @@ -6617,7 +6608,6 @@ <translation id="6326175484149238433">Tynnu o Chrome</translation> <translation id="6326855256003666642">Cyfrif Cadw'n Fyw</translation> <translation id="6327785803543103246">Awtoddarganfod dirprwy weinydd y we</translation> -<translation id="6331818708794917058">Gall gwefannau ofyn am gysylltu â dyfeisiau MIDI</translation> <translation id="6333064448949140209">Bydd ffeil yn cael ei hanfon at Google i'w dadfygio</translation> <translation id="6333170995003625229">Nid oedd modd dilysu'ch cyfeiriad e-bost na'ch cyfrinair. Rhowch gynnig arall ar fewngofnodi.</translation> <translation id="6334267141726449402">Copïwch ac anfonwch y ddolen hon at y defnyddiwr i gasglu'r logiau.</translation> @@ -6767,7 +6757,6 @@ <translation id="6458701200018867744">Wedi methu ag uwchlwytho (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Defnyddiwch y Dewis ar gyfer Chwilio</translation> <translation id="6459799433792303855">Symudwyd y ffenestr weithredol i sgrîn arall.</translation> -<translation id="6460566145397380451">Caniateir i gysylltu â dyfeisiau MIDI</translation> <translation id="6460601847208524483">Dod o hyd i'r un Nesaf</translation> <translation id="6461170143930046705">Wrthi'n chwilio am rwydweithiau...</translation> <translation id="6463795194797719782">&Golygu</translation> @@ -7101,7 +7090,6 @@ <translation id="6735304988756581115">Dangos cwcis a data gwefan eraill…</translation> <translation id="6736243959894955139">Cyfeiriad</translation> <translation id="6737663862851963468">Tynnu tocyn Kerberos</translation> -<translation id="6737931010859480781">Mae'r ap hwn wedi'i osod ymlaen llaw ar eich dyfais</translation> <translation id="6738180164164974883">Caniatáu gosod cwcis trydydd parti</translation> <translation id="6738430949033571771">Wrthi'n dilysu'r cyfrif...</translation> <translation id="6739923123728562974">Dangos llwybr byr bwrdd gwaith</translation> @@ -8495,7 +8483,6 @@ <translation id="7853747251428735">Rhagor o O&ffer</translation> <translation id="7853999103056713222">Defnyddiwch Gyfrinair Mwy Diogel</translation> <translation id="7855678561139483478">Symud y tab i ffenestr newydd</translation> -<translation id="7855729579456690716">Gall gwefannau agor ffenestr llun mewn llun pan fyddwch yn newid i dab gwahanol</translation> <translation id="7857004848504343806">Mae eich cyfrifiadur yn cynnwys modiwl diogel, a ddefnyddir i weithredu llawer o nodweddion diogelwch critigol yn ChromeOS Flex. Ewch i Ganolfan Gymorth Chromebook i ddysgu rhagor: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Awgrymiadau testun</translation> <translation id="7857949311770343000">Ai hon yw'r dudalen tab newydd yr oeddech yn ei disgwyl?</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 74402b9..7eeb864c 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> husker, hvordan du loggede ind, og logger dig automatisk ind, når det er muligt. Når funktionen er slået fra, bliver du bedt om en bekræftelse hver gang.</translation> <translation id="1008544602823861396">er blokeret, så det ikke kan bruge dine oplysninger på</translation> <translation id="1008557486741366299">Ikke nu</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{For at beskytte dine data blev tilladelserne fjernet fra et website, som du ikke har besøgt i 2 måneder}one{For at beskytte dine data blev tilladelserne fjernet fra et website, som du ikke har besøgt i 2 måneder}other{For at beskytte dine data blev tilladelserne fjernet fra websites, som du ikke har besøgt i 2 måneder}}</translation> <translation id="1009663062402466586">Spilindstillinger er nu tilgængelige</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Siden svarer ikke}one{Siderne svarer ikke}other{Siderne svarer ikke}}</translation> <translation id="1011003645819296594">Gemte enheder</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopier linkadr&esse</translation> <translation id="1085064499066015002">Altid på alle websites</translation> <translation id="1085697365578766383">Der opstod en fejl ved opstarten af den virtuelle maskine. Prøv igen.</translation> -<translation id="1087965115100412394">Tillad ikke, at websites opretter forbindelse til MIDI-enheder</translation> <translation id="1088659085457112967">Start Læser-tilstand</translation> <translation id="1090126737595388931">Ingen apps kører i baggrunden</translation> <translation id="1090541560108055381">Inden du parrer, skal du sørge for, at koden er den samme på begge enheder</translation> @@ -3233,7 +3231,6 @@ <translation id="3551320343578183772">Luk fanen</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Ryddes ved lukning</translation> -<translation id="3553487194781590058">Tillad ikke, at websites åbner et vindue med integreret billede, når du skifter til en anden fane</translation> <translation id="3554493885489666172">Din enhed administreres af <ph name="PROFILE_NAME" />. Administratorer kan få adgang til dataene på enhver profil på denne enhed.</translation> <translation id="3555812735919707620">Fjern udvidelse</translation> <translation id="3557101512409028104">Angiv websitebegrænsninger og grænser for skærmtid ved hjælp af Family Link</translation> @@ -3792,7 +3789,6 @@ <translation id="3975201861340929143">Forklaring</translation> <translation id="3975565978598857337">Det var ikke muligt at kontakte serveren for domænet</translation> <translation id="3976108569178263973">Der er ingen tilgængelige printere.</translation> -<translation id="3976244126942806443">Websites opretter normalt forbindelse til MIDI-enheder for at kunne skabe og redigere musik</translation> <translation id="397703832102027365">Afslutter...</translation> <translation id="3977145907578671392">Funktioner på visse websites fungerer muligvis ikke i inkognito</translation> <translation id="3977886311744775419">Automatiske opdateringer downloades ikke på denne netværkstype, men du kan kigge efter opdateringer manuelt.</translation> @@ -4693,7 +4689,6 @@ <translation id="4730492586225682674">Nyeste note med styluspen på låseskærmen</translation> <translation id="4730888769809690665">Notifikationer er tilladt for <ph name="SITE" /></translation> <translation id="4731306954230393087">Har tilladelse til at bruge oplysninger, de har gemt om dig</translation> -<translation id="473140019006744096">Der er ikke nok plads på denne enhed til at fuldføre denne opdatering. Frigør <ph name="NECESSARY_SPACE" /> på din enhed, og prøv igen.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (venstre)</translation> <translation id="4733793249294335256">Placering</translation> <translation id="473546211690256853">Denne konto administreres af <ph name="DOMAIN" /></translation> @@ -5395,7 +5390,6 @@ <translation id="5327912693242073631">Funktioner, der skal bruge notifikationer, fungerer ikke</translation> <translation id="532943162177641444">Tryk på notifikationen på din <ph name="PHONE_NAME" /> for at konfigurere det mobilhotspot, der kan anvendes af denne enhed.</translation> <translation id="5329858601952122676">&Slet</translation> -<translation id="5330592967519769658">Har tilladelse til at åbne et vindue med integreret billede, når du skifter til en anden fane</translation> <translation id="5331069282670671859">Du har ingen certifikater i denne kategori</translation> <translation id="5331568967879689647">ChromeOS-systemapp</translation> <translation id="5331975486040154427">USB-C-enhed (porten bagpå i venstre side)</translation> @@ -5573,7 +5567,6 @@ <translation id="5473099001878321374">Hvis du fortsætter, accepterer du, at denne enhed også kan downloade og installere opdateringer og apps automatisk fra Google, dit barns mobilselskab og producenten af enheden, eventuelt ved hjælp af mobildata. Nogle af disse apps tilbyder muligvis køb i appen.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Pinkoden skal være på mindst ét tegn}one{Pinkoden skal være på mindst # tegn}other{Pinkoden skal være på mindst # tegn}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> kræver, at du opretter forbindelse til Wi-Fi nu og downloader en opdatering. Du kan også downloade via en forbrugsafregnet forbindelse (du opkræves muligvis et gebyr).</translation> -<translation id="5478520208448702555">Websites kan åbne et vindue med integreret billede, når du skifter til en anden fane</translation> <translation id="5481273127572794904">Har ikke tilladelse til at downloade flere filer automatisk</translation> <translation id="5481941284378890518">Tilføj printere i nærheden</translation> <translation id="5484181871714116891">Når denne indstilling er aktiveret, oprettes der adgangsnøgler i iCloud-nøglering, og nøglerne vil være tilgængelige på dine Apple-enheder. Når denne indstilling er deaktiveret, oprettes der adgangsnøgler på din Chrome-profil på denne enhed.</translation> @@ -5731,7 +5724,6 @@ <translation id="5600348067066185292">Installationen er nem. Du vil have mulighed for at bekræfte igen, inden der foretages ændringer af din computer.</translation> <translation id="5600706100022181951">Opdateringen downloades ved brug af <ph name="UPDATE_SIZE_MB" /> MB mobildata. Vil du fortsætte?</translation> <translation id="5601503069213153581">Pinkode</translation> -<translation id="5601823921345337195">Har ikke tilladelse til at oprette forbindelse til MIDI-enheder</translation> <translation id="5601833336918638013">Tillad ikke, at websites søger efter Bluetooth-enheder</translation> <translation id="5602586420788540146">Åbn i en ny fanegruppe</translation> <translation id="5605758115928394442">Der blev sendt en notifikation til din telefon til bekræftelse af din identitet.</translation> @@ -5853,7 +5845,6 @@ <translation id="5707185214361380026">Det var ikke muligt at indlæse udvidelsen fra:</translation> <translation id="5708171344853220004">Microsoft-hovednavn</translation> <translation id="5709557627224531708">Angiv Chrome som din standardbrowser</translation> -<translation id="5710122160114032242">Har ikke tilladelse til at åbne et vindue med integreret billede, når du skifter til en anden fane</translation> <translation id="5711010025974903573">Tjenestelogs</translation> <translation id="5711983031544731014">Enheden kan ikke låses op. Angiv din adgangskode.</translation> <translation id="5712153969432126546">Websites kan nogle gange udgive PDF-filer som f.eks. dokumenter, kontrakter og formularer</translation> @@ -6615,7 +6606,6 @@ <translation id="6326175484149238433">Fjern fra Chrome</translation> <translation id="6326855256003666642">Optælling af Keepalive</translation> <translation id="6327785803543103246">Automatisk registrering af webproxy</translation> -<translation id="6331818708794917058">Websites kan anmode om tilladelse til at oprette forbindelse til MIDI-enheder</translation> <translation id="6333064448949140209">Filen sendes til Google til fejlretning</translation> <translation id="6333170995003625229">Din mailadresse eller adgangskode kunne ikke verificeres. Prøv at logge ind igen.</translation> <translation id="6334267141726449402">Kopiér og send dette link til brugeren for at indsamle loggerne.</translation> @@ -6765,7 +6755,6 @@ <translation id="6458701200018867744">Upload mislykkedes (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Brug valg til Find</translation> <translation id="6459799433792303855">Det aktive vindue blev flyttet til en anden skærm.</translation> -<translation id="6460566145397380451">Har tilladelse til at oprette forbindelse til MIDI-enheder</translation> <translation id="6460601847208524483">Find næste</translation> <translation id="6461170143930046705">Søger efter netværk...</translation> <translation id="6463795194797719782">&Rediger</translation> @@ -7093,7 +7082,6 @@ <translation id="6735304988756581115">Vis cookies og andre websitedata...</translation> <translation id="6736243959894955139">Adresse</translation> <translation id="6737663862851963468">Fjern Kerberos-billet</translation> -<translation id="6737931010859480781">Denne app er forudinstalleret på din enhed</translation> <translation id="6738180164164974883">Giv tilladelse til at gemme tredjepartscookies</translation> <translation id="6738430949033571771">Verificerer kontoen...</translation> <translation id="6739923123728562974">Vis genvej på skrivebordet</translation> @@ -8487,7 +8475,6 @@ <translation id="7853747251428735">Flere værktø&jer</translation> <translation id="7853999103056713222">Brug en mere sikker adgangskode</translation> <translation id="7855678561139483478">Flyt fanen til et nyt vindue</translation> -<translation id="7855729579456690716">Websites kan åbne et vindue med integreret billede, når du skifter til en anden fane</translation> <translation id="7857004848504343806">Computeren indeholder et sikkerhedsmodul, som bruges til at implementere mange vigtige sikkerhedsfunktioner i ChromeOS Flex. Du kan få flere oplysninger i Hjælp til Chromebook: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Tekstforslag</translation> <translation id="7857949311770343000">Er dette den forventede side Ny fane?</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index 22a983e..79acbea 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> merkt sich, wie du dich angemeldet hast, und meldet dich wenn möglich automatisch an. Wenn diese Funktion deaktiviert ist, wirst du jedes Mal um eine Bestätigung gebeten.</translation> <translation id="1008544602823861396">wird daran gehindert, deine Informationen zu nutzen auf</translation> <translation id="1008557486741366299">Jetzt nicht</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Zum Schutz deiner Daten wurden einer Website, die du zwei Monate nicht besucht hast, Berechtigungen entzogen}other{Zum Schutz deiner Daten wurden Websites, die du zwei Monate nicht besucht hast, Berechtigungen entzogen}}</translation> <translation id="1009663062402466586">Spielsteuerung jetzt verfügbar</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Seite reagiert nicht}other{Seiten reagieren nicht}}</translation> <translation id="1011003645819296594">Gespeicherte Geräte</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Adr&esse des Links kopieren</translation> <translation id="1085064499066015002">Immer auf allen Websites</translation> <translation id="1085697365578766383">Fehler beim Starten der virtuellen Maschine. Bitte versuche es noch einmal.</translation> -<translation id="1087965115100412394">Websites dürfen keine Verbindung mit MIDI-Geräten herstellen</translation> <translation id="1088659085457112967">Lesemodus aktivieren</translation> <translation id="1090126737595388931">Es werden keine Apps im Hintergrund ausgeführt.</translation> <translation id="1090541560108055381">Prüfe vor dem Koppeln, ob dieser Code auf beiden Geräten übereinstimmt</translation> @@ -3203,7 +3201,6 @@ <translation id="3551320343578183772">Tab schließen</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Wird beim Beenden gelöscht</translation> -<translation id="3553487194781590058">Websites dürfen Fenster nicht als Bild im Bild öffnen, wenn zu einem anderen Tab gewechselt wird</translation> <translation id="3554493885489666172">Dein Gerät wird von <ph name="PROFILE_NAME" /> verwaltet. Administratoren können auf die Daten in jedem Profil auf diesem Gerät zugreifen.</translation> <translation id="3555812735919707620">Erweiterung entfernen</translation> <translation id="3557101512409028104">Mit Family Link den Web-Zugriff und die Bildschirmzeit begrenzen</translation> @@ -3762,7 +3759,6 @@ <translation id="3975201861340929143">Erklärung</translation> <translation id="3975565978598857337">Fehler bei Verbindungsaufbau mit Server für diesen Bereich</translation> <translation id="3976108569178263973">Es sind keine Drucker verfügbar.</translation> -<translation id="3976244126942806443">Websites stellen normalerweise zum Komponieren oder Bearbeiten von Musik eine Verbindung mit MIDI-Geräten her</translation> <translation id="397703832102027365">Aktualisierung wird abgeschlossen...</translation> <translation id="3977145907578671392">Einige Websites funktionieren im Inkognitomodus möglicherweise nicht richtig</translation> <translation id="3977886311744775419">Bei diesem Netzwerktyp werden keine automatischen Updates heruntergeladen. Du kannst aber manuell nach Updates suchen.</translation> @@ -4660,7 +4656,6 @@ <translation id="4730492586225682674">Letzte Notiz mit Eingabestift auf Sperrbildschirm</translation> <translation id="4730888769809690665">Benachrichtigungen zugelassen für <ph name="SITE" /></translation> <translation id="4731306954230393087">Darf Informationen nutzen, die zu deiner Person gespeichert wurden</translation> -<translation id="473140019006744096">Auf diesem Gerät ist nicht genügend Platz, um dieses Update durchzuführen. Bereinige <ph name="NECESSARY_SPACE" /> auf dem Gerät und versuch es dann noch einmal.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (links)</translation> <translation id="4733793249294335256">Ort</translation> <translation id="473546211690256853">Dieses Konto wird von <ph name="DOMAIN" /> verwaltet.</translation> @@ -5358,7 +5353,6 @@ <translation id="5327912693242073631">Funktionen, die Benachrichtigungen erfordern, funktionieren dann nicht</translation> <translation id="532943162177641444">Tippe auf die Benachrichtigung auf deinem <ph name="PHONE_NAME" />, um einen mobilen Hotspot einzurichten, den dieses Gerät nutzen kann.</translation> <translation id="5329858601952122676">&Löschen</translation> -<translation id="5330592967519769658">Dürfen Fenster als Bild im Bild öffnen, wenn zu einem anderen Tab gewechselt wird</translation> <translation id="5331069282670671859">In dieser Kategorie befinden sich keine Zertifikate</translation> <translation id="5331568967879689647">Chrome OS-System-App</translation> <translation id="5331975486040154427">USB-C-Gerät (Port hinten links)</translation> @@ -5536,7 +5530,6 @@ <translation id="5473099001878321374">Wenn du fortfährst, stimmst du zu, dass auf diesem Gerät auch automatisch Updates und Apps von Google, vom Mobilfunkanbieter deines Kindes und vom Hersteller dieses Geräts abgerufen und installiert werden dürfen, möglicherweise über eine mobile Datenverbindung. Bei einigen dieser Apps werden eventuell In-App-Käufe angeboten.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Die PIN muss aus mindestens 1 Zeichen bestehen}other{Die PIN muss aus mindestens # Zeichen bestehen}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> erfordert, dass du dein Gerät jetzt mit dem WLAN verbindest und ein Update herunterlädst. Das Update kann auch über eine kostenpflichtige Verbindung heruntergeladen werden (hierfür können zusätzliche Gebühren anfallen).</translation> -<translation id="5478520208448702555">Websites können Fenster als Bild im Bild öffnen, wenn zu einem anderen Tab gewechselt wird</translation> <translation id="5481273127572794904">Dürfen nicht automatisch mehrere Dateien herunterladen</translation> <translation id="5481941284378890518">Drucker in der Nähe hinzufügen</translation> <translation id="5484181871714116891">Wenn diese Option aktiviert ist, werden Passkeys im iCloud-Schlüsselbund erstellt und sind auf allen deinen Apple-Geräten verfügbar. Wenn sie deaktiviert ist, werden Passkeys in deinem Chrome-Profil auf diesem Gerät erstellt.</translation> @@ -5694,7 +5687,6 @@ <translation id="5600348067066185292">Die Installation ist einfach und gelingt in wenigen Schritten. Du musst noch einmal alles bestätigen, bevor Änderungen an deinem Computer vorgenommen werden.</translation> <translation id="5600706100022181951">Der Download des Updates verbraucht <ph name="UPDATE_SIZE_MB" /> MB an mobilen Daten. Möchtest du fortfahren?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Dürfen keine Verbindung mit MIDI-Geräten herstellen</translation> <translation id="5601833336918638013">Websites dürfen nicht darum bitten, nach Bluetooth-Geräten zu suchen</translation> <translation id="5602586420788540146">In neuer Tabgruppe öffnen</translation> <translation id="5605758115928394442">An dein Smartphone wurde eine Benachrichtigung gesendet, um deine Identität zu bestätigen.</translation> @@ -5814,7 +5806,6 @@ <translation id="5707185214361380026">Fehler beim Laden der Erweiterung aus:</translation> <translation id="5708171344853220004">Microsoft-Prinzipalname</translation> <translation id="5709557627224531708">Chrome als Standardbrowser festlegen</translation> -<translation id="5710122160114032242">Dürfen Fenster nicht als Bild im Bild öffnen, wenn zu einem anderen Tab gewechselt wird</translation> <translation id="5711010025974903573">Dienstprotokolle</translation> <translation id="5711983031544731014">Entsperren nicht möglich. Bitte gib dein Passwort ein.</translation> <translation id="5712153969432126546">Websites veröffentlichen manchmal PDFs wie Dokumente, Verträge und Formulare</translation> @@ -6571,7 +6562,6 @@ <translation id="6326175484149238433">Aus Chrome entfernen</translation> <translation id="6326855256003666642">Keepalive-Zahl</translation> <translation id="6327785803543103246">Web-Proxy Autodiscovery</translation> -<translation id="6331818708794917058">Websites dürfen nachfragen, wenn sie eine Verbindung mit MIDI-Geräten herstellen möchten</translation> <translation id="6333064448949140209">Datei wird zur Fehlerbehebung an Google gesendet</translation> <translation id="6333170995003625229">Deine E-Mail-Adresse oder dein Passwort konnte nicht bestätigt werden. Melde dich noch einmal an.</translation> <translation id="6334267141726449402">Kopiere diesen Link und sende ihn an den Nutzer, um die Protokolle zu erfassen.</translation> @@ -6721,7 +6711,6 @@ <translation id="6458701200018867744">Upload fehlgeschlagen (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Auswahl für Suche übernehmen</translation> <translation id="6459799433792303855">Aktives Fenster auf anderen Bildschirm verschoben.</translation> -<translation id="6460566145397380451">Dürfen eine Verbindung mit MIDI-Geräten herstellen</translation> <translation id="6460601847208524483">Weitersuchen (vorwärts)</translation> <translation id="6461170143930046705">Netzwerke werden gesucht…</translation> <translation id="6463795194797719782">B&earbeiten</translation> @@ -7047,7 +7036,6 @@ <translation id="6735304988756581115">Cookies und andere Websitedaten anzeigen...</translation> <translation id="6736243959894955139">Adresse</translation> <translation id="6737663862851963468">Kerberos-Ticket entfernen</translation> -<translation id="6737931010859480781">Diese App ist auf deinem Gerät vorinstalliert</translation> <translation id="6738180164164974883">Drittanbieter-Cookies zulassen</translation> <translation id="6738430949033571771">Konto wird überprüft…</translation> <translation id="6739923123728562974">Desktopverknüpfung einblenden</translation> @@ -8437,7 +8425,6 @@ <translation id="7853747251428735">Weitere Too&ls</translation> <translation id="7853999103056713222">Sichereres Passwort verwenden</translation> <translation id="7855678561139483478">Tab in ein neues Fenster verschieben</translation> -<translation id="7855729579456690716">Websites können Fenster als Bild im Bild öffnen, wenn zu einem anderen Tab gewechselt wird</translation> <translation id="7857004848504343806">Dein Computer enthält ein Sicherheitsmodul, über das viele wichtige Sicherheitsfunktionen in Chrome OS Flex implementiert werden. Weitere Informationen dazu findest du in der Chromebook-Hilfe unter https://support.google.com/chromebook/?p=sm.</translation> <translation id="7857093393627376423">Textvorschläge</translation> <translation id="7857949311770343000">Ist das die „Neuer Tab“-Seite, die du erwartet hattest?</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 924c4b3..a1b20e2 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">Το <ph name="BRAND" /> θυμάται πώς συνδεθήκατε και σας συνδέει αυτόματα όταν είναι δυνατό. Όταν είναι απενεργοποιημένη αυτή η ρύθμιση, θα σας ζητείται επιβεβαίωση κάθε φορά.</translation> <translation id="1008544602823861396">έχει αποκλειστεί από τη χρήση των πληροφοριών σας στο</translation> <translation id="1008557486741366299">Όχι τώρα</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Για την προστασία των δεδομένων σας, οι άδειες καταργήθηκαν από έναν ιστότοπο που δεν έχετε επισκεφτεί για 2 μήνες}other{Για την προστασία των δεδομένων σας, οι άδειες καταργήθηκαν από τους ιστοτόπους που δεν έχετε επισκεφτεί για 2 μήνες}}</translation> <translation id="1009663062402466586">Τα στοιχεία ελέγχου παιχνιδιού είναι πλέον διαθέσιμα</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Μη ανταποκρίσιμη σελίδα}other{Μη ανταποκρίσιμες σελίδες}}</translation> <translation id="1011003645819296594">Αποθηκευμένες συσκευές</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Αντιγραφή διεύθυνσης &συνδέσμου</translation> <translation id="1085064499066015002">Πάντα σε όλους τους ιστοτόπους</translation> <translation id="1085697365578766383">Σφάλμα έναρξης του εικονικού μηχανήματος. Προσπαθήστε ξανά.</translation> -<translation id="1087965115100412394">Να μην επιτρέπεται στους ιστοτόπους να συνδέονται σε συσκευές MIDI</translation> <translation id="1088659085457112967">Είσοδος σε λειτουργία ανάγνωσης</translation> <translation id="1090126737595388931">Δεν εκτελούνται εφαρμογές φόντου</translation> <translation id="1090541560108055381">Πριν από τη σύζευξη, βεβαιωθείτε ότι αυτός ο κωδικός είναι ο ίδιος και στις δύο συσκευές.</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">Κλείσιμο Καρτέλας</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Διαγραφή κατά την έξοδο</translation> -<translation id="3553487194781590058">Να μην επιτρέπεται στους ιστοτόπους το άνοιγμα ενός παραθύρου picture-in-picture όταν μεταβαίνετε σε διαφορετική καρτέλα</translation> <translation id="3554493885489666172">Η διαχείριση της συσκευής σας γίνεται από τον διαχειριστή <ph name="PROFILE_NAME" />. Οι διαχειριστές μπορούν να αποκτήσουν πρόσβαση στα δεδομένα οποιουδήποτε προφίλ σε αυτήν τη συσκευή.</translation> <translation id="3555812735919707620">Κατάργηση επέκτασης</translation> <translation id="3557101512409028104">Ορίστε περιορισμούς ιστοτόπων και όρια χρόνου χρήσης με το Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Εξήγηση</translation> <translation id="3975565978598857337">Η επικοινωνία με τον διακομιστή για realm απέτυχε</translation> <translation id="3976108569178263973">Δεν υπάρχουν διαθέσιμοι εκτυπωτές.</translation> -<translation id="3976244126942806443">Οι ιστότοποι συνδέονται συνήθως σε συσκευές MIDI για τη δημιουργία και την επεξεργασία μουσικής</translation> <translation id="397703832102027365">Ολοκλήρωση…</translation> <translation id="3977145907578671392">Οι λειτουργίες σε ορισμένους ιστοτόπους ενδέχεται να μην λειτουργούν σε ανώνυμη περιήγηση.</translation> <translation id="3977886311744775419">Δεν πραγματοποιείται λήψη αυτόματων ενημερώσεων σε αυτόν τον τύπο δικτύου, αλλά μπορείτε να ελέγξετε για ενημερώσεις με μη αυτόματο τρόπο.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Πιο πρόσφατη σημείωση με γραφίδα στην οθόνη κλειδώματος</translation> <translation id="4730888769809690665">Επιτρέπονται οι ειδοποιήσεις για τον ιστότοπο <ph name="SITE" /></translation> <translation id="4731306954230393087">Επιτρέπεται να χρησιμοποιεί πληροφορίες που έχει αποθηκεύσει σχετικά με εσάς</translation> -<translation id="473140019006744096">Δεν υπάρχει αρκετός χώρος σε αυτήν τη συσκευή για την ολοκλήρωση αυτής της ενημέρωσης. Αποδεσμεύστε <ph name="NECESSARY_SPACE" /> κάνοντας εκκαθάριση στη συσκευή σας, και προσπαθήστε ξανά.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Αριστερό)</translation> <translation id="4733793249294335256">Τοποθεσία</translation> <translation id="473546211690256853">Η διαχείριση αυτού του λογαριασμού γίνεται από τον τομέα <ph name="DOMAIN" />.</translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">Οι λειτουργίες που απαιτούν ειδοποιήσεις δεν θα είναι διαθέσιμες</translation> <translation id="532943162177641444">Πατήστε στην ειδοποίηση στο τηλέφωνο <ph name="PHONE_NAME" /> για να ρυθμίσετε το σημείο πρόσβασης Wi-Fi για κινητά που μπορεί να χρησιμοποιηθεί από αυτήν τη συσκευή.</translation> <translation id="5329858601952122676">&Διαγραφή</translation> -<translation id="5330592967519769658">Επιτρέπεται το άνοιγμα ενός παραθύρου picture-in-picture όταν μεταβαίνετε σε διαφορετική καρτέλα</translation> <translation id="5331069282670671859">Δεν έχετε πιστοποιητικά σε αυτή την κατηγορία</translation> <translation id="5331568967879689647">Εφαρμογή συστήματος Chrome OS</translation> <translation id="5331975486040154427">Συσκευή USB-C (πίσω αριστερή θύρα)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">Εάν συνεχίσετε, αποδέχεστε ότι αυτή η συσκευή θα μπορεί επίσης να κατεβάζει και να εγκαθιστά αυτόματα ενημερώσεις και εφαρμογές από την Google, την εταιρεία κινητής τηλεφωνίας που χρησιμοποιεί το παιδί σας και τον κατασκευαστή αυτής της συσκευής, πιθανόν με τη χρήση δεδομένων κινητής τηλεφωνίας. Μερικές από αυτές τις εφαρμογές μπορεί να προσφέρουν αγορές εντός εφαρμογής.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Το PIN πρέπει να αποτελείται τουλάχιστον από έναν χαρακτήρα.}other{Το PIN πρέπει να αποτελείται τουλάχιστον από # χαρακτήρες.}}</translation> <translation id="5474859849784484111">Ο τομέας <ph name="MANAGER" /> απαιτεί να συνδεθείτε άμεσα σε Wi-Fi και να κατεβάσετε μια ενημέρωση. Εναλλακτικά, μπορείτε να την κατεβάσετε από μια σύνδεση με ογκοχρέωση (ενδέχεται να ισχύουν χρεώσεις).</translation> -<translation id="5478520208448702555">Οι ιστότοποι ενδέχεται να ανοίξουν ένα παράθυρο picture-in-picture όταν μεταβαίνετε σε διαφορετική καρτέλα</translation> <translation id="5481273127572794904">Δεν επιτρέπεται να πραγματοποιούν αυτόματη λήψη πολλών αρχείων</translation> <translation id="5481941284378890518">Προσθήκη εκτυπωτών σε κοντινή απόσταση</translation> <translation id="5484181871714116891">Όταν είναι ενεργοποιημένα, τα κλειδιά πρόσβασης δημιουργούνται στο iCloud Keychain και είναι διαθέσιμα σε όλες τις συσκευές σας Apple. Όταν είναι απενεργοποιημένα, τα κλειδιά πρόσβασης δημιουργούνται στο προφίλ σας Chrome σε αυτήν τη συσκευή.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">Για την εγκατάσταση απαιτούνται μόνο λίγα απλά βήματα. Θα έχετε και άλλη ευκαιρία να επιβεβαιώσετε πριν γίνουν αλλαγές στον υπολογιστή σας.</translation> <translation id="5600706100022181951">Η λήψη της ενημέρωσης απαιτεί <ph name="UPDATE_SIZE_MB" /> MB δεδομένων κινητής τηλεφωνίας. Θέλετε να συνεχίσετε;</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Δεν επιτρέπεται να συνδέονται σε συσκευές MIDI</translation> <translation id="5601833336918638013">Να μην επιτρέπεται στους ιστοτόπους να κάνουν αναζήτηση για συσκευές Bluetooth</translation> <translation id="5602586420788540146">Άνοιγμα σε νέα ομάδα καρτελών</translation> <translation id="5605758115928394442">Στάλθηκε μια ειδοποίηση στο τηλέφωνό σας για την επιβεβαίωση της ταυτότητάς σας.</translation> @@ -5853,7 +5845,6 @@ <translation id="5707185214361380026">Αποτυχία φόρτωσης επέκτασης από:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Ορισμός του Chrome ως προεπιλεγμένο πρόγραμμα περιήγησης</translation> -<translation id="5710122160114032242">Δεν επιτρέπεται το άνοιγμα ενός παραθύρου picture-in-picture όταν μεταβαίνετε σε διαφορετική καρτέλα</translation> <translation id="5711010025974903573">Αρχεία καταγραφής υπηρεσίας</translation> <translation id="5711983031544731014">Το ξεκλείδωμα δεν είναι δυνατό. Πληκτρολογήστε τον κωδικό πρόσβασής σας.</translation> <translation id="5712153969432126546">Οι ιστότοποι μερικές φορές δημοσιεύουν PDF, όπως έγγραφα, συμβόλαια και φόρμες.</translation> @@ -6615,7 +6606,6 @@ <translation id="6326175484149238433">Κατάργηση από το Chrome</translation> <translation id="6326855256003666642">Πλήθος Keepalive</translation> <translation id="6327785803543103246">Αυτόματη ανακάλυψη διακομιστή μεσολάβησης ιστού</translation> -<translation id="6331818708794917058">Οι ιστότοποι μπορούν να ζητούν τη σύνδεση σε συσκευές MIDI</translation> <translation id="6333064448949140209">Το αρχείο θα σταλεί στην Google για εντοπισμό σφαλμάτων</translation> <translation id="6333170995003625229">Δεν ήταν δυνατή η επαλήθευση της διεύθυνσης ηλεκτρονικού ταχυδρομείου ή του κωδικού πρόσβασής σας. Δοκιμάστε να συνδεθείτε ξανά.</translation> <translation id="6334267141726449402">Αντιγράψτε και στείλτε αυτόν τον σύνδεσμο στον χρήστη για τη συλλογή των αρχείων καταγραφής.</translation> @@ -6765,7 +6755,6 @@ <translation id="6458701200018867744">Η μεταφόρτωση απέτυχε (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Χρήση Επιλογής για Εύρεση</translation> <translation id="6459799433792303855">Το ενεργό παράθυρο μετακινήθηκε στη άλλη οθόνη.</translation> -<translation id="6460566145397380451">Επιτρέπεται να συνδέονται σε συσκευές MIDI</translation> <translation id="6460601847208524483">Εύρεση επόμενου</translation> <translation id="6461170143930046705">Αναζήτηση δικτύων…</translation> <translation id="6463795194797719782">Επε&ξεργασία</translation> @@ -7091,7 +7080,6 @@ <translation id="6735304988756581115">Εμφάνιση cookie και άλλων δεδομένων ιστότοπου...</translation> <translation id="6736243959894955139">Διεύθυνση</translation> <translation id="6737663862851963468">Κατάργηση εισιτηρίου Kerberos</translation> -<translation id="6737931010859480781">Αυτή η εφαρμογή είναι προεγκατεστημένη στη συσκευή σας</translation> <translation id="6738180164164974883">Να επιτρέπεται ο ορισμός cookie τρίτου μέρους</translation> <translation id="6738430949033571771">Επαλήθευση λογαριασμού…</translation> <translation id="6739923123728562974">Εμφάνιση συντόμευσης επιφάνειας εργασίας</translation> @@ -8486,7 +8474,6 @@ <translation id="7853747251428735">Περισσότερα Ε&ργαλεία</translation> <translation id="7853999103056713222">Χρησιμοποιήστε έναν πιο ασφαλή κωδικό πρόσβασης</translation> <translation id="7855678561139483478">Μετακίνηση καρτέλας σε νέο παράθυρο</translation> -<translation id="7855729579456690716">Οι ιστότοποι μπορούν να ανοίξουν ένα παράθυρο picture-in-picture όταν μεταβαίνετε σε διαφορετική καρτέλα</translation> <translation id="7857004848504343806">Ο υπολογιστής σας περιέχει μια μονάδα ασφαλείας, η οποία χρησιμοποιείται για την εφαρμογή πολλών κρίσιμων λειτουργιών ασφαλείας στο ChromeOS Flex. Επισκεφτείτε το Κέντρο βοήθειας του Chromebook, για να μάθετε περισσότερα: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Προτάσεις κειμένου</translation> <translation id="7857949311770343000">Είναι αυτή η σελίδα νέας καρτέλας που περιμένατε να δείτε;</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 0c43fa2..a56208a 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> remembers how you signed in and automatically signs you in when possible. When off, you'll be asked for confirmation every time.</translation> <translation id="1008544602823861396">is blocked from using your info on</translation> <translation id="1008557486741366299">Not Now</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{To protect your data, permissions were removed from a site that you haven't visited in two months}other{To protect your data, permissions were removed from sites that you haven't visited in two months}}</translation> <translation id="1009663062402466586">Game controls now available</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Page Unresponsive}other{Pages Unresponsive}}</translation> <translation id="1011003645819296594">Saved devices</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copy link addr&ess</translation> <translation id="1085064499066015002">Always on all sites</translation> <translation id="1085697365578766383">Error starting the virtual machine. Please try again.</translation> -<translation id="1087965115100412394">Don't allow sites to connect to MIDI devices</translation> <translation id="1088659085457112967">Enter Reader Mode</translation> <translation id="1090126737595388931">No Background Apps Running</translation> <translation id="1090541560108055381">Before pairing, make sure that this code is the same on both devices</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">Close Tab</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Cleared on exit</translation> -<translation id="3553487194781590058">Don't allow sites to open a picture-in-picture window when you change to a different tab</translation> <translation id="3554493885489666172">Your device is managed by <ph name="PROFILE_NAME" />. Administrators can access the data in any profile on this device.</translation> <translation id="3555812735919707620">Remove extension</translation> <translation id="3557101512409028104">Set website restrictions and screen time limits with Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Explanation</translation> <translation id="3975565978598857337">Contacting server for realm failed</translation> <translation id="3976108569178263973">There are no available printers.</translation> -<translation id="3976244126942806443">Sites usually connect to MIDI devices for creating and editing music</translation> <translation id="397703832102027365">Finalising...</translation> <translation id="3977145907578671392">Features on some sites may not work in Incognito</translation> <translation id="3977886311744775419">Automatic updates don't download on this network type, but you can check for updates manually.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Stylus latest note on lock screen</translation> <translation id="4730888769809690665">Notifications allowed for <ph name="SITE" /></translation> <translation id="4731306954230393087">Allowed to use info they've saved about you</translation> -<translation id="473140019006744096">There isn't enough space on this device to complete this update. Clear up <ph name="NECESSARY_SPACE" /> on your device and try again.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (left)</translation> <translation id="4733793249294335256">Location</translation> <translation id="473546211690256853">This account is managed by <ph name="DOMAIN" /></translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">Features that need notifications won't work</translation> <translation id="532943162177641444">Tap the notification on your <ph name="PHONE_NAME" /> to set up the mobile hotspot that can be used by this device.</translation> <translation id="5329858601952122676">&Delete</translation> -<translation id="5330592967519769658">Allowed to open a picture-in-picture window when you change to a different tab</translation> <translation id="5331069282670671859">You have no certificates in this category</translation> <translation id="5331568967879689647">Chrome OS system app</translation> <translation id="5331975486040154427">USB-C device (left side back port)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">By continuing, you agree that this device may also automatically download and install updates and apps from Google, your child's operator and this device's manufacturer, possibly using mobile data. Some of these apps may offer in-app purchases.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN must be at least one character}other{PIN must be at least # characters}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> requires you to connect to Wi-Fi now and download an update. Or, download from a metered connection (charges may apply).</translation> -<translation id="5478520208448702555">Sites might open a picture-in-picture window when you change to a different tab</translation> <translation id="5481273127572794904">Not allowed to automatically download multiple files</translation> <translation id="5481941284378890518">Add Nearby Printers</translation> <translation id="5484181871714116891">When on, passkeys are created in iCloud Keychain and are available across your Apple devices. When off, passkeys are created in your Chrome profile on this device.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">Installation takes a few easy steps. You’ll have another chance to confirm before changes are made to your computer.</translation> <translation id="5600706100022181951">Update will be downloaded using <ph name="UPDATE_SIZE_MB" /> MB of mobile data. Would you like to continue?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Not allowed to connect to MIDI devices</translation> <translation id="5601833336918638013">Don't allow sites to look for Bluetooth devices</translation> <translation id="5602586420788540146">Open in new tab group</translation> <translation id="5605758115928394442">A notification was sent to your phone to confirm that it's you.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">Failed to load extension from:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Set Chrome as your default browser</translation> -<translation id="5710122160114032242">Not allowed to open a picture-in-picture window when you change to a different tab</translation> <translation id="5711010025974903573">Service logs</translation> <translation id="5711983031544731014">Unable to unlock. Enter your password.</translation> <translation id="5712153969432126546">Sites sometimes publish PDFs, like documents, contracts and forms</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Remove from Chrome</translation> <translation id="6326855256003666642">Keepalive Count</translation> <translation id="6327785803543103246">Web proxy auto-discovery</translation> -<translation id="6331818708794917058">Sites can ask to connect to MIDI devices</translation> <translation id="6333064448949140209">File will be sent to Google for debugging</translation> <translation id="6333170995003625229">Your email address or password couldn't be verified. Try signing in again.</translation> <translation id="6334267141726449402">Copy and send this link to the user to collect the logs.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">Upload failed (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Use Selection for Find</translation> <translation id="6459799433792303855">Active window moved to another display.</translation> -<translation id="6460566145397380451">Allowed to connect to MIDI devices</translation> <translation id="6460601847208524483">Find Next</translation> <translation id="6461170143930046705">Searching for networks...</translation> <translation id="6463795194797719782">&Edit</translation> @@ -7090,7 +7079,6 @@ <translation id="6735304988756581115">Show cookies and other site data...</translation> <translation id="6736243959894955139">Address</translation> <translation id="6737663862851963468">Remove Kerberos ticket</translation> -<translation id="6737931010859480781">This app is pre-installed on your device</translation> <translation id="6738180164164974883">Allow to set third-party cookies</translation> <translation id="6738430949033571771">Verifying account…</translation> <translation id="6739923123728562974">Show desktop shortcut</translation> @@ -8485,7 +8473,6 @@ <translation id="7853747251428735">More Too&ls</translation> <translation id="7853999103056713222">Use a Safer Password</translation> <translation id="7855678561139483478">Move tab to new window</translation> -<translation id="7855729579456690716">Sites can open a picture-in-picture window when you change to a different tab</translation> <translation id="7857004848504343806">Your computer contains a secure module, which is used to implement many critical security features in Chrome OS Flex. Visit the Chromebook Help Centre to learn more: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Text suggestions</translation> <translation id="7857949311770343000">Is this the new tab page that you were expecting?</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index 8f1bdf3..e0d4105 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">El <ph name="BRAND" /> recuerda cómo ingresaste y te da acceso de forma automática cuando es posible. Si esta función está desactivada, siempre se te solicitará confirmación.</translation> <translation id="1008544602823861396">no puede utilizar tu información en</translation> <translation id="1008557486741366299">Ahora no</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Para proteger tus datos, se quitaron los permisos de un sitio que no visitaste en 2 meses.}other{Para proteger tus datos, se quitaron los permisos de los sitios que no visitaste en 2 meses.}}</translation> <translation id="1009663062402466586">Los controles de juego ya están disponibles</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{La página no responde.}other{Las páginas no responden.}}</translation> <translation id="1011003645819296594">Dispositivos guardados</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copiar dir&ección del vínculo</translation> <translation id="1085064499066015002">Siempre en todos los sitios</translation> <translation id="1085697365578766383">Se produjo un error al iniciar la máquina virtual. Vuelve a intentarlo.</translation> -<translation id="1087965115100412394">No permitir que los sitios se conecten a dispositivos MIDI</translation> <translation id="1088659085457112967">Ingresar al modo de lectura</translation> <translation id="1090126737595388931">No se ejecutan aplicaciones de fondo</translation> <translation id="1090541560108055381">Verifica que este código sea igual en ambos dispositivos para poder vincularlos</translation> @@ -3214,7 +3212,6 @@ <translation id="3551320343578183772">Cerrar pestaña</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Borrar al salir</translation> -<translation id="3553487194781590058">No permitir que los sitios abran una ventana de pantalla en pantalla cuando cambias de pestaña</translation> <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> administra tu dispositivo. Los administradores pueden acceder a los datos de cualquier perfil en este dispositivo.</translation> <translation id="3555812735919707620">Eliminar extensión</translation> <translation id="3557101512409028104">Establece restricciones de sitios web y limita el tiempo de uso con Family Link</translation> @@ -3773,7 +3770,6 @@ <translation id="3975201861340929143">Explicación</translation> <translation id="3975565978598857337">Comunicándose con el servidor debido a un error en el dominio</translation> <translation id="3976108569178263973">No hay impresoras disponibles.</translation> -<translation id="3976244126942806443">Por lo general, los sitios se conectan a dispositivos MIDI para crear y editar música</translation> <translation id="397703832102027365">Finalizando...</translation> <translation id="3977145907578671392">Es posible que las funciones de algunos sitios no funcionen en el modo Incógnito.</translation> <translation id="3977886311744775419">Las actualizaciones automáticas no se descargan en este tipo de red, pero puedes buscar actualizaciones de forma manual.</translation> @@ -4673,7 +4669,6 @@ <translation id="4730492586225682674">Nota más reciente con la pluma stylus en la pantalla de bloqueo</translation> <translation id="4730888769809690665">Se permiten notificaciones para <ph name="SITE" /></translation> <translation id="4731306954230393087">Pueden usar la información que guardaron sobre ti</translation> -<translation id="473140019006744096">No hay espacio suficiente en el dispositivo para completar la actualización. Limpia <ph name="NECESSARY_SPACE" /> en el dispositivo y vuelve a intentarlo.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (izquierdo)</translation> <translation id="4733793249294335256">Ubicación</translation> <translation id="473546211690256853">Esta cuenta está administrada por <ph name="DOMAIN" />.</translation> @@ -5375,7 +5370,6 @@ <translation id="5327912693242073631">No se habilitarán las funciones que necesitan notificaciones.</translation> <translation id="532943162177641444">Presiona la notificación en tu <ph name="PHONE_NAME" /> para configurar la zona móvil que puede usar este dispositivo.</translation> <translation id="5329858601952122676">&Suprimir</translation> -<translation id="5330592967519769658">Puede abrir una ventana de pantalla en pantalla cuando cambias de pestaña</translation> <translation id="5331069282670671859">No tienes certificados en esta categoría</translation> <translation id="5331568967879689647">App del sistema de ChromeOS</translation> <translation id="5331975486040154427">Dispositivo USB-C (puerto lateral izquierdo trasero)</translation> @@ -5553,7 +5547,6 @@ <translation id="5473099001878321374">Si continúas, aceptas que este dispositivo pueda descargar e instalar automáticamente actualizaciones y apps de Google, del operador de tu hijo y del fabricante del dispositivo, y que incluso use datos móviles para ello. Es posible que algunas de estas apps ofrezcan compras directas desde la aplicación.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{El PIN debe tener al menos un carácter}other{El PIN debe tener al menos # caracteres}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> requiere que te conectes a una red Wi-Fi ahora y descargues una actualización. También puedes descargarla con una conexión de uso medido (es posible que se apliquen cargos).</translation> -<translation id="5478520208448702555">Es posible que los sitios abran una ventana de pantalla en pantalla cuando cambias de pestaña</translation> <translation id="5481273127572794904">No puede descargar múltiples archivos de forma automática</translation> <translation id="5481941284378890518">Agregar impresoras cercanas</translation> <translation id="5484181871714116891">Si activas esta opción, las llaves de acceso se crean en el llavero de iCloud y están disponibles en todos tus dispositivos Apple. Si la desactivas, se crean las llaves de acceso en tu perfil de Chrome en este dispositivo.</translation> @@ -5711,7 +5704,6 @@ <translation id="5600348067066185292">La instalación se lleva a cabo con unos pocos pasos sencillos. Tendrás otra oportunidad para confirmar esta acción antes de que se apliquen los cambios en tu computadora.</translation> <translation id="5600706100022181951">Para descargar la actualización, se usarán <ph name="UPDATE_SIZE_MB" /> MB de datos móviles. ¿Deseas continuar?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">No puede conectarse con dispositivos MIDI</translation> <translation id="5601833336918638013">No permitir que los sitios busquen dispositivos Bluetooth</translation> <translation id="5602586420788540146">Abrir en un nuevo grupo de pestañas</translation> <translation id="5605758115928394442">Se envió una notificación a tu teléfono para confirmar que eres tú</translation> @@ -5833,7 +5825,6 @@ <translation id="5707185214361380026">Error al cargar la extensión desde:</translation> <translation id="5708171344853220004">Nombre principal de Microsoft</translation> <translation id="5709557627224531708">Establecer Chrome como tu navegador predeterminado</translation> -<translation id="5710122160114032242">No puede abrir una ventana de pantalla en pantalla cuando cambias de pestaña</translation> <translation id="5711010025974903573">Registros de servicio</translation> <translation id="5711983031544731014">No se puede desbloquear. Ingresa la contraseña.</translation> <translation id="5712153969432126546">A veces, los sitios publican archivos PDF, como documentos, contratos y formularios</translation> @@ -6595,7 +6586,6 @@ <translation id="6326175484149238433">Quitar de Chrome</translation> <translation id="6326855256003666642">Número de actividades en curso</translation> <translation id="6327785803543103246">Detección automática de proxy web</translation> -<translation id="6331818708794917058">Permitir que los sitios soliciten permiso para conectarse con dispositivos MIDI</translation> <translation id="6333064448949140209">El archivo se enviará a Google para eliminar fallos</translation> <translation id="6333170995003625229">No se pudo verificar tu dirección de correo electrónico o contraseña. Inténtalo de nuevo.</translation> <translation id="6334267141726449402">Copia y envía este vínculo al usuario para recopilar los registros.</translation> @@ -6745,7 +6735,6 @@ <translation id="6458701200018867744">No se pudo realizar la descarga (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Usar la selección para buscar</translation> <translation id="6459799433792303855">La ventana activa se movió a otra pantalla.</translation> -<translation id="6460566145397380451">Puede conectarse a dispositivos MIDI</translation> <translation id="6460601847208524483">Buscar siguiente</translation> <translation id="6461170143930046705">Buscando redes…</translation> <translation id="6463795194797719782">&Edición</translation> @@ -7071,7 +7060,6 @@ <translation id="6735304988756581115">Mostrar cookies y otros datos de sitio...</translation> <translation id="6736243959894955139">Dirección</translation> <translation id="6737663862851963468">Quitar el ticket de Kerberos</translation> -<translation id="6737931010859480781">Esta app está preinstalada en tu dispositivo.</translation> <translation id="6738180164164974883">Permitir la configuración de cookies de terceros</translation> <translation id="6738430949033571771">Verificando la cuenta…</translation> <translation id="6739923123728562974">Mostrar acceso directo de escritorio</translation> @@ -8466,7 +8454,6 @@ <translation id="7853747251428735">&Más herramientas</translation> <translation id="7853999103056713222">Usa una contraseña más segura</translation> <translation id="7855678561139483478">Mueve la pestaña a una ventana nueva</translation> -<translation id="7855729579456690716">Los sitios pueden abrir una ventana de pantalla en pantalla cuando cambias de pestaña</translation> <translation id="7857004848504343806">Tu computadora cuenta con un módulo de seguridad que se usa para implementar varias funciones clave de seguridad en ChromeOS Flex. Para obtener más información, visita el Centro de ayuda de Chromebook: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Sugerencias de texto</translation> <translation id="7857949311770343000">¿Esta es la página Nueva pestaña que esperabas ver?</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index 31a8d20fb..11a82600 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> recuerda cómo has iniciado sesión e inicia tu sesión automáticamente cuando sea posible. Si esta opción está desactivada, se te pedirá confirmación siempre.</translation> <translation id="1008544602823861396">no puede usar tu información en</translation> <translation id="1008557486741366299">Ahora no</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Para proteger tus datos, se han quitado los permisos de un sitio que llevas 2 meses sin visitar}other{Para proteger tus datos, se han quitado los permisos de sitios que llevas 2 meses sin visitar}}</translation> <translation id="1009663062402466586">Controles de juegos ya disponibles</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{La página no responde}other{Las páginas no responden}}</translation> <translation id="1011003645819296594">Dispositivos guardados</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copiar dir&ección de enlace</translation> <translation id="1085064499066015002">Siempre en todos los sitios</translation> <translation id="1085697365578766383">No se ha podido iniciar la máquina virtual. Inténtalo de nuevo.</translation> -<translation id="1087965115100412394">No permitir que los sitios se conecten a dispositivos MIDI</translation> <translation id="1088659085457112967">Activar modo de lectura</translation> <translation id="1090126737595388931">No se están ejecutando aplicaciones en segundo plano.</translation> <translation id="1090541560108055381">Antes de emparejar los dispositivos, comprueba que este código sea el mismo en ambos</translation> @@ -3218,7 +3216,6 @@ <translation id="3551320343578183772">Cerrar pestaña</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" />: <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Borrar al salir</translation> -<translation id="3553487194781590058">No permitir que los sitios abran una ventana de imagen en imagen cuando cambies de pestaña</translation> <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> gestiona tu dispositivo. Los administradores pueden acceder a los datos de cualquier perfil de este dispositivo.</translation> <translation id="3555812735919707620">Eliminar extensión</translation> <translation id="3557101512409028104">Define restricciones de sitios web y límites de tiempo de pantalla con Family Link</translation> @@ -3776,7 +3773,6 @@ <translation id="3975201861340929143">Explicación</translation> <translation id="3975565978598857337">Se ha producido un error al contactar con el servidor del dominio</translation> <translation id="3976108569178263973">No hay impresoras disponibles.</translation> -<translation id="3976244126942806443">Los sitios se suelen conectar a dispositivos MIDI para crear y editar música</translation> <translation id="397703832102027365">Finalizando...</translation> <translation id="3977145907578671392">Es posible que las funciones de algunos sitios web no funcionen en incógnito.</translation> <translation id="3977886311744775419">Este tipo de red no admite que se descarguen actualizaciones de forma automática, pero puedes buscar actualizaciones manualmente.</translation> @@ -4676,7 +4672,6 @@ <translation id="4730492586225682674">Última nota tomada con lápiz óptico en la pantalla de bloqueo</translation> <translation id="4730888769809690665"><ph name="SITE" /> tiene permiso para enviar notificaciones</translation> <translation id="4731306954230393087">Tiene permiso para usar la información que ha guardado sobre ti</translation> -<translation id="473140019006744096">No hay suficiente espacio en este dispositivo para completar la actualización. Libera <ph name="NECESSARY_SPACE" /> en tu dispositivo y vuelve a intentarlo.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (izquierdo)</translation> <translation id="4733793249294335256">Ubicación</translation> <translation id="473546211690256853">Esta cuenta está administrada por <ph name="DOMAIN" /></translation> @@ -5378,7 +5373,6 @@ <translation id="5327912693242073631">Las funciones que requieran notificaciones no funcionarán</translation> <translation id="532943162177641444">Toca la notificación en el <ph name="PHONE_NAME" /> para configurar el punto de acceso móvil que este dispositivo puede usar.</translation> <translation id="5329858601952122676">&Suprimir</translation> -<translation id="5330592967519769658">Puede abrir una ventana de imagen en imagen cuando cambies de pestaña</translation> <translation id="5331069282670671859">No tienes certificados en esta categoría</translation> <translation id="5331568967879689647">Aplicación del sistema de ChromeOS</translation> <translation id="5331975486040154427">Dispositivo USB tipo C (puerto trasero izquierdo)</translation> @@ -5556,7 +5550,6 @@ <translation id="5473099001878321374">Si continúas, aceptas que este dispositivo pueda descargar e instalar actualizaciones y aplicaciones de Google, del operador de tu hijo/a y del fabricante de este dispositivo de forma automática, y que incluso pueda usar datos móviles para ello. Es posible que algunas de estas aplicaciones ofrezcan compras en la aplicación.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{El PIN debe tener al menos un carácter}other{El PIN debe tener al menos # caracteres}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> necesita que te conectes a una red Wi‑Fi para descargar una actualización. También puedes descargarla con una conexión de uso medido (sujeto a cargos).</translation> -<translation id="5478520208448702555">Los sitios pueden abrir una ventana de imagen en imagen cuando cambies de pestaña</translation> <translation id="5481273127572794904">No puede descargar varios archivos automáticamente</translation> <translation id="5481941284378890518">Añadir impresoras cercanas</translation> <translation id="5484181871714116891">Si activas esta opción, las llaves de acceso se crearán en el llavero de iCloud y estarán disponibles en todos tus dispositivos Apple. Si no la activas, las llaves de acceso se crearán en tu perfil de Chrome en este dispositivo.</translation> @@ -5714,7 +5707,6 @@ <translation id="5600348067066185292">La instalación se realiza siguiendo unos sencillos pasos. Tendrás otra oportunidad de confirmar los cambios antes de que se apliquen en tu ordenador.</translation> <translation id="5600706100022181951">Para descargar la actualización se necesitan <ph name="UPDATE_SIZE_MB" /> MB de datos móviles. ¿Quieres continuar?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">No puede conectarse a dispositivos MIDI</translation> <translation id="5601833336918638013">No permitir que los sitios busquen dispositivos Bluetooth</translation> <translation id="5602586420788540146">Abrir en un nuevo grupo de pestañas</translation> <translation id="5605758115928394442">Se ha enviado una notificación a tu teléfono para confirmar que eres tú.</translation> @@ -5836,7 +5828,6 @@ <translation id="5707185214361380026">Error al cargar la extensión desde:</translation> <translation id="5708171344853220004">Nombre principal de Microsoft</translation> <translation id="5709557627224531708">Establecer Google Chrome como navegador predeterminado</translation> -<translation id="5710122160114032242">No puede abrir una ventana de imagen en imagen cuando cambies de pestaña</translation> <translation id="5711010025974903573">Registros del servicio</translation> <translation id="5711983031544731014">No se puede realizar el desbloqueo. Introduce tu contraseña.</translation> <translation id="5712153969432126546">A veces, los sitios publican archivos PDF, como documentos, contratos y formularios</translation> @@ -6598,7 +6589,6 @@ <translation id="6326175484149238433">Desinstalar de Chrome</translation> <translation id="6326855256003666642">Número de actividades en curso</translation> <translation id="6327785803543103246">Detección automática de proxy web</translation> -<translation id="6331818708794917058">Los sitios pueden solicitar permiso para conectarse a dispositivos MIDI</translation> <translation id="6333064448949140209">El archivo se enviará a Google para depurarlo</translation> <translation id="6333170995003625229">No se ha podido verificar tu dirección de correo o tu contraseña. Prueba a iniciar sesión de nuevo.</translation> <translation id="6334267141726449402">Copia y envía este enlace al usuario para recoger los registros.</translation> @@ -6748,7 +6738,6 @@ <translation id="6458701200018867744">No se ha podido subir (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Usar selección para buscar</translation> <translation id="6459799433792303855">La ventana activa se ha movido a otra pantalla.</translation> -<translation id="6460566145397380451">Puede conectarse a dispositivos MIDI</translation> <translation id="6460601847208524483">Buscar siguiente</translation> <translation id="6461170143930046705">Buscando redes...</translation> <translation id="6463795194797719782">&Edición</translation> @@ -7074,7 +7063,6 @@ <translation id="6735304988756581115">Mostrar cookies y datos de otros sitios...</translation> <translation id="6736243959894955139">Dirección</translation> <translation id="6737663862851963468">Quitar ticket de Kerberos</translation> -<translation id="6737931010859480781">Esta aplicación del sistema está preinstalada en tu dispositivo</translation> <translation id="6738180164164974883">Permitir establecer cookies de terceros</translation> <translation id="6738430949033571771">Verificando cuenta...</translation> <translation id="6739923123728562974">Mostrar acceso directo del escritorio</translation> @@ -8469,7 +8457,6 @@ <translation id="7853747251428735">Más herramienta&s</translation> <translation id="7853999103056713222">Usa una contraseña más segura</translation> <translation id="7855678561139483478">Mover pestaña a ventana nueva</translation> -<translation id="7855729579456690716">Los sitios pueden abrir una ventana de imagen en imagen cuando cambies de pestaña</translation> <translation id="7857004848504343806">Tu ordenador contiene un módulo de seguridad, que se utiliza para implementar un gran número de funciones clave de seguridad en ChromeOS Flex. Puedes consultar más información en el Centro de Ayuda de Chromebook: https://support.google.com/chromebook/?p=tpm</translation> <translation id="7857093393627376423">Sugerencias de texto</translation> <translation id="7857949311770343000">¿Es esta la página Nueva pestaña que esperabas?</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 6706121..e2b1c68 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> jätab meelde, kuidas te sisse logisite, ja logib teid võimaluse korral automaatselt sisse. Kui see on välja lülitatud, palutakse teilt iga kord kinnitust.</translation> <translation id="1008544602823861396">on blokeeritud kasutamast teie teavet saidil</translation> <translation id="1008557486741366299">Mitte praegu</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Teie andmete kaitsmiseks eemaldati load saidilt, mida te pole 2 kuu jooksul külastanud}other{Teie andmete kaitsmiseks eemaldati load saitidelt, mida te pole 2 kuu jooksul külastanud}}</translation> <translation id="1009663062402466586">Mängu juhtnupud on nüüd saadaval</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Leht ei reageeri}other{Lehed ei reageeri}}</translation> <translation id="1011003645819296594">Salvestatud seadmed</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopeeri lingi aadr&ess</translation> <translation id="1085064499066015002">Alati kõigil saitidel</translation> <translation id="1085697365578766383">Viga virtuaalseadme käivitamisel. Proovige uuesti.</translation> -<translation id="1087965115100412394">Ära luba saitidel MIDI-seadmetega ühendust luua</translation> <translation id="1088659085457112967">Lugejarežiimi sisenemine</translation> <translation id="1090126737595388931">Taustal rakendusi ei tööta</translation> <translation id="1090541560108055381">Enne sidumist veenduge, et see kood oleks mõlemas seadmes sama</translation> @@ -3223,7 +3221,6 @@ <translation id="3551320343578183772">Sule vaheleht</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Kustutatakse väljumisel</translation> -<translation id="3553487194781590058">Saitidel ei ole lubatud avada pilt pildis akent, kui aktiveerite teise vahekaardi</translation> <translation id="3554493885489666172">Teie seadet haldab <ph name="PROFILE_NAME" />. Administraatorid pääsevad juurde selle seadme mis tahes profiili andmetele.</translation> <translation id="3555812735919707620">Eemalda laiendus</translation> <translation id="3557101512409028104">Seadke teenusega Family Link veebisaitide ja ekraaniaja piirangud</translation> @@ -3782,7 +3779,6 @@ <translation id="3975201861340929143">Selgitus</translation> <translation id="3975565978598857337">Valduse jaoks serveriga ühenduse loomine nurjus</translation> <translation id="3976108569178263973">Ühtegi printerit pole saadaval.</translation> -<translation id="3976244126942806443">Saidid loovad muusika loomiseks ja töötlemiseks tavaliselt ühenduse MIDI-seadmetega</translation> <translation id="397703832102027365">Lõpetamine ...</translation> <translation id="3977145907578671392">Mõne saidi funktsioonid ei pruugi inkognito režiimis toimida</translation> <translation id="3977886311744775419">See võrgu tüüp ei toeta automaatsete värskenduste allalaadimist, kuid võite värskendusi kontrollida käsitsi.</translation> @@ -4682,7 +4678,6 @@ <translation id="4730492586225682674">Viimane lukustuskuval elektronpliiatsiga tehtud märge</translation> <translation id="4730888769809690665">Saidi <ph name="SITE" /> märguanded on lubatud</translation> <translation id="4731306954230393087">Tohib kasutada teie kohta salvestatud teavet</translation> -<translation id="473140019006744096">Selles seadmes pole värskenduse lõpuleviimiseks piisavalt vaba ruumi. Vabastage oma seadmes <ph name="NECESSARY_SPACE" /> ja proovige uuesti.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (vasak)</translation> <translation id="4733793249294335256">Asukoht</translation> <translation id="473546211690256853">Kontot haldab <ph name="DOMAIN" /></translation> @@ -5384,7 +5379,6 @@ <translation id="5327912693242073631">Märguandeid vajavad funktsioonid ei tööta</translation> <translation id="532943162177641444">Puudutage seadmes <ph name="PHONE_NAME" /> märguannet, et seadistada mobiilne leviala, mida see seade saab kasutada.</translation> <translation id="5329858601952122676">&Kustuta</translation> -<translation id="5330592967519769658">Lubab avada pilt pildis akna, kui aktiveerite teise vahekaardi</translation> <translation id="5331069282670671859">Teil pole selles kategoorias sertifikaate</translation> <translation id="5331568967879689647">Chrome OS-i süsteemirakendus</translation> <translation id="5331975486040154427">C-tüüpi USB-seade (tagumine vasakpoolne port)</translation> @@ -5562,7 +5556,6 @@ <translation id="5473099001878321374">Jätkamisel nõustute, et see seade võib Google'i, teie lapse operaatori ja seadme tootja värskendusi ning rakendusi automaatselt alla laadida ja installida, kasutades selleks võib-olla teie mobiilset andmesidet. Mõned rakendused võivad pakkuda rakendusesiseseid oste.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-kood peab koosnema vähemalt ühest tähemärgist}other{PIN-kood peab koosnema vähemalt # tähemärgist}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> nõuab, et looksite kohe WiFi-ühenduse ja laadiksite alla värskenduse. Võite allalaadimiseks kasutada ka mahupõhist ühendust (rakenduda võivad tasud).</translation> -<translation id="5478520208448702555">Saidid võivad avada pilt pildis akna, kui aktiveerite teise vahekaardi</translation> <translation id="5481273127572794904">Pole lubatud automaatselt mitut faili alla laadida</translation> <translation id="5481941284378890518">Läheduses olevate printerite lubamine</translation> <translation id="5484181871714116891">Kui see on sisse lülitatud, luuakse pääsuvõtmed iCloud Keychainis ja need on saadaval kõigis teie Apple'i seadmetes. Kui see on välja lülitatud, luuakse pääsuvõtmed selles seadmes teie Chrome'i profiilis.</translation> @@ -5720,7 +5713,6 @@ <translation id="5600348067066185292">Installimiseks on vaja teha paar lihtsat toimingut. Enne kui teie arvutis muudatusi tehakse, on teil veel üks võimalus oma otsust kinnitada.</translation> <translation id="5600706100022181951">Värskenduse allalaadimiseks kulub <ph name="UPDATE_SIZE_MB" /> MB mobiilset andmesidet. Kas soovite jätkata?</translation> <translation id="5601503069213153581">PIN-kood</translation> -<translation id="5601823921345337195">Pole lubatud MIDI-seadmetega ühendada</translation> <translation id="5601833336918638013">Saitidel ei lubata Bluetooth-seadmeid otsida</translation> <translation id="5602586420788540146">Ava uues vahelehegrupis</translation> <translation id="5605758115928394442">Teie telefoni saadeti märguanne, et teie isik kinnitada.</translation> @@ -5842,7 +5834,6 @@ <translation id="5707185214361380026">Laienduse laadimine järgmisest asukohast ebaõnnestus:</translation> <translation id="5708171344853220004">Microsofti põhinimi</translation> <translation id="5709557627224531708">Määrake Chrome vaikebrauseriks</translation> -<translation id="5710122160114032242">Pilt pildis akent pole lubatud avada, kui aktiveerite teise vahekaardi</translation> <translation id="5711010025974903573">Teenuselogid</translation> <translation id="5711983031544731014">Ei õnnestu avada. Sisestage parool.</translation> <translation id="5712153969432126546">Mõnikord avaldavad saidid PDF-e, nt dokumente, lepinguid ja vorme</translation> @@ -6604,7 +6595,6 @@ <translation id="6326175484149238433">Eemalda Chrome'ist</translation> <translation id="6326855256003666642">Säilitamise loend</translation> <translation id="6327785803543103246">Veebipõhise puhverserveri automaattuvastamine</translation> -<translation id="6331818708794917058">Saidid saavad küsida luba MIDI-seadmetega ühenduse loomiseks</translation> <translation id="6333064448949140209">Fail saadetakse silumiseks Google'ile</translation> <translation id="6333170995003625229">Teie e-posti aadressi või parooli ei saanud kinnitada. Proovige uuesti sisse logida.</translation> <translation id="6334267141726449402">Kopeerige see link ja saatke see logide kogumiseks kasutajale</translation> @@ -6754,7 +6744,6 @@ <translation id="6458701200018867744">Üleslaadimine nurjus (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Kasuta otsimiseks valikut</translation> <translation id="6459799433792303855">Aktiivne aken teisaldati teisele ekraanile.</translation> -<translation id="6460566145397380451">Lubatud MIDI-seadmetega ühendada</translation> <translation id="6460601847208524483">Otsi järgmine</translation> <translation id="6461170143930046705">Võrkude otsimine …</translation> <translation id="6463795194797719782">&Muuda</translation> @@ -7080,7 +7069,6 @@ <translation id="6735304988756581115">Kuva küpsisefaile ja muid saidi andmeid...</translation> <translation id="6736243959894955139">Aadress</translation> <translation id="6737663862851963468">Kerberose pileti eemaldamine</translation> -<translation id="6737931010859480781">See rakendus on teie seadmesse eelinstallitud</translation> <translation id="6738180164164974883">Luba määrata kolmanda osapoole küpsisefaile</translation> <translation id="6738430949033571771">Konto kinnitamine …</translation> <translation id="6739923123728562974">Kuva töölaua otsetee</translation> @@ -8475,7 +8463,6 @@ <translation id="7853747251428735">Rohkem töö&riistu</translation> <translation id="7853999103056713222">Kasutage turvalisemat parooli</translation> <translation id="7855678561139483478">Vahelehe teisaldamine uude aknasse</translation> -<translation id="7855729579456690716">Saitidel on lubatud avada pilt pildis aken, kui aktiveerite teise vahekaardi</translation> <translation id="7857004848504343806">Teie arvuti sisaldab turvamoodulit, mida kasutatakse paljude väga tähtsate turvafunktsioonide rakendamiseks Chrome OS Flexis. Lisateavet leiate Chromebooki abikeskusest: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Teksti soovitused</translation> <translation id="7857949311770343000">Kas see on uus vaheleht, mida ootasite?</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index 8424408..87700a1 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> zerbitzuak saioa hasteko modua gogoratzen du eta, ahal denean, automatikoki hasten du saioa. Desaktibatuta dagoenean, berresteko eskatuko zaizu beti.</translation> <translation id="1008544602823861396">webguneak debekatuta dauka zure informazioa erabiltzea hemen:</translation> <translation id="1008557486741366299">Ez une honetan</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Zure datuak babeste aldera, kendu egin dira bi hilabetez bisitatu ez duzun webgune baten baimenak}other{Zure datuak babeste aldera, kendu egin dira bi hilabetez bisitatu ez dituzun webgune hauen baimenak}}</translation> <translation id="1009663062402466586">Orain, jokoak kontrolatzeko aukerak daude</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Orriak ez du erantzuten}other{Orriek ez dute erantzuten}}</translation> <translation id="1011003645819296594">Gordetako gailuak</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopiatu estekaren &helbidea</translation> <translation id="1085064499066015002">Webgune guztietan beti</translation> <translation id="1085697365578766383">Errore bat gertatu da makina birtuala abiaraztean. Saiatu berriro.</translation> -<translation id="1087965115100412394">Ez eman MIDI gailuetara konektatzeko baimena webguneei</translation> <translation id="1088659085457112967">Sartu irakurgailu moduan</translation> <translation id="1090126737595388931">Ez da aplikaziorik abian atzeko planoan</translation> <translation id="1090541560108055381">Parekatu aurretik, ziurtatu kode bera agertzen dela bi gailuetan</translation> @@ -3216,7 +3214,6 @@ <translation id="3551320343578183772">Itxi fitxa</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Irtetean garbituko da</translation> -<translation id="3553487194781590058">Ez eman beste fitxa batera zoazenean pantaila txiki gainjarri bat irekitzeko baimenik webguneei</translation> <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> da gailuaren kudeatzailea. Administratzaileek gailuko profil guztietako datuak atzi ditzakete.</translation> <translation id="3555812735919707620">Kendu luzapena</translation> <translation id="3557101512409028104">Webguneen murriztapenak eta erabilera-orduak ezartzeko, erabili Family Link</translation> @@ -3775,7 +3772,6 @@ <translation id="3975201861340929143">Azalpena</translation> <translation id="3975565978598857337">Ezin izan da jarri domeinuaren zerbitzariarekin harremanetan</translation> <translation id="3976108569178263973">Ez dago inprimagailurik erabilgarri.</translation> -<translation id="3976244126942806443">Webguneak MIDI gailuetara konektatu ohi dira musika sortu eta editatzeko</translation> <translation id="397703832102027365">Amaitzen…</translation> <translation id="3977145907578671392">Baliteke ezkutuko modua aktibatuta dagoenean webgune batzuetako eginbideek ez funtzionatzea</translation> <translation id="3977886311744775419">Eguneratze automatikoak ez dira deskargatuko mota honetako sareetan, baina eskuz bila ditzakezu.</translation> @@ -4675,7 +4671,6 @@ <translation id="4730492586225682674">Pantaila blokeatuan arkatzarekin idatzitako azken oharra ikusteko aukera</translation> <translation id="4730888769809690665">Eman zaio jakinarazpenak bidaltzeko baimena <ph name="SITE" /> webguneari</translation> <translation id="4731306954230393087">Zuri buruz gordetako informazioa erabiltzeko baimena dauka</translation> -<translation id="473140019006744096">Gailuan ez dago behar adina toki eguneratzea instalatzeko. Egin tokia (<ph name="NECESSARY_SPACE" />) gailuan eta saiatu berriro.</translation> <translation id="4733161265940833579">% <ph name="BATTERY_PERCENTAGE" /> (ezkerrekoa)</translation> <translation id="4733793249294335256">Kokapena</translation> <translation id="473546211690256853"><ph name="DOMAIN" /> domeinuak kudeatzen du kontua</translation> @@ -5374,7 +5369,6 @@ <translation id="5327912693242073631">Jakinarazpenak behar dituzten eginbideek ez dute funtzionatuko</translation> <translation id="532943162177641444">Gailu honek erabil dezakeen wifi-gune mugikor bat konfiguratzeko, sakatu <ph name="PHONE_NAME" /> gailuko jakinarazpena.</translation> <translation id="5329858601952122676">&Ezabatu</translation> -<translation id="5330592967519769658">Beste fitxa batera zoazenean pantaila txiki gainjarri bat irekitzeko baimena du</translation> <translation id="5331069282670671859">Ez duzu ziurtagiririk kategoria honetan</translation> <translation id="5331568967879689647">Chrome OS sistemaren aplikazioa</translation> <translation id="5331975486040154427">USB-C gailua (ezkerraldeko atzeko ataka)</translation> @@ -5552,7 +5546,6 @@ <translation id="5473099001878321374">Aurrera eginez gero, onartu egingo duzu litekeena dela gailuak automatikoki deskargatu eta instalatzea Google-ren, haurraren operadorearen eta fabrikatzailearen eguneratzeak eta aplikazioak, beharbada datu-konexioa erabilita. Baliteke aplikazio horietako batzuetan erosketak egin ahal izatea.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN kodeak karaktere bat izan behar du gutxienez}other{PIN kodeak # karaktere izan behar ditu gutxienez}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> domeinuak wifi-sare batera konektatzea eta eguneratze bat deskargatzea eskatzen du. Bestela, deskarga ezazu neurtutako konexio batetik (baliteke zerbait ordaindu behar izatea).</translation> -<translation id="5478520208448702555">Beste fitxa batera zoazenean, baliteke webguneek pantaila txiki gainjarri bat irekitzea</translation> <translation id="5481273127572794904">Ezin dituzte hainbat fitxategi deskargatu automatikoki</translation> <translation id="5481941284378890518">Gehitu inguruko inprimagailuak</translation> <translation id="5484181871714116891">Aktibatuta dagoenean, sarbide-gakoak iCloud Keychain-en sortzen dira eta zure Apple-ko gailu guztietan erabilgarri daude. Desaktibatuta dagoenean, sarbide-gakoak gailu honetako Chrome-ko profilean sortzen dira.</translation> @@ -5710,7 +5703,6 @@ <translation id="5600348067066185292">Urrats erraz gutxi batzuetan instalatzen da. Ordenagailuan aldaketak egin aurretik, beste aukera bat izango duzu berresteko.</translation> <translation id="5600706100022181951">Datu-konexioaren <ph name="UPDATE_SIZE_MB" /> MB erabilita deskargatuko da eguneratzea. Aurrera egin nahi duzu?</translation> <translation id="5601503069213153581">PINa</translation> -<translation id="5601823921345337195">Ezin da konektatu MIDI gailuetara</translation> <translation id="5601833336918638013">Ez eman Bluetooth bidezko gailuak bilatzeko baimena webguneei</translation> <translation id="5602586420788540146">Ireki beste fitxa talde batean</translation> <translation id="5605758115928394442">Jakinarazpen bat bidali dizugu telefonora zeu zarela berresteko.</translation> @@ -5830,7 +5822,6 @@ <translation id="5707185214361380026">Ezin izan da kargatu hemengo luzapena:</translation> <translation id="5708171344853220004">Microsoft zuzendariaren izena</translation> <translation id="5709557627224531708">Ezarri Chrome arakatzaile lehenetsi gisa</translation> -<translation id="5710122160114032242">Ez du beste fitxa batera zoazenean pantaila txiki gainjarri bat irekitzeko baimenik</translation> <translation id="5711010025974903573">Zerbitzu-erregistroak</translation> <translation id="5711983031544731014">Ezin da desblokeatu. Idatzi pasahitza.</translation> <translation id="5712153969432126546">Batzuetan, webguneek PDFak argitaratzen dituzte, hala nola dokumentuak, kontratuak eta inprimakiak</translation> @@ -6591,7 +6582,6 @@ <translation id="6326175484149238433">Kendu Chrome-tik</translation> <translation id="6326855256003666642">Aktibatuta mantentzen dutenak</translation> <translation id="6327785803543103246">Web-proxyaren hautemate automatikoa</translation> -<translation id="6331818708794917058">Webguneek MIDI gailuetara konektatzea eska dezakete</translation> <translation id="6333064448949140209">Google-ra bidaliko da fitxategia, hura araztu ahal izateko</translation> <translation id="6333170995003625229">Ezin izan da egiaztatu helbide elektronikoa edo pasahitza. Hasi saioa berriro.</translation> <translation id="6334267141726449402">Kopiatu eta bidali esteka hau erabiltzaileari erregistroak biltzeko.</translation> @@ -6741,7 +6731,6 @@ <translation id="6458701200018867744">Ezin izan da kargatu (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Erabili hautespena aurkitzeko</translation> <translation id="6459799433792303855">Beste pantaila batera eraman da leiho aktiboa.</translation> -<translation id="6460566145397380451">MIDI gailuetara konekta daitezke</translation> <translation id="6460601847208524483">Bilatu hurrengoa</translation> <translation id="6461170143930046705">Sareak bilatzen…</translation> <translation id="6463795194797719782">&Editatu</translation> @@ -7067,7 +7056,6 @@ <translation id="6735304988756581115">Erakutsi cookieak eta webguneko beste datu batzuk…</translation> <translation id="6736243959894955139">Helbidea</translation> <translation id="6737663862851963468">Kendu Kerberos-eko txartel bat</translation> -<translation id="6737931010859480781">Aplikazio hau gailuan aurrez instalatuta dago</translation> <translation id="6738180164164974883">Eman hirugarrenen cookieak ezartzeko baimena</translation> <translation id="6738430949033571771">Kontua egiaztatzen…</translation> <translation id="6739923123728562974">Erakutsi mahaigaineko lasterbidea</translation> @@ -8456,7 +8444,6 @@ <translation id="7853747251428735">&Tresna gehiago</translation> <translation id="7853999103056713222">Erabili pasahitz seguruago bat</translation> <translation id="7855678561139483478">Eraman fitxa leiho berri batera</translation> -<translation id="7855729579456690716">Beste fitxa batera zoazenean, baliteke webguneek pantaila txiki gainjarri bat irekitzea</translation> <translation id="7857004848504343806">Ordenagailuak segurtasun-modulu bat du; ChromeOS Flex-en ezinbesteko segurtasun-eginbide asko inplementatzeko erabiltzen da modulu hori. Informazio gehiago lortzeko, joan Chromebook-en laguntza-zentrora: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Testuzko iradokizunak</translation> <translation id="7857949311770343000">Espero zenuen fitxa berriaren orria al da hau?</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index f6e8f53a..96176b1 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> بهخاطر میآورد چگونه به سیستم وارد شدید و درصورت امکان شما را بهطور خودکار به سیستم وارد میکند. وقتی خاموش باشد، هر بار از شما درخواست میشود اطلاعات را تأیید کنید.</translation> <translation id="1008544602823861396">امکان استفاده از اطلاعات شما در این سایتها برای آن مسدود شده است:</translation> <translation id="1008557486741366299">حالا نه</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{برای محافظت از دادههایتان، اجازههای سایتی که ۲ ماه است به آن مراجعه نکردهاید برداشته شد}one{برای محافظت از دادههایتان، اجازههای سایتی که ۲ ماه است به آن مراجعه نکردهاید برداشته شد}other{برای محافظت از دادههایتان، اجازههای سایتهایی که ۲ ماه است به آن مراجعه نکردهاید برداشته شد}}</translation> <translation id="1009663062402466586">کنترلهای بازی اکنون دردسترس است</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{صفحه غیرپاسخگو}one{صفحههای غیرپاسخگو}other{صفحههای غیرپاسخگو}}</translation> <translation id="1011003645819296594">دستگاههای ذخیرهشده</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">کپی آدر&س پیوند</translation> <translation id="1085064499066015002">همیشه در همه سایتها</translation> <translation id="1085697365578766383">هنگام شروع دستگاه مجازی خطایی روی داد. لطفاً دوباره امتحان کنید.</translation> -<translation id="1087965115100412394">به سایتها اجازه داده نشود به دستگاههای MIDI متصل شوند</translation> <translation id="1088659085457112967">ورود به «حالت خواننده»</translation> <translation id="1090126737595388931">بدون برنامههای در حال اجرا در پسزمینه</translation> <translation id="1090541560108055381">پیشاز مرتبطسازی، مطمئن شوید این کد در هر دو دستگاه یکی باشد</translation> @@ -3229,7 +3227,6 @@ <translation id="3551320343578183772">بستن برگه</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">هنگام «خروج» پاک شد</translation> -<translation id="3553487194781590058">سایتها اجازه نداشته باشند وقتی به برگه دیگری میروید، پنجره «تصویر در تصویر» باز کنند</translation> <translation id="3554493885489666172">دستگاهتان توسط <ph name="PROFILE_NAME" /> مدیریت میشود. سرپرستان میتوانند به دادههای موجود در همه نمایههای این دستگاه دسترسی داشته باشند.</translation> <translation id="3555812735919707620">حذف برنامه افزودنی</translation> <translation id="3557101512409028104">محدودیتهای وبسایت و محدودیتهای مدت تماشای صفحه با Family Link تنظیم شود</translation> @@ -3788,7 +3785,6 @@ <translation id="3975201861340929143">توضیح</translation> <translation id="3975565978598857337">برقراری ارتباط با سرور برای گستره ناموفق بود</translation> <translation id="3976108569178263973">چاپگری دردسترس نیست.</translation> -<translation id="3976244126942806443">سایتها معمولاً برای ایجاد و ویرایش موسیقی به دستگاههای MIDI متصل میشوند</translation> <translation id="397703832102027365">نهاییسازی…</translation> <translation id="3977145907578671392">ممکن است ویژگیهای برخیاز سایتها در «حالت ناشناس» کار نکند</translation> <translation id="3977886311744775419">بهروزرسانیهای خودکار در این نوع شبکه بارگیری نمیشود، اما میتوانید بهصورت دستی دردسترس بودن آنها را بررسی کنید.</translation> @@ -4689,7 +4685,6 @@ <translation id="4730492586225682674">آخرین یادداشت قلم در صفحه قفل</translation> <translation id="4730888769809690665">اعلانها برای <ph name="SITE" /> مجاز شدهاند</translation> <translation id="4731306954230393087">اجازه دارد از اطلاعاتی که درباره شما ذخیره کرده است استفاده کند</translation> -<translation id="473140019006744096">فضای این دستگاه برای تکمیل بهروزرسانی کافی نیست. <ph name="NECESSARY_SPACE" /> فضا در دستگاهتان آزاد کنید و دوباره امتحان کنید.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (چپ)</translation> <translation id="4733793249294335256">مکان</translation> <translation id="473546211690256853"><ph name="DOMAIN" />، این حساب را مدیریت میکند</translation> @@ -5391,7 +5386,6 @@ <translation id="5327912693242073631">ویژگیهایی که به اعلان نیاز دارند کار نخواهند کرد</translation> <translation id="532943162177641444">برای تنظیم نقطه اتصال تلفن همراهی که میتوان از آن برای این دستگاه استفاده کرد، روی اعلان در <ph name="PHONE_NAME" /> خود ضربه بزنید.</translation> <translation id="5329858601952122676">&حذف</translation> -<translation id="5330592967519769658">اجازه دارد وقتی به برگه دیگری میروید، پنجره «تصویر در تصویر» باز کند</translation> <translation id="5331069282670671859">گواهینامهای در این دسته ندارید</translation> <translation id="5331568967879689647">برنامه سیستم ChromeOS</translation> <translation id="5331975486040154427">دستگاه USB-C (درگاه عقب سمت چپ)</translation> @@ -5569,7 +5563,6 @@ <translation id="5473099001878321374">با ادامه دادن، موافقت میکنید این دستگاه همچنین میتواند بهطور خودکار بهروزرسانیها و برنامهها را از Google، شرکت مخابراتی فرزندتان، و سازنده این دستگاه بارگیری (احتمالاً بااستفاده از داده شبکه تلفن همراه) و نصب کند. برخیاز این برنامهها ممکن است خریدهای درونبرنامه پیشنهاد دهند.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{پین باید حداقل یک نویسه داشته باشد}one{پین باید حداقل # نویسه داشته باشد}other{پین باید حداقل # نویسه داشته باشد}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> از شما میخواهد اکنون به Wi-Fi متصل شوید و بهروزرسانی را بارگیری کنید. یا آن را ازطریق اتصال محدود بارگیری کنید (ممکن است هزینه اعمال شود).</translation> -<translation id="5478520208448702555">سایتها ممکن است وقتی به برگه دیگری میروید، پنجره «تصویر در تصویر» باز کنند</translation> <translation id="5481273127572794904">اجازه ندارد چند فایل را بهطور خودکار بارگیری کند</translation> <translation id="5481941284378890518">افزودن چاپگرهای اطراف</translation> <translation id="5484181871714116891">وقتی روشن باشد، گذرکلیدها در iCloud Keychain ایجاد میشود و در دستگاههای Apple شما دردسترس قرار میگیرد. وقتی خاموش باشد، گذرکلیدها در نمایه Chrome شما در این دستگاه ایجاد میشود.</translation> @@ -5727,7 +5720,6 @@ <translation id="5600348067066185292">نصب در چند مرحله آسان انجام میشود. پیشاز اعمال تغییرات در رایانهتان، فرصت دیگری برای تأیید آنها خواهید داشت.</translation> <translation id="5600706100022181951">بهروزرسانی با مصرف <ph name="UPDATE_SIZE_MB" /> مگابایت داده تلفن همراه بارگیری میشود. ادامه میدهید؟</translation> <translation id="5601503069213153581">پین</translation> -<translation id="5601823921345337195">اجازه ندارد به دستگاههای MIDI مرتبط شود</translation> <translation id="5601833336918638013">به سایتها اجازه داده نشود دستگاههای بلوتوث را جستجو کنند</translation> <translation id="5602586420788540146">باز کردن در گروه برگه جدید</translation> <translation id="5605758115928394442">برای تأیید اینکه خودتان هستید، اعلانی به تلفنتان ارسال شد.</translation> @@ -5849,7 +5841,6 @@ <translation id="5707185214361380026">بارگیری برنامه افزودنی از اینجا ناموفق بود:</translation> <translation id="5708171344853220004">نام اصلی Microsoft</translation> <translation id="5709557627224531708">تنظیم Chrome بهعنوان مرورگر پیشفرض</translation> -<translation id="5710122160114032242">اجازه ندارند وقتی به برگه دیگری میروید، پنجره «تصویر در تصویر» باز کنند</translation> <translation id="5711010025974903573">گزارشهای سرویس</translation> <translation id="5711983031544731014">قفل باز نشد. گذرواژهتان را وارد کنید.</translation> <translation id="5712153969432126546">سایتها گاهیاوقات فایلهای PDF (ازجمله سند، قرارداد، و فرم) منتشر میکنند</translation> @@ -6611,7 +6602,6 @@ <translation id="6326175484149238433">حذف از Chrome</translation> <translation id="6326855256003666642">تعداد فعالیتهای زندهنگهداری</translation> <translation id="6327785803543103246">کشف خودکار پراکسی وب</translation> -<translation id="6331818708794917058">سایتها میتوانند اتصال به دستگاههای MIDI را درخواست کنند</translation> <translation id="6333064448949140209">فایل برای اشکالزدایی به Google ارسال خواهد شد</translation> <translation id="6333170995003625229">نشانی ایمیل یا گذرواژهتان تأیید نشد. دوباره برای ورود به سیستم تلاش کنید.</translation> <translation id="6334267141726449402">برای جمعآوری گزارشها، این پیوند را کپی و برای کاربر ارسال کنید.</translation> @@ -6761,7 +6751,6 @@ <translation id="6458701200018867744">بارگذاری انجام نشد (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">استفاده از انتخاب برای یافتن</translation> <translation id="6459799433792303855">پنجره فعال به نمایشگر دیگری منتقل شد.</translation> -<translation id="6460566145397380451">اجازه دارد به دستگاههای MIDI مرتبط شود</translation> <translation id="6460601847208524483">یافتن بعدی</translation> <translation id="6461170143930046705">درحال جستجوی شبکه...</translation> <translation id="6463795194797719782">&ویرایش</translation> @@ -7089,7 +7078,6 @@ <translation id="6735304988756581115">نمایش کوکیها و دیگر دادههای سایت...</translation> <translation id="6736243959894955139">آدرس</translation> <translation id="6737663862851963468">حذف کردن بلیت Kerberos</translation> -<translation id="6737931010859480781">این برنامه ازقبل روی دستگاهتان نصب شده است</translation> <translation id="6738180164164974883">مجاز کردن تنظیم کوکیهای شخص ثالث</translation> <translation id="6738430949033571771">درحال تأیید حساب…</translation> <translation id="6739923123728562974">نمایش میانبر میز کار</translation> @@ -8483,7 +8471,6 @@ <translation id="7853747251428735">ابزارهای بیشتر (&L)</translation> <translation id="7853999103056713222">از گذرواژه ایمنتری استفاده کنید</translation> <translation id="7855678561139483478">انتقال برگه به پنجره جدید</translation> -<translation id="7855729579456690716">سایتها میتوانند وقتی به برگه دیگری میروید، پنجره «تصویر در تصویر» باز کنند</translation> <translation id="7857004848504343806">رایانه شما دارای پودمان امنیتی است که برای پیادهسازی بسیاری از ویژگیهای امنیتی ضروری در ChromeOS Flex استفاده میشود. برای کسب اطلاعات بیشتر، از «مرکز راهنمایی Chromebook» بازدید کنید: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">پیشنهادهای نوشتار</translation> <translation id="7857949311770343000">این صفحه برگه جدیدی است که منتظرش بودید؟</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 1816a157..efc3994 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> muistaa, miten olet kirjautunut sisään ja kirjaa sinut automaattisesti sisään, jos mahdollista. Jos tämä ei ole päällä, sinua pyydetään aina vahvistamaan kirjautuminen.</translation> <translation id="1008544602823861396">ei saa käyttää tietojasi näillä sivustoilla:</translation> <translation id="1008557486741366299">Ei nyt</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Datasi suojaamiseksi luvat on poistettu sivustolta, jolla et ole käynyt kahteen kuukauteen}other{Datasi suojaamiseksi luvat on poistettu sivustoilta, joilla et ole käynyt kahteen kuukauteen}}</translation> <translation id="1009663062402466586">Peliohjaimet nyt käytettävissä</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Sivu ei vastaa.}other{Sivut eivät vastaa.}}</translation> <translation id="1011003645819296594">Tallennetut laitteet</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopioi linkin osoit&e</translation> <translation id="1085064499066015002">Aina kaikilla sivustoilla</translation> <translation id="1085697365578766383">Virtuaalikoneen käynnistys epäonnistui. Yritä uudelleen.</translation> -<translation id="1087965115100412394">Älä salli sivustojen yhdistää MIDI-laitteisiin</translation> <translation id="1088659085457112967">Siirry lukijatilaan</translation> <translation id="1090126737595388931">Ei käynnissä olevia taustasovelluksia</translation> <translation id="1090541560108055381">Varmista ennen laiteparin muodostamista, että tämä koodi on sama molemmissa laitteissa</translation> @@ -3231,7 +3229,6 @@ <translation id="3551320343578183772">Sulje välilehti</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Tyhjennetty poistumisen yhteydessä</translation> -<translation id="3553487194781590058">Pikkuruudun avaaminen ei ole sallittua, kun siirryt toiselle välilehdelle</translation> <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> ylläpitää laitettasi. Järjestelmänvalvojilla on pääsy kaikkien tämän laitteen profiilien dataan.</translation> <translation id="3555812735919707620">Poista laajennus</translation> <translation id="3557101512409028104">Aseta verkkosivustojen ja käyttöajan rajoituksia Family Linkillä</translation> @@ -3787,7 +3784,6 @@ <translation id="3975201861340929143">Selitys</translation> <translation id="3975565978598857337">Alueen hakeminen palvelimelta epäonnistui</translation> <translation id="3976108569178263973">Tulostimia ei ole saatavilla.</translation> -<translation id="3976244126942806443">Sivustot yhdistävät yleensä MIDI-laitteisiin musiikin luomista ja muokkaamista varten</translation> <translation id="397703832102027365">Viimeistellään...</translation> <translation id="3977145907578671392">Joidenkin sivustojen ominaisuudet eivät välttämättä toimi incognito-tilassa</translation> <translation id="3977886311744775419">Automaattisia päivityksiä ei ladata tässä verkkotyypissä, mutta voit tarkistaa päivitykset manuaalisesti.</translation> @@ -4688,7 +4684,6 @@ <translation id="4730492586225682674">Näyttökynä viimeisin muistiinpano lukitusnäytöllä</translation> <translation id="4730888769809690665">Ilmoitukset sallittu: <ph name="SITE" /></translation> <translation id="4731306954230393087">Saa käyttää sinusta tallentamiaan tietoja</translation> -<translation id="473140019006744096">Laitteen tila ei riitä päivityksen viimeistelyyn. Vapauta laitteelta <ph name="NECESSARY_SPACE" /> ja yritä uudelleen.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (vasen)</translation> <translation id="4733793249294335256">Sijainti</translation> <translation id="473546211690256853">Tätä tiliä hallitsee <ph name="DOMAIN" /></translation> @@ -5390,7 +5385,6 @@ <translation id="5327912693242073631">Ilmoituksia edellyttävät ominaisuudet eivät enää toimi</translation> <translation id="532943162177641444">Avaa <ph name="PHONE_NAME" /> ja kosketa siinä näkyvää ilmoitusta, niin mobiili-hotspot määritetään tämän laitteen käyttöön.</translation> <translation id="5329858601952122676">&Poista</translation> -<translation id="5330592967519769658">Pikkuruudun avaaminen on sallittua, kun siirryt toiselle välilehdelle</translation> <translation id="5331069282670671859">Sinulla ei ole varmenteita tässä luokassa.</translation> <translation id="5331568967879689647">Chrome-käyttöjärjestelmäsovellus</translation> <translation id="5331975486040154427">C-tyypin USB-laite (vasemman sivun taaimmainen portti)</translation> @@ -5568,7 +5562,6 @@ <translation id="5473099001878321374">Jatkamalla hyväksyt, että laite voi myös automaattisesti ladata ja asentaa Googlen, lapsen operaattorin tai laitevalmistajan päivityksiä ja sovelluksia, mahdollisesti mobiilidatayhteyden välityksellä. Jotkin näistä sovelluksista voivat tarjota sovelluksensisäisiä ostoksia.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-koodissa on oltava ainakin yksi merkki}other{PIN-koodissa on oltava ainakin # merkkiä}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> edellyttää, että yhdistät Wi-Fi-verkkoon nyt ja lataat päivityksen. Voit myös ladata sen maksullisella yhteydellä (tästä voidaan veloittaa).</translation> -<translation id="5478520208448702555">Sivustot voivat avata pikkuruudun, kun siirryt toiselle välilehdelle</translation> <translation id="5481273127572794904">Useiden tiedostojen automaattinen lataaminen kielletty</translation> <translation id="5481941284378890518">Lisää lähellä olevia tulostimia</translation> <translation id="5484181871714116891">Kun asetus on päällä, avainkoodit luodaan iCloud-avainnippuun ja ovat saatavilla kaikilla Apple-laitteilla. Kun asetus on pois päältä, avainkoodit luodaan tämän laitteen Chrome-profiiliin.</translation> @@ -5726,7 +5719,6 @@ <translation id="5600348067066185292">Asennus onnistuu helposti. Voit vielä vahvistaa asennuksen, ennen kuin tietokoneellesi tehdään muutoksia.</translation> <translation id="5600706100022181951">Päivityksen lataukseen käytetään <ph name="UPDATE_SIZE_MB" /> Mt mobiilidataa. Haluatko jatkaa?</translation> <translation id="5601503069213153581">PIN-koodi</translation> -<translation id="5601823921345337195">MIDI-laitteisiin yhdistäminen kielletty</translation> <translation id="5601833336918638013">Älä salli sivustojen etsiä Bluetooth-laitteita</translation> <translation id="5602586420788540146">Avaa uudelle välilehtiryhmälle</translation> <translation id="5605758115928394442">Puhelimeesi lähetettiin ilmoitus henkilöllisyytesi vahvistamiseksi.</translation> @@ -5848,7 +5840,6 @@ <translation id="5707185214361380026">Laajennuksen lataaminen seuraavasta kohteesta epäonnistui:</translation> <translation id="5708171344853220004">Microsoftin päänimi</translation> <translation id="5709557627224531708">Aseta Chrome oletusselaimeksi</translation> -<translation id="5710122160114032242">Pikkuruudun avaaminen ei ole sallittua, kun siirryt toiselle välilehdelle</translation> <translation id="5711010025974903573">Palvelulokit</translation> <translation id="5711983031544731014">Avaaminen ei onnistu. Lisää salasana.</translation> <translation id="5712153969432126546">Sivustot julkaisevat joskus PDF-tiedostoja, kuten asiakirjoja, sopimuksia ja lomakkeita</translation> @@ -6610,7 +6601,6 @@ <translation id="6326175484149238433">Poista Chromesta</translation> <translation id="6326855256003666642">Käyttävien toimintojen määrä</translation> <translation id="6327785803543103246">Verkkovälityspalvelimen automaattinen tunnistaminen</translation> -<translation id="6331818708794917058">Sivustot saavat pyytää lupaa yhdistää MIDI-laitteisiin</translation> <translation id="6333064448949140209">Tiedosto lähetetään Googlelle virheenkorjausta varten.</translation> <translation id="6333170995003625229">Sähköpostiosoitettasi tai salasanaasi ei voitu vahvistaa. Yritä kirjautua sisään uudelleen.</translation> <translation id="6334267141726449402">Kopioi ja lähetä tämä linkki käyttäjälle lokien keräämiseksi.</translation> @@ -6760,7 +6750,6 @@ <translation id="6458701200018867744">Lataus epäonnistui (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Hae valinnan avulla</translation> <translation id="6459799433792303855">Aktiivinen ikkuna siirrettiin toiselle näytölle.</translation> -<translation id="6460566145397380451">MIDI-laitteisiin yhdistäminen sallittu</translation> <translation id="6460601847208524483">Hae seuraava</translation> <translation id="6461170143930046705">Etsitään verkkoja…</translation> <translation id="6463795194797719782">M&uokkaa</translation> @@ -7086,7 +7075,6 @@ <translation id="6735304988756581115">Näytä evästeet ja muut sivuston tiedot...</translation> <translation id="6736243959894955139">Osoite</translation> <translation id="6737663862851963468">Poista Kerberos-tukipyyntö</translation> -<translation id="6737931010859480781">Tämä sovellus on esiasennettu laitteellesi</translation> <translation id="6738180164164974883">Salli kolmannen osapuolen evästeiden asettaminen</translation> <translation id="6738430949033571771">Todennetaan tiliä…</translation> <translation id="6739923123728562974">Näytä työpöydän pikakuvake</translation> @@ -8480,7 +8468,6 @@ <translation id="7853747251428735">&Lisää työkaluja</translation> <translation id="7853999103056713222">Käytä turvallisempaa salasanaa</translation> <translation id="7855678561139483478">Siirrä välilehti uuteen ikkunaan</translation> -<translation id="7855729579456690716">Sivustot voivat avata pikkuruudun, kun siirryt toiselle välilehdelle</translation> <translation id="7857004848504343806">Tietokoneesi sisältää suojausmoduulin, jonka avulla käytetään monia tärkeitä turvallisuusominaisuuksia ChromeOS Flexissä. Lisätietoja on Chromebook-ohjekeskuksessa: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Tekstiehdotukset</translation> <translation id="7857949311770343000">Onko tämä haluamasi Uusi välilehti -sivu?</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index 50eb30d..2df346e 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">Tinatandaan ng <ph name="BRAND" /> kung paano ka nag-sign in at awtomatiko kang isa-sign in kapag posible. Kapag naka-off, palaging manghihingi sa iyo ng kumpirmasyon.</translation> <translation id="1008544602823861396">ay naka-block para hindi magamit ang iyong impormasyon sa</translation> <translation id="1008557486741366299">Hindi Ngayon</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Para protektahan ang iyong data, inalis ang mga pahintulot sa site na hindi mo binisita nang 2 buwan}one{Para protektahan ang iyong data, inaalis ang mga pahintulot sa mga site na hindi mo binisita nang 2 buwan}other{Para protektahan ang iyong data, inaalis ang mga pahintulot sa mga site na hindi mo binisita nang 2 buwan}}</translation> <translation id="1009663062402466586">Available na ngayon ang mga kontrol ng laro</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Hindi Tumutugon ang Page}one{Hindi Tumutugon ang Mga Page}other{Hindi Tumutugon ang Mga Page}}</translation> <translation id="1011003645819296594">Mga na-save na device</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopyahin ang addr&ess ng link</translation> <translation id="1085064499066015002">Palagi sa lahat ng site</translation> <translation id="1085697365578766383">Nagkaroon ng error sa pagpapagana sa virtual machine. Pakisubukang muli.</translation> -<translation id="1087965115100412394">Huwag payagan ang mga site na kumonekta sa mga MIDI device</translation> <translation id="1088659085457112967">I-on ang Reader Mode</translation> <translation id="1090126737595388931">Walang Tumatakbong Apps sa Background</translation> <translation id="1090541560108055381">Bago magpares, tiyaking pareho ang code sa dalawang device</translation> @@ -3233,7 +3231,6 @@ <translation id="3551320343578183772">Isara ang Tab</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Na-clear sa Paglabas</translation> -<translation id="3553487194781590058">Huwag payagan ang mga site na magbukas ng picture-in-picture na window kapag lumipat ka sa ibang tab</translation> <translation id="3554493885489666172">Pinapamahalaan ng <ph name="PROFILE_NAME" /> ang iyong device. Maa-access ng mga administrator ang data sa anumang profile sa device na ito.</translation> <translation id="3555812735919707620">Alisin ang extension</translation> <translation id="3557101512409028104">Magtakda ng mga paghihigpit sa website at limitasyon sa tagal ng paggamit gamit ang Family Link</translation> @@ -3792,7 +3789,6 @@ <translation id="3975201861340929143">Paliwanag</translation> <translation id="3975565978598857337">Hindi nagawang makipag-ugnayan sa server para sa realm</translation> <translation id="3976108569178263973">Walang available na printer.</translation> -<translation id="3976244126942806443">Karaniwang kumokonekta ang mga site sa mga MIDI device para sa paggawa at pag-edit ng musika</translation> <translation id="397703832102027365">Tinatapos...</translation> <translation id="3977145907578671392">Posibleng hindi gumana sa Incognito ang mga feature sa ilang site</translation> <translation id="3977886311744775419">Hindi nada-download ang mga awtomatikong update sa ganitong uri ng network, pero puwede kang tumingin ng mga update nang manual.</translation> @@ -4693,7 +4689,6 @@ <translation id="4730492586225682674">Pinakabagong tala sa lock screen gamit ang stylus</translation> <translation id="4730888769809690665">Pinapayagan ang mga notification para sa <ph name="SITE" /></translation> <translation id="4731306954230393087">Pinapayagang gumamit ng impormasyong na-save nito tungkol sa iyo</translation> -<translation id="473140019006744096">Kulang ang espasyo sa device na ito para matapos ang pag-update na ito. Magbakante ng <ph name="NECESSARY_SPACE" /> sa iyong device at subukan ulit.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Kaliwa)</translation> <translation id="4733793249294335256">Lokasyon</translation> <translation id="473546211690256853">Pinamamahalaan ang account na ito ng <ph name="DOMAIN" /></translation> @@ -5395,7 +5390,6 @@ <translation id="5327912693242073631">Hindi gagana ang mga feature na nangangailangan ng mga notification</translation> <translation id="532943162177641444">I-tap ang notification sa iyong <ph name="PHONE_NAME" /> upang i-set up ang mobile hotspot na magagamit ng device na ito.</translation> <translation id="5329858601952122676">&Tanggalin</translation> -<translation id="5330592967519769658">Pinapayagang magbukas ng picture-in-picture na window kapag lumipat ka sa ibang tab</translation> <translation id="5331069282670671859">Wala kang certificate sa kategoryang ito</translation> <translation id="5331568967879689647">App ng System ng ChromeOS</translation> <translation id="5331975486040154427">USB-C device (port sa kaliwang bahagi sa likod)</translation> @@ -5573,7 +5567,6 @@ <translation id="5473099001878321374">Sa pamamagitan ng pagpapatuloy, sumasang-ayon kang ang device na ito ay posible ring awtomatikong mag-download at mag-install ng mga update at app mula sa Google, carrier ng iyong anak, at manufacturer ng device na ito, na posibleng gamit ang cellular data. Posibleng mag-alok ang ilan sa mga app na ito ng mga in-app na pagbili.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Dapat ay hindi bababa sa isang character ang PIN}one{Dapat ay hindi bababa sa # character ang PIN}other{Dapat ay hindi bababa sa # na character ang PIN}}</translation> <translation id="5474859849784484111">Hinihiling sa iyo ng <ph name="MANAGER" /> na kumonekta ka sa Wi-Fi ngayon at mag-download ng update. O mag-download mula sa isang nakametrong koneksyon (posibleng may nalalapat na mga singil).</translation> -<translation id="5478520208448702555">Posibleng magbukas ang mga site ng picture-in-picture na window kapag lumipat ka sa ibang tab</translation> <translation id="5481273127572794904">Hindi pinapayagang awtomatikong mag-download ng maraming file</translation> <translation id="5481941284378890518">Magdagdag ng Mga Printer na Nasa Malapit</translation> <translation id="5484181871714116891">Kapag naka-on, sa iCloud Keychain gagawin ang mga passkey at magiging available ang mga ito sa iyong mga Apple device. Kapag naka-off, gagawin ang mga passkey sa iyong profile sa Chrome sa device na ito.</translation> @@ -5731,7 +5724,6 @@ <translation id="5600348067066185292">Ilang madaling hakbang lang ang kailangan sa pag-install. Magkakaroon ka ng isa pang pagkakataong magkumpirma bago gawin ang mga pagbabago sa iyong computer.</translation> <translation id="5600706100022181951">Ida-download ang update gamit ang <ph name="UPDATE_SIZE_MB" /> MB ng mobile data. Gusto mo bang magpatuloy?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Hindi pinapayagang kumonekta sa mga MIDI device</translation> <translation id="5601833336918638013">Huwag payagan ang mga site na maghanap ng mga Bluetooth device</translation> <translation id="5602586420788540146">Buksan sa bagong grupo ng tab</translation> <translation id="5605758115928394442">Nagpadala ng notification sa iyong telepono para kumpirmahing ikaw nga ito.</translation> @@ -5853,7 +5845,6 @@ <translation id="5707185214361380026">Hindi na-load ang extension mula sa:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Itakda ang Chrome bilang iyong default na browser</translation> -<translation id="5710122160114032242">Hindi pinapayagang magbukas ng picture-in-picture na window kapag lumipat ka sa ibang tab</translation> <translation id="5711010025974903573">Mga log ng serbisyo</translation> <translation id="5711983031544731014">Hindi mai-unlock. Ilagay ang iyong password.</translation> <translation id="5712153969432126546">Paminsan-minsan, nagpa-publish ang mga site ng mga PDF, tulad ng mga dokumento, kontrata, at form</translation> @@ -6615,7 +6606,6 @@ <translation id="6326175484149238433">Alisin sa Chrome</translation> <translation id="6326855256003666642">Bilang ng Keepalive</translation> <translation id="6327785803543103246">Web proxy autodiscovery</translation> -<translation id="6331818708794917058">Puwedeng hilingin ng mga site na kumonekta sa mga MIDI device</translation> <translation id="6333064448949140209">Ipapadala ang file sa Google para sa pagde-debug</translation> <translation id="6333170995003625229">Hindi ma-verify ang iyong email address o password. Subukang mag-sign in ulit.</translation> <translation id="6334267141726449402">Kopyahin at ipadala ang link na ito sa user para makolekta ang mga log.</translation> @@ -6765,7 +6755,6 @@ <translation id="6458701200018867744">Hindi na-upload (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Use Selection for Find</translation> <translation id="6459799433792303855">Inilipat ang aktibong window sa ibang display.</translation> -<translation id="6460566145397380451">Pinapayagang kumonekta sa mga MIDI device</translation> <translation id="6460601847208524483">Find Next</translation> <translation id="6461170143930046705">Naghahanap ng mga network...</translation> <translation id="6463795194797719782">&Mag-edit</translation> @@ -7093,7 +7082,6 @@ <translation id="6735304988756581115">Magpakita ng cookies at iba pang data ng site...</translation> <translation id="6736243959894955139">Address</translation> <translation id="6737663862851963468">Alisin ang ticket ng Kerberos</translation> -<translation id="6737931010859480781">Naka-preinstall ang app na ito sa iyong device</translation> <translation id="6738180164164974883">Payagang magtakda ng third-party na cookies</translation> <translation id="6738430949033571771">Vine-verify ang account...</translation> <translation id="6739923123728562974">Ipakita ang desktop shortcut</translation> @@ -8488,7 +8476,6 @@ <translation id="7853747251428735">Higit Pang Mga Too&l</translation> <translation id="7853999103056713222">Gumamit ng Mas Ligtas na Password</translation> <translation id="7855678561139483478">Ilipat ang tab sa bagong window</translation> -<translation id="7855729579456690716">Makakapagbukas ang mga site ng picture-in-picture na window kapag lumipat ka sa ibang tab</translation> <translation id="7857004848504343806">Naglalaman ng secure na module ang iyong computer, na ginagamit para magpatupad ng maraming kritikal na panseguridad na feature sa ChromeOS Flex. Bisitahin ang Help Center ng Chromebook para matuto pa: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Mga suhestyong text</translation> <translation id="7857949311770343000">Ito ba ang page ng bagong tab na inaasahan mo?</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb index 46239806..4e652b62 100644 --- a/chrome/app/resources/generated_resources_fr-CA.xtb +++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> se souvient de la façon dont vous vous êtes connecté et vous connecte automatiquement lorsque cela est possible. Lorsqu'il est désactivé, une confirmation vous sera demandée à chaque fois.</translation> <translation id="1008544602823861396">n'est pas autorisé à utiliser vos informations sur</translation> <translation id="1008557486741366299">Pas maintenant</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Afin de protéger vos données, les autorisations ont été retirées pour un site que vous n'avez pas visité depuis deux mois}one{Afin de protéger vos données, les autorisations ont été retirées pour ce site que vous n'avez pas visité depuis deux mois}other{Afin de protéger vos données, les autorisations ont été retirées pour ces sites que vous n'avez pas visités depuis deux mois}}</translation> <translation id="1009663062402466586">Commandes de jeu maintenant accessibles</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{La page ne répond pas}one{La page ne répond pas}other{Les pages ne répondent pas}}</translation> <translation id="1011003645819296594">Appareils enregistrés</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copier l'adr&esse du lien</translation> <translation id="1085064499066015002">Toujours sur tous les sites</translation> <translation id="1085697365578766383">Erreur lors du démarrage de la machine virtuelle. Veuillez réessayer.</translation> -<translation id="1087965115100412394">Ne pas autoriser les sites à se connecter à des appareils MIDI</translation> <translation id="1088659085457112967">Activer le mode Lecture</translation> <translation id="1090126737595388931">Aucune application ne fonctionne en arrière-plan</translation> <translation id="1090541560108055381">Avant de procéder à l'association, assurez-vous que ce code est le même sur les deux appareils</translation> @@ -3212,7 +3210,6 @@ <translation id="3551320343578183772">Fermer l'onglet</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> : <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Effacé à la fin de la session</translation> -<translation id="3553487194781590058">N'autorise pas les sites à ouvrir une fenêtre d'incrustation d'image lorsque vous passez à un autre onglet</translation> <translation id="3554493885489666172">Votre appareil est géré par <ph name="PROFILE_NAME" />. Les administrateurs ont accès aux données de tous les profils enregistrés sur cet appareil.</translation> <translation id="3555812735919707620">Retirer l'extension</translation> <translation id="3557101512409028104">Définissez des restrictions de sites Web et des limites de temps d'utilisation des écrans avec Family Link</translation> @@ -3771,7 +3768,6 @@ <translation id="3975201861340929143">Explication</translation> <translation id="3975565978598857337">Échec de la tentative de contact du serveur associé à ce domaine</translation> <translation id="3976108569178263973">Il n'y a aucune imprimante à proximité.</translation> -<translation id="3976244126942806443">Les sites se connectent généralement à des appareils MIDI pour créer et éditer de la musique</translation> <translation id="397703832102027365">Finalisation en cours...</translation> <translation id="3977145907578671392">Les fonctionnalités de certains sites peuvent ne pas fonctionner en mode de navigation privée</translation> <translation id="3977886311744775419">Les mises à jour automatiques ne seront pas téléchargées sur ce type de réseau, mais vous pouvez vérifier manuellement la présence de mises à jour.</translation> @@ -4669,7 +4665,6 @@ <translation id="4730492586225682674">Afficher la dernière note prise au stylet sur l'écran de verrouillage</translation> <translation id="4730888769809690665">Les notifications sont autorisées pour <ph name="SITE" /></translation> <translation id="4731306954230393087">Autorisé à utiliser les renseignements enregistrés à votre sujet</translation> -<translation id="473140019006744096">Impossible d'effectuer cette mise à jour parce que l'espace de stockage sur cet appareil est insuffisant. Libérez <ph name="NECESSARY_SPACE" /> sur votre appareil et réessayez.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (gauche)</translation> <translation id="4733793249294335256">Emplacement</translation> <translation id="473546211690256853">Ce compte est géré par <ph name="DOMAIN" /></translation> @@ -5367,7 +5362,6 @@ <translation id="5327912693242073631">Les fonctionnalités qui ont besoin des notifications ne fonctionneront pas</translation> <translation id="532943162177641444">Touchez la notification sur votre <ph name="PHONE_NAME" /> afin de configurer le point d'accès mobile que cet appareil peut utiliser.</translation> <translation id="5329858601952122676">&Supprimer</translation> -<translation id="5330592967519769658">Autorisé à ouvrir une fenêtre d'incrustation d'image lorsque vous passez à un autre onglet</translation> <translation id="5331069282670671859">Vous n'avez aucun certificat dans cette catégorie</translation> <translation id="5331568967879689647">Application système de Chrome OS</translation> <translation id="5331975486040154427">Appareil USB-C (port arrière-gauche)</translation> @@ -5545,7 +5539,6 @@ <translation id="5473099001878321374">En continuant, vous acceptez que cet appareil puisse également recevoir et installer automatiquement des mises à jour et des applications de Google, du fournisseur de services de votre enfant, et de son fabricant (et utiliser les données cellulaires, le cas échéant). Certaines de ces applications offrent des achats au moyen de l'application.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Le NIP doit comprendre au moins un caractère}one{Le NIP doit comprendre au moins # caractère}other{Le NIP doit comprendre au moins # caractères}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> exige que vous vous connectiez au Wi-Fi maintenant et que vous téléchargiez une mise à jour. Autrement, téléchargez-la à l'aide d'une connexion mesurée (des frais pourraient s'appliquer).</translation> -<translation id="5478520208448702555">Les sites peuvent ouvrir une fenêtre d'incrustation d'image lorsque vous passez à un autre onglet</translation> <translation id="5481273127572794904">Non autorisés à télécharger automatiquement plusieurs fichiers</translation> <translation id="5481941284378890518">Ajouter des imprimantes à proximité</translation> <translation id="5484181871714116891">Lorsque cette option est activée, les clés d'accès sont créées dans le trousseau iCloud et sont accessibles sur vos appareils Apple. Lorsqu'elle est désactivée, les clés d'accès sont créées dans votre profil Chrome sur cet appareil.</translation> @@ -5703,7 +5696,6 @@ <translation id="5600348067066185292">L'installation se fait en quelques étapes simples. Vous pourrez encore confirmer l'opération avant que les modifications soient apportées à votre ordinateur.</translation> <translation id="5600706100022181951">La mise à jour sera téléchargée en utilisant <ph name="UPDATE_SIZE_MB" /> Mo de données cellulaires. Voulez-vous continuer?</translation> <translation id="5601503069213153581">NIP</translation> -<translation id="5601823921345337195">Non autorisés à se connecter à des appareils MIDI</translation> <translation id="5601833336918638013">Ne pas autoriser les sites à rechercher les appareils Bluetooth</translation> <translation id="5602586420788540146">Ouvrir dans un nouveau groupe d'onglets</translation> <translation id="5605758115928394442">Nous avons envoyé une notification à votre téléphone pour confirmer votre identité.</translation> @@ -5825,7 +5817,6 @@ <translation id="5707185214361380026">Échec du chargement de l'extension de :</translation> <translation id="5708171344853220004">Nom Microsoft principal</translation> <translation id="5709557627224531708">Définir Chrome comme navigateur par défaut</translation> -<translation id="5710122160114032242">Non autorisé à ouvrir une fenêtre d'incrustation d'image lorsque vous passez à un autre onglet</translation> <translation id="5711010025974903573">Journaux de service</translation> <translation id="5711983031544731014">Impossible de procéder au déverrouillage. Veuillez entrer votre mot de passe.</translation> <translation id="5712153969432126546">Les sites publient parfois des fichiers en format PDF, comme des documents, des contrats et des formulaires</translation> @@ -6587,7 +6578,6 @@ <translation id="6326175484149238433">Supprimer de Google Chrome</translation> <translation id="6326855256003666642">Compte de conservation de connexion active</translation> <translation id="6327785803543103246">Découverte automatique de mandataire Web</translation> -<translation id="6331818708794917058">Les sites peuvent demander à se connecter à des appareils MIDI</translation> <translation id="6333064448949140209">Le fichier sera envoyé à Google pour débogage</translation> <translation id="6333170995003625229">Impossible de vérifier votre adresse de courriel ni votre mot de passe. Essayez de vous connecter à nouveau.</translation> <translation id="6334267141726449402">Copiez ce lien et envoyez-le à l'utilisateur pour collecter les journaux.</translation> @@ -6737,7 +6727,6 @@ <translation id="6458701200018867744">Échec du téléversement (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Rechercher la sélection</translation> <translation id="6459799433792303855">Fenêtre active déplacée sur un autre écran</translation> -<translation id="6460566145397380451">Autorisés à se connecter à des appareils MIDI</translation> <translation id="6460601847208524483">Rechercher le suivant</translation> <translation id="6461170143930046705">Recherche de réseaux en cours…</translation> <translation id="6463795194797719782">&Modifier</translation> @@ -7065,7 +7054,6 @@ <translation id="6735304988756581115">Afficher les témoins et les autres données de sites...</translation> <translation id="6736243959894955139">Adresse</translation> <translation id="6737663862851963468">Supprimer le ticket Kerberos</translation> -<translation id="6737931010859480781">Cette application est préinstallée sur votre appareil</translation> <translation id="6738180164164974883">Autoriser l'activation de témoins tiers</translation> <translation id="6738430949033571771">Vérification du compte en cours…</translation> <translation id="6739923123728562974">Afficher le raccourci du bureau</translation> @@ -8454,7 +8442,6 @@ <translation id="7853747251428735">Plus d'outils</translation> <translation id="7853999103056713222">Utilisez un mot de passe plus sûr</translation> <translation id="7855678561139483478">Déplacer l'onglet vers une nouvelle fenêtre</translation> -<translation id="7855729579456690716">Les sites peuvent ouvrir une fenêtre d'incrustation d'image lorsque vous passez à un autre onglet</translation> <translation id="7857004848504343806">Votre ordinateur contient un module de sécurité qui est utilisé pour mettre en œuvre de nombreuses fonctionnalités de sécurité cruciales dans Chrome OS Flex. Visitez le centre d'aide Chromebook pour en savoir plus : https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Suggestions écrites</translation> <translation id="7857949311770343000">Est-ce bien la page Nouvel onglet à laquelle vous vous attendiez?</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 6e93b98..4a93c81 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">Le <ph name="BRAND" /> mémorise votre mode de connexion et vous connecte automatiquement quand c'est possible. Lorsque la connexion automatique est désactivée, vous êtes invité à confirmer votre choix à chaque fois.</translation> <translation id="1008544602823861396">ne peut pas utiliser vos informations sur</translation> <translation id="1008557486741366299">Pas maintenant</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Pour protéger vos données, des autorisations ont été supprimées pour un site que vous n'avez pas consulté depuis deux mois}one{Pour protéger vos données, des autorisations ont été supprimées pour un site que vous n'avez pas consulté depuis deux mois}other{Pour protéger vos données, des autorisations ont été supprimées pour des sites que vous n'avez pas consultés depuis deux mois}}</translation> <translation id="1009663062402466586">Commandes de jeu désormais disponibles</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Page ne répondant pas}one{Page ne répondant pas}other{Pages ne répondant pas}}</translation> <translation id="1011003645819296594">Appareils enregistrés</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copier l'adr&esse du lien</translation> <translation id="1085064499066015002">Toujours sur tous les sites</translation> <translation id="1085697365578766383">Impossible de démarrer la machine virtuelle. Veuillez réessayer.</translation> -<translation id="1087965115100412394">Ne pas autoriser les sites à se connecter à des appareils MIDI</translation> <translation id="1088659085457112967">Accéder au mode Lecteur</translation> <translation id="1090126737595388931">Aucune application active en arrière plan</translation> <translation id="1090541560108055381">Avant d'associer les appareils, assurez-vous que ce code est le même sur les deux</translation> @@ -3218,7 +3216,6 @@ <translation id="3551320343578183772">Fermer l'onglet</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Effacé en fin de session</translation> -<translation id="3553487194781590058">Ne pas autoriser les sites à ouvrir une fenêtre Picture-in-picture lorsque vous changez d'onglet</translation> <translation id="3554493885489666172">Votre appareil est géré par <ph name="PROFILE_NAME" />. Les administrateurs ont accès aux données de tous les profils de cet appareil.</translation> <translation id="3555812735919707620">Supprimer l'extension</translation> <translation id="3557101512409028104">Définissez des restrictions liées aux sites Web et des limites de temps d'utilisation avec Family Link</translation> @@ -3777,7 +3774,6 @@ <translation id="3975201861340929143">Explication</translation> <translation id="3975565978598857337">Échec de la tentative de contact du serveur correspondant à ce domaine</translation> <translation id="3976108569178263973">Aucune imprimante n'est disponible.</translation> -<translation id="3976244126942806443">Les sites se connectent généralement aux appareils MIDI pour créer et modifier de la musique</translation> <translation id="397703832102027365">Finalisation en cours…</translation> <translation id="3977145907578671392">Il est possible que les fonctionnalités de certains sites ne fonctionnent pas en navigation privée</translation> <translation id="3977886311744775419">Les mises à jour automatiques ne sont pas téléchargées sur ce type de réseau. Cependant, vous pouvez rechercher les mises à jour manuellement.</translation> @@ -4677,7 +4673,6 @@ <translation id="4730492586225682674">Dernière note prise avec le stylet sur l'écran de verrouillage</translation> <translation id="4730888769809690665">Notifications autorisées pour <ph name="SITE" /></translation> <translation id="4731306954230393087">Autorisé à utiliser les informations qu'il a enregistrées vous concernant</translation> -<translation id="473140019006744096">Espace insuffisant sur cet appareil pour finaliser la mise à jour. Libérez <ph name="NECESSARY_SPACE" /> sur votre appareil et réessayez.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (gauche)</translation> <translation id="4733793249294335256">Emplacement</translation> <translation id="473546211690256853">Ce compte est géré par <ph name="DOMAIN" />.</translation> @@ -5379,7 +5374,6 @@ <translation id="5327912693242073631">Les fonctionnalités qui utilisent les notifications ne seront pas disponibles</translation> <translation id="532943162177641444">Appuyez sur la notification sur votre <ph name="PHONE_NAME" /> pour configurer le point d'accès mobile qui sera utilisé par cet appareil.</translation> <translation id="5329858601952122676">&Supprimer</translation> -<translation id="5330592967519769658">Autorisés à ouvrir une fenêtre Picture-in-picture lorsque vous changez d'onglet</translation> <translation id="5331069282670671859">Vous n'avez aucun certificat dans cette catégorie</translation> <translation id="5331568967879689647">Appli système Chrome OS</translation> <translation id="5331975486040154427">Appareil USB de type C (port situé sur la gauche de l'appareil, à l'arrière)</translation> @@ -5557,7 +5551,6 @@ <translation id="5473099001878321374">En continuant, vous acceptez que cet appareil puisse aussi télécharger et installer des mises à jour et applis de Google, de l'opérateur de votre enfant et du fabricant de cet appareil, probablement via le réseau mobile. Certaines de ces applis permettent d'y effectuer des achats.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Ce code doit comporter au moins 1 caractère}one{Ce code doit comporter au moins # caractère}other{Ce code doit comporter au moins # caractères}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> vous demande de vous connecter au Wi-Fi maintenant et 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).</translation> -<translation id="5478520208448702555">Les sites peuvent ouvrir une fenêtre Picture-in-picture lorsque vous changez d'onglet</translation> <translation id="5481273127572794904">Non autorisé à télécharger automatiquement plusieurs fichiers</translation> <translation id="5481941284378890518">Ajouter des imprimantes à proximité</translation> <translation id="5484181871714116891">Lorsque cette option est activée, les clés d'accès sont créées dans le trousseau iCloud et disponibles sur vos appareils Apple. Lorsqu'elle est désactivée, les clés d'accès sont créées dans votre profil Chrome sur cet appareil.</translation> @@ -5715,7 +5708,6 @@ <translation id="5600348067066185292">L'installation s'effectue facilement en quelques étapes. Vous aurez une autre occasion de vérifier les modifications avant qu'elles ne soient appliquées à l'ordinateur.</translation> <translation id="5600706100022181951">Le téléchargement de la mise à jour utilisera <ph name="UPDATE_SIZE_MB" /> Mo de données mobiles. Voulez-vous continuer ?</translation> <translation id="5601503069213153581">Code d'accès</translation> -<translation id="5601823921345337195">Non autorisé à se connecter à des appareils MIDI</translation> <translation id="5601833336918638013">Ne pas autoriser les sites à rechercher des appareils Bluetooth</translation> <translation id="5602586420788540146">Ouvrir dans un nouveau groupe d'onglets</translation> <translation id="5605758115928394442">Une notification a été envoyée à votre téléphone pour que vous puissiez confirmer votre identité.</translation> @@ -5838,7 +5830,6 @@ <translation id="5707185214361380026">Échec du chargement de l'extension depuis :</translation> <translation id="5708171344853220004">Nom Microsoft principal</translation> <translation id="5709557627224531708">Définir Chrome comme navigateur par défaut</translation> -<translation id="5710122160114032242">Non autorisés à ouvrir une fenêtre Picture-in-picture lorsque vous changez d'onglet</translation> <translation id="5711010025974903573">Journaux de service</translation> <translation id="5711983031544731014">Déverrouillage impossible. Veuillez saisir votre mot de passe.</translation> <translation id="5712153969432126546">Les sites publient parfois des PDF, comme des documents, des contrats et des formulaires</translation> @@ -6600,7 +6591,6 @@ <translation id="6326175484149238433">Supprimer de Google Chrome</translation> <translation id="6326855256003666642">Nombre d'activités en cours</translation> <translation id="6327785803543103246">Recherche automatique du proxy Web</translation> -<translation id="6331818708794917058">Les sites peuvent demander à se connecter à des appareils MIDI</translation> <translation id="6333064448949140209">Le fichier sera envoyé à Google pour être débogué.</translation> <translation id="6333170995003625229">Impossible de valider votre adresse e-mail ou votre mot de passe. Essayez à nouveau de vous connecter.</translation> <translation id="6334267141726449402">Copiez ce lien et envoyez-le à l'utilisateur pour collecter les journaux.</translation> @@ -6750,7 +6740,6 @@ <translation id="6458701200018867744">Échec de l'importation (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Rechercher la sélection</translation> <translation id="6459799433792303855">Fenêtre active transférée vers un autre écran.</translation> -<translation id="6460566145397380451">Autorisé à se connecter à des appareils MIDI</translation> <translation id="6460601847208524483">Rechercher le suivant</translation> <translation id="6461170143930046705">Recherche de réseaux…</translation> <translation id="6463795194797719782">&Modifier</translation> @@ -7078,7 +7067,6 @@ <translation id="6735304988756581115">Afficher les cookies et autres données des sites...</translation> <translation id="6736243959894955139">Adresse</translation> <translation id="6737663862851963468">Supprimer un ticket Kerberos</translation> -<translation id="6737931010859480781">Cette appli est préinstallée sur votre appareil</translation> <translation id="6738180164164974883">Autoriser à placer des cookies tiers</translation> <translation id="6738430949033571771">Validation du compte…</translation> <translation id="6739923123728562974">Afficher le raccourci sur le Bureau</translation> @@ -8473,7 +8461,6 @@ <translation id="7853747251428735">Plus d'outi&ls</translation> <translation id="7853999103056713222">Utilisez un mot de passe plus sûr</translation> <translation id="7855678561139483478">Déplacer l'onglet vers une nouvelle fenêtre</translation> -<translation id="7855729579456690716">Les sites peuvent ouvrir une fenêtre Picture-in-picture lorsque vous changez d'onglet</translation> <translation id="7857004848504343806">Votre ordinateur contient un module de sécurité qui permet d'implémenter de nombreuses fonctionnalités de sécurité critiques dans ChromeOS Flex. Consultez le centre d'aide Chromebook pour en savoir plus : https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Suggestions écrites</translation> <translation id="7857949311770343000">Est-ce la page Nouvel onglet que vous attendiez ?</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 37eb5cd..415246a 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">O <ph name="BRAND" /> lembrará a forma na que accedes e iniciará a túa sesión automaticamente cando sexa posible. Se esta opción está desactivada, pediráseche sempre unha confirmación.</translation> <translation id="1008544602823861396">non ten permitido usar a túa información en</translation> <translation id="1008557486741366299">Agora non</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Para protexer os teus datos, quitáronse os permisos dun sitio que levas 2 meses sen visitar}other{Para protexer os teus datos, quitáronse os permisos dos sitios que levas 2 meses sen visitar}}</translation> <translation id="1009663062402466586">Os controis de xogo xa están dispoñibles</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Páxina que non responde}other{Páxinas que non responden}}</translation> <translation id="1011003645819296594">Dispositivos gardados</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copiar endere&zo da ligazón</translation> <translation id="1085064499066015002">Activar sempre en todos os sitios</translation> <translation id="1085697365578766383">Produciuse un erro ao iniciar a máquina virtual. Téntao de novo.</translation> -<translation id="1087965115100412394">Non permitir que os sitios se conecten a dispositivos MIDI</translation> <translation id="1088659085457112967">Acceder ao modo de lector</translation> <translation id="1090126737595388931">Non hai ningunha aplicación en segundo plano en execución</translation> <translation id="1090541560108055381">Antes de vincular os dispositivos, asegúrate de que nos dous se mostre este mesmo código</translation> @@ -3216,7 +3214,6 @@ <translation id="3551320343578183772">Pechar pestana</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" />: <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Cookie borrada ao saír</translation> -<translation id="3553487194781590058">Non permitir que os sitios abran ventás en pantalla superposta cando cambies de pestana</translation> <translation id="3554493885489666172">O teu dispositivo está xestionado por <ph name="PROFILE_NAME" />. Os administradores poden acceder aos datos de calquera perfil deste dispositivo.</translation> <translation id="3555812735919707620">Eliminar extensión</translation> <translation id="3557101512409028104">Define as restricións de sitios web e o tempo diante da pantalla con Family Link</translation> @@ -3778,7 +3775,6 @@ <translation id="3975201861340929143">Explicación</translation> <translation id="3975565978598857337">Produciuse un erro durante o contacto co servidor do dominio</translation> <translation id="3976108569178263973">Non hai impresoras dispoñibles.</translation> -<translation id="3976244126942806443">Os sitios adoitan conectarse aos dispositivos MIDI para crear e editar música</translation> <translation id="397703832102027365">Finalizando...</translation> <translation id="3977145907578671392">É posible que as funcións dalgúns sitios non estean dispoñibles no modo de incógnito</translation> <translation id="3977886311744775419">As actualizacións automáticas non se descargan neste tipo de rede, pero podes buscar actualizacións manualmente.</translation> @@ -4678,7 +4674,6 @@ <translation id="4730492586225682674">Nota máis recente do lapis óptico na pantalla de inicio</translation> <translation id="4730888769809690665">Permítense as notificacións para <ph name="SITE" /></translation> <translation id="4731306954230393087">Sitios con permiso para usar a información que garden sobre ti</translation> -<translation id="473140019006744096">Non hai espazo suficiente neste dispositivo para completar a actualización. Libera <ph name="NECESSARY_SPACE" /> de espazo e téntao de novo.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (dispositivo esquerdo)</translation> <translation id="4733793249294335256">Localización</translation> <translation id="473546211690256853">Esta conta está xestionada por <ph name="DOMAIN" /></translation> @@ -5380,7 +5375,6 @@ <translation id="5327912693242073631">As funcións que requiran notificacións non estarán dispoñibles</translation> <translation id="532943162177641444">Toca a notificación no teléfono <ph name="PHONE_NAME" /> para configurar a zona wifi móbil que pode utilizar este dispositivo.</translation> <translation id="5329858601952122676">&Eliminar</translation> -<translation id="5330592967519769658">Con permiso para abrir unha ventá en pantalla superposta cando cambies de pestana</translation> <translation id="5331069282670671859">Non tes certificados nesta categoría</translation> <translation id="5331568967879689647">Aplicación do sistema Chrome OS</translation> <translation id="5331975486040154427">Dispositivo USB‑C (porto esquerdo posterior)</translation> @@ -5558,7 +5552,6 @@ <translation id="5473099001878321374">Ao continuar, aceptas que este dispositivo tamén poida descargar e instalar automaticamente actualizacións e aplicacións de Google, do operador do teu fillo ou filla, e do fabricante deste dispositivo, posiblemente mediante datos móbiles. Algunhas destas aplicacións poden ofrecer compras integradas nelas.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{O PIN debe ter como mínimo 1 carácter}other{O PIN debe ter como mínimo # caracteres}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> require que te conectes agora á wifi e descargues unha actualización. Tamén podes descargala desde unha conexión de pago por consumo (pódense aplicar cargos).</translation> -<translation id="5478520208448702555">Os sitios poderán abrir unha ventá en pantalla superposta cando cambies de pestana</translation> <translation id="5481273127572794904">Sitios que non poden descargar automaticamente varios ficheiros</translation> <translation id="5481941284378890518">Engadir impresoras que estean cerca</translation> <translation id="5484181871714116891">Se activas esta opción, as claves de acceso crearanse no chaveiro de iCloud (iCloud Keychain) e estarán dispoñibles nos diferentes dispositivos de Apple. Se non a activas, crearanse no teu perfil de Chrome deste dispositivo.</translation> @@ -5716,7 +5709,6 @@ <translation id="5600348067066185292">Para levar a cabo a instalación, deberás seguir uns poucos pasos sinxelos. Terás outra oportunidade de confirmar a operación antes de que se fagan cambios no teu ordenador.</translation> <translation id="5600706100022181951">Para descargar a actualización utilizaranse <ph name="UPDATE_SIZE_MB" /> MB de datos móbiles. Queres continuar?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Sitios que non poden conectarse a dispositivos MIDI</translation> <translation id="5601833336918638013">Non permitir que os sitios busquen dispositivos Bluetooth</translation> <translation id="5602586420788540146">Abrir nun grupo de pestanas novo</translation> <translation id="5605758115928394442">Enviouse unha notificación ao teu teléfono para confirmar a túa identidade.</translation> @@ -5836,7 +5828,6 @@ <translation id="5707185214361380026">Erro ao cargar a extensión de:</translation> <translation id="5708171344853220004">Nome principal de Microsoft</translation> <translation id="5709557627224531708">Define Chrome como navegador predeterminado</translation> -<translation id="5710122160114032242">Sen permiso para abrir unha ventá en pantalla superposta cando cambies de pestana</translation> <translation id="5711010025974903573">Rexistros de servizo</translation> <translation id="5711983031544731014">Non se pode desbloquear. Introduce o teu contrasinal.</translation> <translation id="5712153969432126546">Ás veces, os sitios publican PDF (por exemplo, documentos, contratos e formularios)</translation> @@ -6597,7 +6588,6 @@ <translation id="6326175484149238433">Eliminar de Chrome</translation> <translation id="6326855256003666642">Número de conexións permanente</translation> <translation id="6327785803543103246">Detección automática do proxy web</translation> -<translation id="6331818708794917058">Os sitios poden pedirche permiso para conectarse aos dispositivos MIDI</translation> <translation id="6333064448949140209">Enviarase o ficheiro a Google para proceder á depuración</translation> <translation id="6333170995003625229">Non se puido verificar o enderezo de correo electrónico nin o contrasinal. Tenta iniciar sesión de novo.</translation> <translation id="6334267141726449402">Copia esta ligazón e envíaa ao usuario para recompilar os rexistros.</translation> @@ -6747,7 +6737,6 @@ <translation id="6458701200018867744">Produciuse un erro ao cargar o rexistro (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Utilizar selección para buscar</translation> <translation id="6459799433792303855">A ventá activa moveuse a outra pantalla.</translation> -<translation id="6460566145397380451">Sitios que poden conectarse a dispositivos MIDI</translation> <translation id="6460601847208524483">Buscar seguinte</translation> <translation id="6461170143930046705">Buscando redes…</translation> <translation id="6463795194797719782">&Editar</translation> @@ -7073,7 +7062,6 @@ <translation id="6735304988756581115">Mostrar cookies e datos doutros sitios...</translation> <translation id="6736243959894955139">Enderezo</translation> <translation id="6737663862851963468">Quitar tícket de Kerberos</translation> -<translation id="6737931010859480781">Esta aplicación está preinstalada no dispositivo</translation> <translation id="6738180164164974883">Permitir definir cookies de terceiros</translation> <translation id="6738430949033571771">Verificando conta…</translation> <translation id="6739923123728562974">Mostrar atallo do escritorio</translation> @@ -8467,7 +8455,6 @@ <translation id="7853747251428735">Máis ferrament&as</translation> <translation id="7853999103056713222">Usa un contrasinal máis seguro</translation> <translation id="7855678561139483478">Mover pestana a ventá nova</translation> -<translation id="7855729579456690716">Os sitios poderán abrir unha ventá en pantalla superposta cando cambies de pestana</translation> <translation id="7857004848504343806">O ordenador contén un módulo seguro que se utiliza para implementar moitas funcións de seguranza esenciais en Chrome OS Flex. Consulta o Centro de Axuda de Chromebook para obter máis información: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Suxestións de texto</translation> <translation id="7857949311770343000">Esta é a páxina da pestana nova que esperabas?</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index f0ca2b7d..25f307d 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">તમે કેવી રીતે સાઇન ઇન કર્યું છે તે <ph name="BRAND" /> યાદ રાખે છે અને શક્ય હોય ત્યારે તે તમને ઑટોમૅટિક રીતે સાઇન ઇન કરાવે છે. જ્યારે આ સુવિધા બંધ હોય, ત્યારે દર વખતે કન્ફર્મેશન માટે તમને પૂછવામાં આવશે.</translation> <translation id="1008544602823861396">આને તમારી માહિતીનો ઉપયોગ આના પર કરવાથી બ્લૉક કરવામાં આવી છે</translation> <translation id="1008557486741366299">હમણાં નહીં</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{તમારા ડેટાની સુરક્ષા માટે, તમે 2 મહિનામાં મુલાકાત લીધી ન હોય એવી સાઇટની પરવાનગીઓ કાઢી નાખવામાં આવી હતી}one{તમારા ડેટાની સુરક્ષા માટે, તમે 2 મહિનામાં મુલાકાત લીધી ન હોય એવી સાઇટની પરવાનગીઓ કાઢી નાખવામાં આવી હતી}other{તમારા ડેટાની સુરક્ષા માટે, તમે 2 મહિનામાં મુલાકાત લીધી ન હોય એવી સાઇટની પરવાનગીઓ કાઢી નાખવામાં આવી હતી}}</translation> <translation id="1009663062402466586">ગેમના નિયંત્રણો હવે ઉપલબ્ધ છે</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{પેજ પ્રતિભાવ આપતું નથી}one{પેજ પ્રતિભાવ આપતું નથી}other{પેજ પ્રતિભાવ આપતું નથી}}</translation> <translation id="1011003645819296594">સાચવેલા ડિવાઇસ</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">લિંક સર&નામાંની કૉપિ કરો</translation> <translation id="1085064499066015002">હંમેશાં બધી સાઇટ માટે પરવાનગી આપો</translation> <translation id="1085697365578766383">વર્ચ્યુઅલ મશીન શરૂ કરવામાં ભૂલ આવી. કૃપા કરીને ફરી પ્રયાસ કરો.</translation> -<translation id="1087965115100412394">સાઇટને MIDI ડિવાઇસ સાથે કનેક્ટ કરવાની મંજૂરી આપશો નહીં</translation> <translation id="1088659085457112967">રીડર મોડમાં દાખલ થાઓ</translation> <translation id="1090126737595388931">કોઈપણ બૅકગ્રાઉન્ડ ઍપ ચાલી રહી નથી</translation> <translation id="1090541560108055381">જોડાણ બનાવતા પહેલાં, આ કોડ બન્ને ડિવાઇસ પર સમાન હોય એ વાતની ખાતરી કરો</translation> @@ -3225,7 +3223,6 @@ <translation id="3551320343578183772">ટૅબ બંધ કરો</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">બહાર નીકળવા પર સાફ કર્યું</translation> -<translation id="3553487194781590058">જ્યારે તમે કોઈ અલગ ટૅબ પર બદલો, ત્યારે સાઇટને ચિત્ર-માં-ચિત્ર વિન્ડો ખોલવાની મંજૂરી આપશો નહીં</translation> <translation id="3554493885489666172">તમારું ડિવાઇસ <ph name="PROFILE_NAME" /> દ્વારા મેનેજ કરવામાં આવે છે. વ્યવસ્થાપકો આ ડિવાઇસ પર કોઈપણ પ્રોફાઇલમાંનો ડેટા ઍક્સેસ કરી શકે છે.</translation> <translation id="3555812735919707620">એક્સ્ટેન્શન દૂર કરો</translation> <translation id="3557101512409028104">Family Link વડે વેબસાઇટ પ્રતિબંધો અને સ્ર્કીન સમય મર્યાદાઓ સેટ કરો</translation> @@ -3784,7 +3781,6 @@ <translation id="3975201861340929143">સ્પષ્ટતા</translation> <translation id="3975565978598857337">ક્ષેત્ર માટે સર્વરનો સંપર્ક કરવામાં નિષ્ફળ થયાં</translation> <translation id="3976108569178263973">કોઈ પ્રિન્ટર ઉપલબ્ધ નથી.</translation> -<translation id="3976244126942806443">મ્યુઝિકની રચના કરવા માટેની અને તેમાં ફેરફાર કરવા માટે, સાઇટ સામાન્ય રીતે MIDI ડિવાઇસનો ઉપયોગ કરે છે</translation> <translation id="397703832102027365">ફાઇનલ કરી રહ્યું છે...</translation> <translation id="3977145907578671392">છૂપા મોડમાં અમુક સાઇટ પર અમુક સુવિધાઓ કામ કરી શકશે નહીં</translation> <translation id="3977886311744775419">ઑટોમૅટિક અપડેટ આ નેટવર્ક પ્રકાર પર ડાઉનલોડ થતાં નથી, પણ તમે અપડેટ મેન્યુઅલી ચેક કરી શકો છો.</translation> @@ -4684,7 +4680,6 @@ <translation id="4730492586225682674">લૉક સ્ક્રીન પર સ્ટાઇલ વડે એકદમ નવી નોંધ લેવાના સેટિંગ</translation> <translation id="4730888769809690665"><ph name="SITE" /> માટે નોટિફિકેશનની મંજૂરી આપેલી છે</translation> <translation id="4731306954230393087">તેઓ દ્વારા તમારા વિશે સાચવવામાં આવેલી માહિતીનો ઉપયોગ કરવાની તેમને મંજૂરી છે</translation> -<translation id="473140019006744096">આ અપડેટ પૂર્ણ કરવા માટે આ ડિવાઇસ પર પૂરતી સ્પેસ નથી. તમારા ડિવાઇસ પર <ph name="NECESSARY_SPACE" /> સાફ કરો અને ફરીથી પ્રયાસ કરો.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ડાબે)</translation> <translation id="4733793249294335256">સ્થાન</translation> <translation id="473546211690256853">આ એકાઉન્ટ <ph name="DOMAIN" /> દ્વારા મેનેજ કરાય છે</translation> @@ -5386,7 +5381,6 @@ <translation id="5327912693242073631">જેના માટે નોટિફિકેશન જરૂરી હોય તેવી સુવિધાઓ કામ કરશે નહીં</translation> <translation id="532943162177641444">આ ડિવાઇસ દ્વારા ઉપયોગમાં લઈ શકાય એવું મોબાઇલ હોટસ્પોટ સેટ કરવા માટે તમારા <ph name="PHONE_NAME" /> પરની સૂચનાને ટૅપ કરો.</translation> <translation id="5329858601952122676">&કાઢી નાખો</translation> -<translation id="5330592967519769658">જ્યારે તમે કોઈ અલગ ટૅબ પર બદલો, ત્યારે ચિત્ર-માં-ચિત્ર વિન્ડો ખોલવાની મંજૂરી આપેલી છે</translation> <translation id="5331069282670671859">તમારી પાસે આ કૅટેગરીમાં કોઈ પ્રમાણપત્ર નથી</translation> <translation id="5331568967879689647">ChromeOS સિસ્ટમ ઍપ</translation> <translation id="5331975486040154427">USB-C ડિવાઇસ (ડાબી બાજુનું પાછળનું પોર્ટ)</translation> @@ -5564,7 +5558,6 @@ <translation id="5473099001878321374">આગળ વધીને, તમે સંમત થાઓ છો કે આ ડિવાઇસ Google, તમારા બાળકના મોબાઇલ ઑપરેટર અને આ ડિવાઇસના નિર્માતા તરફથી સંભવિત રીતે સેલ્યુલર ડેટાનો ઉપયોગ કરીને, અપડેટ અને ઍપને ઑટોમૅટિક રીતે ડાઉનલોડ અને ઇન્સ્ટૉલ પણ કરી શકે છે. આમાંની અમુક ઍપ, ઍપમાંથી ખરીદીઓની ઑફર કરી શકે છે.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{પિન ઓછામાં ઓછો એક અક્ષરનો હોવો આવશ્યક છે}one{પિન ઓછામાં ઓછો # અક્ષરનો હોવો આવશ્યક છે}other{પિન ઓછામાં ઓછો # અક્ષરનો હોવો આવશ્યક છે}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> માટે જરૂરી છે કે તમે હમણાં વાઇ-ફાઇથી કનેક્ટ થાઓ અને અપડેટ ડાઉનલોડ કરો. અથવા મીટર્ડ (ડેટા નિયંત્રણ) કનેક્શન પરથી ડાઉનલોડ કરો (શુલ્ક લાગુ થઈ શકે છે).</translation> -<translation id="5478520208448702555">જ્યારે તમે કોઈ અલગ ટૅબ પર બદલો, ત્યારે Sites દ્વારા ચિત્ર-માં-ચિત્ર વિન્ડો ખોલવામાં આવે એમ બને</translation> <translation id="5481273127572794904">એકથી વધારે ફાઇલો ઑટોમૅટિક રીતે ડાઉનલોડ કરવાની મંજૂરી નથી</translation> <translation id="5481941284378890518">નજીકના પ્રિન્ટર્સ ઉમેરો</translation> <translation id="5484181871714116891">જ્યારે ચાલુ હોય, ત્યારે પાસકી iCloud કીચેનમાં બનાવવામાં આવે છે અને તમારા તમામ Apple ડિવાઇસ પર ઉપલબ્ધ છે. જ્યારે બંધ હોય, ત્યારે આ ડિવાઇસ પર તમારી Chrome પ્રોફાઇલમાં પાસકી બનાવવામાં આવે છે.</translation> @@ -5722,7 +5715,6 @@ <translation id="5600348067066185292">ઇન્સ્ટૉલેશન માટે થોડા સરળ પગલાંની જરૂર પડે છે. તમારા કમ્પ્યુટર પર કોઈ ફેરફાર કરવામાં આવે તે પહેલાં, કન્ફર્મ કરવા માટે તમારી પાસે બીજી એક તક રહેશે.</translation> <translation id="5600706100022181951">અપડેટ ડાઉનલોડ કરવામાં <ph name="UPDATE_SIZE_MB" /> MB મોબાઇલ ડેટા વપરાશે. શું તમે ચાલુ રાખવા માગો છો?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI ડિવાઇસ સાથે કનેક્ટ કરવાની મંજૂરી આપેલી નથી</translation> <translation id="5601833336918638013">બ્લૂટૂથ ડિવાઇસ શોધવા માટે સાઇટને મંજૂરી આપશો નહીં</translation> <translation id="5602586420788540146">નવા ટૅબના ગ્રૂપમાં ખોલો</translation> <translation id="5605758115928394442">તમે જ છો તે કન્ફર્મ કરવા માટે તમારા ફોન પર નોટિફિકેશન મોકલવામાં આવ્યું હતું.</translation> @@ -5845,7 +5837,6 @@ <translation id="5707185214361380026">અહીંથી એક્સ્ટેન્શનને લોડ કરવામાં નિષ્ફળ:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chromeને તમારા ડિફૉલ્ટ બ્રાઉઝર તરીકે સેટ કરો</translation> -<translation id="5710122160114032242">જ્યારે તમે કોઈ અલગ ટૅબ પર બદલો, ત્યારે ચિત્ર-માં-ચિત્ર વિન્ડો ખોલવાની મંજૂરી આપેલી નથી</translation> <translation id="5711010025974903573">સેવાના લૉગ</translation> <translation id="5711983031544731014">અનલૉક કરવામાં અસમર્થ છે. તમારો પાસવર્ડ દાખલ કરો.</translation> <translation id="5712153969432126546">સાઇટ અમુક વખતે PDFs પ્રકાશિત કરે છે, જેમ કે દસ્તાવેજો, કરારો અને ફોર્મ</translation> @@ -6609,7 +6600,6 @@ <translation id="6326175484149238433">Chrome માંથી દૂર કરો</translation> <translation id="6326855256003666642">સક્રિય રાખવા માટેની સંખ્યા</translation> <translation id="6327785803543103246">વેબ પ્રૉક્સીની ઑટોમૅટિક ખોજ</translation> -<translation id="6331818708794917058">સાઇટ MIDI ડિવાઇસ સાથે કનેક્ટ કરવાનું પૂછી શકે છે</translation> <translation id="6333064448949140209">ડીબગિંગ માટે ફાઇલ Google ને મોકલવામાં આવશે</translation> <translation id="6333170995003625229">તમારું ઇમેઇલ ઍડ્રેસ કે પાસવર્ડ ચકાસી શકાયો નથી. ફરીથી સાઇન ઇન કરવાનો પ્રયાસ કરો.</translation> <translation id="6334267141726449402">લૉગ એકત્રિત કરવા માટે આ લિંક કૉપિ કરી વપરાશકર્તાને તે મોકલો.</translation> @@ -6759,7 +6749,6 @@ <translation id="6458701200018867744">અપલોડ નિષ્ફળ થયું (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">શોધવા માટે પસંદગીનો ઉપયોગ કરો</translation> <translation id="6459799433792303855">સક્રિય વિંડો બીજા ડિસ્પ્લેમાં ખસેડી છે.</translation> -<translation id="6460566145397380451">MIDI ડિવાઇસ સાથે કનેક્ટ કરવાની મંજૂરી છે</translation> <translation id="6460601847208524483">આગલું શોધો</translation> <translation id="6461170143930046705">નેટવર્ક શોધી રહ્યાં છીએ...</translation> <translation id="6463795194797719782">&સંપાદિત કરો</translation> @@ -7088,7 +7077,6 @@ <translation id="6735304988756581115">કૂકીઝ અને અન્ય સાઇટનો ડેટા બતાવો...</translation> <translation id="6736243959894955139">સરનામું</translation> <translation id="6737663862851963468">Kerberos ટિકિટ કાઢી નાખો</translation> -<translation id="6737931010859480781">આ ઍપ તમારા ડિવાઇસ પર અગાઉથી ઇન્સ્ટૉલ કરેલી છે</translation> <translation id="6738180164164974883">ત્રીજા પક્ષની કુકી સેટ કરવાની મંજૂરી આપો</translation> <translation id="6738430949033571771">એકાઉન્ટની ચકાસણી કરી રહ્યાં છીએ...</translation> <translation id="6739923123728562974">ડેસ્કટૉપ શૉર્ટકટ બતાવો</translation> @@ -8484,7 +8472,6 @@ <translation id="7853747251428735">વધુ સા&ધનો</translation> <translation id="7853999103056713222">કોઈ વધુ સલામત પાસવર્ડનો ઉપયોગ કરો</translation> <translation id="7855678561139483478">ટૅબને નવી વિંડોમાં ખસેડો</translation> -<translation id="7855729579456690716">જ્યારે તમે કોઈ અલગ ટૅબ પર બદલો, ત્યારે Sites ચિત્ર-માં-ચિત્ર વિન્ડો ખોલી શકે છે</translation> <translation id="7857004848504343806">તમારું કમ્પ્યુટર સુરક્ષા મૉડ્યૂલ ધરાવે છે, જેનો ઉપયોગ ChromeOS Flexમાં ઘણી મહત્ત્વપૂર્ણ સુરક્ષા સુવિધાઓ લાગુ કરવા માટે કરવામાં આવે છે. વધુ જાણવા માટે Chromebook સહાયતા કેન્દ્રની મુલાકાત લો: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">ટેક્સ્ટ સૂચનો</translation> <translation id="7857949311770343000">શું આ તમારી અપેક્ષા મુજબનું નવું ટૅબ પેજ છે?</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 747d4fe..cb2f547d 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> याद रखता है कि आपने कैसे साइन इन किया था और जब भी संभव होता है, वह आपको अपने-आप साइन कर देता है. इस सुविधा के बंद होने पर, आपसे हर बार पुष्टि करने के लिए कहा जाएगा.</translation> <translation id="1008544602823861396">को ब्लॉक किया गया है, इसलिए यह आपकी जानकारी का इस्तेमाल इन पर नहीं कर सकता</translation> <translation id="1008557486741366299">अभी नहीं</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{आपने पिछले दो महीने से इस साइट का इस्तेमाल नहीं किया है, इसलिए इस साइट को दी गई अनुमतियां हटा दी गई हैं. ऐसा आपके डेटा को सुरक्षित रखने के लिए किया गया है}one{आपने पिछले दो महीने से इस साइट का इस्तेमाल नहीं किया है, इसलिए इस साइट को दी गई अनुमतियां हटा दी गई हैं. ऐसा आपके डेटा को सुरक्षित रखने के लिए किया गया है}other{आपने पिछले दो महीने से इन साइटों का इस्तेमाल नहीं किया है, इसलिए इन साइटों को दी गई अनुमतियां हटा दी गई हैं. ऐसा आपके डेटा को सुरक्षित रखने के लिए किया गया है}}</translation> <translation id="1009663062402466586">गेम के कंट्रोल अब उपलब्ध हैं</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{पेज काम नहीं कर रहा}one{पेज काम नहीं कर रहे}other{पेज काम नहीं कर रहे}}</translation> <translation id="1011003645819296594">सेव किए गए डिवाइस</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">लिंक का पता कॉपी करें</translation> <translation id="1085064499066015002">हमेशा सभी साइटों के लिए अनुमति दें</translation> <translation id="1085697365578766383">वर्चुअल मशीन शुरू करने में गड़बड़ी हुई. कृपया फिर से कोशिश करें.</translation> -<translation id="1087965115100412394">साइटों को एमआईडीआई डिवाइसों से कनेक्ट करने की अनुमति न दें</translation> <translation id="1088659085457112967">रीडर मोड में जाएं</translation> <translation id="1090126737595388931">कोई पृष्ठभूमि ऐप्स चालू नहीं है</translation> <translation id="1090541560108055381">दूसरे डिवाइस के साथ जोड़ने से पहले, पक्का कर लें कि यह कोड दोनों डिवाइसों पर एक जैसा ही हो</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">टैब बंद करें</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">बाहर निकलने पर साफ़ की गई</translation> -<translation id="3553487194781590058">किसी दूसरे टैब में जाने पर, साइटों को पिक्चर में पिक्चर विंडो खोलने की अनुमति नहीं दी जा सकती</translation> <translation id="3554493885489666172">आपके डिवाइस को <ph name="PROFILE_NAME" /> मैनेज करता है. एडमिन इस डिवाइस पर मौजूद किसी भी प्रोफ़ाइल का डेटा ऐक्सेस कर सकते हैं.</translation> <translation id="3555812735919707620">एक्सटेंशन निकालें</translation> <translation id="3557101512409028104">Family Link की मदद से वेबसाइट पाबंदियां और किसी डिवाइस के इस्तेमाल की समय सीमा सेट करें</translation> @@ -3790,7 +3787,6 @@ <translation id="3975201861340929143">जानकारी</translation> <translation id="3975565978598857337">दिए गए क्षेत्र के लिए सर्वर से संपर्क नहीं हो पाया</translation> <translation id="3976108569178263973">कोई भी प्रिंटर उपलब्ध नहीं है</translation> -<translation id="3976244126942806443">साइटें आम तौर पर, संगीत बनाने और उसमें बदलाव करने के लिए, एमआईडीआई डिवाइसों से कनेक्ट करती हैं</translation> <translation id="397703832102027365">अंतिम रूप दिया जा रहा है...</translation> <translation id="3977145907578671392">ऐसा हो सकता है कि ये सुविधाएं गुप्त मोड में कुछ साइटों पर काम न करें</translation> <translation id="3977886311744775419">इस नेटवर्क प्रकार पर अपडेट अपने आप डाउनलोड नहीं होते, लेकिन आप मैन्युअल रूप से अपडेट के लिए देख सकते हैं.</translation> @@ -4691,7 +4687,6 @@ <translation id="4730492586225682674">स्टाइलस की मदद से नए नोट को लॉक स्क्रीन पर रखना</translation> <translation id="4730888769809690665"><ph name="SITE" /> को सूचनाएं भेजने की अनुमति है</translation> <translation id="4731306954230393087">इन साइटों को आपके बारे में सेव की गई जानकारी इस्तेमाल करने की अनुमति है</translation> -<translation id="473140019006744096">इस अपडेट को पूरा करने के लिए, आपके डिवाइस में स्टोरेज कम है. अपने डिवाइस में <ph name="NECESSARY_SPACE" /> स्टोरेज खाली करें और फिर से कोशिश करें.</translation> <translation id="4733161265940833579">बाएं वायरलेस बड में <ph name="BATTERY_PERCENTAGE" />% बैटरी बची है</translation> <translation id="4733793249294335256">स्थान</translation> <translation id="473546211690256853">यह खाता <ph name="DOMAIN" /> द्वारा प्रबंधित किया जाता है</translation> @@ -5390,7 +5385,6 @@ <translation id="5327912693242073631">वे सुविधाएं काम नहीं करेंगी जिन्हें सूचनाओं की ज़रूरत है</translation> <translation id="532943162177641444">इस डिवाइस में इस्तेमाल किया जा सकने वाला मोबाइल हॉटस्पॉट सेट करने के लिए अपने <ph name="PHONE_NAME" /> में सूचना पर टैप करें.</translation> <translation id="5329858601952122676">&हटाएं</translation> -<translation id="5330592967519769658">किसी दूसरे टैब में जाने पर, पिक्चर में पिक्चर विंडो को खोलने की अनुमति दी जा सकती है</translation> <translation id="5331069282670671859">आपके पास इस श्रेणी में कोई प्रमाणपत्र नहीं है</translation> <translation id="5331568967879689647">ChromeOS सिस्टम ऐप्लिकेशन</translation> <translation id="5331975486040154427">USB-C डिवाइस (बायां पिछला पोर्ट)</translation> @@ -5568,7 +5562,6 @@ <translation id="5473099001878321374">जारी रखने का मतलब है कि यह डिवाइस, Google, आपके बच्चे के मोबाइल पर नेटवर्क सेवा देने वाली कंपनी, और इस डिवाइस को बनाने वाली कंपनी से मिलने वाले अपडेट और ऐप्लिकेशन को अपने-आप डाउनलोड और इंस्टॉल भी कर सकता है. ऐसा करने के लिए, हो सकता है कि डिवाइस मोबाइल डेटा का इस्तेमाल करे. इनमें से कुछ ऐप्लिकेशन, इन-ऐप्लिकेशन खरीदारी का ऑफ़र दे सकते हैं.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{पिन में कम से कम 1 वर्ण होना ज़रूरी है}one{पिन में कम से कम # वर्ण होना ज़रूरी है}other{पिन में कम से कम # वर्ण होने ज़रूरी हैं}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> के लिए ज़रूरी है कि आप अभी वाई-फ़ाई से कनेक्ट करें और अपडेट डाउनलोड करें. इसके अलावा, आप सीमित डेटा वाले कनेक्शन से भी डाउनलोड कर सकते हैं. इसके लिए शुल्क लिया जा सकता है.</translation> -<translation id="5478520208448702555">जब दूसरे टैब पर स्विच किया जाता है, तो साइटें पिक्चर में पिक्चर विंडो खोल सकती हैं</translation> <translation id="5481273127572794904">एक से ज़्यादा फ़ाइलों को अपने-आप डाउनलोड करने की अनुमति नहीं है</translation> <translation id="5481941284378890518">आस-पास के प्रिंटर जोड़ें</translation> <translation id="5484181871714116891">चालू होने पर, iCloud Keychain में पासकी बनाई जाती हैं और आपके सभी Apple डिवाइसों पर उपलब्ध होती हैं. बंद होने पर, इस डिवाइस पर आपकी Chrome प्रोफ़ाइल में पासकी बनाई जाती हैं.</translation> @@ -5726,7 +5719,6 @@ <translation id="5600348067066185292">कुछ आसान तरीकों से इंस्टॉल करें. आपके कंप्यूटर में बदलाव किए जाने से पहले, आपको पुष्टि करने का एक मौका और मिलेगा.</translation> <translation id="5600706100022181951">अपडेट को डाउनलोड करने में <ph name="UPDATE_SIZE_MB" /> एमबी मोबाइल डेटा का इस्तेमाल होगा. क्या आप जारी रखना चाहते हैं?</translation> <translation id="5601503069213153581">पिन</translation> -<translation id="5601823921345337195">MIDI डिवाइस से कनेक्ट करने की अनुमति नहीं है</translation> <translation id="5601833336918638013">साइटों को ब्लूटूथ डिवाइस खोजने की अनुमति न दें</translation> <translation id="5602586420788540146">नए टैब ग्रुप में खोलें</translation> <translation id="5605758115928394442">आपकी पहचान की पुष्टि करने के लिए, आपके फ़ोन पर एक सूचना भेजी गई थी.</translation> @@ -5848,7 +5840,6 @@ <translation id="5707185214361380026">इससे एक्सटेंशन लोड करने में विफल:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chrome को अपने डिफ़ॉल्ट ब्राउज़र के तौर पर सेट करें</translation> -<translation id="5710122160114032242">किसी दूसरे टैब में जाने पर, पिक्चर में पिक्चर विंडो को खोलने की अनुमति नहीं दी जा सकती</translation> <translation id="5711010025974903573">सेवा लॉग</translation> <translation id="5711983031544731014">अनलॉक करने में असमर्थ है. अपना पासवर्ड डालें.</translation> <translation id="5712153969432126546">कभी-कभी साइटें, पीडीएफ़ प्रकाशित करती हैं. जैसे, दस्तावेज़, कॉन्ट्रैक्ट, और फ़ॉर्म</translation> @@ -6610,7 +6601,6 @@ <translation id="6326175484149238433">Chrome से हटाएं</translation> <translation id="6326855256003666642">कीपअलाइव की गणना</translation> <translation id="6327785803543103246">वेब प्रॉक्सी अपने आप खोज</translation> -<translation id="6331818708794917058">साइटें MIDI डिवाइस से कनेक्ट करने के लिए पूछ सकती हैं</translation> <translation id="6333064448949140209">डीबग करने के लिए फ़ाइल Google को भेजी जाएगी</translation> <translation id="6333170995003625229">आपके ईमेल पते या पासवर्ड की पुष्टि नहीं की जा सकी. फिर से साइन इन करने की कोशिश करें.</translation> <translation id="6334267141726449402">लॉग इकट्ठा करने के लिए, इस लिंक को कॉपी करें और उपयोगकर्ता को भेजें.</translation> @@ -6760,7 +6750,6 @@ <translation id="6458701200018867744">अपलोड नहीं हो सका (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">ढूंढने के लिए चुनाव का उपयोग करें</translation> <translation id="6459799433792303855">चालू विंडो को किसी दूसरे डिसप्ले में ले जाया गया.</translation> -<translation id="6460566145397380451">MIDI डिवाइस कनेक्ट करने की अनुमति है</translation> <translation id="6460601847208524483">अगला ढूंढें</translation> <translation id="6461170143930046705">नेटवर्क खोज रहा है...</translation> <translation id="6463795194797719782">&संपादित करें</translation> @@ -7088,7 +7077,6 @@ <translation id="6735304988756581115">कुकी और साइट के अन्य डेटा दिखाएं...</translation> <translation id="6736243959894955139">पता</translation> <translation id="6737663862851963468">Kerberos टिकट हटाएं</translation> -<translation id="6737931010859480781">यह ऐप्लिकेशन आपके डिवाइस पर पहले से इंस्टॉल है</translation> <translation id="6738180164164974883">तीसरे पक्ष की कुकी को सेट करने की अनुमति दें</translation> <translation id="6738430949033571771">खाते की पुष्टि की जा रही है...</translation> <translation id="6739923123728562974">डेस्कटॉप शॉर्टकट दिखाएं</translation> @@ -8477,7 +8465,6 @@ <translation id="7853747251428735">ज़्यादा टू&ल</translation> <translation id="7853999103056713222">ज़्यादा सुरक्षित पासवर्ड इस्तेमाल करें</translation> <translation id="7855678561139483478">टैब को नई विंडो पर ले जाएं</translation> -<translation id="7855729579456690716">जब दूसरे टैब पर स्विच किया जाता है, तो साइटें पिक्चर में पिक्चर विंडो खोल सकती हैं</translation> <translation id="7857004848504343806">आपके कंप्यूटर में एक ऐसा सुरक्षित मॉड्यूल है जिसे ChromeOS Flex की सुरक्षा से जुड़ी कई अहम सुविधाओं को लागू करने में इस्तेमाल किया जाता है. ज़्यादा जानने के लिए Chromebook सहायता केंद्र पर जाएं: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">टाइपिंग के समय मिलने वाले शब्दों के सुझाव</translation> <translation id="7857949311770343000">क्या यह वही नया टैब पेज है जिसकी आप अपेक्षा कर रहे थे?</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 960ac902..9ce5ac9 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> pamti kako ste se prijavili i automatski vas prijavljuje kada je to moguće. Kada je ta značajka isključena, tražit će se potvrda svaki put.</translation> <translation id="1008544602823861396">ne smije upotrebljavati vaše podatke na</translation> <translation id="1008557486741366299">Ne sada</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Radi zaštite vaših podataka dopuštenja su uklonjena za web-lokaciju koju niste posjetili dva mjeseca}one{Radi zaštite vaših podataka dopuštenja su uklonjena za web-lokacije koje niste posjetili dva mjeseca}few{Radi zaštite vaših podataka dopuštenja su uklonjena za web-lokacije koje niste posjetili dva mjeseca}other{Radi zaštite vaših podataka dopuštenja su uklonjena za web-lokacije koje niste posjetili dva mjeseca}}</translation> <translation id="1009663062402466586">Sad su dostupne kontrole igara</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Stranica ne reagira}one{Stranice ne reagiraju}few{Stranice ne reagiraju}other{Stranice ne reagiraju}}</translation> <translation id="1011003645819296594">Spremljeni uređaji</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopiraj adresu &veze</translation> <translation id="1085064499066015002">Uvijek na svim web-lokacijama</translation> <translation id="1085697365578766383">Došlo je do pogreške prilikom pokretanja virtualnog računala. Pokušajte ponovo.</translation> -<translation id="1087965115100412394">Ne dopuštaj web-lokacijama povezivanje s MIDI uređajima</translation> <translation id="1088659085457112967">Pokreni način čitača</translation> <translation id="1090126737595388931">Nema pokrenutih pozadinskih aplikacija</translation> <translation id="1090541560108055381">Prije uparivanja provjerite je li ovaj kôd isti na oba uređaja</translation> @@ -3220,7 +3218,6 @@ <translation id="3551320343578183772">Zatvori karticu</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Briše se pri izlazu</translation> -<translation id="3553487194781590058">Nemojte dopustiti web-lokacijama da otvaraju prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="3554493885489666172">Vašim uređajem upravlja <ph name="PROFILE_NAME" />. Administratori mogu pristupati podacima na svim profilima na ovom uređaju.</translation> <translation id="3555812735919707620">Ukloni proširenje</translation> <translation id="3557101512409028104">Postavite ograničenja web-lokacija i ograničenja vremena upotrebe uz Family Link</translation> @@ -3779,7 +3776,6 @@ <translation id="3975201861340929143">Objašnjenje</translation> <translation id="3975565978598857337">Kontaktiranje poslužitelja za domenu nije uspjelo</translation> <translation id="3976108569178263973">Nema dostupnih pisača.</translation> -<translation id="3976244126942806443">Web-lokacije se obično povezuju s MIDI uređajima radi stvaranja i uređivanja glazbe</translation> <translation id="397703832102027365">Dovršavanje...</translation> <translation id="3977145907578671392">Značajke na nekim web-lokacijama možda neće funkcionirati u anonimnom načinu rada</translation> <translation id="3977886311744775419">Na ovoj vrsti mreže ne preuzimaju se automatska ažuriranja, no možete ih potražiti ručno.</translation> @@ -4679,7 +4675,6 @@ <translation id="4730492586225682674">Posljednja bilješka pisaljkom na zaključanom zaslonu</translation> <translation id="4730888769809690665">Obavijesti su dopuštene za <ph name="SITE" /></translation> <translation id="4731306954230393087">Web-lokacija smije upotrebljavati podatke koje je spremila o vama</translation> -<translation id="473140019006744096">Na uređaju nema dovoljno prostora za dovršetak ažuriranja. Očistite <ph name="NECESSARY_SPACE" /> na uređaju i pokušajte ponovo.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (preostalo)</translation> <translation id="4733793249294335256">Lokacija</translation> <translation id="473546211690256853">Ovim računom upravlja domena <ph name="DOMAIN" /></translation> @@ -5381,7 +5376,6 @@ <translation id="5327912693242073631">Značajke kojima su potrebne obavijesti neće funkcionirati</translation> <translation id="532943162177641444">Dodirnite obavijest na telefonu <ph name="PHONE_NAME" /> da biste postavili mobilnu žarišnu točku koju može upotrebljavati ovaj uređaj.</translation> <translation id="5329858601952122676">&Obriši</translation> -<translation id="5330592967519769658">Dopušteno je otvaranje prozora sa slikom u slici kada pređete na drugu karticu</translation> <translation id="5331069282670671859">Nemate certifikate u toj kategoriji</translation> <translation id="5331568967879689647">Aplikacija sustava Chrome OS</translation> <translation id="5331975486040154427">USB-C uređaj (stražnji lijevi priključak)</translation> @@ -5559,7 +5553,6 @@ <translation id="5473099001878321374">Ako nastavite, pristajete na to da ovaj uređaj također može, između ostalog i mobilnim podatkovnim prijenosom, automatski preuzimati i instalirati ažuriranja i aplikacije koje šalju Google, djetetov mobilni operater i proizvođač uređaja. Neke od tih aplikacija mogu nuditi kupnje putem aplikacije.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN mora imati najmanje jedan znak}one{PIN mora imati najmanje # znak}few{PIN mora imati najmanje # znaka}other{PIN mora imati najmanje # znakova}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> zahtijeva da se odmah povežete s Wi-Fijem i preuzmete ažuriranje. Možete ga preuzeti i putem veze s ograničenim prometom (moguća je naplata naknada).</translation> -<translation id="5478520208448702555">Web-lokacije mogu otvoriti prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="5481273127572794904">Nije dopušteno automatsko preuzimanje više datoteka</translation> <translation id="5481941284378890518">Dodaj pisače u blizini</translation> <translation id="5484181871714116891">Kada je ta opcija uključena, pristupni ključevi izrađuju se u iCloud Keychainu i dostupni su na Apple uređajima. Kada je ta opcija isključena, pristupni ključevi izrađuju se na vašem Chrome profilu na ovom uređaju.</translation> @@ -5717,7 +5710,6 @@ <translation id="5600348067066185292">Za instalaciju je potrebno nekoliko jednostavnih koraka. Imat ćete još jednu priliku potvrditi prije nego što se promjene izvrše na računalu.</translation> <translation id="5600706100022181951">Za preuzimanje ažuriranja iskoristit će se <ph name="UPDATE_SIZE_MB" /> MB mobilnih podataka. Želite li nastaviti?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Nije dopušteno povezivanje s MIDI uređajima</translation> <translation id="5601833336918638013">Ne dopuštaj web-lokacijama traženje Bluetooth uređaja</translation> <translation id="5602586420788540146">Otvori u novoj grupi kartica</translation> <translation id="5605758115928394442">Poslali smo obavijest na vaš telefon kako bismo potvrdili da ste to vi.</translation> @@ -5837,7 +5829,6 @@ <translation id="5707185214361380026">Nije učitano proširenje s lokacije:</translation> <translation id="5708171344853220004">Microsoftov glavni naziv</translation> <translation id="5709557627224531708">Postavite Chrome kao zadani preglednik</translation> -<translation id="5710122160114032242">Nije dopušteno otvoriti prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="5711010025974903573">Zapisnici usluge</translation> <translation id="5711983031544731014">Otključavanje nije moguće. Unesite svoju zaporku.</translation> <translation id="5712153969432126546">Web-lokacije ponekad objavljuju PDF-ove, primjerice dokumente, ugovore i obrasce</translation> @@ -6598,7 +6589,6 @@ <translation id="6326175484149238433">Ukloni iz programa Chrome</translation> <translation id="6326855256003666642">Broj aktivnosti održavanja</translation> <translation id="6327785803543103246">Automatsko otkrivanje putem web-proxyja</translation> -<translation id="6331818708794917058">Web-lokacije mogu tražiti dopuštenje za povezivanje s MIDI uređajima</translation> <translation id="6333064448949140209">Datoteka će se poslati Googleu radi uklanjanja pogrešaka</translation> <translation id="6333170995003625229">Vaša e-adresa ili zaporka nije se mogla potvrditi. Ponovo se pokušajte prijaviti.</translation> <translation id="6334267141726449402">Kopirajte i pošaljite tu vezu korisniku radi prikupljanja zapisnika.</translation> @@ -6748,7 +6738,6 @@ <translation id="6458701200018867744">Prijenos nije uspio (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Koristi odabir za traženje</translation> <translation id="6459799433792303855">Aktivni prozor premješten je na drugi zaslon.</translation> -<translation id="6460566145397380451">Dopušteno je povezivanje s MIDI uređajima</translation> <translation id="6460601847208524483">Traži sljedeće</translation> <translation id="6461170143930046705">Traženje mreža...</translation> <translation id="6463795194797719782">&Uredi</translation> @@ -7078,7 +7067,6 @@ <translation id="6735304988756581115">Prikaži kolačiće i ostale podatke o web-lokaciji...</translation> <translation id="6736243959894955139">Adresa</translation> <translation id="6737663862851963468">Uklanjanje Kerberosovog tiketa</translation> -<translation id="6737931010859480781">Aplikacija sustava unaprijed je instalirana na vašem uređaju</translation> <translation id="6738180164164974883">Dopusti postavljanje kolačića treće strane</translation> <translation id="6738430949033571771">Potvrđivanje računa...</translation> <translation id="6739923123728562974">Prikaži prečac na radnoj površini</translation> @@ -8473,7 +8461,6 @@ <translation id="7853747251428735">Više a&lata</translation> <translation id="7853999103056713222">Upotrijebite sigurniju zaporku</translation> <translation id="7855678561139483478">Pomaknite karticu u novi prozor</translation> -<translation id="7855729579456690716">Web-lokacije mogu otvoriti prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="7857004848504343806">Računalo sadrži sigurni modul koji se upotrebljava za primjenu mnogih važnih sigurnosnih značajki u ChromeOS Flexu. Posjetite Chromebookov centar za pomoć da biste saznali više: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Tekstni prijedlozi</translation> <translation id="7857949311770343000">Je li to web-stranica nove kartice koju ste očekivali?</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index 3da6c217..313be4f 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">A <ph name="BRAND" /> megjegyzi, hogy Ön hogyan jelentkezett be, és amikor csak lehetséges, automatikusan bejelentkezteti Önt. Ha a funkció ki van kapcsolva, akkor a rendszer minden alkalommal megerősítést kér Öntől.</translation> <translation id="1008544602823861396">számára le van tiltva az Ön adatainak felhasználása itt:</translation> <translation id="1008557486741366299">Ne most</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Az Ön adatainak védelme érdekében a rendszer eltávolította az engedélyeket egy olyan a webhelyről, amelyet nem keresett fel az elmúlt két hónapban}other{Az Ön adatainak védelme érdekében a rendszer eltávolította az engedélyeket azokról a webhelyekről, amelyeket nem keresett fel az elmúlt két hónapban}}</translation> <translation id="1009663062402466586">Mostantól használhatók a játékvezérlők</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Az oldal nem válaszol}other{Több oldal nem válaszol}}</translation> <translation id="1011003645819296594">Mentett eszközök</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Link címén&ek másolása</translation> <translation id="1085064499066015002">Mindig, minden webhelyen</translation> <translation id="1085697365578766383">Nem sikerült elindítani a virtuális gépet. Próbálja újra.</translation> -<translation id="1087965115100412394">A webhelyek nem csatlakozhatnak MIDI-eszközökhöz</translation> <translation id="1088659085457112967">Belépés Olvasási módba</translation> <translation id="1090126737595388931">Nincs háttérben futó alkalmazás</translation> <translation id="1090541560108055381">A párosítás előtt ellenőrizze, hogy mindkét eszközön ugyanazt a kódot használja-e</translation> @@ -3241,7 +3239,6 @@ <translation id="3551320343578183772">Lap bezárása</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Törlés kilépéskor</translation> -<translation id="3553487194781590058">A webhelyek nem nyithatnak meg ablakokat kép a képben módban, amikor másik lapra vált</translation> <translation id="3554493885489666172">Az eszközét a következő kezeli: <ph name="PROFILE_NAME" />. A rendszergazdák az ezen az eszközön található összes profil adataihoz hozzáférhetnek.</translation> <translation id="3555812735919707620">Bővítmény eltávolítása</translation> <translation id="3557101512409028104">Webhelyekre és képernyő előtt töltött időre vonatkozó korlátozások beállítása a Family Linkkel</translation> @@ -3799,7 +3796,6 @@ <translation id="3975201861340929143">Magyarázat</translation> <translation id="3975565978598857337">Nem sikerült kapcsolódni a tartomány szerveréhez</translation> <translation id="3976108569178263973">Nincsenek rendelkezésre álló nyomtatók.</translation> -<translation id="3976244126942806443">A webhelyek általában zeneszámok létrehozása és szerkesztése érdekében csatlakoznak MIDI-eszközökhöz.</translation> <translation id="397703832102027365">Véglegesítés...</translation> <translation id="3977145907578671392">Előfordulhat, hogy bizonyos webhelyek funkciói nem működnek inkognitó módban.</translation> <translation id="3977886311744775419">A rendszer nem tölt le automatikus frissítéseket ilyen hálózattípusnál, de manuálisan kereshet frissítéseket.</translation> @@ -4700,7 +4696,6 @@ <translation id="4730492586225682674">Legújabb érintőceruzás jegyzet a lezárási képernyőn</translation> <translation id="4730888769809690665">Értesítések engedélyezve a következőhöz: <ph name="SITE" /></translation> <translation id="4731306954230393087">Használhatják az Önről mentett adatokat</translation> -<translation id="473140019006744096">Nincs elég tárhely ezen az eszközön a frissítés végrehajtásához. Szabadítson fel legalább <ph name="NECESSARY_SPACE" /> tárhelyet eszközén, majd próbálkozzon újra.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (bal)</translation> <translation id="4733793249294335256">Hely</translation> <translation id="473546211690256853">Ennek a fióknak a kezelője: <ph name="DOMAIN" />.</translation> @@ -5403,7 +5398,6 @@ <translation id="5327912693242073631">Az értesítéseket igénylő funkciók nem működnek majd</translation> <translation id="532943162177641444">Koppintson a(z) <ph name="PHONE_NAME" /> eszközére érkező értesítésre az eszköz által használható mobil hotspot beállításához.</translation> <translation id="5329858601952122676">&Törlés</translation> -<translation id="5330592967519769658">Megnyithat ablakokat kép a képben módban, amikor másik lapra vált</translation> <translation id="5331069282670671859">Nem rendelkezik tanúsítványokkal ebben a kategóriában</translation> <translation id="5331568967879689647">ChromeOS-rendszeralkalmazás</translation> <translation id="5331975486040154427">C típusú USB-vel kompatibilis eszköz (bal hátsó port)</translation> @@ -5581,7 +5575,6 @@ <translation id="5473099001878321374">Ha továbblép, azzal elfogadja, hogy az eszköz automatikusan letölthet és telepíthet frissítéseket és alkalmazásokat a Google-tól, gyermeke szolgáltatójától és az eszköz gyártójától, akár mobiladat-kapcsolaton keresztül is. Egyes alkalmazások alkalmazáson belüli vásárlásokat kínálhatnak.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{A PIN-kódnak legalább egy karakterből kell állnia}other{A PIN-kódnak legalább # karakterből kell állnia}}</translation> <translation id="5474859849784484111">A(z) <ph name="MANAGER" /> megköveteli, hogy eszközével most Wi-Fi-hálózathoz csatlakozzon, és letöltse a szükséges frissítést. A letöltés forgalomkorlátos kapcsolaton is végrehajtható (ez esetben a szolgáltató díjat számíthat fel).</translation> -<translation id="5478520208448702555">Előfordulhat, hogy a webhelyek kép a képben módban nyitnak meg ablakokat, amikor másik lapra vált</translation> <translation id="5481273127572794904">Nem tölthetnek le automatikusan egyszerre több fájlt</translation> <translation id="5481941284378890518">Közeli nyomtatók hozzáadása</translation> <translation id="5484181871714116891">Ha be van kapcsolva, az azonosítókulcsokat az iCloud-kulcskarikában hozza létre a rendszer, és hozzáférhetők az Apple-eszközökön. Ha ki van kapcsolva, a rendszer az Ön Chrome-profiljában hozza létre az azonosítókulcsokat ezen az eszközön.</translation> @@ -5739,7 +5732,6 @@ <translation id="5600348067066185292">A telepítés néhány egyszerű lépésből áll. Még egyszer lehetősége lesz megerősíteni a módosításokat, mielőtt végbemennének a számítógépen.</translation> <translation id="5600706100022181951">A frissítés letöltése <ph name="UPDATE_SIZE_MB" /> MB mobiladat-forgalmat igényel. Szeretné folytatni?</translation> <translation id="5601503069213153581">PIN-kód</translation> -<translation id="5601823921345337195">Nem csatlakozhatnak a MIDI-eszközökhöz</translation> <translation id="5601833336918638013">A webhelyek nem kereshetnek Bluetooth-eszközöket</translation> <translation id="5602586420788540146">Megnyitás új lapcsoportban</translation> <translation id="5605758115928394442">A rendszer értesítést küldött az Ön telefonjára, hogy segítségével igazolhassa személyazonosságát.</translation> @@ -5862,7 +5854,6 @@ <translation id="5707185214361380026">Nem sikerült a bővítmény betöltése innen:</translation> <translation id="5708171344853220004">Microsoft elsődleges név</translation> <translation id="5709557627224531708">A Chrome beállítása alapértelmezett böngészőként</translation> -<translation id="5710122160114032242">Nem nyithat meg ablakokat kép a képben módban, amikor másik lapra vált</translation> <translation id="5711010025974903573">Szerviznaplók</translation> <translation id="5711983031544731014">Nem lehet végrehajtani a feloldást. Adja meg jelszavát.</translation> <translation id="5712153969432126546">A webhelyek néha közzétesznek PDF formátumú tartalmakat (pl. dokumentumokat, szerződéseket vagy űrlapokat)</translation> @@ -6625,7 +6616,6 @@ <translation id="6326175484149238433">Eltávolítás a Chrome-ból</translation> <translation id="6326855256003666642">Életben tartási számláló</translation> <translation id="6327785803543103246">Webproxy automatikus észlelése</translation> -<translation id="6331818708794917058">A webhelyek engedélyt kérhetnek a MIDI-eszközökhöz való csatlakozásra</translation> <translation id="6333064448949140209">A fájlt elküldjük a Google-nak hibakeresésre</translation> <translation id="6333170995003625229">Nem sikerült ellenőrizni az e-mail-címét vagy jelszavát. Próbáljon újra bejelentkezni.</translation> <translation id="6334267141726449402">Másolja vágólapra és küldje el ezt a linket a felhasználónak a naplók összegyűjtéséhez.</translation> @@ -6775,7 +6765,6 @@ <translation id="6458701200018867744">A feltöltés sikertelen (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Keresés a kijelölésben</translation> <translation id="6459799433792303855">Aktív ablak áthelyezve másik kijelzőre.</translation> -<translation id="6460566145397380451">Csatlakozhatnak a MIDI-eszközökhöz</translation> <translation id="6460601847208524483">Következő keresése</translation> <translation id="6461170143930046705">Hálózatok keresése…</translation> <translation id="6463795194797719782">&Szerkesztés</translation> @@ -7102,7 +7091,6 @@ <translation id="6735304988756581115">Cookie-k és egyéb webhelyadatok megjelenítése...</translation> <translation id="6736243959894955139">Cím</translation> <translation id="6737663862851963468">Kerberos-jegy eltávolítása</translation> -<translation id="6737931010859480781">Ez az alkalmazás előre telepítve van az eszközére</translation> <translation id="6738180164164974883">Harmadik féltől származó cookie-k használatának engedélyezése</translation> <translation id="6738430949033571771">Fiók ellenőrzése…</translation> <translation id="6739923123728562974">Asztali parancsikon megjelenítése</translation> @@ -8498,7 +8486,6 @@ <translation id="7853747251428735">További esz&közök</translation> <translation id="7853999103056713222">Biztonságosabb jelszó használata</translation> <translation id="7855678561139483478">Lap áthelyezése új ablakba</translation> -<translation id="7855729579456690716">A webhelyek megnyithatnak ablakokat kép a képben módban, amikor másik lapra vált</translation> <translation id="7857004848504343806">Számítógépe olyan biztonsági modult tartalmaz, amely számos kritikus biztonsági funkció megvalósítására szolgál a ChromeOS Flex rendszerben. További információt a Chromebook Súgóban talál: https://support.google.com/chromebook/?p=tpm</translation> <translation id="7857093393627376423">Szöveges javaslatok</translation> <translation id="7857949311770343000">Erre az új lap oldalra számított?</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index b854bc6..2d3b719 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" />ը հիշում է, թե ինչպես եք մտել հաշիվ, և հնարավորության դեպքում ավտոմատ կերպով մուտք է գործում։ Եթե այս գործառույթն անջատված է, ամեն անգամ մուտք գործելուց առաջ ձեզանից հաստատում կպահանջվի։</translation> <translation id="1008544602823861396">տիրույթին արգելվել է օգտագործել ձեր մասին տեղեկությունները հետևյալ կայքում՝</translation> <translation id="1008557486741366299">Հիմա չէ</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Ձեր տվյալները պաշտպանելու համար թույլտվությունները հեռացվել են կայքից, որը 2 ամիս չեք այցելել}one{Ձեր տվյալները պաշտպանելու համար թույլտվությունները հեռացվել են կայքից, որը 2 ամիս չեք այցելել}other{Ձեր տվյալները պաշտպանելու համար թույլտվությունները հեռացվել են կայքերից, որոնք 2 ամիս չեք այցելել}}</translation> <translation id="1009663062402466586">Այժմ հասանելի են խաղերի կառավարման տարրեր</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{էջ չի պատասխանում}one{էջ չի պատասխանում}other{էջ չի պատասխանում}}</translation> <translation id="1011003645819296594">Պահված սարքեր</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Պատճենել հղումների հաս&ցեները</translation> <translation id="1085064499066015002">Միշտ բոլոր կայքերում</translation> <translation id="1085697365578766383">Չհաջողվեց մեկնարկել վիրտուալ մեքենան: Նորից փորձեք:</translation> -<translation id="1087965115100412394">Թույլ չտալ կայքերին միանալ MIDI սարքերին</translation> <translation id="1088659085457112967">Անցնել ընթերցման ռեժիմի</translation> <translation id="1090126737595388931">Հետնաշերտում աշխատող հավելվածներ չկան</translation> <translation id="1090541560108055381">Զուգակցելուց առաջ համոզվեք, որ այս կոդը համընկնում է երկու սարքերում</translation> @@ -3217,7 +3215,6 @@ <translation id="3551320343578183772">Փակել ներդիրը</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Կջնջվեն ելնելիս</translation> -<translation id="3553487194781590058">Թույլ չտալ կայքերին բացել «նկար նկարի մեջ» պատուհան, երբ դուք անցնում եք մեկ այլ ներդիր</translation> <translation id="3554493885489666172">Ձեր սարքը կառավարվում է <ph name="PROFILE_NAME" /> տիրույթի կողմից: Ադմինիստրատորներին հասանելի են այս սարքի բոլոր պրոֆիլների տվյալները։</translation> <translation id="3555812735919707620">Հեռացնել ընդլայնումը</translation> <translation id="3557101512409028104">Սահմանափակեք կայքերի հասանելիությունը և սարքի օգտագործման ժամանակը Family Link-ի միջոցով</translation> @@ -3776,7 +3773,6 @@ <translation id="3975201861340929143">Բացատրություն</translation> <translation id="3975565978598857337">Չհաջողվեց կապվել սերվերի հետ այս տիրույթի համար</translation> <translation id="3976108569178263973">Հասանելի տպիչներ չկան</translation> -<translation id="3976244126942806443">Կայքերը սովորաբար միանում են MIDI սարքերին՝ երաժշտություն ստեղծելու և խմբագրելու համար</translation> <translation id="397703832102027365">Ավարտվում է…</translation> <translation id="3977145907578671392">Ինկոգնիտո ռեժիմում որոշ կայքերի գործառույթները կարող են չաշխատել։</translation> <translation id="3977886311744775419">Ավտոմատ թարմացումները այս տեսակի ցանցում չեն ներբեռնվում, սակայն դուք կարող եք ձեռքով ստուգել թարմացումների առկայությունը:</translation> @@ -4676,7 +4672,6 @@ <translation id="4730492586225682674">Ստիլուսով արված վերջին նշումը կողպէկրանին</translation> <translation id="4730888769809690665">Ծանուցումները թույլատրված են <ph name="SITE" /> կայքի համար</translation> <translation id="4731306954230393087">Կարող է օգտագործել ձեր մասին իր պահած տեղեկությունները</translation> -<translation id="473140019006744096">Այս սարքում բավարար տարածք չկա թարմացումն ավարտելու համար։ Ազատեք <ph name="NECESSARY_SPACE" /> տարածք սարքում և նորից փորձեք։</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ձախ)</translation> <translation id="4733793249294335256">Ներբեռնման տեղադրություն</translation> <translation id="473546211690256853">Այս հաշիվը կառավարում է <ph name="DOMAIN" /> տիրույթը</translation> @@ -5381,7 +5376,6 @@ <translation id="5327912693242073631">Գործառույթները, որոնց համար պահանջվում են ծանուցումներ, չեն աշխատի</translation> <translation id="532943162177641444"><ph name="PHONE_NAME" /> հեռախոսում հպեք ծանուցմանը՝ այս սարքի համար բջջային թեժ կետ ստեղծելու համար։</translation> <translation id="5329858601952122676">&Ջնջել</translation> -<translation id="5330592967519769658">Կարող է բացել «նկար նկարի մեջ» պատուհան, երբ դուք անցնում եք մեկ այլ ներդիր</translation> <translation id="5331069282670671859">Այս կատեգորիայում հավաստագրեր չկան</translation> <translation id="5331568967879689647">ChromeOS-ի համակարգային հավելված</translation> <translation id="5331975486040154427">USB-C սարք (հետևի ձախակողմյան միացք)</translation> @@ -5559,7 +5553,6 @@ <translation id="5473099001878321374">Շարունակելով՝ դուք համաձայնում եք, որ այս սարքը նույնպես կարող է ավտոմատ ներբեռնել և տեղադրել Google-ի, ձեր երեխայի օպերատորի և սարքի արտադրողի կողմից տրամադրվող թարմացումները և հավելվածները (նաև բջջային ինտերնետի միջոցով)։ Որոշ հավելվածներում կարող է առաջարկվել վճարովի բովանդակություն։</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN կոդը պետք է կազմված լինի առնվազն 1 նիշից}one{PIN կոդը պետք է կազմված լինի առնվազն # նիշից}other{PIN կոդը պետք է կազմված լինի առնվազն # նիշից}}</translation> <translation id="5474859849784484111">Տիրույթի (<ph name="MANAGER" />) կանոնների համաձայն՝ այժմ անհրաժեշտ է միանալ Wi-Fi-ին և ներբեռնել թարմացումը։ Ինչպես նաև կարող եք օգտվել վճարովի կապից (կարող է գումար գանձվել)։</translation> -<translation id="5478520208448702555">Կայքերը կարող են բացել «նկար նկարի մեջ» պատուհան, երբ դուք անցնում եք մեկ այլ ներդիր</translation> <translation id="5481273127572794904">Չի թույլատրվում ավտոմատ ներբեռնել մի քանի ֆայլ</translation> <translation id="5481941284378890518">Ավելացնել մոտակա տպիչներ</translation> <translation id="5484181871714116891">Երբ այս գործառույթը միացված է, անցաբառերը ստեղծվում են iCloud Keychain-ում և հասանելի են ձեր բոլոր Apple սարքերում։ Անջատելու դեպքում անցաբառերը ստեղծվում են Chrome-ի պրոֆիլում այս սարքում։</translation> @@ -5717,7 +5710,6 @@ <translation id="5600348067066185292">Տեղադրումը կատարվում է մի քանի պարզ քայլերով։ Դուք փոփոխությունները հաստատելու ևս մեկ հնարավորություն կունենաք, նախքան դրանք ձեր համակարգչում կկիրառվեն։</translation> <translation id="5600706100022181951">Թարմացումը ներբեռնելու համար անհրաժեշտ կլինի <ph name="UPDATE_SIZE_MB" /> բջջային ինտերնետ թրաֆիկ։ Շարունակե՞լ։</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Չի թույլատրվում միանալ MIDI սարքերին</translation> <translation id="5601833336918638013">Թույլ չտալ կայքերին որոնել Bluetooth սարքեր</translation> <translation id="5602586420788540146">Բացել ներդիրների նոր խմբում</translation> <translation id="5605758115928394442">Ձեր ինքնությունը հաստատելու համար ձեր հեռախոսին ծանուցում է ուղարկվել:</translation> @@ -5837,7 +5829,6 @@ <translation id="5707185214361380026">Չհաջողվեց բեռնել ընդլայնումը հետևյալից`</translation> <translation id="5708171344853220004">Microsoft-ի մասնակցի անունը</translation> <translation id="5709557627224531708">Դարձրեք Chrome-ը կանխադրված դիտարկիչ</translation> -<translation id="5710122160114032242">Չի կարող բացել «նկար նկարի մեջ» պատուհան, երբ դուք անցնում եք մեկ այլ ներդիր</translation> <translation id="5711010025974903573">Տեխնիկական սպասարկման մատյաններ</translation> <translation id="5711983031544731014">Հնարավոր չէ ապակողպել: Մուտքագրեք ձեր գաղտնաբառը:</translation> <translation id="5712153969432126546">Կայքերը երբեմն հրապարակում են PDF ֆայլեր, օրինակ՝ փաստաթղթեր, պայմանագրեր և այլ ձևեր։</translation> @@ -6598,7 +6589,6 @@ <translation id="6326175484149238433">Հեռացնել Chrome-ից</translation> <translation id="6326855256003666642">Keepalive կապակցումների քանակը</translation> <translation id="6327785803543103246">Պրոքսի սերվերի ինքնահայտնաբերում</translation> -<translation id="6331818708794917058">Կայքերը կարող են MIDI սարքերին միանալու թույլտվություն խնդրել</translation> <translation id="6333064448949140209">Վրիպազերծման համար ֆայլը կուղարկվի Google-ին</translation> <translation id="6333170995003625229">Չհաջողվեց հաստատել ձեր էլ․ հասցեն կամ գաղտնաբառը։ Նորից մտեք հաշիվ։</translation> <translation id="6334267141726449402">Պատճենեք և ուղարկեք այս հղումն օգտատիրոջը՝ մատյանները հավաքելու համար։</translation> @@ -6748,7 +6738,6 @@ <translation id="6458701200018867744">Չհաջողվեց վերբեռնել (<ph name="WEBRTC_LOG_UPLOAD_TIME" />):</translation> <translation id="6459488832681039634">Use Selection for Find</translation> <translation id="6459799433792303855">Ակտիվ պատուհանը տեղափոխվել է այլ էկրան։</translation> -<translation id="6460566145397380451">Թույլատրվում է միանալ MIDI սարքերին</translation> <translation id="6460601847208524483">Find Next</translation> <translation id="6461170143930046705">Ցանցերի որոնում...</translation> <translation id="6463795194797719782">&Փոփոխել</translation> @@ -7076,7 +7065,6 @@ <translation id="6735304988756581115">Ցույց տալ քուքիները և կայքի այլ տվյալները…</translation> <translation id="6736243959894955139">Հասցե</translation> <translation id="6737663862851963468">Հեռացնել Kerberos տոմսը</translation> -<translation id="6737931010859480781">Այս հավելվածը նախապես տեղադրված է եղել ձեր սարքում</translation> <translation id="6738180164164974883">Թույլատրել երրորդ կողմի քուքիների օգտագործումը</translation> <translation id="6738430949033571771">Հաշվի հաստատում…</translation> <translation id="6739923123728562974">Ցուցադրել աշխատասեղանի դյուրանցումը</translation> @@ -8469,7 +8457,6 @@ <translation id="7853747251428735">Լրացուցիչ գործիքներ</translation> <translation id="7853999103056713222">Օգտագործեք ավելի ապահով գաղտնաբառ</translation> <translation id="7855678561139483478">Բացել ներդիրը նոր պատուհանում</translation> -<translation id="7855729579456690716">Կայքերը կարող են բացել «նկար նկարի մեջ» պատուհան, երբ դուք անցնում եք մեկ այլ ներդիր</translation> <translation id="7857004848504343806">Ձեր համակարգիչը պարունակում է անվտանգության մոդուլ, որն օգտագործվում է ChromeOS Flex-ում անվտանգության բազմաթիվ կարևոր գործառույթների համար։ Լրացուցիչ տեղեկությունների համար այցելեք Chromebook-ի օգնության կենտրոն՝ https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Տեքստային հուշումներ</translation> <translation id="7857949311770343000">Սա՞ է ձեր ուզած նոր ներդիրի էջը:</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index 93cba252..d23ea74 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> mengingat cara Anda login dan otomatis membuat Anda login jika memungkinkan. Saat nonaktif, Anda akan selalu dimintai konfirmasi.</translation> <translation id="1008544602823861396">diblokir agar tidak dapat menggunakan info Anda di</translation> <translation id="1008557486741366299">Jangan Sekarang</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Untuk melindungi data Anda, izin telah dihapus dari situs yang tidak Anda buka dalam 2 bulan}other{Untuk melindungi data Anda, izin telah dihapus dari situs yang tidak Anda buka dalam 2 bulan}}</translation> <translation id="1009663062402466586">Kontrol game kini tersedia</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Halaman Tidak Merespons}other{Halaman Tidak Merespons}}</translation> <translation id="1011003645819296594">Perangkat yang disimpan</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Salin ala&mat link</translation> <translation id="1085064499066015002">Selalu di semua situs</translation> <translation id="1085697365578766383">Error saat memulai mesin virtual. Harap coba lagi.</translation> -<translation id="1087965115100412394">Jangan izinkan situs terhubung ke perangkat MIDI</translation> <translation id="1088659085457112967">Masuk ke Mode Pembaca</translation> <translation id="1090126737595388931">Tidak Ada Apl Latar Belakang yang Sedang Berjalan</translation> <translation id="1090541560108055381">Sebelum menyambungkan, pastikan kode ini sama di kedua perangkat</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">Tutup Tab</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Dihapus saat Keluar</translation> -<translation id="3553487194781590058">Jangan izinkan situs membuka jendela picture-in-picture saat Anda beralih ke tab lain</translation> <translation id="3554493885489666172">Perangkat Anda dikelola oleh <ph name="PROFILE_NAME" />. Administrator dapat mengakses data di profil mana pun di perangkat ini.</translation> <translation id="3555812735919707620">Buang ekstensi</translation> <translation id="3557101512409028104">Setel pembatasan situs dan batas waktu pemakaian perangkat dengan Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Penjelasan</translation> <translation id="3975565978598857337">Menghubungi server untuk area yang gagal</translation> <translation id="3976108569178263973">Tidak ada printer yang tersedia.</translation> -<translation id="3976244126942806443">Situs biasanya terhubung ke perangkat MIDI untuk membuat dan mengedit musik</translation> <translation id="397703832102027365">Mengakhiri...</translation> <translation id="3977145907578671392">Fitur di beberapa situs mungkin tidak berfungsi dalam mode Samaran</translation> <translation id="3977886311744775419">Update otomatis tidak didownload pada jenis jaringan ini, namun Anda dapat memeriksa update secara manual.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Catatan terakhir stilus di layar kunci</translation> <translation id="4730888769809690665">Notifikasi diizinkan untuk <ph name="SITE" /></translation> <translation id="4731306954230393087">Diizinkan untuk menggunakan info tentang Anda yang telah disimpan situs</translation> -<translation id="473140019006744096">Tidak tersedia cukup ruang di perangkat ini untuk menyelesaikan update ini. Kosongkan <ph name="NECESSARY_SPACE" /> di perangkat, lalu coba lagi.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Kiri)</translation> <translation id="4733793249294335256">Lokasi</translation> <translation id="473546211690256853">Akun ini dikelola oleh <ph name="DOMAIN" /></translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">Fitur yang memerlukan notifikasi tidak akan berfungsi</translation> <translation id="532943162177641444">Ketuk notifikasi di <ph name="PHONE_NAME" /> Anda untuk menyiapkan hotspot seluler yang dapat digunakan oleh perangkat ini.</translation> <translation id="5329858601952122676">&Hapus</translation> -<translation id="5330592967519769658">Diizinkan membuka jendela picture-in-picture saat Anda beralih ke tab lain</translation> <translation id="5331069282670671859">Anda tidak memiliki sertifikat dalam kategori ini</translation> <translation id="5331568967879689647">Aplikasi Sistem ChromeOS</translation> <translation id="5331975486040154427">Perangkat USB-C (port belakang sebelah kiri)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">Dengan melanjutkan, Anda setuju bahwa perangkat ini juga dapat otomatis mendownload serta menginstal update dan aplikasi dari Google, operator anak Anda, dan produsen perangkat ini, yang kemungkinan menggunakan data seluler. Beberapa aplikasi ini mungkin menawarkan pembelian dalam aplikasi.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN harus berisi minimal satu karakter}other{PIN harus berisi minimal # karakter}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> mengharuskan Anda terhubung ke Wi-Fi sekarang dan mendownload update. Atau, Anda dapat mendownload dengan koneksi berbayar (dapat dikenai biaya).</translation> -<translation id="5478520208448702555">Situs mungkin membuka jendela picture-in-picture saat Anda beralih ke tab lain</translation> <translation id="5481273127572794904">Tidak diizinkan mendownload otomatis beberapa file</translation> <translation id="5481941284378890518">Tambahkan Printer di Sekitar</translation> <translation id="5484181871714116891">Jika diaktifkan, kunci sandi akan dibuat di Rantai Kunci iCloud dan tersedia di seluruh perangkat Apple Anda. Jika dinonaktifkan, kunci sandi akan dibuat di profil Chrome Anda di perangkat ini.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">Penginstalan dapat dilakukan dalam beberapa langkah mudah. Anda akan memiliki kesempatan lain untuk mengonfirmasi sebelum perubahan dilakukan pada komputer.</translation> <translation id="5600706100022181951">Update akan didownload menggunakan data seluler sebesar <ph name="UPDATE_SIZE_MB" /> MB. Ingin melanjutkan?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Tidak diizinkan terhubung ke perangkat MIDI</translation> <translation id="5601833336918638013">Jangan izinkan situs mencari perangkat Bluetooth</translation> <translation id="5602586420788540146">Buka di grup tab baru</translation> <translation id="5605758115928394442">Notifikasi telah dikirim ke ponsel Anda untuk mengonfirmasi bahwa ini memang Anda.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">Gagal memuat ekstensi dari:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Setel Chrome sebagai browser default Anda</translation> -<translation id="5710122160114032242">Tidak diizinkan membuka jendela picture-in-picture saat Anda beralih ke tab lain</translation> <translation id="5711010025974903573">Log layanan</translation> <translation id="5711983031544731014">Tidak dapat membuka. Masukkan sandi Anda.</translation> <translation id="5712153969432126546">Situs terkadang memublikasikan PDF, seperti dokumen, kontrak, dan formulir</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Hapus dari Chrome</translation> <translation id="6326855256003666642">Jumlah aktivitas yang Tetap Aktif</translation> <translation id="6327785803543103246">Penemuan otomatis proksi web</translation> -<translation id="6331818708794917058">Situs dapat meminta untuk terhubung ke perangkat MIDI</translation> <translation id="6333064448949140209">File akan dikirim ke Google untuk proses debug</translation> <translation id="6333170995003625229">Alamat email atau sandi Anda tidak dapat diverifikasi. Coba login lagi.</translation> <translation id="6334267141726449402">Salin dan kirim link ini kepada pengguna untuk mengumpulkan log.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">Upload gagal (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Gunakan Pilihan untuk Temukan</translation> <translation id="6459799433792303855">Jendela aktif dipindahkan ke layar lain.</translation> -<translation id="6460566145397380451">Diizinkan terhubung ke perangkat MIDI</translation> <translation id="6460601847208524483">Temukan Berikutnya</translation> <translation id="6461170143930046705">Mencari jaringan...</translation> <translation id="6463795194797719782">&Edit</translation> @@ -7090,7 +7079,6 @@ <translation id="6735304988756581115">Tampilkan cookie dan data situs lainnya...</translation> <translation id="6736243959894955139">Alamat</translation> <translation id="6737663862851963468">Hapus tiket Kerberos</translation> -<translation id="6737931010859480781">Aplikasi ini diprainstal pada perangkat Anda</translation> <translation id="6738180164164974883">Izinkan untuk menyetel cookie pihak ketiga</translation> <translation id="6738430949033571771">Memverifikasi akun ...</translation> <translation id="6739923123728562974">Tampilkan pintasan desktop</translation> @@ -8484,7 +8472,6 @@ <translation id="7853747251428735">Alat Lain&nya</translation> <translation id="7853999103056713222">Gunakan Sandi yang Lebih Aman</translation> <translation id="7855678561139483478">Pindahkan tab ke jendela baru</translation> -<translation id="7855729579456690716">Situs dapat membuka jendela picture-in-picture saat Anda beralih ke tab lain</translation> <translation id="7857004848504343806">Komputer Anda berisi modul aman, yang digunakan untuk menerapkan banyak fitur keamanan penting di ChromeOS Flex. Buka Pusat Bantuan Chromebook untuk mempelajari lebih lanjut: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Saran teks</translation> <translation id="7857949311770343000">Apakah ini halaman tab baru yang Anda harapkan?</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index 3d46828..bf9c70a2 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> man hvernig þú skráðir þig inn og skráir þig inn sjálfkrafa þegar hægt er. Þegar slökkt er á þessu færðu beiðni um að staðfesta í hvert skipti.</translation> <translation id="1008544602823861396">hefur ekki leyfi til að nota upplýsingarnar þínar á</translation> <translation id="1008557486741366299">Ekki núna</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Til að vernda gögnin þín voru heimildir fjarlægðar fyrir vefsvæði sem þú hefur ekki opnað í 2 mánuði}one{Til að vernda gögnin þín voru heimildir fjarlægðar fyrir vefsvæði sem þú hefur ekki opnað í 2 mánuði}other{Til að vernda gögnin þín voru heimildir fjarlægðar fyrir vefsvæði sem þú hefur ekki opnað í 2 mánuði}}</translation> <translation id="1009663062402466586">Leikjastýringar eru nú tiltækar</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Síða svarar ekki}one{Síður svara ekki}other{Síður svara ekki}}</translation> <translation id="1011003645819296594">Vistuð tæki</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Afrita slóð t&engils</translation> <translation id="1085064499066015002">Alltaf á öllum vefsvæðum</translation> <translation id="1085697365578766383">Villa við að ræsa sýndarvél. Reyndu aftur.</translation> -<translation id="1087965115100412394">Ekki leyfa vefsvæðum að tengjast MIDI-tækjum</translation> <translation id="1088659085457112967">Opna lesstillingu</translation> <translation id="1090126737595388931">Engin bakgrunnsforrit í gangi</translation> <translation id="1090541560108055381">Gakktu úr skugga um að þessi kóði birtist í báðum tækjunum áður en þú parar</translation> @@ -3233,7 +3231,6 @@ <translation id="3551320343578183772">Loka flipa</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Hreinsað við lokun</translation> -<translation id="3553487194781590058">Ekki leyfa vefsvæðum að opna mynd í mynd-glugga þegar þú skiptir yfir í annan flipa</translation> <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> hefur umsjón með tækinu þínu. Kerfisstjórar hafa aðgang að gögnum allra prófíla í þessu tæki.</translation> <translation id="3555812735919707620">Fjarlægja viðbót</translation> <translation id="3557101512409028104">Stilltu takmarkanir vefsvæða og skjátímamörk með Family Link</translation> @@ -3792,7 +3789,6 @@ <translation id="3975201861340929143">Útskýring</translation> <translation id="3975565978598857337">Ekki náðist samband við þjón svæðis</translation> <translation id="3976108569178263973">Engir prentarar eru til staðar.</translation> -<translation id="3976244126942806443">Vefsvæði tengjast yfirleitt MIDI-tækjum til að búa til og breyta tónlist</translation> <translation id="397703832102027365">Lýkur...</translation> <translation id="3977145907578671392">Eiginleikar sumra vefsvæða virka e.t.v. ekki í huliðsstillingu</translation> <translation id="3977886311744775419">Þessi tegund netkerfis styður ekki sjálfvirkar uppfærslur en þú getur leitað að uppfærslum handvirkt.</translation> @@ -4693,7 +4689,6 @@ <translation id="4730492586225682674">Síðasta glósa með penna á lásskjá</translation> <translation id="4730888769809690665">Tilkynningar leyfðar fyrir <ph name="SITE" /></translation> <translation id="4731306954230393087">Má nota upplýsingar sem það hefur vistað um þig</translation> -<translation id="473140019006744096">Ekki er nægilegt geymslurými á tækinu til að ljúka uppfærslunni. Losaðu um <ph name="NECESSARY_SPACE" /> í tækinu og reyndu aftur.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (vinstri)</translation> <translation id="4733793249294335256">Staðsetning</translation> <translation id="473546211690256853">Þessum reikningi er stjórnað af <ph name="DOMAIN" /></translation> @@ -5395,7 +5390,6 @@ <translation id="5327912693242073631">Eiginleikar sem þarfnast tilkynninga munu ekki virka</translation> <translation id="532943162177641444">Pikkaðu á tilkynninguna í <ph name="PHONE_NAME" /> til að setja upp farsímaaðgangsstað fyrir þetta tæki.</translation> <translation id="5329858601952122676">Eyða</translation> -<translation id="5330592967519769658">Má opna mynd í mynd-glugga þegar þú skiptir yfir í annan flipa</translation> <translation id="5331069282670671859">Þú ert ekki með nein vottorð í þessum flokki</translation> <translation id="5331568967879689647">Kerfisforrit ChromeOS</translation> <translation id="5331975486040154427">USB-C tæki (tengi vinstra megin að aftan)</translation> @@ -5573,7 +5567,6 @@ <translation id="5473099001878321374">Með því að halda áfram samþykkirðu að þetta tæki geti sjálfkrafa sótt og sett upp uppfærslur og forrit frá Google, símafyrirtæki barnsins og framleiðanda tækisins, mögulega með því að nota farsímagögn. Einhver þessara forrita kunna að bjóða upp á innkaup í forriti.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-númer verður að vera minnst einn stafur}one{PIN-númer verður að vera að minnst # stafur}other{PIN-númer verður að vera að minnst # stafir}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> fer fram á að þú tengist Wi-Fi núna og sækir uppfærslu. Þú getur einnig hlaðið niður með gagnamældri tengingu (gjöld kunna að eiga við).</translation> -<translation id="5478520208448702555">Vefsvæði kunna að opna mynd í mynd-glugga þegar þú skiptir yfir í annan flipa</translation> <translation id="5481273127572794904">Mega ekki sækja margar skrár sjálfkrafa</translation> <translation id="5481941284378890518">Bæta nálægum prenturum við</translation> <translation id="5484181871714116891">Þegar kveikt er á þessu eru aðgangslyklar búnir til í iCloud Keychain og eru tiltækir í öllum Apple-tækjunum þínum. Þegar slökkt er á þessu eru aðgangslyklar búnir til á Chrome-prófílnum þínum í þessu tæki.</translation> @@ -5731,7 +5724,6 @@ <translation id="5600348067066185292">Uppsetningin fer fram í nokkrum auðveldum skrefum. Þú færð annað tækifæri til að staðfesta áður en breytingar eru gerðar á tölvunni þinni.</translation> <translation id="5600706100022181951">Uppfærsla verður sótt og mun nota <ph name="UPDATE_SIZE_MB" /> MB af farsímagögnum. Viltu halda áfram?</translation> <translation id="5601503069213153581">PIN-númer</translation> -<translation id="5601823921345337195">Mega ekki tengjast MIDI-tækjum</translation> <translation id="5601833336918638013">Ekki leyfa vefsvæðum að leita að Bluetooth-tækjum</translation> <translation id="5602586420788540146">Opna í nýjum flipahóp</translation> <translation id="5605758115928394442">Tilkynning var send í símann þinn til að staðfesta að þetta sért þú.</translation> @@ -5853,7 +5845,6 @@ <translation id="5707185214361380026">Mistókst að hlaða viðbót frá:</translation> <translation id="5708171344853220004">Microsoft-aðalnefni</translation> <translation id="5709557627224531708">Stilltu Chrome sem sjálfgefinn vafra</translation> -<translation id="5710122160114032242">Má ekki opna mynd í mynd-glugga þegar þú skiptir yfir í annan flipa</translation> <translation id="5711010025974903573">Þjónustuannálar</translation> <translation id="5711983031544731014">Ekki tókst að opna. Sláðu inn aðgangsorðið þitt.</translation> <translation id="5712153969432126546">Stundum birta vefsvæði PDF-skjöl, t.d. fylgiskjöl, samninga og eyðublöð</translation> @@ -6615,7 +6606,6 @@ <translation id="6326175484149238433">Fjarlægja úr Chrome</translation> <translation id="6326855256003666642">Fjöldi sem heldur viðbót virkri</translation> <translation id="6327785803543103246">Sjálfvirk uppgötvun vefstaðgengilsþjóna</translation> -<translation id="6331818708794917058">Vefsvæði geta beðið um að fá að tengjast MIDI-tækjum</translation> <translation id="6333064448949140209">Skráin verður send til villuleitar hjá Google</translation> <translation id="6333170995003625229">Ekki tókst að staðfesta netfangið þitt eða aðgangsorðið. Reyndu að skrá þig inn aftur.</translation> <translation id="6334267141726449402">Afritaðu þennan tengil og sendu hann til notandans til að safna annálunum.</translation> @@ -6765,7 +6755,6 @@ <translation id="6458701200018867744">Flutningur mistókst (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Nota val til að leita</translation> <translation id="6459799433792303855">Virkur gluggi færður á annan skjá.</translation> -<translation id="6460566145397380451">Mega tengjast MIDI-tækjum</translation> <translation id="6460601847208524483">Finna næsta</translation> <translation id="6461170143930046705">Leitar að netum...</translation> <translation id="6463795194797719782">Br&eyta</translation> @@ -7093,7 +7082,6 @@ <translation id="6735304988756581115">Sýna fótspor og önnur gögn vefsvæðis...</translation> <translation id="6736243959894955139">Vistfang</translation> <translation id="6737663862851963468">Fjarlægja Kerberos miða</translation> -<translation id="6737931010859480781">Þetta forrit er foruppsett í tækinu</translation> <translation id="6738180164164974883">Leyfa notkun fótspora þriðja aðila</translation> <translation id="6738430949033571771">Staðfestir reikning...</translation> <translation id="6739923123728562974">Sýna skjáborðsflýtileið</translation> @@ -8487,7 +8475,6 @@ <translation id="7853747251428735">F&leiri verkfæri</translation> <translation id="7853999103056713222">Notaðu traustara aðgangsorð</translation> <translation id="7855678561139483478">Færa flipa í nýjan glugga</translation> -<translation id="7855729579456690716">Vefsvæði mega opna mynd í mynd-glugga þegar þú skiptir yfir í annan flipa</translation> <translation id="7857004848504343806">Tölvan inniheldur örugga einingu sem er notuð til að innleiða fjölda mikilvægra öryggiseiginleika í ChromeOS Flex. Farðu í hjálparmiðstöð Chromebook til að fá frekari upplýsingar: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Textatillögur</translation> <translation id="7857949311770343000">Er þetta síða nýrra flipa sem þú bjóst við?</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index 88793086..2b4483a 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> memorizza il metodo di accesso e, se possibile, ti consente di accedere automaticamente. Se questa opzione è disattivata, ti verrà chiesta una conferma ogni volta.</translation> <translation id="1008544602823861396">non può usare le tue informazioni su</translation> <translation id="1008557486741366299">Non adesso</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Per proteggere i tuoi dati, sono state rimosse le autorizzazioni da un sito che non hai visitato per 2 mesi}other{Per proteggere i tuoi dati, sono state rimosse le autorizzazioni da siti che non hai visitato per 2 mesi}}</translation> <translation id="1009663062402466586">Sono disponibili i controlli per i giochi</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{La pagina non risponde}other{Le pagine non rispondono}}</translation> <translation id="1011003645819296594">Dispositivi salvati</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copia indi&rizzo link</translation> <translation id="1085064499066015002">Sempre su tutti i siti</translation> <translation id="1085697365578766383">Errore durante l'avvio della macchina virtuale. Riprova.</translation> -<translation id="1087965115100412394">Non consentire ai siti di connettersi ai dispositivi MIDI</translation> <translation id="1088659085457112967">Avvia modalità Reader</translation> <translation id="1090126737595388931">Nessuna applicazione in esecuzione in background</translation> <translation id="1090541560108055381">Prima di eseguire l'accoppiamento, assicurati che questo codice sia lo stesso su entrambi i dispositivi</translation> @@ -3227,7 +3225,6 @@ <translation id="3551320343578183772">Chiudi scheda</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Cancellato all'uscita</translation> -<translation id="3553487194781590058">Non consentire ai siti di aprire una finestra Picture in picture quando passi a una scheda diversa</translation> <translation id="3554493885489666172">Il dispositivo è gestito da <ph name="PROFILE_NAME" />. Gli amministratori possono accedere ai dati in qualsiasi profilo su questo dispositivo.</translation> <translation id="3555812735919707620">Rimuovi estensione</translation> <translation id="3557101512409028104">Imposta limitazioni relative ai siti web e limiti per il tempo di utilizzo con Family Link</translation> @@ -3786,7 +3783,6 @@ <translation id="3975201861340929143">Spiegazione</translation> <translation id="3975565978598857337">Tentativo di contatto del server per area di autenticazione non riuscito</translation> <translation id="3976108569178263973">Non ci sono stampanti disponibili.</translation> -<translation id="3976244126942806443">In genere, i siti si connettono a dispositivi MIDI per creare e modificare musica</translation> <translation id="397703832102027365">Finalizzazione in corso...</translation> <translation id="3977145907578671392">Le funzionalità su alcuni siti potrebbero non essere disponibili in incognito</translation> <translation id="3977886311744775419">Gli aggiornamenti automatici non vengono scaricati su questo tipo di rete, ma puoi verificare la presenza di aggiornamenti manualmente.</translation> @@ -4686,7 +4682,6 @@ <translation id="4730492586225682674">Nota più recente scritta con lo stilo nella schermata di blocco</translation> <translation id="4730888769809690665">Notifiche consentite per <ph name="SITE" /></translation> <translation id="4731306954230393087">Può usare le informazioni su di te che ha salvato</translation> -<translation id="473140019006744096">Spazio su questo dispositivo insufficiente per completare l'aggiornamento. Libera <ph name="NECESSARY_SPACE" /> sul dispositivo e riprova.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (sinistro)</translation> <translation id="4733793249294335256">Posizione</translation> <translation id="473546211690256853">Questo account è gestito da <ph name="DOMAIN" /></translation> @@ -5388,7 +5383,6 @@ <translation id="5327912693242073631">Le funzionalità che richiedono notifiche non funzioneranno</translation> <translation id="532943162177641444">Tocca la notifica sul tuo <ph name="PHONE_NAME" /> per configurare l'hotspot mobile che può essere utilizzato per questo dispositivo.</translation> <translation id="5329858601952122676">&Elimina</translation> -<translation id="5330592967519769658">Siti autorizzati ad aprire una finestra Picture in picture quando passi a una scheda diversa</translation> <translation id="5331069282670671859">Nessun certificato presente in questa categoria</translation> <translation id="5331568967879689647">App sistema operativo ChromeOS</translation> <translation id="5331975486040154427">Dispositivo USB-C (porta posteriore sinistra)</translation> @@ -5566,7 +5560,6 @@ <translation id="5473099001878321374">Se prosegui, accetti che il dispositivo possa scaricare e installare automaticamente aggiornamenti e app da Google, dall'operatore di tuo figlio e dal produttore del dispositivo, utilizzando eventualmente la rete dati. Alcune di queste app potrebbero offrire acquisti in-app.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Il PIN deve contenere almeno un carattere}other{Il PIN deve contenere almeno # caratteri}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> richiede l'immediata connessione a una rete Wi-Fi per scaricare un aggiornamento. In alternativa, puoi eseguire il download tramite una connessione a consumo (potrebbero essere applicati costi).</translation> -<translation id="5478520208448702555">Quando passi a una scheda diversa, i siti potrebbero aprire una finestra Picture in picture</translation> <translation id="5481273127572794904">Non possono scaricare automaticamente più file</translation> <translation id="5481941284378890518">Aggiungi stampanti nelle vicinanze</translation> <translation id="5484181871714116891">Se attivate, le passkey vengono create nel portachiavi iCloud e sono disponibili su tutti i tuoi dispositivi Apple. Se l'opzione è disattivata, le passkey vengono create nel tuo profilo Chrome su questo dispositivo.</translation> @@ -5724,7 +5717,6 @@ <translation id="5600348067066185292">L'installazione richiede pochi semplici passaggi. Avrai un'altra possibilità di confermare prima dell'applicazione delle modifiche al computer.</translation> <translation id="5600706100022181951">Il download dell'aggiornamento richiederà <ph name="UPDATE_SIZE_MB" /> MB di dati mobili. Vuoi continuare?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Non possono connettersi ai dispositivi MIDI</translation> <translation id="5601833336918638013">Non consentire ai siti di cercare dispositivi Bluetooth</translation> <translation id="5602586420788540146">Apri in un nuovo gruppo di schede</translation> <translation id="5605758115928394442">È stata inviata una notifica al tuo telefono per verificare la tua identità.</translation> @@ -5844,7 +5836,6 @@ <translation id="5707185214361380026">Impossibile caricare l'estensione da:</translation> <translation id="5708171344853220004">Nome entità Microsoft</translation> <translation id="5709557627224531708">Imposta Chrome come browser predefinito</translation> -<translation id="5710122160114032242">Siti non autorizzati ad aprire una finestra Picture in picture quando passi a una scheda diversa</translation> <translation id="5711010025974903573">Log di servizio</translation> <translation id="5711983031544731014">Impossibile sbloccare. Inserisci la password.</translation> <translation id="5712153969432126546">A volte i siti pubblicano PDF, come documenti, contratti e moduli</translation> @@ -6606,7 +6597,6 @@ <translation id="6326175484149238433">Rimuovi da Chrome</translation> <translation id="6326855256003666642">Conteggio attività keep-alive</translation> <translation id="6327785803543103246">Rilevamento automatico proxy web</translation> -<translation id="6331818708794917058">I siti possono chiedere di connettersi ai dispositivi MIDI</translation> <translation id="6333064448949140209">Il file sarà inviato a Google per il debug</translation> <translation id="6333170995003625229">Impossibile verificare l'indirizzo email o la password. Prova ad accedere nuovamente.</translation> <translation id="6334267141726449402">Copia e invia questo link all'utente per raccogliere i log.</translation> @@ -6756,7 +6746,6 @@ <translation id="6458701200018867744">Caricamento non riuscito (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Utilizza selezione per Trova</translation> <translation id="6459799433792303855">Finestra attiva spostata in un altro schermo.</translation> -<translation id="6460566145397380451">Possono connettersi ai dispositivi MIDI</translation> <translation id="6460601847208524483">Trova successivo</translation> <translation id="6461170143930046705">Ricerca di reti...</translation> <translation id="6463795194797719782">&Modifica</translation> @@ -7083,7 +7072,6 @@ <translation id="6735304988756581115">Mostra cookie e altri dati dei siti...</translation> <translation id="6736243959894955139">Indirizzo</translation> <translation id="6737663862851963468">Rimuovere richiesta di Kerberos</translation> -<translation id="6737931010859480781">Questa app è preinstallata sul tuo dispositivo</translation> <translation id="6738180164164974883">Consenti l'impostazione di cookie di terze parti</translation> <translation id="6738430949033571771">Verifica dell'account in corso…</translation> <translation id="6739923123728562974">Mostra collegamento sul desktop</translation> @@ -8480,7 +8468,6 @@ <translation id="7853747251428735">Altri strume&nti</translation> <translation id="7853999103056713222">Usa una password più sicura</translation> <translation id="7855678561139483478">Sposta scheda in una nuova finestra</translation> -<translation id="7855729579456690716">I siti possono aprire una finestra Picture in picture quando passi a una scheda diversa</translation> <translation id="7857004848504343806">Il computer contiene un modulo di sicurezza che viene utilizzato per implementare in ChromeOS Flex molte funzionalità di sicurezza fondamentali. Per saperne di più, visita il Centro assistenza Chromebook all'indirizzo: https://support.google.com/chromebook/?p=sm.</translation> <translation id="7857093393627376423">Suggerimenti testuali</translation> <translation id="7857949311770343000">È la pagina Nuova scheda prevista?</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 43f1c7e..fe55f96 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">דרך הכניסה לחשבון נשמרת ב<ph name="BRAND" />, והכניסה מתבצעת באופן אוטומטי מתי שאפשר. כשהאפשרות הזו מושבתת, מוצגת בקשה לאישור בכל פעם.</translation> <translation id="1008544602823861396">חסימת השימוש במידע שלך ב-</translation> <translation id="1008557486741366299">לא עכשיו</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{כדי להגן על הנתונים שלך, הוסרו ההרשאות מאתר שלא נכנסת אליו במשך חודשיים}one{כדי להגן על הנתונים שלך, הוסרו הרשאות מאתרים שלא נכנסת אליהם במשך חודשיים}two{כדי להגן על הנתונים שלך, הוסרו הרשאות מאתרים שלא נכנסת אליהם במשך חודשיים}other{כדי להגן על הנתונים שלך, הוסרו הרשאות מאתרים שלא נכנסת אליהם במשך חודשיים}}</translation> <translation id="1009663062402466586">פקדי המשחקים זמינים עכשיו</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{הדף אינו מגיב}one{הדפים אינם מגיבים}two{הדפים אינם מגיבים}other{הדפים אינם מגיבים}}</translation> <translation id="1011003645819296594">המכשירים השמורים</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">העתקת כתו&בת קישור</translation> <translation id="1085064499066015002">פועל כל הזמן בכל האתרים</translation> <translation id="1085697365578766383">קרתה שגיאה בהפעלת המכונה הווירטואלית. יש לנסות שוב.</translation> -<translation id="1087965115100412394">לא לאפשר לאתרים להתחבר למכשירי MIDI</translation> <translation id="1088659085457112967">כניסה למצב קורא</translation> <translation id="1090126737595388931">אין יישומים פועלים ברקע</translation> <translation id="1090541560108055381">לפני ההתאמה צריך לוודא שמשתמשים באותו קוד בשני המכשירים</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">סגירת כרטיסייה</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">מנוקה בעת היציאה</translation> -<translation id="3553487194781590058">אין הרשאה לפתוח חלון עם תמונה בתוך תמונה, כשעוברים לכרטיסייה אחרת</translation> <translation id="3554493885489666172">המכשיר שלך מנוהל על-ידי <ph name="PROFILE_NAME" />. למנהלי המערכת יש גישה לנתונים של כל פרופיל במכשיר הזה.</translation> <translation id="3555812735919707620">הסרת תוסף</translation> <translation id="3557101512409028104">הגדרה של הגבלות גישה לאתרים וזמן מסך בעזרת Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">הסבר</translation> <translation id="3975565978598857337">יצירת הקשר עם השרת של התחום נכשלה</translation> <translation id="3976108569178263973">אין מדפסות זמינות.</translation> -<translation id="3976244126942806443">בדרך כלל אתרים מתחברים למכשירי MIDI כדי לתמוך ביצירה ובעריכה של מוזיקה</translation> <translation id="397703832102027365">בשלבי סיום...</translation> <translation id="3977145907578671392">יכול להיות שהתכונות באתרים מסוימים לא יפעלו במצב פרטי</translation> <translation id="3977886311744775419">ברשת מסוג זה לא יכולים להתבצע עדכונים אוטומטיים, אבל אפשר לבדוק ידנית אם יש עדכונים.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">ההערה האחרונה שנכתבה במסך הנעילה עם סטיילוס</translation> <translation id="4730888769809690665">לאתר <ph name="SITE" /> יש הרשאה לשלוח התראות</translation> <translation id="4731306954230393087">לאתר יש הרשאה להשתמש במידע עליך שנשמר בו</translation> -<translation id="473140019006744096">אין מספיק מקום אחסון במכשיר הזה כדי להשלים את העדכון. צריך לפנות <ph name="NECESSARY_SPACE" /> במכשיר ולנסות שוב.</translation> <translation id="4733161265940833579">%<ph name="BATTERY_PERCENTAGE" /> (שמאל)</translation> <translation id="4733793249294335256">מיקום</translation> <translation id="473546211690256853">חשבון זה מנוהל על ידי <ph name="DOMAIN" /></translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">תכונות שצריכות התראות לא יפעלו</translation> <translation id="532943162177641444">יש להקיש על ההודעה בטלפון <ph name="PHONE_NAME" /> כדי להגדיר את הנקודה לשיתוף אינטרנט בנייד שבה המכשיר הזה יכול להשתמש.</translation> <translation id="5329858601952122676">&מחיקה</translation> -<translation id="5330592967519769658">הרשאה לפתוח חלון עם תמונה בתוך תמונה במעבר לכרטיסייה אחרת</translation> <translation id="5331069282670671859">אין לך אישורים בקטגוריה הזו</translation> <translation id="5331568967879689647">אפליקציית מערכת של ChromeOS</translation> <translation id="5331975486040154427">מכשיר עם יציאת USB-C (יציאה שמאלית-אחורית)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">המשך הפעולה מבטא את הסכמתך לכך שהמכשיר הזה יוכל גם להוריד ולהתקין עדכונים ואפליקציות באופן אוטומטי מ-Google, מהספק של הילד או הילדה שלך ומיצרן המכשיר, גם אם ייעשה לשם כך שימוש בחבילת הגלישה. חלק מהאפליקציות האלו עשויות להציע רכישות מתוך האפליקציה.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{קוד האימות חייב להיות באורך של תו אחד לפחות}one{קוד האימות חייב להיות באורך של # תווים לפחות}two{קוד האימות חייב להיות באורך של # תווים לפחות}other{קוד האימות חייב להיות באורך של # תווים לפחות}}</translation> <translation id="5474859849784484111">כדי להיכנס אל <ph name="MANAGER" />, מתחברים עכשיו לרשת Wi-Fi ומורידים עדכון. ניתן גם לבצע את ההורדה דרך חיבור עם חיוב לפי שימוש בנתונים (עשויים לחול חיובים).</translation> -<translation id="5478520208448702555">כשעוברים לכרטיסייה אחרת, אתרים עשויים לפתוח חלון עם תמונה בתוך תמונה</translation> <translation id="5481273127572794904">לא מורשים להוריד מספר קבצים באופן אוטומטי</translation> <translation id="5481941284378890518">הוספת מדפסות קרובות</translation> <translation id="5484181871714116891">כשההגדרה מופעלת, מפתחות הגישה נוצרים ב'צרור המפתחות של iCloud' וזמינים בכל מכשירי Apple. כשההגדרה מושבתת, מפתחות הגישה נוצרים בפרופיל Chrome במכשיר הזה.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">ההתקנה מתבצעת בכמה שלבים פשוטים. תהיה לך עוד הזדמנות לאשר לפני שיבוצעו שינויים במחשב שלך.</translation> <translation id="5600706100022181951">ההורדה של העדכון תנצל MB <ph name="UPDATE_SIZE_MB" /> מחבילת הגלישה. להמשיך?</translation> <translation id="5601503069213153581">קוד אימות</translation> -<translation id="5601823921345337195">לא מורשים להתחבר אל מכשירי MIDI</translation> <translation id="5601833336918638013">לא לאפשר לאתרים לאתר מכשירי Bluetooth</translation> <translation id="5602586420788540146">פתיחה בקבוצת כרטיסיות חדשה</translation> <translation id="5605758115928394442">הודעה נשלחה לטלפון שלך כדי לאשר את זהותך.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">נכשלה טעינת תוסף מ:</translation> <translation id="5708171344853220004">שם ראשי של Microsoft</translation> <translation id="5709557627224531708">הגדרת Chrome כדפדפן ברירת המחדל</translation> -<translation id="5710122160114032242">אין הרשאה לפתוח חלון עם תמונה בתוך תמונה במעבר לכרטיסייה אחרת</translation> <translation id="5711010025974903573">יומני שירות</translation> <translation id="5711983031544731014">לא ניתן לבטל את הנעילה. יש להזין את הסיסמה שלך.</translation> <translation id="5712153969432126546">לפעמים אתרים מפרסמים קובצי PDF, כמו מסמכים, חוזים וטפסים</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">הסרה מ-Chrome</translation> <translation id="6326855256003666642">ספירת Keepalive</translation> <translation id="6327785803543103246">גילוי אוטומטי של שרת proxy באינטרנט</translation> -<translation id="6331818708794917058">אתרים יכולים לבקש הרשאה להתחבר אל מכשירי MIDI</translation> <translation id="6333064448949140209">הקובץ יישלח אל Google לניפוי באגים</translation> <translation id="6333170995003625229">לא ניתן לאמת את כתובת האימייל או את הסיסמה שלך. יש לנסות להיכנס שוב.</translation> <translation id="6334267141726449402">כדי לאסוף את היומנים, צריך להעתיק את הקישור הזה ולשלוח אותו למשתמש.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">ההעלאה נכשלה (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">שימוש בבחירה לחיפוש</translation> <translation id="6459799433792303855">החלון הפעיל הועבר אל צג אחר.</translation> -<translation id="6460566145397380451">מורשים להתחבר אל מכשירי MIDI</translation> <translation id="6460601847208524483">חיפוש של הבא</translation> <translation id="6461170143930046705">המכשיר מחפש רשתות...</translation> <translation id="6463795194797719782">&עריכה</translation> @@ -7094,7 +7083,6 @@ <translation id="6735304988756581115">הצגת קובצי Cookie ונתוני אתר אחרים...</translation> <translation id="6736243959894955139">כתובת</translation> <translation id="6737663862851963468">הסרה של כרטיס Kerberos</translation> -<translation id="6737931010859480781">האפליקציה הזו הותקנה מראש במכשיר</translation> <translation id="6738180164164974883">אישור להגדיר קובצי cookie של צד שלישי</translation> <translation id="6738430949033571771">החשבון בתהליך אימות…</translation> <translation id="6739923123728562974">הצגת קיצור דרך בשולחן העבודה</translation> @@ -8488,7 +8476,6 @@ <translation id="7853747251428735">&כלים נוספים</translation> <translation id="7853999103056713222">אפשר להשתמש בסיסמה בטוחה יותר</translation> <translation id="7855678561139483478">העברת כרטיסייה לחלון חדש</translation> -<translation id="7855729579456690716">כשעוברים לכרטיסייה אחרת, אתרים יכולים לפתוח חלון עם תמונה בתוך תמונה</translation> <translation id="7857004848504343806">המחשב שלך מכיל מודול אבטחה המשמש ליישום תכונות אבטחה קריטיות רבות ב-ChromeOS Flex. מידע נוסף מפורט במרכז העזרה של Chromebook: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">הצעות לטקסט</translation> <translation id="7857949311770343000">האם זהו דף הכרטיסייה החדשה שציפית לראות?</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index 3f34a5b..b4cf2b20 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> でログイン方法を記憶し、可能な場合は自動的にログインします。オフにすると、毎回確認を求められます。</translation> <translation id="1008544602823861396">では次のサイトであなたの情報を使用できません:</translation> <translation id="1008557486741366299">後で</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{データ保護のため、2 か月間アクセスしていないサイトから権限を削除しました}other{データ保護のため、2 か月間アクセスしていないサイトから権限を削除しました}}</translation> <translation id="1009663062402466586">ゲーム操作キーをご利用いただけるようになりました</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ページが応答しません}other{ページが応答しません}}</translation> <translation id="1011003645819296594">保存済みのデバイス</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">リンクのアドレスをコピー(&E)</translation> <translation id="1085064499066015002">すべてのサイトで常に許可</translation> <translation id="1085697365578766383">仮想マシンの起動中にエラーが発生しました。もう一度お試しください。</translation> -<translation id="1087965115100412394">サイトに MIDI デバイスへの接続を許可しない</translation> <translation id="1088659085457112967">リーダーモードを開始</translation> <translation id="1090126737595388931">実行中のバックグラウンド アプリはありません</translation> <translation id="1090541560108055381">ペア設定を行う前に、両方のデバイスでコードが一致しているか確認してください</translation> @@ -3211,7 +3209,6 @@ <translation id="3551320343578183772">タブを閉じる</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">終了時に削除</translation> -<translation id="3553487194781590058">別のタブに変更したときピクチャー イン ピクチャー ウィンドウを開くことをサイトに許可しない</translation> <translation id="3554493885489666172">このデバイスは <ph name="PROFILE_NAME" /> によって管理されています。管理者はこのデバイスの任意のプロファイルのデータにアクセスできます。</translation> <translation id="3555812735919707620">拡張機能を削除</translation> <translation id="3557101512409028104">ファミリー リンクでウェブサイトの制限と利用時間の上限を設定します</translation> @@ -3769,7 +3766,6 @@ <translation id="3975201861340929143">説明</translation> <translation id="3975565978598857337">レルムのサーバーに接続できませんでした</translation> <translation id="3976108569178263973">利用できるプリンタがありません。</translation> -<translation id="3976244126942806443">多くのサイトは、音楽の制作や編集をするために MIDI デバイスに接続します</translation> <translation id="397703832102027365">最終処理中...</translation> <translation id="3977145907578671392">シークレット モードでは、一部サイトの機能が使用できなくなる可能性があります</translation> <translation id="3977886311744775419">このネットワーク タイプでは自動更新はダウンロードされませんが、手動で更新を確認できます。</translation> @@ -4668,7 +4664,6 @@ <translation id="4730492586225682674">ロック画面でタッチペンによる最新メモを表示</translation> <translation id="4730888769809690665"><ph name="SITE" /> で通知を許可されています</translation> <translation id="4731306954230393087">保存したあなたに関する情報の使用を許可する</translation> -<translation id="473140019006744096">更新を完了するのに十分な容量がデバイスにありません。デバイスで <ph name="NECESSARY_SPACE" /> の容量を確保してから、もう一度お試しください。</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />%(左)</translation> <translation id="4733793249294335256">保存先</translation> <translation id="473546211690256853">このアカウントは <ph name="DOMAIN" /> によって管理されています。</translation> @@ -5369,7 +5364,6 @@ <translation id="5327912693242073631">通知を必要とする機能は動作しなくなります</translation> <translation id="532943162177641444">「<ph name="PHONE_NAME" />」で通知をタップして、このデバイスで使用できるモバイル アクセス ポイントを設定してください。</translation> <translation id="5329858601952122676">削除(&D)</translation> -<translation id="5330592967519769658">別のタブに変更したときにピクチャー イン ピクチャー ウィンドウを開くことが許可されるサイト</translation> <translation id="5331069282670671859">このカテゴリの証明書はありません</translation> <translation id="5331568967879689647">Chrome OS のシステムアプリ</translation> <translation id="5331975486040154427">USB-C デバイス(左奥のポート)</translation> @@ -5546,7 +5540,6 @@ <translation id="5473099001878321374">続行すると、Google、お子様がご利用の携帯通信会社、デバイス メーカーからアップデートやアプリをこのデバイスが自動的に(場合によってはモバイルデータ接続を使用して)ダウンロードし、インストールする場合があることに同意したことになります。一部のアプリでは、アプリ内購入をご利用いただけます。</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN は 1 文字以上で入力してください}other{PIN は # 文字以上で入力してください}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> が、アップデートを今すぐダウンロードするよう求めています。Wi-Fi に接続するか、現在の従量制接続でのダウンロードを許可してください(通信料が発生することがあります)。</translation> -<translation id="5478520208448702555">別のタブに変更したときにピクチャー イン ピクチャー ウィンドウを開くことをサイトに許可するかどうかを設定します</translation> <translation id="5481273127572794904">複数のファイルの自動ダウンロードを許可しないサイト</translation> <translation id="5481941284378890518">近くのプリンタを追加</translation> <translation id="5484181871714116891">オンにした場合、パスキーが iCloud キーチェーンで作成され、Apple デバイスで使用できるようになります。オフにした場合、パスキーはこのデバイスの Chrome プロフィールで作成されます。</translation> @@ -5704,7 +5697,6 @@ <translation id="5600348067066185292">インストールの手順は簡単です。パソコンに変更を加える前に、インストールを確認するメッセージがもう一度表示されます。</translation> <translation id="5600706100022181951">アップデートをダウンロードすると、<ph name="UPDATE_SIZE_MB" /> MB のモバイルデータを使用することになります。続行してもよろしいですか?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI デバイスへの接続を許可しないサイト</translation> <translation id="5601833336918638013">サイトが Bluetooth デバイスを検出することを許可しない</translation> <translation id="5602586420788540146">新しいタブグループで開く</translation> <translation id="5605758115928394442">本人確認の通知をご使用のスマートフォンに送信しました。</translation> @@ -5826,7 +5818,6 @@ <translation id="5707185214361380026">次の場所から拡張機能を読み込むことができませんでした:</translation> <translation id="5708171344853220004">Microsoft プリンシパル名</translation> <translation id="5709557627224531708">Chrome を既定のブラウザに設定する</translation> -<translation id="5710122160114032242">別のタブに変更したときにピクチャー イン ピクチャー ウィンドウを開くことが許可されないサイト</translation> <translation id="5711010025974903573">サービスログ</translation> <translation id="5711983031544731014">ロックを解除できません。パスワードを入力してください。</translation> <translation id="5712153969432126546">一部のサイトはドキュメント、契約、フォームなどの PDF を一般に提供しています</translation> @@ -6588,7 +6579,6 @@ <translation id="6326175484149238433">Chrome から削除</translation> <translation id="6326855256003666642">キープアライブ カウント</translation> <translation id="6327785803543103246">ウェブプロキシ自動検出</translation> -<translation id="6331818708794917058">サイトが MIDI デバイスへの接続を要求できるようにする</translation> <translation id="6333064448949140209">ファイルはデバッグのため Google に送信されます</translation> <translation id="6333170995003625229">メールアドレスまたはパスワードを確認できませんでした。もう一度ログインしてみてください。</translation> <translation id="6334267141726449402">このリンクをコピーして、ログを収集するユーザーに送信します。</translation> @@ -6738,7 +6728,6 @@ <translation id="6458701200018867744">アップロードできませんでした(<ph name="WEBRTC_LOG_UPLOAD_TIME" />)。</translation> <translation id="6459488832681039634">選択部分を検索に使用</translation> <translation id="6459799433792303855">アクティブなウィンドウが別のディスプレイに移動しました。</translation> -<translation id="6460566145397380451">MIDI デバイスへの接続を許可するサイト</translation> <translation id="6460601847208524483">次を検索</translation> <translation id="6461170143930046705">ネットワークの検索中...</translation> <translation id="6463795194797719782">編集(&E)</translation> @@ -7063,7 +7052,6 @@ <translation id="6735304988756581115">Cookie と他のサイトのデータを表示...</translation> <translation id="6736243959894955139">アドレス</translation> <translation id="6737663862851963468">Kerberos チケットの削除</translation> -<translation id="6737931010859480781">このアプリはデバイスにプリインストールされています</translation> <translation id="6738180164164974883">サードパーティ Cookie の設定を許可する</translation> <translation id="6738430949033571771">アカウントを確認しています...</translation> <translation id="6739923123728562974">デスクトップ ショートカットを表示</translation> @@ -8455,7 +8443,6 @@ <translation id="7853747251428735">その他のツール(&L)</translation> <translation id="7853999103056713222">より安全なパスワードを使用する</translation> <translation id="7855678561139483478">タブを新しいウィンドウに移動</translation> -<translation id="7855729579456690716">別のタブに変更したときにピクチャー イン ピクチャー ウィンドウを開くことをサイトに許可する</translation> <translation id="7857004848504343806">ご使用のパソコンにはセキュア モジュールが組み込まれています。これは ChromeOS Flex の多くの重要なセキュリティ機能を実装するために使用されます。詳しくは Chromebook ヘルプセンター(https://support.google.com/chromebook/?p=sm)をご覧ください。</translation> <translation id="7857093393627376423">テキスト候補</translation> <translation id="7857949311770343000">この新しいタブ ページでよろしいですか?</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 4bab1167..3cffe63 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> დაიმახსოვრებს სისტემაში შესვლის ხერხს და ავტომატურად შეგიყვანთ სისტემაში, როცა ეს შესაძლებელია. გამორთვის შემთხვევაში, ყოველ ჯერზე საჭირო იქნება თქვენი დასტური.</translation> <translation id="1008544602823861396">ვერ გამოიყენებს თქვენს ინფორმაციას შემდეგ საიტზე:</translation> <translation id="1008557486741366299">ახლა არა</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{თქვენი მონაცემების დასაცავად ამ საიტს, რომელიც 2 თვეა, არ მოგინახულებიათ, ნებართვები გაუუქმდა}other{თქვენი მონაცემების დასაცავად საიტებს, რომლებიც 2 თვეა, არ მოგინახულებიათ, ნებართვები გაუუქმდა}}</translation> <translation id="1009663062402466586">ახლა ხელმისაწვდომია თამაშის მართვის საშუალებები</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{გვერდი არ პასუხობს}other{გვერდები არ პასუხობს}}</translation> <translation id="1011003645819296594">შენახული მოწყობილობები</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">&მისამართების ბმულების კოპირება</translation> <translation id="1085064499066015002">ყოველთვის ყველა საიტზე</translation> <translation id="1085697365578766383">ვირტუალური მოწყობილობის გაშვება ვერ ხერხდება. გთხოვთ, ცადოთ ხელახლა.</translation> -<translation id="1087965115100412394">საიტებისთვის MIDI მოწყობილობებთან დაკავშირების აკრძალვა</translation> <translation id="1088659085457112967">წამკითხველის რეჟიმში შესვლა</translation> <translation id="1090126737595388931">არცერთი ფონური აპი გაშვებული არ არის</translation> <translation id="1090541560108055381">დაწყვილებამდე ორივე მოწყობილობას ერთი და იგივე კოდი უნდა ჰქონდეს</translation> @@ -3217,7 +3215,6 @@ <translation id="3551320343578183772">ჩანართის დახურვა</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> — <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">გასუფთავდება გასვლისას</translation> -<translation id="3553487194781590058">არ დაიშვას საიტებისთვის „ეკრანი ეკრანში“ ფანჯრის გახსნა, როცა სხვა ჩანართზე გადადიხართ</translation> <translation id="3554493885489666172">თქვენს მოწყობილობას მართავს <ph name="PROFILE_NAME" />. ადმინისტრატორებს შეუძლიათ ამ მოწყობილობაზე არსებული ნებისმიერი პროფილის მონაცემებზე წვდომა.</translation> <translation id="3555812735919707620">გაფართოების წაშლა</translation> <translation id="3557101512409028104">ვებსაიტებთან და ეკრანთან გატარებულ დროსთან დაკავშირებული შეზღუდვების დაწესება Family Link-ის მეშვეობით</translation> @@ -3776,7 +3773,6 @@ <translation id="3975201861340929143">ახსნა-განმარტება</translation> <translation id="3975565978598857337">სერვერთან არის თაობაზე დაკავშირება ვერ მოხერხდა</translation> <translation id="3976108569178263973">ხელმისაწვდომი პრინტერები არ არის.</translation> -<translation id="3976244126942806443">როგორც წესი, საიტების მიერ MIDI-მოწყობილობებთან დაკავშირება ხდება მუსიკის შექმნისა თუ მონტაჟისთვის</translation> <translation id="397703832102027365">მიმდინარეობს დასრულება…</translation> <translation id="3977145907578671392">ზოგიერთ საიტზე ფუნქციებმა შეიძლება არ იმუშაოს ინკოგნიტო რეჟიმში</translation> <translation id="3977886311744775419">ავტომატური განახლებები არ ჩამოიტვირთება ქსელის ამ ტიპის მეშვეობით, თუმცა შეგიძლიათ განახლებების ხელით შემოწმება.</translation> @@ -4676,7 +4672,6 @@ <translation id="4730492586225682674">ჩაკეტილ ეკრანზე სტილუსით ბოლოს ჩანიშნული</translation> <translation id="4730888769809690665">შეტყობინებები დაშვებულია <ph name="SITE" />-ისთვის</translation> <translation id="4731306954230393087">დაშვებული აქვს, მათ მიერ თქვენ შესახებ შენახული ინფორმაციის გამოყენება</translation> -<translation id="473140019006744096">მოწყობილობაზე არ არის საკმარისი სივრცე ამ განახლების დასასრულებლად. გაათავისუფლეთ <ph name="NECESSARY_SPACE" /> თქვენს მოწყობილობაზე და ცადეთ ხელახლა.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (მარცხენა)</translation> <translation id="4733793249294335256">მდებარეობა</translation> <translation id="473546211690256853">ეს ანგარიში იმართება <ph name="DOMAIN" />-ის მიერ</translation> @@ -5378,7 +5373,6 @@ <translation id="5327912693242073631">ფუნქციები, რომლებიც შეტყობინებებს საჭიროებს, არ იმუშავებს</translation> <translation id="532943162177641444">შეეხეთ შეტყობინებას თქვენს <ph name="PHONE_NAME" />-ზე, რათა შექმნათ უსადენო მობილური ქსელი, რომლითაც ეს მოწყობილობა ისარგებლებს.</translation> <translation id="5329858601952122676">&წაშლა</translation> -<translation id="5330592967519769658">დაშვებული აქვს „ეკრანი ეკრანში“ ფანჯრის გახსნა, როცა სხვა ჩანართზე გადადიხართ</translation> <translation id="5331069282670671859">ამ კატეგორიაში სერტიფიკატები არ გაქვთ</translation> <translation id="5331568967879689647">Chrome OS სისტემის აპი</translation> <translation id="5331975486040154427">USB-C მოწყობილობა (მარცხენა უკანა პორტი)</translation> @@ -5556,7 +5550,6 @@ <translation id="5473099001878321374">გაგრძელებით ეთანხმებით, რომ ამ მოწყობილობამ შეიძლება ავტომატურად ჩამოტვირთოს და დააინსტალიროს განახლებები ან აპები, რომლებსაც შემოთავაზებულია Google-ის, თქვენი ბავშვის ოპერატორის და ამ მოწყობილობის მწარმოებლის მიერ (მათ შორის, მობილური ინტერნეტის მეშვეობით). ზოგიერთი აპი შეიძლება აპს-შიდა შენაძენების განხორციელების საშუალებას იძლეოდეს.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-კოდი უნდა შეიცავდეს მინიმუმ 1 სიმბოლოს}other{PIN-კოდი უნდა შეიცავდეს მინიმუმ # სიმბოლოს}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> საჭიროებს Wi-Fi ქსელთან დაკავშირებას განახლების ჩამოსატვირთად. სურვილისამებრ, ჩამოტვირთვა შეგიძლიათ ლიმიტირებული კავშირით (შეიძლება დაკავშირებული იყოს ხარჯებთან).</translation> -<translation id="5478520208448702555">საიტებმა, შესაძლოა, გახსნან „ეკრანი ეკრანში“ ფანჯარა, როცა სხვა ჩანართზე გადახვალთ</translation> <translation id="5481273127572794904">რამდენიმე ფაილის ავტომატურად ჩამოტვირთვა დაუშვებელია</translation> <translation id="5481941284378890518">ახლომახლო პრინტერების დამატება</translation> <translation id="5484181871714116891">ჩართვის შემთხვევაში, წვდომის გასაღებები შეიქმნება iCloud Keychain-ში და ხელმისაწვდომი იქნება თქვენს Apple მოწყობილობებში. გამორთვის შემთხვევაში, წვდომის გასაღებები შეიქმნება თქვენს Chrome პროფილში ამ მოწყობილობაზე.</translation> @@ -5714,7 +5707,6 @@ <translation id="5600348067066185292">ინსტალაცია რამდენიმე მარტივი ნაბიჯისგან შედგება. სანამ თქვენს კომპიუტერში ცვლილებები შევა, დადასტურების კიდევ ერთი საშუალება გექნებათ.</translation> <translation id="5600706100022181951">განახლება მობილური ინტერნეტის პაკეტის <ph name="UPDATE_SIZE_MB" /> მბაიტს მოიხმარს. გსურთ გაგრძელება?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI-მოწყობილობებთან დაკავშირება დაუშვებელია</translation> <translation id="5601833336918638013">Bluetooth მოწყობილობების მოძიების აკრძალვა საიტებისთვის</translation> <translation id="5602586420788540146">ჩანართების ახალ ჯგუფში გახსნა</translation> <translation id="5605758115928394442">თქვენს ტელეფონზე გაიგზავნა შეტყობინება თქვენი ვინაობის დასადასტურებლად.</translation> @@ -5836,7 +5828,6 @@ <translation id="5707185214361380026">გაფართოება ვერ ჩაიტვირთა:</translation> <translation id="5708171344853220004">Microsoft-ის მონაწილის სახელი</translation> <translation id="5709557627224531708">დააყენეთ Chrome ნაგულისხმევ ბრაუზერად</translation> -<translation id="5710122160114032242">არ აქვს დაშვებული აქვს „ეკრანი ეკრანში“ ფანჯრის გახსნა, როცა სხვა ჩანართზე გადადიხართ</translation> <translation id="5711010025974903573">სერვისის ჟურნალები</translation> <translation id="5711983031544731014">განბლოკვა შეუძლებელია. შეიყვანეთ პაროლი.</translation> <translation id="5712153969432126546">საიტები ზოგჯერ აქვეყნებს ისეთ PDF-ებს, როგორიცაა, მაგალითად, დოკუმენტები, კონტრაქტები, ფორმები და ა.შ.</translation> @@ -6598,7 +6589,6 @@ <translation id="6326175484149238433">Chrome-იდან წაშლა</translation> <translation id="6326855256003666642">აქტიურად შენარჩუნებათა რაოდენობა</translation> <translation id="6327785803543103246">ვებ პროქსი-სერვერის ავტომატური აღმოჩენა</translation> -<translation id="6331818708794917058">საიტებს შეუძლია MIDI-მოწყობილობებთან დაკავშირების თხოვნა</translation> <translation id="6333064448949140209">ფაილი, გამართვის მიზნით, Google-ს გაეგზავნება</translation> <translation id="6333170995003625229">თქვენი ელფოსტის მისამართის ან პაროლის დადასტურება ვერ მოხერხდა. ცადეთ სისტემაში ხელახლა შესვლა.</translation> <translation id="6334267141726449402">დააკოპირეთ და გაუგზავნეთ ეს ბმული მომხმარებელს, ჟურნალები რომ შეაგროვოთ.</translation> @@ -6748,7 +6738,6 @@ <translation id="6458701200018867744">ატვირთვა ვერ მოხერხდა (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">მონიშნულის ძებნისთვის გამოყენება</translation> <translation id="6459799433792303855">აქტიური ფანჯარა გადატანილია სხვა ეკრანზე.</translation> -<translation id="6460566145397380451">MIDI-მოწყობილობებთან დაკავშირება დაშვებულია</translation> <translation id="6460601847208524483">შემდეგის ძებნა</translation> <translation id="6461170143930046705">მიმდინარეობს ქსელების ძიება…</translation> <translation id="6463795194797719782">&რედაქტირება</translation> @@ -7074,7 +7063,6 @@ <translation id="6735304988756581115">ქუქის და საიტის სხვა მონაცემების ჩვენება…</translation> <translation id="6736243959894955139">მისამართი</translation> <translation id="6737663862851963468">Kerberos ბილეთის ამოშლა</translation> -<translation id="6737931010859480781">ეს აპი წინასწარ არის დაინსტალირებული თქვენს მოწყობილობაზე</translation> <translation id="6738180164164974883">მესამე მხარის ქუქი-ჩანაწერების განსაზღვრის დაშვება</translation> <translation id="6738430949033571771">მიმდინარეობს ანგარიშის დადასტურება...</translation> <translation id="6739923123728562974">დესკტოპზე მალსახმობის ჩვენება</translation> @@ -8467,7 +8455,6 @@ <translation id="7853747251428735">დამატებითი ხე&ლსაწყოები</translation> <translation id="7853999103056713222">უფრო უსაფრთხო პაროლის გამოყენება</translation> <translation id="7855678561139483478">ჩანართის ახალ ფანჯარაში გადატანა</translation> -<translation id="7855729579456690716">საიტებს შეუძლია გახსნან „ეკრანი ეკრანში“ ფანჯარა, როცა სხვა ჩანართზე გადახვალთ</translation> <translation id="7857004848504343806">თქვენი კომპიუტერი შეიცავს უსაფრთხოების მოდულს, რომელიც ChromeOS Flex-ში უსაფრთხოებასთან დაკავშირებული მრავალი კრიტიკული ფუნქციის შესასრულებლად გამოიყენება. დამატებითი ინფორმაციისთვის მოინახულეთ Chromebook-ის დახმარების ცენტრი: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">ტექსტური შემოთავაზებები</translation> <translation id="7857949311770343000">ეს ის ჩანართია, რომელსაც მოელოდით?</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index 3c4034b8..a3aba2a3 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> аккаунтқа қалай кіргеніңізді есте сақтайды және сізді мүмкіндігінше автоматты түрде кіргізеді. Өшірулі кезде сізден әрдайым растау сұралады.</translation> <translation id="1008544602823861396">ақпаратыңызды пайдалануға блок қойылған</translation> <translation id="1008557486741366299">Қазір емес</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Деректеріңізді қорғау үшін, сіз 2 ай бойы кірмеген сайттан рұқсаттар жойылды}other{Деректеріңізді қорғау үшін, сіз 2 ай бойы кірмеген сайттардан рұқсаттар жойылды}}</translation> <translation id="1009663062402466586">Енді ойынның басқару элементтері қолжетімді</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Бет жауап бермейді}other{Бет жауап бермейді}}</translation> <translation id="1011003645819296594">Сақталған құрылғылар</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Сілтеме мекен&жайын көшіру</translation> <translation id="1085064499066015002">Әрдайым барлық сайтта</translation> <translation id="1085697365578766383">Виртуалдық құрылғыны қосу кезінде қате шықты. Қайта қосып көріңіз.</translation> -<translation id="1087965115100412394">Сайттардың MIDI құрылғыларына қосылуына рұқсат бермеу</translation> <translation id="1088659085457112967">Оқу құралы режиміне кіру</translation> <translation id="1090126737595388931">Фонда орындалып жатқан қолданбалар жоқ</translation> <translation id="1090541560108055381">Жұптамас бұрын осы кодтың екі құрылғыда да бірдей екеніне көз жеткізіңіз.</translation> @@ -3214,7 +3212,6 @@ <translation id="3551320343578183772">Қойындыны жабу</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Шыққанда өшіріледі</translation> -<translation id="3553487194781590058">Басқа қойындыға ауысқан кезде, сайттардың "Суреттегі сурет" режимі терезесін ашуына рұқсат етпеу</translation> <translation id="3554493885489666172">Құрылғыңызды <ph name="PROFILE_NAME" /> басқарады. Әкімшілер бұл құрылғыдағы кез келген профильдің деректерін пайдалана алады.</translation> <translation id="3555812735919707620">Кеңейтімді жою</translation> <translation id="3557101512409028104">Family Link қолданбасы арқылы веб-сайт шектеулерін және пайдалану уақытына қойылатын шектеулерді орнатыңыз.</translation> @@ -3773,7 +3770,6 @@ <translation id="3975201861340929143">Түсіндірме</translation> <translation id="3975565978598857337">Аймақ серверіне қосылмады.</translation> <translation id="3976108569178263973">Қолжетімді принтерлер жоқ.</translation> -<translation id="3976244126942806443">Сайттар әдетте музыка жасауға және өңдеуге арналған MIDI құрылғыларына қосылады.</translation> <translation id="397703832102027365">Аяқталуда…</translation> <translation id="3977145907578671392">Инкогнито режимінде кейбір сайттардағы функциялар істемеуі мүмкін.</translation> <translation id="3977886311744775419">Автоматты жаңартулар мұндай желіде жүктеп алынбайды, бірақ жаңартулардың бар-жоғын қолмен тексеруге болады.</translation> @@ -4673,7 +4669,6 @@ <translation id="4730492586225682674">Құлып экранындағы стилуспен жазылған соңғы жазба</translation> <translation id="4730888769809690665"><ph name="SITE" /> сайтына хабарландырулар көрсетуге рұқсат етілген.</translation> <translation id="4731306954230393087">Сіз туралы сақталған ақпаратты пайдалануға рұқсаты бар</translation> -<translation id="473140019006744096">Бұл құрылғыда жаңартуды аяқтауға орын жеткіліксіз. Құрылғыдан <ph name="NECESSARY_SPACE" /> орын босатып, әрекетті қайталап көріңіз.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (сол)</translation> <translation id="4733793249294335256">Орын</translation> <translation id="473546211690256853">Бұл аккаунтты <ph name="DOMAIN" /> басқарады</translation> @@ -5375,7 +5370,6 @@ <translation id="5327912693242073631">Хабарландыруларды қажет ететін функциялар жұмыс істемейді.</translation> <translation id="532943162177641444">Осы құрылғыңыз арқылы пайдаланылатын мобильдік хот-спот нүктесін реттеу үшін <ph name="PHONE_NAME" /> телефоныңыздағы хабарландыруды түртіңіз.</translation> <translation id="5329858601952122676">&Жою</translation> -<translation id="5330592967519769658">Басқа қойындыға ауысқан кезде, "Суреттегі сурет" режимі терезесін ашуға рұқсат етіледі</translation> <translation id="5331069282670671859">Бұл санатта сертификаттар жоқ</translation> <translation id="5331568967879689647">ChromeOS жүйе қолданбасы</translation> <translation id="5331975486040154427">USB-C құрылғысы (сол жақ артқы порты)</translation> @@ -5553,7 +5547,6 @@ <translation id="5473099001878321374">Жалғастыру арқылы бұл құрылғының жаңартылған нұсқаларды және қолданбаларды Google, балаңыздың операторы және осы құрылғы өндірушісінен автоматты түрде жүктеп алып орнатуына (мобильдік интернет арқылы болуы мүмкін) келісесіз. Бұл қолданбалардың кейбірінде ақылы контент ұсынылуы мүмкін.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN коды кемі 1 таңбадан тұруы керек.}other{PIN коды ең кемі # таңбадан тұруы керек.}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> дереккөзі Wi-Fi желісіне қосылып, жаңа нұсқаны жүктеп алуды талап етеді. Оны трафик саналатын байланыс арқылы жүктеп алуға да болады (ақы алынуы мүмкін).</translation> -<translation id="5478520208448702555">Басқа қойындыға ауысқан кезде, сайттар "Суреттегі сурет" режимі терезесін аша алады.</translation> <translation id="5481273127572794904">Бірнеше файлды автоматты түрде жүктеп алуға рұқсаты жоқтар</translation> <translation id="5481941284378890518">Маңайдағы принтерлерді енгізу</translation> <translation id="5484181871714116891">Қосылса, кіру кілттері iCloud кілттер жинағында жасалады және Apple құрылғыларыңызда қолжетімді болады. Өшірілсе, кіру кілттері осы құрылғыдағы Chrome профиліңізде жасалады.</translation> @@ -5711,7 +5704,6 @@ <translation id="5600348067066185292">Орнату бірнеше қарапайым қадамнан тұрады. Компьютерге өзгерістер енгізбестен бұрын, оларды растаудың тағы бір мүмкіндігі болады.</translation> <translation id="5600706100022181951">Жаңа нұсқаны жүктеп алуға мобильдік интернеттен <ph name="UPDATE_SIZE_MB" /> МБ алынады. Жалғастырғыңыз келе ме?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI құрылғыларына қосылуға рұқсаты жоқтар</translation> <translation id="5601833336918638013">Сайттардың Bluetooth құрылғыларын іздеуіне рұқсат берілмесін.</translation> <translation id="5602586420788540146">Жаңа қойындылар тобында ашу</translation> <translation id="5605758115928394442">Жеке басыңызды растау үшін телефоныңызға хабарландыру жіберілді.</translation> @@ -5831,7 +5823,6 @@ <translation id="5707185214361380026">Келесіден кеңейтімді жүктеу сәтсіз аяқталды:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chrome браузерін әдепкі етіп орнатыңыз</translation> -<translation id="5710122160114032242">Басқа қойындыға ауысқан кезде, "Суреттегі сурет" режимі терезесін ашу рұқсат етілмейді</translation> <translation id="5711010025974903573">Қызметтік журналдар</translation> <translation id="5711983031544731014">Құлпын ашу мүмкін емес. Құпия сөзіңізді енгізіңіз.</translation> <translation id="5712153969432126546">Сайттар кейде PDF-терді (мысалы, құжаттар, келісімшарттар және үлгілер) жариялайды.</translation> @@ -6592,7 +6583,6 @@ <translation id="6326175484149238433">Chrome бағдарламасынан жою</translation> <translation id="6326855256003666642">Кеңейтімдер қолданатын процестер саны</translation> <translation id="6327785803543103246">Вебпрокси-серверді автоматты анықтау</translation> -<translation id="6331818708794917058">Сайттар MIDI құрылғыларына қосылуға рұқсат сұрайды.</translation> <translation id="6333064448949140209">Қатесі түзетілуі үшін файл Google қызметіне жіберіледі</translation> <translation id="6333170995003625229">Электрондық мекенжайыңыз не құпия сөзіңіз расталмады. Қайта кіріп көріңіз.</translation> <translation id="6334267141726449402">Журналдарды жинау үшін осы сілтемені көшіріп, пайдаланушыға жіберіңіз.</translation> @@ -6742,7 +6732,6 @@ <translation id="6458701200018867744">Жүктеп салынбады (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Табу үшін таңдауды пайдалану</translation> <translation id="6459799433792303855">Қосулы терезе басқа дисплейге ауысты.</translation> -<translation id="6460566145397380451">MIDI құрылғыларына қосылуға рұқсаты барлар</translation> <translation id="6460601847208524483">Келесіні табу</translation> <translation id="6461170143930046705">Маңайдағы желілер ізделуде…</translation> <translation id="6463795194797719782">&Өзгерту</translation> @@ -7068,7 +7057,6 @@ <translation id="6735304988756581115">Cookie файлдары мен басқа сайт деректерін көрсету…</translation> <translation id="6736243959894955139">Мекенжай</translation> <translation id="6737663862851963468">Kerberos билетін өшіру</translation> -<translation id="6737931010859480781">Бұл қолданба құрылғыңызға алдын ала орнатылған.</translation> <translation id="6738180164164974883">Үшінші тарап cookie файлдарын орнатуға рұқсат ету</translation> <translation id="6738430949033571771">Аккаунт расталуда...</translation> <translation id="6739923123728562974">Жұмыс үстелі таңбашасын көрсету</translation> @@ -8461,7 +8449,6 @@ <translation id="7853747251428735">Қосымша құрал&дар</translation> <translation id="7853999103056713222">Қауіпсіз құпия сөзді пайдалану</translation> <translation id="7855678561139483478">Қойындыны жаңа терезеден ашу</translation> -<translation id="7855729579456690716">Басқа қойындыға ауысқан кезде, сайттар "Суреттегі сурет" режимі терезесін аша алады</translation> <translation id="7857004848504343806">Компьютерде қауіпсіздік модулі бар, ол ChromeOS Flex операциялық жүйесінде көптеген маңызды қауіпсіздік функцияларын ендіру үшін пайдаланылады. Толығырақ ақпарат алу үшін Chromebook Анықтамалық орталығына кіріңіз: https://support.google.com/chromebook/?p=sm.</translation> <translation id="7857093393627376423">Мәтіндік ұсыныстар</translation> <translation id="7857949311770343000">Бұл сіз күткен жаңа қойынды беті ме?</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 27f44abf..4adc6376 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" />ចងចាំរបៀបដែលអ្នកបានចូលគណនី និងនាំអ្នកចូលគណនីដោយស្វ័យប្រវត្តិ នៅពេលដែលអាច។ នៅពេលបិទ អ្នកនឹងត្រូវបានស្នើឱ្យបញ្ជាក់គ្រប់ពេល។</translation> <translation id="1008544602823861396">ត្រូវបានទប់ស្កាត់មិនឱ្យប្រើព័ត៌មានរបស់អ្នកនៅលើ</translation> <translation id="1008557486741366299">មិនមែនឥឡូវនេះទេ</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{ដើម្បីការពារទិន្នន័យរបស់អ្នក ការអនុញ្ញាតត្រូវបានដកចេញពីគេហទំព័រដែលអ្នកមិនបានចូលមើលអស់រយៈពេល 2 ខែ}other{ដើម្បីការពារទិន្នន័យរបស់អ្នក ការអនុញ្ញាតត្រូវបានដកចេញពីគេហទំព័រដែលអ្នកមិនបានចូលមើលអស់រយៈពេល 2 ខែ}}</translation> <translation id="1009663062402466586">ឥឡូវនេះ មានការបញ្ជាហ្គេមហើយ</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ទំព័រមិនឆ្លើយតបទេ}other{ទំព័រមិនឆ្លើយតបទេ}}</translation> <translation id="1011003645819296594">ឧបករណ៍ដែលបានរក្សាទុក</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">ចម្លងអាសយដ្ឋានតំណ</translation> <translation id="1085064499066015002">នៅលើគេហទំព័រទាំងអស់ជានិច្ច</translation> <translation id="1085697365578766383">មានបញ្ហាក្នុងការចាប់ផ្ដើមម៉ាស៊ីននិម្មិត។ សូមព្យាយាមម្តងទៀត។</translation> -<translation id="1087965115100412394">មិនអនុញ្ញាតឱ្យគេហទំព័រភ្ជាប់ជាមួយឧបករណ៍ MIDI ទេ</translation> <translation id="1088659085457112967">ចូលមុខងារអាន</translation> <translation id="1090126737595388931">គ្មានកម្មវិធីផ្ទៃខាងក្រោយកំពុងដំណើរការទេ</translation> <translation id="1090541560108055381">មុនពេលផ្គូផ្គង ត្រូវប្រាកដថាលេខកូដនេះគឺដូចគ្នានៅលើឧបករណ៍ទាំងពីរ</translation> @@ -3242,7 +3240,6 @@ <translation id="3551320343578183772">បិទផ្ទាំង</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">បានសម្អាតនៅពេលចាកចេញ</translation> -<translation id="3553487194781590058">មិនអនុញ្ញាតឱ្យគេហទំព័របើកវិនដូរូបក្នុងរូប នៅពេលអ្នកប្ដូរទៅផ្ទាំងផ្សេងនោះទេ</translation> <translation id="3554493885489666172">ឧបករណ៍របស់អ្នកស្ថិតក្រោមការគ្រប់គ្រងរបស់ <ph name="PROFILE_NAME" />។ អ្នកគ្រប់គ្រងអាចចូលប្រើទិន្នន័យនៅក្នុងកម្រងព័ត៌មានទាំងឡាយ ដែលមាននៅក្នុងឧបករណ៍នេះ។</translation> <translation id="3555812735919707620">ដកកម្មវិធីបន្ថែមចេញ</translation> <translation id="3557101512409028104">កំណត់ការដាក់កំហិតគេហទំព័រ និងរយៈពេលកំណត់នៅលើអេក្រង់ដោយប្រើ Family Link</translation> @@ -3801,7 +3798,6 @@ <translation id="3975201861340929143">ការពន្យល់</translation> <translation id="3975565978598857337">មិនអាចទាក់ទងទៅម៉ាស៊ីនមេសម្រាប់ដែនបានទេ</translation> <translation id="3976108569178263973">មិនមានម៉ាស៊ីនបោះពុម្ពទេ។</translation> -<translation id="3976244126942806443">ជាធម្មតា គេហទំព័រភ្ជាប់ជាមួយឧបករណ៍ MIDI សម្រាប់បង្កើត និងកែតន្ត្រី</translation> <translation id="397703832102027365">កំពុងបញ្ចប់...</translation> <translation id="3977145907578671392">មុខងារនៅលើគេហទំព័រមួយចំនួនអាចនឹងមិនដំណើរការនៅក្នុងមុខងារឯកជនទេ</translation> <translation id="3977886311744775419">បច្ចុប្បន្នភាពស្វ័យប្រវត្តិមិនទាញយកនៅលើប្រភេទបណ្ដាញនេះទេ ប៉ុន្តែអ្នកអាចពិនិត្យមើលបច្ចុប្បន្នភាពដោយខ្លួនឯងបាន។</translation> @@ -4702,7 +4698,6 @@ <translation id="4730492586225682674">កំណត់ត្រាដោយប្រើប៊ិកចុងក្រោយបំផុតនៅលើអេក្រង់ចាក់សោ</translation> <translation id="4730888769809690665">បានអនុញ្ញាតការជូនដំណឹងសម្រាប់ <ph name="SITE" /></translation> <translation id="4731306954230393087">បានអនុញ្ញាតឱ្យប្រើព័ត៌មានដែលគេហទំព័រនេះបានរក្សាទុកពាក់ព័ន្ធនឹងអ្នក</translation> -<translation id="473140019006744096">មិនមានទំហំផ្ទុកគ្រប់គ្រាន់នៅលើឧបករណ៍នេះ ដើម្បីបញ្ចប់ការដំឡើងកំណែនេះទេ។ សូមសម្អាត <ph name="NECESSARY_SPACE" /> នៅលើឧបករណ៍របស់អ្នក រួចព្យាយាមម្ដងទៀត។</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ឆ្វេង)</translation> <translation id="4733793249294335256">ទីតាំង</translation> <translation id="473546211690256853">គណនីនេះត្រូវបានគ្រប់គ្រងដោយ <ph name="DOMAIN" /></translation> @@ -5404,7 +5399,6 @@ <translation id="5327912693242073631">មុខងារដែលត្រូវការការជូនដំណឹងនឹងមិនដំណើរការទេ</translation> <translation id="532943162177641444">ចុចការជូនដំណឹងនៅលើ <ph name="PHONE_NAME" /> របស់អ្នក ដើម្បីរៀបចំហតស្ប៉តទូរសព្ទចល័តដែលអាចឲ្យឧបករណ៍នេះប្រើបាន។</translation> <translation id="5329858601952122676">លុប</translation> -<translation id="5330592967519769658">បានអនុញ្ញាតឱ្យបើកវិនដូរូបក្នុងរូប នៅពេលដែលអ្នកប្ដូរទៅផ្ទាំងផ្សេង</translation> <translation id="5331069282670671859">អ្នកមិនមានវិញ្ញាបនបត្រនៅក្នុងប្រភេទនេះទេ</translation> <translation id="5331568967879689647">កម្មវិធីប្រព័ន្ធ ChromeOS</translation> <translation id="5331975486040154427">ឧបករណ៍ USB-C (រន្ធក្រោយផ្នែកខាងឆ្វេង)</translation> @@ -5582,7 +5576,6 @@ <translation id="5473099001878321374">ប្រសិនបើបន្ត មានន័យថាអ្នកក៏យល់ព្រមឱ្យឧបករណ៍នេះអាចទាញយក និងដំឡើងកម្មវិធីនិងកំណែថ្មីដោយស្វ័យប្រវត្តិពី Google, ក្រុមហ៊ុនសេវាទូរសព្ទរបស់កូនអ្នក និងក្រុមហ៊ុនផលិតឧបករណ៍នេះ ដោយអាចនឹងប្រើទិន្នន័យទូរសព្ទចល័តផងដែរ។ កម្មវិធីទាំងនេះមួយចំនួនអាចផ្តល់ជូនការទិញក្នុងកម្មវិធី។</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{កូដ PIN ត្រូវតែមានតួអក្សរយ៉ាងហោចណាស់មួយតួ}other{កូដ PIN ត្រូវតែមានតួអក្សរយ៉ាងហោចណាស់ # តួ}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> តម្រូវឱ្យអ្នកភ្ជាប់ Wi-Fi ឥឡូវនេះ ដើម្បីទាញយកកំណែថ្មី។ ឬទាញយកតាមរយៈការតភ្ជាប់ផ្អែកតាមទិន្នន័យដែលប្រើ (អាចមានការគិតថ្លៃ)។</translation> -<translation id="5478520208448702555">គេហទំព័រអាចបើកវិនដូរូបក្នុងរូប នៅពេលអ្នកប្ដូរទៅផ្ទាំងផ្សេង</translation> <translation id="5481273127572794904">មិនអនុញ្ញាតឱ្យទាញយកឯកសារច្រើនដោយស្វ័យប្រវត្តិទេ</translation> <translation id="5481941284378890518">បន្ថែមម៉ាស៊ីនបោះពុម្ពនៅក្បែរ</translation> <translation id="5484181871714116891">នៅពេលបើក កូដសម្ងាត់ត្រូវបានបង្កើតនៅក្នុង iCloud Keychain និងអាចប្រើប្រាស់បាននៅលើឧបករណ៍ Apple របស់អ្នក។ នៅពេលបិទ កូដសម្ងាត់ត្រូវបានបង្កើតនៅក្នុងកម្រងព័ត៌មាន Chrome របស់អ្នកនៅលើឧបករណ៍នេះ។</translation> @@ -5740,7 +5733,6 @@ <translation id="5600348067066185292">ការដំឡើងអនុវត្តតាមពីរបីជំហានងាយៗ។ អ្នកនឹងមានឱកាសម្ដងទៀតដើម្បីបញ្ជាក់ មុនពេលការផ្លាស់ប្ដូរត្រូវបានធ្វើឡើងចំពោះកុំព្យូទ័ររបស់អ្នក។</translation> <translation id="5600706100022181951">កំណែថ្មីនឹងត្រូវបានទាញយកដោយប្រើទិន្នន័យទូរសព្ទចល័តចំនួន <ph name="UPDATE_SIZE_MB" /> MB ។ តើអ្នកចង់បន្តដែរទេ?</translation> <translation id="5601503069213153581">លេខសម្គាល់</translation> -<translation id="5601823921345337195">មិនអនុញ្ញាតឱ្យភ្ជាប់ជាមួយឧបករណ៍ MIDI ទេ</translation> <translation id="5601833336918638013">កុំអនុញ្ញាតឱ្យគេហទំព័ររកមើលឧបករណ៍ប៊្លូធូស</translation> <translation id="5602586420788540146">បើកនៅក្នុងក្រុមផ្ទាំងថ្មី</translation> <translation id="5605758115928394442">ការជូនដំណឹងត្រូវបានផ្ញើទៅទូរសព្ទរបស់អ្នក ដើម្បីបញ្ជាក់ថាពិតជាអ្នក។</translation> @@ -5863,7 +5855,6 @@ <translation id="5707185214361380026">បានបរាជ័យក្នុងការដំណើរការកម្មវិធីបន្ថែមពី៖</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">កំណត់ Chrome ជាកម្មវិធីរុករកតាមអ៊ីនធឺណិតលំនាំដើមរបស់អ្នក</translation> -<translation id="5710122160114032242">មិនបានអនុញ្ញាតឱ្យបើកវិនដូរូបក្នុងរូប នៅពេលអ្នកប្ដូរទៅផ្ទាំងផ្សេងនោះទេ</translation> <translation id="5711010025974903573">កំណត់ហេតុសេវាកម្ម</translation> <translation id="5711983031544731014">មិនអាចដោះសោបានទេ។ បញ្ចូលពាក្យសម្ងាត់របស់អ្នក។</translation> <translation id="5712153969432126546">ជួលកាល គេហទំព័របោះផ្សាយឯកសារ PDF ផ្សេងៗដូចជា ឯកសារ កិច្ចសន្យា និងទម្រង់បែបបទជាដើម</translation> @@ -6626,7 +6617,6 @@ <translation id="6326175484149238433">ដកចេញពី Chrome</translation> <translation id="6326855256003666642">ចំនួន Keepalive</translation> <translation id="6327785803543103246">ការស្វែងរកប្រូកស៊ីបណ្តាញដោយស្វ័យប្រវត្តិ</translation> -<translation id="6331818708794917058">គេហទំព័រអាចស្នើសុំភ្ជាប់ជាមួយឧបករណ៍ MIDI</translation> <translation id="6333064448949140209">ឯកសារនឹងត្រូវបានផ្ញើទៅ Google ដើម្បីកែកំហុស</translation> <translation id="6333170995003625229">មិនអាចផ្ទៀងផ្ទាត់អាសយដ្ឋានអ៊ីមែល ឬពាក្យសម្ងាត់របស់អ្នកបានទេ។ សូមសាកល្បងចូលម្តងទៀត។</translation> <translation id="6334267141726449402">ចម្លង រួចផ្ញើតំណនេះទៅកាន់អ្នកប្រើប្រាស់ ដើម្បីប្រមូលកំណត់ហេតុ។</translation> @@ -6776,7 +6766,6 @@ <translation id="6458701200018867744">មិនអាចបង្ហោះបានទេ (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)។</translation> <translation id="6459488832681039634">ប្រើការជ្រើសរើសសម្រាប់ស្វែងរក</translation> <translation id="6459799433792303855">វិនដូសកម្មបានផ្លាស់ទីទៅផ្ទាំងអេក្រង់ផ្សេងទៀត។</translation> -<translation id="6460566145397380451">អនុញ្ញាតឱ្យភ្ជាប់ជាមួយឧបករណ៍ MIDI</translation> <translation id="6460601847208524483">ស្វែងរកបន្ទាប់</translation> <translation id="6461170143930046705">កំពុងស្វែងរកបណ្ដាញ...</translation> <translation id="6463795194797719782">កែប្រែ</translation> @@ -7103,7 +7092,6 @@ <translation id="6735304988756581115">បង្ហាញខុកឃី និងទិន្នន័យគេហទំព័រដ៏ទៃទៀត...</translation> <translation id="6736243959894955139">អាសយដ្ឋាន</translation> <translation id="6737663862851963468">លុបសំបុត្រ Kerberos</translation> -<translation id="6737931010859480781">កម្មវិធីនេះត្រូវបានដំឡើងជាមុននៅលើឧបករណ៍របស់អ្នក</translation> <translation id="6738180164164974883">អនុញ្ញាតឱ្យកំណត់ខូគីភាគីទីបី</translation> <translation id="6738430949033571771">កំពុងផ្ទៀងផ្ទាត់គណនី...</translation> <translation id="6739923123728562974">បង្ហាញផ្លូវកាត់អេក្រង់ដើម</translation> @@ -8499,7 +8487,6 @@ <translation id="7853747251428735">ឧបករណ៍ច្រើនទៀត</translation> <translation id="7853999103056713222">ប្រើពាក្យសម្ងាត់ដែលកាន់តែមានសុវត្ថិភាព</translation> <translation id="7855678561139483478">ផ្លាស់ទីផ្ទាំងទៅវិនដូថ្មី</translation> -<translation id="7855729579456690716">គេហទំព័រអាចបើកវិនដូរូបក្នុងរូប នៅពេលអ្នកប្ដូរទៅផ្ទាំងផ្សេង</translation> <translation id="7857004848504343806">កុំព្យូទ័ររបស់អ្នកមានម៉ូឌុលសុវត្ថិភាព ដែលត្រូវបានប្រើដើម្បីប្រតិបត្តិការមុខងារសុវត្ថិភាពសំខាន់ៗជាច្រើននៅក្នុង ChromeOS Flex។ សូមចូលទៅកាន់មជ្ឈមណ្ឌលជំនួយ Chromebook ដើម្បីស្វែងយល់បន្ថែម៖ https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">ការណែនាំអំពីពាក្យឬឃ្លា</translation> <translation id="7857949311770343000">តើនេះគឺជាទំព័រផ្ទាំងថ្មីដែលអ្នកបានចង់បាន?</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index fb705ba3..96b451ae 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> ನೀವು ಹೇಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದೀರಿ ಎಂಬುದನ್ನು ನೆನಪಿಸುತ್ತದೆ ಮತ್ತು ಸಾಧ್ಯವಾದಾಗ ನಿಮ್ಮನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡುತ್ತದೆ. ಆಫ್ ಆಗಿರುವಾಗ, ಪ್ರತಿ ಬಾರಿ ದೃಢೀಕರಣಕ್ಕಾಗಿ ನಿಮ್ಮನ್ನು ಕೇಳಲಾಗುತ್ತದೆ.</translation> <translation id="1008544602823861396">ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಇದರಲ್ಲಿ ಬಳಸದಂತೆ ನಿರ್ಬಂಧಿಸಿದೆ</translation> <translation id="1008557486741366299">ಈಗಲೇ ಅಲ್ಲ</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{ನಿಮ್ಮ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸಲು, ನೀವು 2 ತಿಂಗಳಿನಿಂದ ಭೇಟಿ ನೀಡದ ಸೈಟ್ನಿಂದ ಅನುಮತಿಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ}one{ನಿಮ್ಮ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸಲು, ನೀವು 2 ತಿಂಗಳಿನಿಂದ ಭೇಟಿ ನೀಡದ ಸೈಟ್ಗಳಿಂದ ಅನುಮತಿಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ}other{ನಿಮ್ಮ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸಲು, ನೀವು 2 ತಿಂಗಳಿನಿಂದ ಭೇಟಿ ನೀಡದ ಸೈಟ್ಗಳಿಂದ ಅನುಮತಿಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ}}</translation> <translation id="1009663062402466586">ಗೇಮ್ ನಿಯಂತ್ರಣಗಳು ಈಗ ಲಭ್ಯವಿದೆ</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ಪ್ರತಿಕ್ರಿಯೆರಹಿತ ಪುಟ}one{ಪ್ರತಿಕ್ರಿಯೆರಹಿತ ಪುಟಗಳು}other{ಪ್ರತಿಕ್ರಿಯೆರಹಿತ ಪುಟಗಳು}}</translation> <translation id="1011003645819296594">ಉಳಿಸಲಾದ ಸಾಧನಗಳು</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">ಲಿಂಕ್ ವಿಳಾ&ಸವನ್ನು ನಕಲಿಸಿ</translation> <translation id="1085064499066015002">ಎಲ್ಲಾ ಸೈಟ್ಗಳಲ್ಲಿ ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ</translation> <translation id="1085697365578766383">ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಪ್ರಾರಂಭಿಸುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> -<translation id="1087965115100412394">MIDI ಸಾಧನಗಳಿಗೆ ಸೈಟ್ಗಳು ಕನೆಕ್ಟ್ ಆಗುವುದಕ್ಕೆ ಅನುಮತಿಸಬೇಡಿ</translation> <translation id="1088659085457112967">ರೀಡರ್ ಮೋಡ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation> <translation id="1090126737595388931">ಯಾವುದೇ ಹಿನ್ನೆಲೆ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಚಾಲನೆಯಲ್ಲಿಲ್ಲ</translation> <translation id="1090541560108055381">ಜೋಡಿಸುವ ಮೊದಲು, ಎರಡೂ ಸಾಧನಗಳಲ್ಲಿ ಈ ಕೋಡ್ ಒಂದೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ</translation> @@ -3235,7 +3233,6 @@ <translation id="3551320343578183772">ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಿ</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">ನಿರ್ಗಮನದಲ್ಲಿ ತೆರವುಗೊಳಿಸಲಾಗಿದೆ</translation> -<translation id="3553487194781590058">ನೀವು ಬೇರೆ ಟ್ಯಾಬ್ಗೆ ಬದಲಾಯಿಸಿದಾಗ ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ವಿಂಡೋವನ್ನು ತೆರೆಯಲು ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಬೇಡಿ</translation> <translation id="3554493885489666172">ನಿಮ್ಮ ಸಾಧನವನ್ನು <ph name="PROFILE_NAME" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ. ನಿರ್ವಾಹಕರು ಈ ಸಾಧನದಲ್ಲಿನ ಯಾವುದೇ ಪ್ರೊಫೈಲ್ನಲ್ಲಿ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಬಹುದು.</translation> <translation id="3555812735919707620">ವಿಸ್ತರಣೆ ತೆಗೆದುಹಾಕು</translation> <translation id="3557101512409028104">Family Link ಮೂಲಕ ವೆಬ್ಸೈಟ್ ನಿರ್ಬಂಧನೆಗಳು ಮತ್ತು ವೀಕ್ಷಣಾ ಅವಧಿಯನ್ನು ಹೊಂದಿಸಿ</translation> @@ -3795,7 +3792,6 @@ <translation id="3975201861340929143">ವಿವರಣೆ</translation> <translation id="3975565978598857337">ಕ್ಷೇತ್ರಕ್ಕಾಗಿ ಸರ್ವರ್ ಸಂಪರ್ಕಿಸುವುದು ವಿಫಲವಾಗಿದೆ</translation> <translation id="3976108569178263973">ಯಾವುದೇ ಲಭ್ಯ ಪ್ರಿಂಟರ್ಗಳಿಲ್ಲ.</translation> -<translation id="3976244126942806443">ಸಂಗೀತವನ್ನು ರಚಿಸಲು ಮತ್ತು ಎಡಿಟ್ ಮಾಡಲು ಸೈಟ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ MIDI ಸಾಧನಗಳಿಗೆ ಕನೆಕ್ಟ್ ಆಗುತ್ತವೆ</translation> <translation id="397703832102027365">ಅಂತಿಮಗೊಳಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="3977145907578671392">ಕೆಲವು ಸೈಟ್ಗಳಲ್ಲಿನ ಫೀಚರ್ಗಳು ಅಜ್ಞಾತ ಮೋಡ್ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸದಿರಬಹುದು</translation> <translation id="3977886311744775419">ಈ ಪ್ರಕಾರದ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತ ಅಪ್ಡೇಟ್ಗಳು ಡೌನ್ಲೋಡ್ ಆಗುವುದಿಲ್ಲ, ಆದರೆ ಅಪ್ಡೇಟ್ಗಳಿವೆಯೇ ಎಂದು ನೀವು ಹಸ್ತಚಾಲಿತವಾಗಿ ಪರಿಶೀಲಿಸಬಹುದು.</translation> @@ -4695,7 +4691,6 @@ <translation id="4730492586225682674">ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿನ ಸ್ಟೈಲಸ್ ಇತ್ತೀಚಿನ ಟಿಪ್ಪಣಿ</translation> <translation id="4730888769809690665"><ph name="SITE" /> ಗಾಗಿ ಅಧಿಸೂಚನೆಗಳಿಗೆ ಅನುಮತಿಯಿದೆ</translation> <translation id="4731306954230393087">ನಿಮ್ಮ ಕುರಿತು ಅವರು ಸೇವ್ ಮಾಡಿದ ಮಾಹಿತಿಯನ್ನು ಬಳಸಲು ಅನುಮತಿಸಲಾಗಿದೆ</translation> -<translation id="473140019006744096">ಈ ಅಪ್ಡೇಟ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಈ ಸಾಧನದಲ್ಲಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ. ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ <ph name="NECESSARY_SPACE" /> ಅನ್ನು ತೆರವುಗೊಳಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ಎಡಬದಿ)</translation> <translation id="4733793249294335256">ಸ್ಥಳ</translation> <translation id="473546211690256853">ಈ ಖಾತೆಯನ್ನು <ph name="DOMAIN" /> ರಿಂದ ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation> @@ -5398,7 +5393,6 @@ <translation id="5327912693242073631">ಅಧಿಸೂಚನೆಗಳ ಅಗತ್ಯವಿರುವ ಫೀಚರ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ</translation> <translation id="532943162177641444">ಈ ಸಾಧನದಲ್ಲಿ ಬಳಸಬಹುದಾದ ಮೊಬೈಲ್ ಹಾಟ್ಸ್ಪಾಟ್ ಹೊಂದಿಸಲು ನಿಮ್ಮ <ph name="PHONE_NAME" /> ನಲ್ಲಿ ಅಧಿಸೂಚನೆಯನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ.</translation> <translation id="5329858601952122676">&ಅಳಿಸು</translation> -<translation id="5330592967519769658">ನೀವು ಬೇರೆ ಟ್ಯಾಬ್ಗೆ ಬದಲಾಯಿಸಿದಾಗ ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ವಿಂಡೋವನ್ನು ತೆರೆಯಲು ಅನುಮತಿಸಲಾಗಿದೆ</translation> <translation id="5331069282670671859">ಈ ವಿಭಾಗದಲ್ಲಿ ನೀವು ಯಾವುದೇ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಹೊಂದಿಲ್ಲ</translation> <translation id="5331568967879689647">ChromeOS ಸಿಸ್ಟಂ ಆ್ಯಪ್</translation> <translation id="5331975486040154427">USB-C ಸಾಧನ (ಎಡ ಭಾಗದ ಹಿಂದಿನ ಪೋರ್ಟ್)</translation> @@ -5576,7 +5570,6 @@ <translation id="5473099001878321374">ಮುಂದುವರೆಯುವ ಮೂಲಕ, ಈ ಸಾಧನವು ಸಂಭಾವ್ಯವಾಗಿ ಸೆಲ್ಯುಲರ್ ಡೇಟಾ ಬಳಸಿಕೊಂಡು Google ನಿಂದ, ನಿಮ್ಮ ಮಗುವಿನ ವಾಹಕದಿಂದ ಮತ್ತು ಈ ಸಾಧನದ ತಯಾರಕರಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಪ್ಡೇಟ್ಗಳು ಮತ್ತು ಆ್ಯಪ್ಗಳನ್ನು ಸಹ ಡೌನ್ಲೋಡ್ ಮಾಡಬಹುದು ಹಾಗೂ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬಹುದು ಎನ್ನುವುದಕ್ಕೆ ನೀವು ಸಮ್ಮತಿಸುತ್ತೀರಿ. ಈ ಆ್ಯಪ್ಗಳ ಪೈಕಿ ಕೆಲವು ಆ್ಯಪ್ಗಳು, ಆ್ಯಪ್ನಲ್ಲಿ ಖರೀದಿಸುವ ಸೌಲಭ್ಯ ಒದಗಿಸಬಹುದು.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ಪಿನ್ ಕನಿಷ್ಠ ಒಂದು ಅಕ್ಷರವನ್ನು ಹೊಂದಿರಬೇಕು}one{ಪಿನ್ ಕನಿಷ್ಠ # ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು}other{ಪಿನ್ ಕನಿಷ್ಠ # ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" />, ನೀವು ಇದೀಗ ವೈ-ಫೈಗೆ ಕನೆಕ್ಟ್ ಆಗುವ ಮೂಲಕ ಅಪ್ಡೇಟ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಬೇಕೆಂದು ಬಯಸುತ್ತದೆ. ಅಥವಾ ಮಾಪನ ಮಾಡಲಾದ ಕನೆಕ್ಷನ್ನಿಂದ ಡೌನ್ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಿ (ಶುಲ್ಕಗಳು ಅನ್ವಯವಾಗಬಹುದು).</translation> -<translation id="5478520208448702555">ನೀವು ಬೇರೆ ಟ್ಯಾಬ್ಗೆ ಬದಲಾಯಿಸಿದಾಗ ಸೈಟ್ಗಳು ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ವಿಂಡೋವನ್ನು ತೆರೆಯಬಹುದು</translation> <translation id="5481273127572794904">ಬಹು ಫೈಲ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಈ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation> <translation id="5481941284378890518">ಸಮೀಪದ ಪ್ರಿಂಟರ್ಗಳನ್ನು ಸೇರಿಸು</translation> <translation id="5484181871714116891">ಆನ್ ಆಗಿರುವಾಗ, ಪಾಸ್ಕೀಗಳನ್ನು iCloud Keychain ನಲ್ಲಿ ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ Apple ಸಾಧನಗಳಾದ್ಯಂತ ಲಭ್ಯವಿರುತ್ತದೆ. ಆಫ್ ಆಗಿರುವಾಗ, ಈ ಸಾಧನದಲ್ಲಿರುವ ನಿಮ್ಮ Chrome ಪ್ರೊಫೈಲ್ನಲ್ಲಿ ಪಾಸ್ಕೀಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ.</translation> @@ -5734,7 +5727,6 @@ <translation id="5600348067066185292">ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಕೆಲವು ಸರಳ ಹಂತಗಳ ಅಗತ್ಯವಿದೆ. ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುವ ಮೊದಲು, ಅದನ್ನು ದೃಢೀಕರಿಸಲು ನಿಮಗೆ ಇನ್ನೊಂದು ಅವಕಾಶವಿರುತ್ತದೆ.</translation> <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB ಮೊಬೈಲ್ ಡೇಟಾ ಬಳಸಿಕೊಂಡು ಅಪ್ಡೇಟ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ಮುಂದುವರಿಸಲು ನೀವು ಬಯಸುವಿರಾ?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಈ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation> <translation id="5601833336918638013">ಸೈಟ್ಗಳಿಗೆ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಹುಡುಕುವ ಅನುಮತಿ ನೀಡಬೇಡಿ</translation> <translation id="5602586420788540146">ಹೊಸ ಟ್ಯಾಬ್ ಗುಂಪಿನಲ್ಲಿ ತೆರೆಯಿರಿ</translation> <translation id="5605758115928394442">ಇದು ನೀವೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಿಮ್ಮ ಫೋನ್ಗೆ ಒಂದು ಅಧಿಸೂಚನೆಯನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ.</translation> @@ -5857,7 +5849,6 @@ <translation id="5707185214361380026">ಇದರಿಂದ ವಿಸ್ತರಣೆಯನ್ನು ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ:</translation> <translation id="5708171344853220004">Microsoft Principal ಹೆಸರು</translation> <translation id="5709557627224531708">Chrome ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಿ</translation> -<translation id="5710122160114032242">ನೀವು ಬೇರೆ ಟ್ಯಾಬ್ಗೆ ಬದಲಾಯಿಸಿದಾಗ ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ವಿಂಡೋವನ್ನು ತೆರೆಯಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation> <translation id="5711010025974903573">ಸೇವಾ ಲಾಗ್ಗಳು</translation> <translation id="5711983031544731014">ಅನ್ಲಾಕ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ನಮೂದಿಸಿ.</translation> <translation id="5712153969432126546">ಸೈಟ್ಗಳು ಕೆಲವೊಮ್ಮೆ ಡಾಕ್ಯುಮೆಂಟ್ಗಳು, ಒಪ್ಪಂದಗಳು ಮತ್ತು ಫಾರ್ಮ್ಗಳಂತಹ PDF ಗಳನ್ನು ಪ್ರಕಟಿಸುತ್ತವೆ</translation> @@ -6620,7 +6611,6 @@ <translation id="6326175484149238433">Chrome ನಿಂದ ತೆಗೆದುಹಾಕು</translation> <translation id="6326855256003666642">ಎಣಿಕೆಯನ್ನು ಚಾಲ್ತಿಯಲ್ಲಿರಿಸಿ</translation> <translation id="6327785803543103246">ವೆಬ್ ಪ್ರಾಕ್ಸಿಯ ಸ್ವಯಂಅನ್ವೇಷಣೆ</translation> -<translation id="6331818708794917058">ಸೈಟ್ಗಳು MIDI ಸಾಧನಗಳಿಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ಕೇಳಬಹುದು</translation> <translation id="6333064448949140209">ಡೀಬಗ್ ಮಾಡಲು Google ಗೆ ಫೈಲ್ ಕಳುಹಿಸಲಾಗುತ್ತದೆ</translation> <translation id="6333170995003625229">ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸ ಅಥವಾ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗಲಿಲ್ಲ. ಮತ್ತೊಮ್ಮೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="6334267141726449402">ಕಾಪಿ ಮಾಡಿ ಮತ್ತು ಲಾಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಈ ಲಿಂಕ್ ಅನ್ನು ಕಳುಹಿಸಿ.</translation> @@ -6770,7 +6760,6 @@ <translation id="6458701200018867744">ಅಪ್ಲೋಡ್ ವಿಫಲವಾಗಿದೆ (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">ಹುಡುಕಲು ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ</translation> <translation id="6459799433792303855">ಮತ್ತೊಂದು ಡಿಸ್ಪ್ಲೇಗೆ ಸಕ್ರಿಯ ವಿಂಡೋವನ್ನು ಸರಿಸಲಾಗಿದೆ.</translation> -<translation id="6460566145397380451">MIDI ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ</translation> <translation id="6460601847208524483">ಮುಂದಿನದು ಕಂಡುಹಿಡಿಯಿರಿ</translation> <translation id="6461170143930046705">ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ...</translation> <translation id="6463795194797719782">&ಎಡಿಟ್</translation> @@ -7099,7 +7088,6 @@ <translation id="6735304988756581115">ಕುಕ್ಕಿಗಳು ಮತ್ತು ಇತರ ಸೈಟ್ ಡೇಟಾವನ್ನು ತೋರಿಸಿ...</translation> <translation id="6736243959894955139">ವಿಳಾಸ</translation> <translation id="6737663862851963468">Kerberos ಟಿಕೆಟ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ</translation> -<translation id="6737931010859480781">ಈ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಮೊದಲೇ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="6738180164164974883">ಥರ್ಡ್-ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ಸೆಟ್ ಮಾಡಲು ಅನುಮತಿಸಿ</translation> <translation id="6738430949033571771">ಖಾತೆಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="6739923123728562974">ಡೆಸ್ಕ್ಟಾಪ್ ಶಾರ್ಟ್ಕಟ್ ತೋರಿಸಿ</translation> @@ -8495,7 +8483,6 @@ <translation id="7853747251428735">ಇನ್ನಷ್ಟು ಪರಿಕರ&ಗಳು</translation> <translation id="7853999103056713222">ಸುರಕ್ಷಿತ ಪಾಸ್ವರ್ಡ್ ಒಂದನ್ನು ಬಳಸಿ</translation> <translation id="7855678561139483478">ಟ್ಯಾಬ್ ಅನ್ನು ಹೊಸ ವಿಂಡೋಗೆ ಸರಿಸಿ</translation> -<translation id="7855729579456690716">ನೀವು ಬೇರೆ ಟ್ಯಾಬ್ಗೆ ಬದಲಾಯಿಸಿದಾಗ ಸೈಟ್ಗಳು ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ವಿಂಡೋವನ್ನು ತೆರೆಯಬಹುದು</translation> <translation id="7857004848504343806">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್, ಸುಭದ್ರ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಹೊಂದಿದೆ. ChromeOS Flex ನಲ್ಲಿ ಹಲವು ಪ್ರಮುಖ ಭದ್ರತಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಇದರ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು Chromebook ಸಹಾಯ ಕೇಂದ್ರಕ್ಕೆ ಭೇಟಿ ನೀಡಿ: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">ಪಠ್ಯ ಸಲಹೆಗಳು</translation> <translation id="7857949311770343000">ನೀವು ನಿರೀಕ್ಷಿಸುತ್ತಿರುವುದು ಈ ಹೊಸ ಟ್ಯಾಬ್ ಪುಟವೇ?</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index 95151e3..767ed18 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" />에서는 내가 로그인한 방식을 기억하고 가능한 경우 자동으로 로그인합니다. 이 기능이 사용 중지되어 있는 경우 매번 확인 요청 메시지가 표시됩니다.</translation> <translation id="1008544602823861396">의 경우 내 정보를 사용하지 못하도록 차단됨</translation> <translation id="1008557486741366299">나중에 하기</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{데이터 보호를 위해 2개월 동안 방문하지 않은 사이트에서 권한이 삭제되었습니다.}other{데이터 보호를 위해 2개월 동안 방문하지 않은 사이트에서 권한이 삭제되었습니다.}}</translation> <translation id="1009663062402466586">게임 컨트롤 사용 가능</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{응답 없는 페이지}other{응답 없는 페이지}}</translation> <translation id="1011003645819296594">저장된 기기</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">링크 주소 복사(&E)</translation> <translation id="1085064499066015002">항상 모든 사이트에서 사용</translation> <translation id="1085697365578766383">가상 머신을 시작하는 동안 문제가 발생했습니다. 다시 시도해 주세요.</translation> -<translation id="1087965115100412394">사이트에서 MIDI 기기에 연결하도록 허용하지 않음</translation> <translation id="1088659085457112967">읽기 모드 시작</translation> <translation id="1090126737595388931">실행 중인 백그라운드 앱 없음</translation> <translation id="1090541560108055381">페어링하기 전에 두 기기의 코드가 동일한지 확인하세요.</translation> @@ -3234,7 +3232,6 @@ <translation id="3551320343578183772">탭 닫기</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">종료 시 삭제됨</translation> -<translation id="3553487194781590058">다른 탭으로 변경하면 사이트에서 PIP 모드 창을 열도록 허용하지 않음</translation> <translation id="3554493885489666172"><ph name="PROFILE_NAME" />에서 관리하는 기기입니다. 관리자가 기기에 등록된 모든 프로필의 데이터에 액세스할 수 있습니다.</translation> <translation id="3555812735919707620">확장 프로그램 삭제</translation> <translation id="3557101512409028104">Family Link를 사용해 웹사이트 제한사항 및 기기 사용 시간 제한 설정</translation> @@ -3793,7 +3790,6 @@ <translation id="3975201861340929143">설명</translation> <translation id="3975565978598857337">영역 서버에 연락을 취하지 못했습니다.</translation> <translation id="3976108569178263973">사용 가능한 프린터가 없습니다.</translation> -<translation id="3976244126942806443">사이트에서는 일반적으로 음악을 만들고 편집하기 위해 MIDI 기기에 연결합니다.</translation> <translation id="397703832102027365">완료 중...</translation> <translation id="3977145907578671392">시크릿 모드에서는 일부 사이트의 기능이 작동하지 않을 수 있습니다.</translation> <translation id="3977886311744775419">이러한 네트워크 유형에서는 자동 업데이트가 다운로드되지 않지만 수동으로 업데이트를 확인할 수 있습니다.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">잠금 화면에 최근 스타일러스 메모 표시</translation> <translation id="4730888769809690665"><ph name="SITE" />의 알림이 허용됨</translation> <translation id="4731306954230393087">나에 관해 저장한 정보를 사용하도록 허용됨</translation> -<translation id="473140019006744096">기기에 업데이트를 완료하기 위한 공간이 부족합니다. 기기 공간을 <ph name="NECESSARY_SPACE" />만큼 확보한 다음 다시 시도하세요.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />%(왼쪽)</translation> <translation id="4733793249294335256">위치</translation> <translation id="473546211690256853">이 계정은 <ph name="DOMAIN" />에서 관리합니다.</translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">알림이 필요한 기능이 작동하지 않음</translation> <translation id="532943162177641444">이 기기에서 사용할 수 있는 모바일 핫스팟을 설정하려면 <ph name="PHONE_NAME" />에서 알림을 탭하세요.</translation> <translation id="5329858601952122676">삭제(&D)</translation> -<translation id="5330592967519769658">사용자가 다른 탭으로 변경하면 PIP 모드 창을 열 수 있음</translation> <translation id="5331069282670671859">이 카테고리에 인증서가 없음</translation> <translation id="5331568967879689647">ChromeOS 시스템 앱</translation> <translation id="5331975486040154427">USB-C 기기(좌측 후면 포트)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">계속하면 이 기기에서 Google, 자녀의 이동통신사, 기기 제조업체로부터 업데이트와 앱을 자동으로 다운로드하고 설치하는 데 동의하는 것으로 간주됩니다(이때 모바일 데이터가 사용될 수도 있음). 일부 앱에서는 인앱 구매가 제공될 수도 있습니다.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN은 1자 이상이어야 합니다.}other{PIN은 #자 이상이어야 합니다.}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" />에서 지금 Wi-Fi에 연결하여 업데이트를 다운로드할 것을 요청합니다. 종량제 연결(요금이 부과될 수 있음)을 통해 업데이트를 다운로드할 것을 요청합니다.</translation> -<translation id="5478520208448702555">사용자가 다른 탭으로 변경하면 사이트에서 PIP 모드 창이 열릴 수 있습니다.</translation> <translation id="5481273127572794904">여러 파일 자동 다운로드가 허용되지 않음</translation> <translation id="5481941284378890518">주변 프린터 추가</translation> <translation id="5484181871714116891">사용 설정하면 iCloud 키체인에서 패스키가 생성되고 Apple 기기에서 사용할 수 있습니다. 사용 중지하면 이 기기의 Chrome 프로필에서 패스키가 생성됩니다.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">간단한 몇 단계면 설치가 완료됩니다. 컴퓨터를 변경하기 전에 한 번 더 확인할 기회가 있습니다.</translation> <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" />MB의 모바일 데이터를 사용하여 업데이트를 다운로드합니다. 계속하시겠습니까?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI 기기 연결이 허용되지 않음</translation> <translation id="5601833336918638013">사이트의 블루투스 기기 검색 허용 안함</translation> <translation id="5602586420788540146">새 탭 그룹에서 열기</translation> <translation id="5605758115928394442">휴대전화로 본인 인증을 위한 알림이 전송되었습니다.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">다음 위치에서 확장 프로그램을 로드하지 못했습니다.</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chrome을 기본 브라우저로 설정</translation> -<translation id="5710122160114032242">사용자가 다른 탭으로 변경하더라도 PIP 모드 창을 열 수 없음</translation> <translation id="5711010025974903573">서비스 로그</translation> <translation id="5711983031544731014">잠금 해제할 수 없습니다. 비밀번호를 입력하세요.</translation> <translation id="5712153969432126546">사이트에서 때때로 문서, 계약서, 양식과 같은 PDF를 게시할 수 있습니다.</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Chrome에서 삭제</translation> <translation id="6326855256003666642">프로그램 사용자 수</translation> <translation id="6327785803543103246">웹 프록시 자동검색</translation> -<translation id="6331818708794917058">사이트에서 MIDI 기기에 연결하도록 요청할 수 있음</translation> <translation id="6333064448949140209">디버깅을 위해 파일이 Google로 전송됩니다.</translation> <translation id="6333170995003625229">이메일 또는 비밀번호를 확인할 수 없습니다. 다시 로그인해 주세요.</translation> <translation id="6334267141726449402">이 링크를 복사하여 사용자에게 보내 로그를 수집합니다.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">업로드 실패(<ph name="WEBRTC_LOG_UPLOAD_TIME" />)</translation> <translation id="6459488832681039634">선택 부분으로 찾기</translation> <translation id="6459799433792303855">활성 창이 다른 디스플레이로 이동했습니다.</translation> -<translation id="6460566145397380451">MIDI 기기 연결이 허용됨</translation> <translation id="6460601847208524483">다음 찾기</translation> <translation id="6461170143930046705">네트워크 검색 중...</translation> <translation id="6463795194797719782">편집(&E)</translation> @@ -7090,7 +7079,6 @@ <translation id="6735304988756581115">쿠키 및 기타 사이트 데이터 표시...</translation> <translation id="6736243959894955139">주소</translation> <translation id="6737663862851963468">Kerberos 티켓 삭제</translation> -<translation id="6737931010859480781">기기에 사전 설치되어 있는 앱입니다.</translation> <translation id="6738180164164974883">서드 파티 쿠키 설정 허용</translation> <translation id="6738430949033571771">계정 확인 중...</translation> <translation id="6739923123728562974">바탕화면 바로가기 표시</translation> @@ -8484,7 +8472,6 @@ <translation id="7853747251428735">도구 더보기(&L)</translation> <translation id="7853999103056713222">더 안전한 비밀번호 사용</translation> <translation id="7855678561139483478">탭을 새 창으로 이동</translation> -<translation id="7855729579456690716">사용자가 다른 탭으로 변경하면 사이트에서 PIP 모드 창을 열 수 있음</translation> <translation id="7857004848504343806">컴퓨터에 보안 모듈이 있습니다. 이 모듈은 ChromeOS Flex에서 여러 중요한 보안 기능을 구현하는 데 사용됩니다. 자세히 알아보려면 Chromebook 고객센터의 다음 페이지를 방문하세요. https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">텍스트 추천</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index 2ab61a9b..b9e28211 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> аккаунтка кантип киргениңизди эстеп калып, сизди, мүмкүн болгондо, автоматтык түрдө киргизип турат. Өчүрүлсө, аккаунтка кирген сайын сырсөздү ырастоого туура келет.</translation> <translation id="1008544602823861396">маалыматыңызды төмөнкү сайттарда колдоно албайт:</translation> <translation id="1008557486741366299">Азыр эмес</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Жеке дайын-даректериңизди коргоо максатында 2 айдан бери кирбеген сайттагы уруксаттар өчүрүлдү}other{Жеке дайын-даректериңизди коргоо максатында 2 айдан бери кирбеген сайттардагы уруксаттар өчүрүлдү}}</translation> <translation id="1009663062402466586">Оюндун башкаруу элементтери эми жеткиликтүү</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Бул бет жооп бербейт}other{Бул бет жооп бербейт}}</translation> <translation id="1011003645819296594">Сакталган түзмөктөр</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Шилтеме даре&гин көчүрүү</translation> <translation id="1085064499066015002">Бардык сайттарда ар дайым күйүк</translation> <translation id="1085697365578766383">Виртуалдык машина иштеп баштабай калды. Кайталап көрүңүз.</translation> -<translation id="1087965115100412394">Сайттар MIDI түзмөктөрүнө туташа албасын</translation> <translation id="1088659085457112967">Окугуч режимине кирүү</translation> <translation id="1090126737595388931">Фондо иштеп жаткан колдонмо жок</translation> <translation id="1090541560108055381">Жупташтыруудан мурун эки түзмөктө тең ушул код көрсөтүлгөнүн текшериңиз</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">Өтмөктү жабуу</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Чыгып баратканда, тазаланат</translation> -<translation id="3553487194781590058">Башка өтмөккө өтсөңүз, сайттар сүрөттөгү сүрөт терезесин ача алышпайт</translation> <translation id="3554493885489666172">Түзмөгүңүз <ph name="PROFILE_NAME" /> тарабынан башкарылууда. Администраторлор бул түзмөктөгү бардык профилдердин дайындарын колдоно алышат.</translation> <translation id="3555812735919707620">Кеңейтүүнү алып салуу</translation> <translation id="3557101512409028104">Family Link аркылуу вебсайттарга жана түзмөктү колдонуу убакытына чектөөлөрдү коюу</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Түшүндүрмө</translation> <translation id="3975565978598857337">Чөйрө үчүн серверге туташуу ишке ашкан жок</translation> <translation id="3976108569178263973">Жеткиликтүү принтерлер жок.</translation> -<translation id="3976244126942806443">Сайттар адатта музыканы түзүү жана түзөтүү үчүн, MIDI түзмөктөрүнө туташат</translation> <translation id="397703832102027365">Жыйынтыкталууда…</translation> <translation id="3977145907578671392">Айрым сайттардагы функциялар Жашыруун режимде иштебеши мүмкүн</translation> <translation id="3977886311744775419">Автоматтык жаңыртуулар тармактын бул түрүндө жүктөлүп алынбайт, бирок жаңыртууларды кол менен издесеңиз болот.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Кулпуланган экранда стилус аркылуу жазылган акыркы эскертүү</translation> <translation id="4730888769809690665"><ph name="SITE" /> үчүн билдирмелерге уруксат берилген</translation> <translation id="4731306954230393087">Сайттарга сиз жөнүндө сакталган маалыматты колдонууга уруксат берилди</translation> -<translation id="473140019006744096">Бул жаңыртууну аягына чыгаруу үчүн түзмөктө орун жетишсиз. Түзмөктө <ph name="NECESSARY_SPACE" /> орун бошотуп, кайра аракет кылыңыз.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (cол)</translation> <translation id="4733793249294335256">Жайгашкан жер</translation> <translation id="473546211690256853">Бул аккаунтту <ph name="DOMAIN" /> башкарат</translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">Билдирмелерди жөнөтүүнү талап кылган функциялар иштебей калат</translation> <translation id="532943162177641444">Ушул түзмөк аркылуу мобилдик байланыш түйүнүнө туташуу үчүн <ph name="PHONE_NAME" /> телефонундагы эскертмени басыңыз.</translation> <translation id="5329858601952122676">&Жок кылуу</translation> -<translation id="5330592967519769658">Башка өтмөккө өтсөңүз, сүрөттөгү сүрөт терезесин ача алат</translation> <translation id="5331069282670671859">Бул категорияда эч кандай тастыктамаңыз жок</translation> <translation id="5331568967879689647">ChromeOS тутум колдонмосу</translation> <translation id="5331975486040154427">USB-C түзмөгү (сол жактагы арткы оюкча)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">Улантуу менен бул түзмөккө Google'дан, байланыш операторуңуздан жана түзмөгүңүздүн өндүрүүчүсүнөн жаңыртууларды жана колдонмолорду автоматтык түрдө жүктөп алып, орнотууга мүмкүнчүлүк береcиз (мобилдик Интернет аркылуу дагы). Бул колдонмолордун айрымдары колдонмо аркылуу сатып алууну сунушташы мүмкүн.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN код кеминде бир символдон турушу керек}other{PIN код кеминде # символдон турушу керек}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> Wi-Fi тармагына азыр туташып, жаңыртууну жүктөп алууну талап кылууда. Же болбосо, трафиги чектелген Интернет байланышы аркылуу жүктөп алыңыз (акы алынышы мүмкүн).</translation> -<translation id="5478520208448702555">Башка өтмөккө өтсөңүз, сайттар сүрөттөгү сүрөт терезесин ачышы мүмкүн</translation> <translation id="5481273127572794904">Бир нече файлды автоматтык түрдө жүктөп ала албайт</translation> <translation id="5481941284378890518">Жакын жердеги принтерлерди кошуу</translation> <translation id="5484181871714116891">Бул параметр күйүп турганда, киргизүүчү ачкычтар iCloud Keychain'де түзүлүп, Apple түзмөктөрүңүздө жеткиликтүү болот. Ал эми өчүп турганда, киргизүүчү ачкычтар бул түзмөктөгү Chrome профилиңизде түзүлөт.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">Ал бир нече оңой кадам менен орнотулат. Өзгөртүүлөрдү компьютериңизге киргизүүдөн мурун дагы бир ырастоо мүмкүнчүлүгүңүз болот.</translation> <translation id="5600706100022181951">Жаңыртууну жүктөп алуу үчүн мобилдик Интернеттен <ph name="UPDATE_SIZE_MB" /> МБ сарпталат. Уланта бересизби?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI түзмөктөрүнө туташа албайт</translation> <translation id="5601833336918638013">Сайттарга Bluetooth түзмөктөрүн издөөгө тыюу салуу</translation> <translation id="5602586420788540146">Жаңы өтмөктөр тобунда ачуу</translation> <translation id="5605758115928394442">Сиз экениңизди ырастоо үчүн телефонуңузга билдирме жөнөтүлдү.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">Төмөнкүдөн кеңейтүү жүктөлбөй калды:</translation> <translation id="5708171344853220004">Microsoft Негизги аты</translation> <translation id="5709557627224531708">Chrome'ду демейки серепчи катары белгилөө</translation> -<translation id="5710122160114032242">Башка өтмөккө өтсөңүз, сүрөттөгү сүрөт терезесин ача албайт</translation> <translation id="5711010025974903573">Оңдоо кызматынын таржымалдары</translation> <translation id="5711983031544731014">Кулпусун ачуу мүмкүн эмес. Сырсөзүңүздү киргизиңиз.</translation> <translation id="5712153969432126546">Сайттар айрым учурларда документтер, келишимдер жана формалар сыяктуу PDF файлдарды жарыялашат</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Chrome'дон алып салуу</translation> <translation id="6326855256003666642">Байланышты текшерүүчү билдирүүлөрдүн саны</translation> <translation id="6327785803543103246">Веб проксини автоматтык түрдө табуу</translation> -<translation id="6331818708794917058">Сайттар MIDI түзмөктөрүнө сиздин уруксатыңыз менен туташа алат</translation> <translation id="6333064448949140209">Файл мүчүлүштүктөрдү оңдоо үчүн Google'га жөнөтүлөт</translation> <translation id="6333170995003625229">Электрондук почта дарегиңиз же сырсөзүңүз ырасталган жок. Кайра кирип көрүңүз.</translation> <translation id="6334267141726449402">Таржымалдарды алуу үчүн бул шилтемени көчүрүп, колдонуучуга жөнөтүңүз.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">Жүктөлүп берилбей калды (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Издөө аракетине Тандоону колдонуу</translation> <translation id="6459799433792303855">Активдүү терезе башка экранга жылып кетти.</translation> -<translation id="6460566145397380451">MIDI түзмөктөрүнө туташа алат</translation> <translation id="6460601847208524483">Кийинкини табуу</translation> <translation id="6461170143930046705">Тармактар изделүүдө…</translation> <translation id="6463795194797719782">&Түзөтүү</translation> @@ -7090,7 +7079,6 @@ <translation id="6735304988756581115">Кукилерди жана башка сайттагы нерселерди көрсөтүү…</translation> <translation id="6736243959894955139">Дареги</translation> <translation id="6737663862851963468">Kerberos билетин алып салуу</translation> -<translation id="6737931010859480781">Бул колдонмо түзмөгүңүзгө алдын ала орнотулган</translation> <translation id="6738180164164974883">Үчүнчү тараптын cookie файлдарын тууралоого уруксат берүү</translation> <translation id="6738430949033571771">Аккаунт текшерилүүдө...</translation> <translation id="6739923123728562974">Иш тактадагы кыска жолду көрсөтүү</translation> @@ -8484,7 +8472,6 @@ <translation id="7853747251428735">Көбүрөөк кура&лдар</translation> <translation id="7853999103056713222">Коопсуз сырсөздү колдонуңуз</translation> <translation id="7855678561139483478">Өтмөктү жаңы терезеге жылдыруу</translation> -<translation id="7855729579456690716">Башка өтмөккө өтсөңүз, сайттар сүрөттөгү сүрөт терезесин ача алышат</translation> <translation id="7857004848504343806">Компьютериңизде коопсуз модуль камтылган. Ал ChromeOS Flex тутумундагы көптөгөн олуттуу коопсуздук функцияларын аткаруу үчүн колдонулат. Кененирээк маалымат алуу үчүн, Chromebook Жардам борборуна өтүңүз: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Текст сунуштары</translation> <translation id="7857949311770343000">Бул сиз күтүп жаткан жаңы өтмөк бетиби?</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index 0579ee7..c4b271d8 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> ຈະຈື່ວິທີທີ່ທ່ານເຂົ້າສູ່ລະບົບ ແລະ ຈະເຂົ້າສູ່ລະບົບໃຫ້ທ່ານໂດຍອັດຕະໂນມັດເມື່ອເປັນໄປໄດ້. ເມື່ອປິດການຕັ້ງຄ່ານີ້, ລະບົບຈະຂໍໃຫ້ທ່ານຢືນຢັນທຸກໆເທື່ອ.</translation> <translation id="1008544602823861396">ຖືກບລັອກບໍ່ໃຫ້ໃຊ້ຂໍ້ມູນຂອງທ່ານຢູ່</translation> <translation id="1008557486741366299">ບໍ່ແມ່ນດຽວນີ້</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{ເພື່ອປົກປ້ອງຂໍ້ມູນຂອງທ່ານ, ລະບົບໄດ້ລຶບສິດການອະນຸຍາດຈາກເວັບໄຊທີ່ທ່ານບໍ່ໄດ້ເຂົ້າເບິ່ງມາເປັນເວລາ 2 ເດືອນອອກແລ້ວ}other{ເພື່ອປົກປ້ອງຂໍ້ມູນຂອງທ່ານ, ລະບົບໄດ້ລຶບສິດການອະນຸຍາດຈາກເວັບໄຊທີ່ທ່ານບໍ່ໄດ້ເຂົ້າເບິ່ງມາເປັນເວລາ 2 ເດືອນອອກແລ້ວ}}</translation> <translation id="1009663062402466586">ຕອນນີ້ສາມາດໃຊ້ການຄວບຄຸມເກມໄດ້ແລ້ວ</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ໜ້າບໍ່ຕອບຮັບ}other{ໜ້າບໍ່ຕອບຮັບ}}</translation> <translation id="1011003645819296594">ອຸປະກອນທີ່ບັນທຶກໄວ້</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">ກັອບປີ້ທີ່ຢູ່ລິ້ງ</translation> <translation id="1085064499066015002">ເປີດຕະຫຼອດທຸກເວັບໄຊ</translation> <translation id="1085697365578766383">ເກີດຄວາມຜິດພາດໃນການເລີ່ມເຄື່ອງຈຳລອງສະເໝືອນຈິງ. ກະລຸນາລອງອີກຄັ້ງ.</translation> -<translation id="1087965115100412394">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊເຊື່ອມຕໍ່ຫາອຸປະກອນ MIDI</translation> <translation id="1088659085457112967">ເຂົ້າສູ່ໂໝດຜູ້ອ່ານ</translation> <translation id="1090126737595388931">ບໍ່ມີແອັບພື້ນຫຼັງແລ່ນຢູ່</translation> <translation id="1090541560108055381">ກ່ອນການຈັບຄູ່, ໃຫ້ກວດສອບວ່າລະຫັດນີ້ຄືກັນຢູ່ທັງສອງອຸປະກອນກ່ອນ</translation> @@ -3241,7 +3239,6 @@ <translation id="3551320343578183772">ປິດແຖບ</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">ລຶບລ້າງເມື່ອອອກ</translation> -<translation id="3553487194781590058">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊຕ່າງໆເປີດໜ້າຈໍການສະແດງຜົນຊ້ອນກັນເມື່ອທ່ານປ່ຽນໄປຫາແຖບອື່ນ</translation> <translation id="3554493885489666172">ອຸປະກອນຂອງທ່ານຖືກຈັດການໂດຍ <ph name="PROFILE_NAME" />. ຜູ້ເບິ່ງແຍງລະບົບສາມາດເຂົ້າເຖິງຂໍ້ມູນໃນໂປຣໄຟລ໌ໃດກໍໄດ້ຢູ່ອຸປະກອນນີ້.</translation> <translation id="3555812735919707620">ເອົາສ່ວນຂະຫຍາຍອອກ</translation> <translation id="3557101512409028104">ຕັ້ງຄ່າການຈຳກັດເວັບໄຊ ແລະ ຂີດຈຳກັດເວລາໜ້າຈໍດ້ວຍ Family Link</translation> @@ -3800,7 +3797,6 @@ <translation id="3975201861340929143">ຄຳອະທິບາຍ</translation> <translation id="3975565978598857337">ການຕິດຕໍ່ຫາເຊີບເວີສຳລັບ realm ບໍ່ສຳເລັດ</translation> <translation id="3976108569178263973">ບໍ່ມີເຄື່ອງພິມທີ່ສາມາດໃຊ້ໄດ້.</translation> -<translation id="3976244126942806443">ໂດຍປົກກະຕິແລ້ວເວັບໄຊຈະເຊື່ອມຕໍ່ຫາອຸປະກອນ MIDI ເພື່ອການສ້າງ ແລະ ການແກ້ໄຂເພງ</translation> <translation id="397703832102027365">ກໍາລັງເຮັດໃຫ້ແລ້ວ...</translation> <translation id="3977145907578671392">ຄຸນສົມບັດຢູ່ບາງເວັບໄຊອາດບໍ່ເຮັດວຽກໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation> <translation id="3977886311744775419">ການດາວໂຫຼດອັດຕະໂນມັດບໍ່ດາວໂຫຼດໃນເຄືອຂ່າຍປະເພດນີ້, ແຕ່ທ່ານສາມາດກວດຫາການອັບເດດດ້ວຍຕົນເອງໄດ້.</translation> @@ -4701,7 +4697,6 @@ <translation id="4730492586225682674">ບັນທຶກຫຼ້າສຸດທີ່ຂຽນດ້ວຍປາຍປາກກາໃນໜ້າຈໍລັອກ</translation> <translation id="4730888769809690665">ອະນຸຍາດການແຈ້ງເຕືອນສຳລັບ <ph name="SITE" /> ແລ້ວ</translation> <translation id="4731306954230393087">ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ຂໍ້ມູນທີ່ພວກມັນບັນທຶກໄວ້ກ່ຽວກັບທ່ານ</translation> -<translation id="473140019006744096">ມີພື້ນທີ່ບໍ່ພຽງພໍຢູ່ອຸປະກອນນີ້ເພື່ອອັບເດດໃຫ້ສຳເລັດ. ກະລຸນາສ້າງພື້ນທີ່ຫວ່າງ <ph name="NECESSARY_SPACE" /> ຢູ່ອຸປະກອນຂອງທ່ານແລ້ວລອງໃໝ່.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ຊ້າຍ)</translation> <translation id="4733793249294335256">ສະຖານທີ່</translation> <translation id="473546211690256853">ບັນຊີນີ້ຖືກຈັດການໂດຍ <ph name="DOMAIN" /></translation> @@ -5403,7 +5398,6 @@ <translation id="5327912693242073631">ຄຸນສົມບັດທີ່ຕ້ອງການການແຈ້ງເຕືອນຈະໃຊ້ບໍ່ໄດ້</translation> <translation id="532943162177641444">ແຕະການແຈ້ງເຕືອນໃນ <ph name="PHONE_NAME" /> ຂອງທ່ານເພື່ອຕັ້ງຄ່າຈຸດເຊື່ອມຕໍ່ມືຖືທີ່ອຸປະກອນນີ້ສາມາດໃຊ້ໄດ້.</translation> <translation id="5329858601952122676">ລຶບ</translation> -<translation id="5330592967519769658">ອະນຸຍາດໃຫ້ເປີດໜ້າຈໍການສະແດງຜົນຊ້ອນກັນເມື່ອທ່ານປ່ຽນໄປຫາແຖບອື່ນ</translation> <translation id="5331069282670671859">ບໍ່ມີໃບຮັບຮອງໃນໝວດໝູ່ນີ້</translation> <translation id="5331568967879689647">ແອັບລະບົບ ChromeOS</translation> <translation id="5331975486040154427">ອຸປະກອນ USB-C (ຜອດດ້ານຫຼັງເບື້ອງຊ້າຍ)</translation> @@ -5580,7 +5574,6 @@ <translation id="5473099001878321374">ໂດຍການສືບຕໍ່, ແມ່ນຖືວ່າທ່ານຍອມຮັບວ່າອຸປະກອນນີ້ອາດດາວໂຫຼດ ແລະ ຕິດຕັ້ງອັບເດດ ແລະ ແອັບຈາກ Google, ຜູ້ໃຫ້ບໍລິການຂອງລູກທ່ານ ແລະ ຜູ້ຜະລິດອຸປະກອນນີ້, ເຊິ່ງເປັນໄປໄດ້ວ່າອາດຈະໃຊ້ອິນເຕີເນັດມືຖື. ແອັບບາງຢ່າງເຫຼົ່ານີ້ອາດມີການສະເໜີການຊື້ໃນແອັບ.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN ຕ້ອງມີຢ່າງໜ້ອຍໜຶ່ງຕົວອັກສອນ}other{PIN ຕ້ອງມີຢ່າງໜ້ອຍ # ຕົວອັກສອນ}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> ກຳນົດໃຫ້ທ່ານຕ້ອງເຊື່ອມຕໍ່ກັບ Wi-Fi ຕອນນີ້ ແລະ ດາວໂຫຼດການອັບເດດ. ຫຼື ດາວໂຫຼດຈາກການເຊື່ອມຕໍ່ແບບວັດແທກປະລິມານອິນເຕີເນັດ (ອາດເກັບຄ່າບໍລິການ).</translation> -<translation id="5478520208448702555">ເວັບໄຊຕ່າງໆອາດເປີດໜ້າຈໍການສະແດງຜົນຊ້ອນກັນເມື່ອທ່ານປ່ຽນໄປຫາແຖບອື່ນ</translation> <translation id="5481273127572794904">ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ດາວໂຫຼດຫຼາຍໄຟລ໌ໂດຍອັດຕະໂນມັດ</translation> <translation id="5481941284378890518">ເພີ່ມເຄື່ອງພິມທີ່ຢູ່ໃກ້ຄຽງ</translation> <translation id="5484181871714116891">ເມື່ອເປີດໃຊ້, ກະແຈຜ່ານຈະຖືກສ້າງໃນ iCloud Keychain ແລະ ສາມາດໃຊ້ໄດ້ໃນອຸປະກອນ Apple ຕ່າງໆຂອງທ່ານ. ເມື່ອປິດໄວ້, ກະແຈຜ່ານຈະຖືກສ້າງໃນໂປຣໄຟລ໌ Chrome ຂອງທ່ານຢູ່ອຸປະກອນນີ້.</translation> @@ -5738,7 +5731,6 @@ <translation id="5600348067066185292">ການຕິດຕັ້ງຈະມີຂັ້ນຕອນງ່າຍໆສອງສາມຂັ້ນຕອນ. ທ່ານຈະມີໂອກາດຢືນຢັນກ່ອນເກີດການປ່ຽນແປງຕໍ່ຄອມພິວເຕີຂອງທ່ານ.</translation> <translation id="5600706100022181951">ການອັບເດດຈະຖືກດາວໂຫຼດໂດຍໃຊ້ຂໍ້ມູນມືຖື <ph name="UPDATE_SIZE_MB" /> MB. ທ່ານຕ້ອງການສືບຕໍ່ບໍ?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ກັບອຸປະກອນ MIDI</translation> <translation id="5601833336918638013">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊຕ່າງໆຊອກຫາອຸປະກອນ Bluetooth</translation> <translation id="5602586420788540146">ເປີດໃນກຸ່ມແຖບໃໝ່</translation> <translation id="5605758115928394442">ລະບົບໄດ້ສົ່ງການແຈ້ງເຕືອນຫາໂທລະສັບຂອງທ່ານແລ້ວເພື່ອຢືນຢັນວ່າແມ່ນທ່ານ.</translation> @@ -5860,7 +5852,6 @@ <translation id="5707185214361380026">ບໍ່ສາມາດໂຫຼດສ່ວນຂະຫຍາຍຈາກ:</translation> <translation id="5708171344853220004">ຊື່ສໍາຄັນຂອງ Microsoft</translation> <translation id="5709557627224531708">ຕັ້ງຄ່າ Chrome ເປັນໂປຣແກຣມທ່ອງເວັບເລີ່ມຕົ້ນ</translation> -<translation id="5710122160114032242">ບໍ່ອະນຸຍາດໃຫ້ເປີດໜ້າຈໍການສະແດງຜົນຊ້ອນກັນເມື່ອທ່ານປ່ຽນໄປຫາແຖບອື່ນ</translation> <translation id="5711010025974903573">ບັນທຶກບໍລິການ</translation> <translation id="5711983031544731014">ບໍ່ສາມາດປົດລັອກໄດ້. ປ້ອນລະຫັດຜ່ານຂອງທ່ານເຂົ້າໄປ.</translation> <translation id="5712153969432126546">ບາງເທື່ອເວັບໄຊຈະເຜີຍແຜ່ PDF ຕ່າງໆ ເຊັ່ນ: ເອກະສານ, ສັນຍາ ແລະ ແບບຟອມ</translation> @@ -6623,7 +6614,6 @@ <translation id="6326175484149238433">ເອົາອອກໄປຈາກ Chrome</translation> <translation id="6326855256003666642">ຈຳນວນ Keepalive</translation> <translation id="6327785803543103246">ຄົ້ນຫາເວັບພຣັອກຊີໂດຍອັດຕະໂນມັດ</translation> -<translation id="6331818708794917058">ເວັບໄຊສາມາດຂໍເຊື່ອມຕໍ່ກັບອຸປະກອນ MIDI ໄດ້</translation> <translation id="6333064448949140209">ໄຟລ໌ຈະຖືກສົ່ງຫາ Google ສຳລັບການດີບັກ</translation> <translation id="6333170995003625229">ບໍ່ສາມາດຢັ້ງຢືນທີ່ຢູ່ອີເມວ ຫຼື ລະຫັດຜ່ານຂອງທ່ານໄດ້. ກະລຸນາລອງເຂົ້າສູ່ລະບົບອີກເທື່ອໜຶ່ງ.</translation> <translation id="6334267141726449402">ສຳເນົາ ແລະ ສົ່ງລິ້ງນີ້ໄປຫາຜູ້ໃຊ້ເພື່ອຮວບຮວມບັນທຶກ.</translation> @@ -6773,7 +6763,6 @@ <translation id="6458701200018867744">ການອັບໂຫຼດບໍ່ສຳເລັດ (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">ໃຊ້ການເລືອກເພື່ອຊອກຫາ</translation> <translation id="6459799433792303855">ຍ້າຍໜ້າຈໍທີ່ເປີດຢູ່ໄປຫາຈໍສະແດງຜົນອື່ນແລ້ວ.</translation> -<translation id="6460566145397380451">ໄດ້ຮັບອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ກັບອຸປະກອນ MIDI</translation> <translation id="6460601847208524483">ຊອກຫາຕໍ່ໄປ</translation> <translation id="6461170143930046705">ກຳລັງຊອກຫາເຄືອຂ່າຍ...</translation> <translation id="6463795194797719782">ແກ້ໄຂ</translation> @@ -7100,7 +7089,6 @@ <translation id="6735304988756581115">ຄຸກກີ້ ແລະຂໍ້ມູນເວັບໄຊທ໌ອື່ນ...</translation> <translation id="6736243959894955139">ທີ່ຢູ່</translation> <translation id="6737663862851963468">ລຶບປີ້ Kerberos ອອກ</translation> -<translation id="6737931010859480781">ແອັບນີ້ຖືກຕິດຕັ້ງລ່ວງໜ້າຢູ່ອຸປະກອນຂອງທ່ານແລ້ວ</translation> <translation id="6738180164164974883">ອະນຸຍາດໃຫ້ຕັ້ງຄ່າຄຸກກີ້ພາກສ່ວນທີສາມ</translation> <translation id="6738430949033571771">ກຳລັງຢັ້ງຢືນບັນຊີ...</translation> <translation id="6739923123728562974">ສະແດງທາງລັດເດັສທັອບ</translation> @@ -8494,7 +8482,6 @@ <translation id="7853747251428735">ເຄື່ອງມືເພີ່ມເຕີມ</translation> <translation id="7853999103056713222">ໃຊ້ລະຫັດຜ່ານທີ່ປອດໄພຍິ່ງຂຶ້ນ</translation> <translation id="7855678561139483478">ຍ້າຍແຖບໄປໜ້າຈໍໃໝ່</translation> -<translation id="7855729579456690716">ເວັບໄຊຕ່າງໆສາມາດເປີດໜ້າຈໍການສະແດງຜົນຊ້ອນກັນເມື່ອທ່ານປ່ຽນໄປຫາແຖບອື່ນ</translation> <translation id="7857004848504343806">ຄອມພິວເຕີຂອງທ່ານປະກອບມີໂມດູນປອດໄພເຊິ່ງຖືກໃຊ້ເພື່ອຈັດຕັ້ງປະຕິບັດຄຸນສົມບັດຄວາມປອດໄພທີ່ສໍາຄັນຫຼາຍອັນໃນ ChromeOS Flex. ກະລຸນາເຂົ້າເບິ່ງສູນຊ່ວຍເຫຼືອ Chromebook ເພື່ອສຶກສາເພີ່ມເຕີມ: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">ການແນະນຳຂໍ້ຄວາມ</translation> <translation id="7857949311770343000">ນີ້ແມ່ນໜ້າແຖບໃໝ່ທີ່ທ່ານຄາດໄວ້ບໍ?</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 752557b9..0046433 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> įsimena, kaip prisijungėte, ir, kai įmanoma, automatiškai jus prijungia. Kai funkcija bus išjungta, kaskart bus prašoma patvirtinti.</translation> <translation id="1008544602823861396">blokuojamas jūsų informacijos naudojimas</translation> <translation id="1008557486741366299">Ne dabar</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Siekiant apsaugoti jūsų duomenis, leidimai buvo pašalinti iš svetainės, kurioje nesilankėte du mėnesius}one{Siekiant apsaugoti jūsų duomenis, leidimai buvo pašalinti iš svetainių, kuriose nesilankėte du mėnesius}few{Siekiant apsaugoti jūsų duomenis, leidimai buvo pašalinti iš svetainių, kuriose nesilankėte du mėnesius}many{Siekiant apsaugoti jūsų duomenis, leidimai buvo pašalinti iš svetainių, kuriose nesilankėte du mėnesius}other{Siekiant apsaugoti jūsų duomenis, leidimai buvo pašalinti iš svetainių, kuriose nesilankėte du mėnesius}}</translation> <translation id="1009663062402466586">Žaidimų valdikliai dabar pasiekiami</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Puslapis nereaguoja}one{Puslapiai nereaguoja}few{Puslapiai nereaguoja}many{Puslapiai nereaguoja}other{Puslapiai nereaguoja}}</translation> <translation id="1011003645819296594">Išsaugoti įrenginiai</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopijuoti nuorodos adr&esą</translation> <translation id="1085064499066015002">Visada visose svetainėse</translation> <translation id="1085697365578766383">Paleidžiant virtualų įrenginį įvyko klaida. Bandykite dar kartą.</translation> -<translation id="1087965115100412394">Neleisti svetainėms prisijungti prie MIDI įrenginių</translation> <translation id="1088659085457112967">Įjungti skaitytojo režimą</translation> <translation id="1090126737595388931">Nėra vykdomų fono programų</translation> <translation id="1090541560108055381">Prieš susiedami įsitikinkite, kad šis kodas sutampa abiejuose įrenginiuose</translation> @@ -3235,7 +3233,6 @@ <translation id="3551320343578183772">Uždaryti skirtuką</translation> <translation id="3552097563855472344">„<ph name="NETWORK_NAME" />“ – <ph name="SPAN_START" />„<ph name="CARRIER_NAME" />“<ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Išvalyti išeinant</translation> -<translation id="3553487194781590058">Neleisti svetainėms atidaryti vaizdo vaizde lango, pakeitus į kitą skirtuką</translation> <translation id="3554493885489666172">Įrenginį tvarko <ph name="PROFILE_NAME" />. Administratoriai gali pasiekti duomenis bet kuriame profilyje šiame įrenginyje.</translation> <translation id="3555812735919707620">Pašalinti plėtinį</translation> <translation id="3557101512409028104">Nustatykite svetainės ir įrenginio naudojimo laiko apribojimus naudodami „Family Link“</translation> @@ -3794,7 +3791,6 @@ <translation id="3975201861340929143">Paaiškinimas</translation> <translation id="3975565978598857337">Nepavyko susisiekti su serveriu dėl srities</translation> <translation id="3976108569178263973">Nėra pasiekiamų spausdintuvų.</translation> -<translation id="3976244126942806443">Paprastai svetainėse prisijungiama prie MIDI įrenginių muzikai kurti ir redaguoti</translation> <translation id="397703832102027365">Užbaigiama...</translation> <translation id="3977145907578671392">Kai kurių svetainių funkcijos gali neveikti inkognito režimu</translation> <translation id="3977886311744775419">Automatiniai naujiniai iš šio tipo tinklo neatsisiunčiami, bet galite ieškoti naujinių patys.</translation> @@ -4695,7 +4691,6 @@ <translation id="4730492586225682674">Naujausias užrašas rašikliu užrakinimo ekrane</translation> <translation id="4730888769809690665">Svetainėje <ph name="SITE" /> pranešimai leidžiami</translation> <translation id="4731306954230393087">Leidžiama naudoti išsaugotą informaciją apie jus</translation> -<translation id="473140019006744096">Šiame įrenginyje nėra pakankamai vietos, kad būtų galima užbaigti šį atnaujinimą. Išvalykite <ph name="NECESSARY_SPACE" /> įrenginyje ir bandykite dar kartą.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (kairioji)</translation> <translation id="4733793249294335256">Vieta</translation> <translation id="473546211690256853">Šią paskyrą tvarko <ph name="DOMAIN" />.</translation> @@ -5397,7 +5392,6 @@ <translation id="5327912693242073631">Funkcijos, kurioms reikalingi pranešimai, neveiks</translation> <translation id="532943162177641444">Palieskite pranešimą „<ph name="PHONE_NAME" />“ įrenginyje, kad nustatytumėte mobiliojo ryšio viešosios interneto prieigos tašką, kurį galima naudoti šiame įrenginyje.</translation> <translation id="5329858601952122676">&Pašalinti</translation> -<translation id="5330592967519769658">Leidžiama atidaryti vaizdo vaizde langą perjungus į kitą skirtuką</translation> <translation id="5331069282670671859">Neturite jokių šios kategorijos sertifikatų</translation> <translation id="5331568967879689647">„Chrome“ OS sistemos programa</translation> <translation id="5331975486040154427">USB-C įrenginys (prievadas kairėje, užpakalinėje dalyje)</translation> @@ -5575,7 +5569,6 @@ <translation id="5473099001878321374">Tęsdami sutinkate, kad šis įrenginys taip pat gali automatiškai atsisiųsti ir įdiegti naujinius bei programas iš „Google“, jūsų vaiko operatoriaus ir šio įrenginio gamintojo (gali būti naudojami mobiliojo ryšio duomenys). Kai kurios programos gali siūlyti įsigyti pirkinių programoje.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN kodą turi sudaryti bent vienas simbolis}one{PIN kodą turi sudaryti bent # simbolis}few{PIN kodą turi sudaryti bent # simboliai}many{PIN kodą turi sudaryti bent # simbolio}other{PIN kodą turi sudaryti bent # simbolių}}</translation> <translation id="5474859849784484111">Domenui <ph name="MANAGER" /> reikia, kad dabar prisijungtumėte prie „Wi-Fi“ ir atsisiųstumėte naujinį. Arba atsisiųskite naudodami matuojamą ryšį (gali būti taikomi mokesčiai).</translation> -<translation id="5478520208448702555">Pakeitus į kitą skirtuką, svetainės gali atidaryti vaizdo vaizde langą</translation> <translation id="5481273127572794904">Neleidžiama automatiškai atsisiųsti kelių failų</translation> <translation id="5481941284378890518">Pridėti netoliese esančius spausdintuvus</translation> <translation id="5484181871714116891">Kai ši funkcija įjungta, prieigos raktai kuriami naudojant „iCloud Keychain“ ir pasiekiami „Apple“ įrenginiuose. Kai ši funkcija išjungta, prieigos raktai kuriami „Chrome“ profilyje šiame įrenginyje.</translation> @@ -5733,7 +5726,6 @@ <translation id="5600348067066185292">Diegimas atliekamas keliais lengvais žingsniais. Turėsite dar vieną patvirtinimo galimybę prieš atlikdami pakeitimus savo kompiuteryje.</translation> <translation id="5600706100022181951">Naujinys bus atsisiųstas naudojant <ph name="UPDATE_SIZE_MB" /> MB mobiliojo ryšio duomenų. Ar norite tęsti?</translation> <translation id="5601503069213153581">PIN kodas</translation> -<translation id="5601823921345337195">Neleidžiama prijungti MIDI įrenginių</translation> <translation id="5601833336918638013">Neleisti svetainėms ieškoti „Bluetooth“ įrenginių</translation> <translation id="5602586420788540146">Atidaryti naujoje skirtukų grupėje</translation> <translation id="5605758115928394442">Pranešimas išsiųstas į jūsų telefoną norint patvirtinti, kad tai jūs.</translation> @@ -5856,7 +5848,6 @@ <translation id="5707185214361380026">Nepavyko įkelti plėtinio iš:</translation> <translation id="5708171344853220004">Pagrindinis „Microsoft“ pavadinimas</translation> <translation id="5709557627224531708">Nustatyti „Chrome“ kaip numatytąją naršyklę</translation> -<translation id="5710122160114032242">Pakeitus į kitą skirtuką, neleidžiama atidaryti vaizdo vaizde lango</translation> <translation id="5711010025974903573">Paslaugų žurnalai</translation> <translation id="5711983031544731014">Nepavyko atrakinti. Įveskite slaptažodį.</translation> <translation id="5712153969432126546">Svetainėse kartais skelbiami PDF failai, pvz., dokumentai, sutartys ir formos</translation> @@ -6618,7 +6609,6 @@ <translation id="6326175484149238433">Pašalinti iš „Chrome“</translation> <translation id="6326855256003666642">Aktyvumą palaikančių elementų skaičius</translation> <translation id="6327785803543103246">Automatinis žiniatinklio tarpinio serverio aptikimas</translation> -<translation id="6331818708794917058">Svetainėse gali būti prašoma prisijungti prie MIDI įrenginių</translation> <translation id="6333064448949140209">Failas bus išsiųstas į sistemą „Google“ atlikti derinimą</translation> <translation id="6333170995003625229">Nepavyko patvirtinti el. pašto adreso arba slaptažodžio. Bandykite prisijungti dar kartą.</translation> <translation id="6334267141726449402">Nukopijuokite ir išsiųskite šią nuorodą naudotojui, kad būtų galima rinkti žurnalus.</translation> @@ -6768,7 +6758,6 @@ <translation id="6458701200018867744">Nepavyko įkelti (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Paieškai naudoti pasirinkimą</translation> <translation id="6459799433792303855">Aktyvus langas perkeltas į kitą ekraną.</translation> -<translation id="6460566145397380451">Leidžiama prijungti MIDI įrenginius</translation> <translation id="6460601847208524483">Rasti kitą</translation> <translation id="6461170143930046705">Ieškoma tinklų…</translation> <translation id="6463795194797719782">&Redaguoti</translation> @@ -7100,7 +7089,6 @@ <translation id="6735304988756581115">Rodyti slapukus ir kitus svetainės duomenis...</translation> <translation id="6736243959894955139">Adresas</translation> <translation id="6737663862851963468">„Kerberos“ bilieto pašalinimas</translation> -<translation id="6737931010859480781">Ši programa iš anksto įdiegta jūsų įrenginyje</translation> <translation id="6738180164164974883">Leisti nustatyti trečiųjų šalių slapukus</translation> <translation id="6738430949033571771">Tvirtinama paskyra...</translation> <translation id="6739923123728562974">Rodyti spartųjį darbalaukio klavišą</translation> @@ -8495,7 +8483,6 @@ <translation id="7853747251428735">Daugiau įrank&ių</translation> <translation id="7853999103056713222">Naudokite saugesnį slaptažodį</translation> <translation id="7855678561139483478">Skirtuko perkėlimas į naują langą</translation> -<translation id="7855729579456690716">Pakeitus į kitą skirtuką, svetainėse gali būti atidarytas vaizdo vaizde langas</translation> <translation id="7857004848504343806">Jūsų kompiuteryje yra saugus modulis, kuris naudojamas „ChromeOS Flex“ įdiegiant daug svarbių saugos funkcijų. Jei norite sužinoti daugiau, apsilankykite „Chromebook“ pagalbos centre adresu https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Teksto pasiūlymai</translation> <translation id="7857949311770343000">Ar tai naujo skirtuko puslapis, kurį tikėjotės išvysti?</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 5ad2946..71d37b01 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">Pakalpojumā <ph name="BRAND" /> tiek saglabāti pierakstīšanās akreditācijas dati un, kad iespējams, jūsu vārdā automātiski veikta pierakstīšanās. Ja šī funkcija ir izslēgta, jums katru reizi tiek prasīts apstiprinājums.</translation> <translation id="1008544602823861396">tika liegts izmantot jūsu informāciju vietnē</translation> <translation id="1008557486741366299">Vēlāk</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Lai aizsargātu jūsu datus, tika atsauktas atļaujas vietnei, kuru neesat apmeklējis divus mēnešus.}zero{Lai aizsargātu jūsu datus, tika atsauktas atļaujas vietnēm, kuras neesat apmeklējis divus mēnešus.}one{Lai aizsargātu jūsu datus, tika atsauktas atļaujas vietnēm, kuras neesat apmeklējis divus mēnešus.}other{Lai aizsargātu jūsu datus, tika atsauktas atļaujas vietnēm, kuras neesat apmeklējis divus mēnešus.}}</translation> <translation id="1009663062402466586">Tagad ir pieejamas spēļu vadīklas</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Nereaģējoša lapa}zero{Nereaģējošas lapas}one{Nereaģējošas lapas}other{Nereaģējošas lapas}}</translation> <translation id="1011003645819296594">Saglabātās ierīces</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopēt saites adresi</translation> <translation id="1085064499066015002">Vienmēr visās vietnēs</translation> <translation id="1085697365578766383">Startējot virtuālo mašīnu, radās kļūda. Lūdzu, mēģiniet vēlreiz.</translation> -<translation id="1087965115100412394">Neļaut vietnēm veidot savienojumu ar MIDI ierīcēm</translation> <translation id="1088659085457112967">Ieslēgt lasītāja režīmu</translation> <translation id="1090126737595388931">Nedarbojas neviena fona lietotne</translation> <translation id="1090541560108055381">Pirms izveidojat savienojumu pārī, pārliecinieties, ka šis kods abās ierīcēs ir vienāds.</translation> @@ -3219,7 +3217,6 @@ <translation id="3551320343578183772">Aizvērt cilni</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> — <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Izdzēst aizverot</translation> -<translation id="3553487194781590058">Neatļaut vietnēm atvērt logu ar attēlu attēlā, kad pārejat uz citu cilni</translation> <translation id="3554493885489666172">Jūsu ierīci pārvalda <ph name="PROFILE_NAME" />. Administratori var piekļūt jebkura profila datiem šajā ierīcē.</translation> <translation id="3555812735919707620">Noņemt paplašinājumu</translation> <translation id="3557101512409028104">Iestatīt vietņu ierobežojumus un izmantošanas ilguma ierobežojumus, izmantojot Family Link</translation> @@ -3778,7 +3775,6 @@ <translation id="3975201861340929143">Paskaidrojums</translation> <translation id="3975565978598857337">Sazināšanās ar serveri nozarojumam neizdevās</translation> <translation id="3976108569178263973">Neviens printeris nav pieejams.</translation> -<translation id="3976244126942806443">Parasti vietnēs veido savienojumu ar MIDI ierīcēm, lai nodrošinātu mūzikas veidošanu un rediģēšanu.</translation> <translation id="397703832102027365">Notiek pabeigšana...</translation> <translation id="3977145907578671392">Noteiktās vietnēs funkcijas var nedarboties, ja tiek izmantots inkognito režīms.</translation> <translation id="3977886311744775419">Kad izveidots savienojums ar šāda veida tīklu, atjauninājumi netiek lejupielādēti automātiski, taču varat manuāli pārbaudīt, vai tie ir pieejami.</translation> @@ -4678,7 +4674,6 @@ <translation id="4730492586225682674">Skārienekrāna pildspalva: pēdējā piezīme bloķēšanas ekrānā</translation> <translation id="4730888769809690665">Vietnei <ph name="SITE" /> ir atļauts rādīt paziņojumus</translation> <translation id="4731306954230393087">Atļauts izmantot informāciju, kas attiecīgajā vietnē saglabāta par jums</translation> -<translation id="473140019006744096">Šajā ierīcē nepietiek vietas, lai pabeigtu atjaunināšanu. Atbrīvojiet nepieciešamo vietu (<ph name="NECESSARY_SPACE" />) savā ierīcē un mēģiniet vēlreiz.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (kreisā)</translation> <translation id="4733793249294335256">Atrašanās vieta</translation> <translation id="473546211690256853">Šo kontu pārvalda <ph name="DOMAIN" /></translation> @@ -5380,7 +5375,6 @@ <translation id="5327912693242073631">Funkcijas, kurām nepieciešami paziņojumi, nedarbosies</translation> <translation id="532943162177641444">Lai iestatītu mobilo tīklāju, ko izmantot šajā ierīcē, pieskarieties paziņojumam savā tālrunī <ph name="PHONE_NAME" />.</translation> <translation id="5329858601952122676">Dzēst</translation> -<translation id="5330592967519769658">Atļauts atvērt logu ar attēlu attēlā, kad pārejat uz citu cilni</translation> <translation id="5331069282670671859">Jums nav sertifikātu šajā kategorijā</translation> <translation id="5331568967879689647">Chrome OS sistēmas lietotne</translation> <translation id="5331975486040154427">USB-C ierīce (pieslēgvieta kreisajā pusē aizmugurē)</translation> @@ -5558,7 +5552,6 @@ <translation id="5473099001878321374">Turpinot jūs piekrītat, ka šajā ierīcē drīkst arī automātiski lejupielādēt un instalēt atjauninājumus un lietotnes no Google, jūsu bērna mobilo sakaru operatora un šīs ierīces ražotāja, iespējams, izmantojot mobilos datus. Dažās lietotnēs var tikt piedāvāti pirkumi.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN kodā ir jābūt vismaz vienai rakstzīmei.}zero{PIN kodā ir jābūt vismaz # rakstzīmēm.}one{PIN kodā ir jābūt vismaz # rakstzīmei.}other{PIN kodā ir jābūt vismaz # rakstzīmēm.}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> pieprasa, lai jūs tūlīt izveidotu savienojumu ar Wi-Fi tīklu un lejupielādētu atjauninājumu. Varat arī veikt lejupielādi, izmantojot maksas savienojumu (var tikt piemērota maksa par datu pārraidi).</translation> -<translation id="5478520208448702555">Vietnes var atvērt logu ar attēlu attēlā, kad pārejat uz citu cilni</translation> <translation id="5481273127572794904">Nedrīkst automātiski lejupielādēt vairākus failus</translation> <translation id="5481941284378890518">Pievienot tuvumā esošus printerus</translation> <translation id="5484181871714116891">Ja šī funkcija ir iespējota, piekļuves atslēgas tiek izveidotas pakalpojumā iCloud Keychain un jūs varat izmantot šīs atslēgas visās savās Apple ierīcēs. Ja šī funkcija nav iespējota, piekļuves atslēgas tiek izveidotas jūsu Chrome profilā šajā ierīcē.</translation> @@ -5716,7 +5709,6 @@ <translation id="5600348067066185292">Lai instalētu, jāveic dažas vienkāršas darbības. Jums būs vēl viena iespēja apstiprināt izmaiņas, pirms tās tiek lietotas datorā.</translation> <translation id="5600706100022181951">Atjauninājuma lejupielādei tiks izmantoti <ph name="UPDATE_SIZE_MB" /> MB mobilo datu. Vai vēlaties turpināt?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Nedrīkst izveidot savienojumu ar MIDI ierīcēm</translation> <translation id="5601833336918638013">Neatļaut vietnēm meklēt Bluetooth ierīces</translation> <translation id="5602586420788540146">Atveriet jaunā ciļņu grupā</translation> <translation id="5605758115928394442">Uz jūsu tālruni tika nosūtīts paziņojums, lai apstiprinātu, ka tas esat jūs.</translation> @@ -5836,7 +5828,6 @@ <translation id="5707185214361380026">Neizdevās ielādēt paplašinājumu no:</translation> <translation id="5708171344853220004">Microsoft pamatnosaukums</translation> <translation id="5709557627224531708">Chrome iestatīšana par noklusējuma pārlūku</translation> -<translation id="5710122160114032242">Nav atļauts atvērt logu ar attēlu attēlā, kad pārejat uz citu cilni</translation> <translation id="5711010025974903573">Pakalpojuma žurnāli</translation> <translation id="5711983031544731014">Neizdevās atbloķēt. Ievadiet paroli.</translation> <translation id="5712153969432126546">Dažkārt vietnēs tiek publicēti PDF faili, piemēram, dokumenti, līgumi un veidlapas.</translation> @@ -6597,7 +6588,6 @@ <translation id="6326175484149238433">Noņemt no pārlūka Chrome</translation> <translation id="6326855256003666642">Aktīvo darbību skaits</translation> <translation id="6327785803543103246">Tīmekļa starpniekservera automātiskā atklāšana</translation> -<translation id="6331818708794917058">Atļaut vietnēm pieprasīt atļauju veidot savienojumu ar MIDI ierīcēm</translation> <translation id="6333064448949140209">Fails tiks nosūtīts Google serveriem atkļūdošanai</translation> <translation id="6333170995003625229">Nevarēja verificēt jūsu e-pasta adresi vai paroli. Mēģiniet pierakstīties vēlreiz.</translation> <translation id="6334267141726449402">Kopējiet un nosūtiet šo saiti lietotājam, lai vāktu žurnālus.</translation> @@ -6747,7 +6737,6 @@ <translation id="6458701200018867744">Augšupielāde neizdevās (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Izmantot atlasīto meklēšanai</translation> <translation id="6459799433792303855">Aktīvais logs ir pārvietots uz citu attēlojumu.</translation> -<translation id="6460566145397380451">Drīkst izveidot savienojumu ar MIDI ierīcēm</translation> <translation id="6460601847208524483">Atrast nākamo</translation> <translation id="6461170143930046705">Notiek tīklu meklēšana…</translation> <translation id="6463795194797719782">Rediģēt</translation> @@ -7077,7 +7066,6 @@ <translation id="6735304988756581115">Rādīt sīkfailus un citus vietņu datus...</translation> <translation id="6736243959894955139">Adrese</translation> <translation id="6737663862851963468">Kerberos biļetes noņemšana</translation> -<translation id="6737931010859480781">Šī lietotne ir priekšinstalēta jūsu ierīcē.</translation> <translation id="6738180164164974883">Atļaut iestatīt trešo pušu sīkfailus</translation> <translation id="6738430949033571771">Notiek konta verifikācija…</translation> <translation id="6739923123728562974">Rādīt darbvirsmas saīsni</translation> @@ -8471,7 +8459,6 @@ <translation id="7853747251428735">Vairāk rī&ku</translation> <translation id="7853999103056713222">Izmantojiet drošāku paroli</translation> <translation id="7855678561139483478">Pārvietojiet cilni uz jaunu logu</translation> -<translation id="7855729579456690716">Vietnes var atvērt logu ar attēlu attēlā, kad pārejat uz citu cilni</translation> <translation id="7857004848504343806">Jūsu datorā ir ietverts drošības modulis, kas tiek izmantots, lai operētājsistēmā Chrome OS Flex ieviestu daudz svarīgu drošības funkciju. Lai uzzinātu vairāk, apmeklējiet Chromebook palīdzības centru: https://support.google.com/chromebook/?p=sm.</translation> <translation id="7857093393627376423">Teksta ieteikumi</translation> <translation id="7857949311770343000">Vai šī ir jaunas cilnes lapa, ko gaidījāt?</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index 248a1ce9..5cc3b5d2 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> памти како сте се најавиле и кога е тоа можно, ве најавува автоматски. Кога е исклучен, ќе се бара потврда од вас при секое најавување.</translation> <translation id="1008544602823861396">е блокирано да ги користи вашите податоци на</translation> <translation id="1008557486741366299">Не сега</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{За да ги заштитиме вашите податоци, ги отстранивме дозволите за сајт што го немате посетено 2 месеци}one{За да ги заштитиме вашите податоци, ги отстранивме дозволите за сајтови што ги немате посетено 2 месеци}other{За да ги заштитиме вашите податоци, ги отстранивме дозволите за сајтови што ги немате посетено 2 месеци}}</translation> <translation id="1009663062402466586">Сега се достапни контроли за игри</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Страница не реагира}one{Страница не реагира}other{Страници не реагираат}}</translation> <translation id="1011003645819296594">Зачувани уреди</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Копирај адр&еса на врска</translation> <translation id="1085064499066015002">Секогаш на сите сајтови</translation> <translation id="1085697365578766383">Грешка при стартувањето на виртуелната машина. Обидете се повторно.</translation> -<translation id="1087965115100412394">Не им дозволувај на сајтовите да се поврзуваат со MIDI-уреди</translation> <translation id="1088659085457112967">Влезете во режим на читач</translation> <translation id="1090126737595388931">Нема активни апликации во заднина</translation> <translation id="1090541560108055381">Пред спарувањето, проверете дали кодов е ист на двата уреда</translation> @@ -3233,7 +3231,6 @@ <translation id="3551320343578183772">Затвори ја картичката</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Ќе се брише на излегување</translation> -<translation id="3553487194781590058">Не дозволувајте сајтовите да отвораат прозорец за „Слика во слика“ кога ќе промените на друга картичка</translation> <translation id="3554493885489666172">Со уредот управува <ph name="PROFILE_NAME" />. Администраторите може да пристапуваат до податоците на секој профил на уредов.</translation> <translation id="3555812735919707620">Отстрани наставка</translation> <translation id="3557101512409028104">Поставете ограничувања за веб-сајтови и за време поминато на уредот со Family Link</translation> @@ -3792,7 +3789,6 @@ <translation id="3975201861340929143">Објаснување</translation> <translation id="3975565978598857337">Контактирањето со серверот за домен не успеа</translation> <translation id="3976108569178263973">Нема достапни печатачи.</translation> -<translation id="3976244126942806443">Сајтовите обично се поврзуваат со MIDI-уредите за создавање и изменување музика</translation> <translation id="397703832102027365">Се финализира...</translation> <translation id="3977145907578671392">Функциите на некои сајтови можеби нема да работат во „Инкогнито“</translation> <translation id="3977886311744775419">Автоматските ажурирања не се преземаат автоматски на овој тип мрежа, но може да проверите дали има ажурирања рачно.</translation> @@ -4693,7 +4689,6 @@ <translation id="4730492586225682674">Последната забелешка со пенкало на заклучениот екран</translation> <translation id="4730888769809690665">Известувањата се дозволени за <ph name="SITE" /></translation> <translation id="4731306954230393087">Дозволено е сајтот да ги користи податоците што ги зачувал за вас</translation> -<translation id="473140019006744096">Нема доволно простор на уредов за да се заврши ажурирањето. Избришете <ph name="NECESSARY_SPACE" /> на уредот и пробајте пак.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (лева)</translation> <translation id="4733793249294335256">Локација</translation> <translation id="473546211690256853">Оваа сметка е управувана од <ph name="DOMAIN" /></translation> @@ -5395,7 +5390,6 @@ <translation id="5327912693242073631">Функциите на коишто им требаат известувања нема да работат</translation> <translation id="532943162177641444">Допрете на известувањето на вашиот <ph name="PHONE_NAME" /> за да ја поставите мобилната точка на пристап што може да ја користи уредов.</translation> <translation id="5329858601952122676">&Избриши</translation> -<translation id="5330592967519769658">Дозволено е да се отвора прозорец за „Слика во слика“ кога ќе промените на друга картичка</translation> <translation id="5331069282670671859">Немате сертификати во категоријава</translation> <translation id="5331568967879689647">Системска апликација Chrome OS</translation> <translation id="5331975486040154427">USB-Ц уред (задна порта од лева страна)</translation> @@ -5573,7 +5567,6 @@ <translation id="5473099001878321374">Ако продолжите, се согласувате дека уредов може автоматски да презема и инсталира ажурирања и апликации од Google, од операторот на детето и од производителот на уредов, веројатно со користење мобилен интернет. Некои од апликацииве може да нудат купувања во апликација.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-кодот мора да содржи најмалку еден знак}one{PIN-кодот мора да содржи најмалку # знак}other{PIN-кодот мора да содржи најмалку # знака}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> бара веднаш да се поврзете на Wi-Fi и да преземете ажурирање. Може да го преземете и преку врска со ограничен интернет (може да ви се наплати).</translation> -<translation id="5478520208448702555">Можно е сајтовите да отвораат прозорец за „Слика во слика“ кога ќе промените на друга картичка</translation> <translation id="5481273127572794904">Не им е дозволено автоматски да преземаат повеќе датотеки</translation> <translation id="5481941284378890518">Додај печатачи во близина</translation> <translation id="5484181871714116891">Кога е вклучено, криптографските клучеви се создаваат во iCloud Keychain и се достапни на вашите уреди од Apple. Кога е исклучено, криптографските клучеви се создаваат во вашиот профил на Chrome на овој уред.</translation> @@ -5731,7 +5724,6 @@ <translation id="5600348067066185292">За инсталација се потребни неколку лесни чекори. Ќе имате уште една шанса да ги потврдите измените пред да се извршат на вашиот компјутер.</translation> <translation id="5600706100022181951">Ажурирањето ќе се преземе со користење <ph name="UPDATE_SIZE_MB" /> MB мобилен интернет. Дали сакате да продолжите?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Не им е дозволено да се поврзуваат со MIDI-уредите</translation> <translation id="5601833336918638013">Не им дозволувај на сајтовите да бараат уреди со Bluetooth</translation> <translation id="5602586420788540146">Отвори во нова група картички</translation> <translation id="5605758115928394442">Испратено ви е известување на телефонот за потврда на вашиот идентитет.</translation> @@ -5853,7 +5845,6 @@ <translation id="5707185214361380026">Не може да се вчита наставка од:</translation> <translation id="5708171344853220004">Главно име на Microsoft</translation> <translation id="5709557627224531708">Поставете го Chrome за ваш стандарден прелистувач</translation> -<translation id="5710122160114032242">Не е дозволено да се отвора прозорец за „Слика во слика“ кога ќе промените на друга картичка</translation> <translation id="5711010025974903573">Евиденција за услугата за одржување</translation> <translation id="5711983031544731014">Не може да се отклучи. Внесете ја лозинката.</translation> <translation id="5712153969432126546">Сајтовите понекогаш објавуваат документи, договори и формулари во PDF-формат</translation> @@ -6615,7 +6606,6 @@ <translation id="6326175484149238433">Отстрани од Chrome</translation> <translation id="6326855256003666642">Број на „одржливи настани“</translation> <translation id="6327785803543103246">Автоматско откривање прокси на Интернет</translation> -<translation id="6331818708794917058">Сајтовите може да прашуваат дали да се поврзат со MIDI-уредите</translation> <translation id="6333064448949140209">Датотеката ќе се испрати во Google за да се отстранат грешките</translation> <translation id="6333170995003625229">Не можеше да се потврди адресата на е-пошта или лозинката. Обидете се да се најавите повторно.</translation> <translation id="6334267141726449402">Копирајте и испратете го линков до корисникот за прибирање на евиденцијата.</translation> @@ -6765,7 +6755,6 @@ <translation id="6458701200018867744">Прикачувањето не успеа (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Користи избор за пребарување</translation> <translation id="6459799433792303855">Активниот прозорец е преместен на друг екран.</translation> -<translation id="6460566145397380451">Дозволено им е да се поврзуваат со MIDI-уредите</translation> <translation id="6460601847208524483">Пронајди следно</translation> <translation id="6461170143930046705">Се пребаруваат мрежи…</translation> <translation id="6463795194797719782">&Уреди</translation> @@ -7093,7 +7082,6 @@ <translation id="6735304988756581115">Прикажи колачиња и други податоци за локација…</translation> <translation id="6736243959894955139">Адреса</translation> <translation id="6737663862851963468">Отстрани го билетот на Kerberos</translation> -<translation id="6737931010859480781">Апликацијава е фабрички инсталирана на вашиот уред</translation> <translation id="6738180164164974883">Дозволувај поставување колачиња од трета страна</translation> <translation id="6738430949033571771">Се потврдува сметката…</translation> <translation id="6739923123728562974">Прикажи кратенка за работна површина</translation> @@ -8487,7 +8475,6 @@ <translation id="7853747251428735">&Повеќе алатки</translation> <translation id="7853999103056713222">Користете побезбедна лозинка</translation> <translation id="7855678561139483478">Преместете ја картичката во нов прозорец</translation> -<translation id="7855729579456690716">Сајтовите може да отвораат прозорец за „Слика во слика“ кога ќе промените на друга картичка</translation> <translation id="7857004848504343806">Вашиот компјутер содржи заштитен модул што се користи за имплементирање многу важни безбедносни функции во ChromeOS Flex. Посетете го „Центарот за помош на Chromebook“ за да дознаете повеќе: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Предлози за текст</translation> <translation id="7857949311770343000">Дали е ова страницата од новата картичка што ја очекувавте?</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index ecf713c..ed966c7 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">നിങ്ങൾ സൈൻ ഇൻ ചെയ്തതെങ്ങനെയെന്ന് <ph name="BRAND" /> ഓർത്ത് വയ്ക്കുന്നു, സാധ്യമാകുമ്പോൾ നിങ്ങളെ സ്വയമേവ സൈൻ ഇൻ ചെയ്യിക്കും. ഓഫായിരിക്കുമ്പോൾ, ഓരോ തവണയും സ്ഥിരീകരിക്കാൻ നിങ്ങളോട് ആവശ്യപ്പെടും.</translation> <translation id="1008544602823861396">ഇനിപ്പറയുന്നതിലെ നിങ്ങളുടെ വിവരങ്ങൾ ഉപയോഗിക്കുന്നതിൽ നിന്ന് ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation> <translation id="1008557486741366299">ഇപ്പോഴല്ല</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{നിങ്ങളുടെ ഡാറ്റ പരിരക്ഷിക്കാനായി, 2 മാസമായി നിങ്ങൾ സന്ദർശിക്കാത്ത ഒരു സൈറ്റിന് നൽകിയിട്ടുള്ള അനുമതികൾ നീക്കം ചെയ്തു}other{നിങ്ങളുടെ ഡാറ്റ പരിരക്ഷിക്കാനായി, 2 മാസമായി നിങ്ങൾ സന്ദർശിക്കാത്ത സൈറ്റുകൾക്ക് നൽകിയിട്ടുള്ള അനുമതികൾ നീക്കം ചെയ്തു}}</translation> <translation id="1009663062402466586">ഗെയിം നിയന്ത്രണങ്ങൾ ഇപ്പോൾ ലഭ്യമാണ്</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{പേജ് പ്രതികരിക്കുന്നില്ല}other{പേജുകൾ പ്രതികരിക്കുന്നില്ല}}</translation> <translation id="1011003645819296594">സംരക്ഷിച്ച ഉപകരണങ്ങൾ</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">ലിങ്ക് വിലാ&സം പകർത്തുക</translation> <translation id="1085064499066015002">എപ്പോഴും എല്ലാ സൈറ്റിലും</translation> <translation id="1085697365578766383">വെർച്വൽ മെഷീൻ പ്രവർത്തനം തുടങ്ങുന്നതിൽ പിശക്. വീണ്ടും ശ്രമിക്കുക.</translation> -<translation id="1087965115100412394">MIDI ഉപകരണങ്ങളിലേക്ക് കണക്റ്റ് ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation> <translation id="1088659085457112967">റീഡർ മോഡിലേക്ക് കടക്കുക</translation> <translation id="1090126737595388931">ഒരു പശ്ചാത്തല ആപ്ലിക്കേഷനുകളും പ്രവർത്തിക്കുന്നില്ല</translation> <translation id="1090541560108055381">ജോടിയാക്കുന്നതിന് മുമ്പ്, ഈ കോഡ് രണ്ട് ഉപകരണങ്ങളിലും ഒന്ന് തന്നെയാണെന്ന് ഉറപ്പാക്കുക</translation> @@ -3226,7 +3224,6 @@ <translation id="3551320343578183772">ടാബ് അടയ്ക്കുക</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">പുറത്തുകടക്കുമ്പോൾ മായ്ക്കും</translation> -<translation id="3553487194781590058">നിങ്ങൾ മറ്റൊരു ടാബിലേക്ക് മാറുമ്പോൾ സൈറ്റുകളെ 'ചിത്രത്തിനുള്ളിൽ ചിത്രം' വിൻഡോ തുറക്കാൻ അനുവദിക്കരുത്</translation> <translation id="3554493885489666172">നിങ്ങളുടെ ഉപകരണം മാനേജ് ചെയ്യുന്നത് <ph name="PROFILE_NAME" /> ആണ്. ഈ ഉപകരണത്തിലെ ഏത് പ്രൊഫൈലിലുള്ള ഡാറ്റയും അഡ്മിൻമാർക്ക് ആക്സസ് ചെയ്യാം.</translation> <translation id="3555812735919707620">വിപുലീകരണം നീക്കംചെയ്യുക</translation> <translation id="3557101512409028104">Family Link ഉപയോഗിച്ച് വെബ്സൈറ്റ് നിയന്ത്രണങ്ങളും സ്ക്രീൻ സമയ പരിധികളും സജ്ജീകരിക്കുക</translation> @@ -3784,7 +3781,6 @@ <translation id="3975201861340929143">വിശദീകരണം</translation> <translation id="3975565978598857337">മേഖലയ്ക്കുള്ള സെർവറുമായി ബന്ധപ്പെടുന്നത് പരാജയപ്പെട്ടു</translation> <translation id="3976108569178263973">ലഭ്യമായ പ്രിന്ററുകളൊന്നുമില്ല.</translation> -<translation id="3976244126942806443">സംഗീതം സൃഷ്ടിക്കാനും എഡിറ്റ് ചെയ്യാനുമായി, സൈറ്റുകൾ സാധാരണ MIDI ഉപകരണങ്ങളിലേക്ക് കണക്റ്റ് ചെയ്യാറുണ്ട്</translation> <translation id="397703832102027365">തീര്ച്ചപ്പെടുത്തുന്നു...</translation> <translation id="3977145907578671392">ചില സൈറ്റുകളിലെ ഫീച്ചറുകൾ അദൃശ്യ മോഡിൽ പ്രവർത്തിക്കണമെന്നില്ല</translation> <translation id="3977886311744775419">ഈ നെറ്റ്വർക്ക് തരത്തിൽ സ്വയമേവയുള്ള അപ്ഡേറ്റുകൾ ഡൗൺലോഡ് ആകില്ല, എന്നാൽ നേരിട്ടുള്ള അപ്ഡേറ്റുകൾക്കായി നിങ്ങൾക്ക് പരിശോധിക്കാവുന്നതാണ്.</translation> @@ -4684,7 +4680,6 @@ <translation id="4730492586225682674">സ്റ്റൈലസ് ഉപയോഗിച്ച് ലോക്ക്സ്ക്രീനിൽ എഴുതിയ ഏറ്റവും പുതിയ കുറിപ്പ്</translation> <translation id="4730888769809690665"><ph name="SITE" /> എന്നതിന് അറിയിപ്പുകൾ അനുവദിച്ചു</translation> <translation id="4731306954230393087">സൈറ്റിനെ, അത് നിങ്ങളെ കുറിച്ച് സംരക്ഷിച്ചിരിക്കുന്ന വിവരങ്ങൾ ഉപയോഗിക്കാൻ അനുവദിച്ചു</translation> -<translation id="473140019006744096">ഈ അപ്ഡേറ്റ് പൂർത്തിയാക്കാൻ ആവശ്യമായ ഇടം ഈ ഉപകരണത്തിലില്ല. നിങ്ങളുടെ ഉപകരണത്തിലെ <ph name="NECESSARY_SPACE" /> മായ്ച്ച് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ഇടത്)</translation> <translation id="4733793249294335256">ലൊക്കേഷൻ</translation> <translation id="473546211690256853"><ph name="DOMAIN" />, ഈ അക്കൗണ്ട് നിയന്ത്രിക്കുന്നു</translation> @@ -5386,7 +5381,6 @@ <translation id="5327912693242073631">അറിയിപ്പുകൾ ആവശ്യമായ ഫീച്ചറുകൾ പ്രവർത്തിക്കില്ല</translation> <translation id="532943162177641444">ഈ ഉപകരണത്തിന് ഉപയോഗിക്കാൻ കഴിയുന്ന മൊബൈൽ ഹോട്ട്സ്പോട്ട് സജ്ജമാക്കുന്നതിന് നിങ്ങളുടെ <ph name="PHONE_NAME" /> ഫോണിലെ അറിയിപ്പിൽ ടാപ്പ് ചെയ്യുക.</translation> <translation id="5329858601952122676">&ഇല്ലാതാക്കൂ</translation> -<translation id="5330592967519769658">നിങ്ങൾ മറ്റൊരു ടാബിലേക്ക് മാറുമ്പോൾ 'ചിത്രത്തിനുള്ളിൽ ചിത്രം' വിൻഡോ തുറക്കാൻ അനുവാദമുണ്ട്</translation> <translation id="5331069282670671859">ഈ വിഭാഗത്തിൽ നിങ്ങൾക്ക് സർട്ടിഫിക്കറ്റുകളൊന്നുമില്ല</translation> <translation id="5331568967879689647">ChromeOS സിസ്റ്റം ആപ്പ്</translation> <translation id="5331975486040154427">USB-C ഉപകരണം (പുറകിൽ ഇടതുവശത്തെ പോർട്ട്)</translation> @@ -5564,7 +5558,6 @@ <translation id="5473099001878321374">തുടരുന്നതിലൂടെ, Google, നിങ്ങളുടെ കുട്ടിയുടെ മൊബൈൽ സേവനദാതാവ്, ഈ ഉപകരണത്തിന്റെ നിർമ്മാതാവ് എന്നിവരിൽ നിന്ന് ഈ ഉപകരണം, ഒരു പക്ഷേ സെല്ലുലാർ ഡാറ്റ ഉപയോഗിച്ച് അപ്ഡേറ്റുകളും ആപ്പുകളും സ്വയമേവ ഡൗൺലോഡോ ഇൻസ്റ്റാളോ ചെയ്തേക്കാമെന്ന് നിങ്ങൾ അംഗീകരിക്കുന്നു. ഇവയിൽ ചില ആപ്പുകൾ, ആപ്പ് വഴിയുള്ള വാങ്ങലുകൾ ഓഫർ ചെയ്യുന്നവയാകാം.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{പിന്നിൽ ഒരു പ്രതീകമെങ്കിലും ഉണ്ടാകണം}other{പിന്നിൽ # പ്രതീകങ്ങളെങ്കിലും ഉണ്ടാകണം}}</translation> <translation id="5474859849784484111">നിങ്ങൾ ഇപ്പോൾ വൈഫൈയിൽ കണക്റ്റ് ചെയ്ത് അപ്ഡേറ്റ് ഡൗൺലോഡ് ചെയ്യാൻ <ph name="MANAGER" /> ആവശ്യപ്പെടുന്നു. അല്ലെങ്കിൽ, മീറ്റർ ചെയ്ത കണക്ഷനിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യുക (നിരക്കുകൾ ബാധകമായേക്കാം).</translation> -<translation id="5478520208448702555">നിങ്ങൾ മറ്റൊരു ടാബിലേക്ക് മാറുമ്പോൾ സൈറ്റുകൾ, 'ചിത്രത്തിനുള്ളിൽ ചിത്രം' വിൻഡോ തുറന്നേക്കാം</translation> <translation id="5481273127572794904">ഒന്നിലധികം ഫയലുകൾ സ്വയമേവ ഡൗൺലോഡ് ചെയ്യാൻ അനുവാദമില്ല</translation> <translation id="5481941284378890518">സമീപത്തുള്ള പ്രിന്ററുകൾ ചേർക്കുക</translation> <translation id="5484181871714116891">ഓണായിരിക്കുമ്പോൾ, പാസ്കീകൾ iCloud കീചെയിനിൽ സൃഷ്ടിക്കുകയും നിങ്ങളുടെ Apple ഉപകരണങ്ങളിൽ ഉടനീളം ലഭ്യമാകുകയും ചെയ്യും. ഓഫായിരിക്കുമ്പോൾ, ഈ ഉപകരണത്തിലെ നിങ്ങളുടെ Chrome പ്രൊഫൈലിൽ പാസ്കീകൾ സൃഷ്ടിക്കപ്പെടും.</translation> @@ -5722,7 +5715,6 @@ <translation id="5600348067066185292">ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് അൽപ്പം ചില ഘട്ടങ്ങൾ മാത്രമേ എടുക്കൂ. നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ മാറ്റങ്ങൾ വരുത്തും മുമ്പ് അത് സ്ഥിരീകരിക്കാൻ നിങ്ങൾക്ക് ഒരു അവസരം കൂടി ലഭിക്കും.</translation> <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB മൊബൈല് ഡാറ്റ ഉപയോഗിച്ച് അപ്ഡേറ്റ് ഡൗൺലോഡ് ചെയ്യും. തുടരാൻ താൽപ്പര്യമുണ്ടോ?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI ഉപകരണങ്ങളിലേക്ക് കണക്റ്റ് ചെയ്യാൻ അനുവാദമില്ല</translation> <translation id="5601833336918638013">Bluetooth ഉപകരണങ്ങൾ തിരയാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation> <translation id="5602586420788540146">പുതിയ ടാബ് ഗ്രൂപ്പിൽ തുറക്കുക</translation> <translation id="5605758115928394442">ഇത് നിങ്ങൾ തന്നെയാണെന്ന് സ്ഥിരീകരിക്കാൻ ഫോണിലേക്ക് ഒരു അറിയിപ്പ് അയച്ചിട്ടുണ്ട്.</translation> @@ -5845,7 +5837,6 @@ <translation id="5707185214361380026">ഇതിൽ നിന്ന് വിപുലീകരണം ലോഡ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു:</translation> <translation id="5708171344853220004">Microsoft പ്രിന്സിപ്പല് നാമം</translation> <translation id="5709557627224531708">Chrome-നെ നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറായി സജ്ജീകരിക്കുക</translation> -<translation id="5710122160114032242">നിങ്ങൾ മറ്റൊരു ടാബിലേക്ക് മാറുമ്പോൾ 'ചിത്രത്തിനുള്ളിൽ ചിത്രം' വിൻഡോ തുറക്കാൻ അനുവാദമില്ല</translation> <translation id="5711010025974903573">സേവന ലോഗുകൾ</translation> <translation id="5711983031544731014">അൺലോക്ക് ചെയ്യാനായില്ല. നിങ്ങളുടെ പാസ്വേഡ് നൽകുക.</translation> <translation id="5712153969432126546">സൈറ്റുകൾ ചിലപ്പോൾ ഡോക്യുമെന്റുകളും കരാറുകളും ഫോമുകളും പോലുള്ള PDF-കൾ പ്രസിദ്ധീകരിക്കുന്നു</translation> @@ -6609,7 +6600,6 @@ <translation id="6326175484149238433">Chrome-ൽ നിന്ന് നീക്കം ചെയ്യുക</translation> <translation id="6326855256003666642">കണക്ഷൻ നിലനിർത്താനുള്ള ആക്റ്റിവിറ്റികളുടെ എണ്ണം</translation> <translation id="6327785803543103246">വെബ് പ്രോക്സി സ്വയമേവ കണ്ടെത്തൽ</translation> -<translation id="6331818708794917058">MIDI ഉപകരണങ്ങളിലേക്ക് കണക്റ്റ് ചെയ്യാൻ സൈറ്റുകൾക്ക് അനുവാദം ചോദിക്കാം</translation> <translation id="6333064448949140209">ഡീബഗ് ചെയ്യലിനായി ഫയൽ Google-ന് അയയ്ക്കും</translation> <translation id="6333170995003625229">നിങ്ങളുടെ ഇമെയിൽ വിലാസം അല്ലെങ്കിൽ പാസ്വേഡ് പരിശോധിച്ചുറപ്പിക്കാനായില്ല. വീണ്ടും സൈൻ ഇൻ ചെയ്യാൻ ശ്രമിക്കുക.</translation> <translation id="6334267141726449402">ലോഗുകൾ ശേഖരിക്കാൻ ഈ ലിങ്ക് പകർത്തി ഉപയോക്താവിന് അയയ്ക്കുക.</translation> @@ -6759,7 +6749,6 @@ <translation id="6458701200018867744">അപ്ലോഡ് ചെയ്യാനായില്ല (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">കണ്ടെത്തുന്നതിനായി തിരഞ്ഞെടുപ്പ് ഉപയോഗിക്കുക</translation> <translation id="6459799433792303855">സജീവ വിൻഡോ മറ്റൊരു ഡിസ്പ്ലേയിലേക്ക് നീക്കി.</translation> -<translation id="6460566145397380451">MIDI ഉപകരണങ്ങളിലേക്ക് കണക്റ്റ് ചെയ്യാൻ അനുവദിച്ചിരിക്കുന്നു</translation> <translation id="6460601847208524483">അടുത്തത് കണ്ടെത്തുക</translation> <translation id="6461170143930046705">നെറ്റ്വർക്കുകൾക്കായി തിരയുന്നു...</translation> <translation id="6463795194797719782">&എഡിറ്റ്ചെയ്യൂ</translation> @@ -7086,7 +7075,6 @@ <translation id="6735304988756581115">കുക്കികളും മറ്റ് സൈറ്റ് ഡാറ്റയും കാണിക്കുക...</translation> <translation id="6736243959894955139">വിലാസം</translation> <translation id="6737663862851963468">Kerberos ടിക്കറ്റ് നീക്കം ചെയ്യുക</translation> -<translation id="6737931010859480781">ഈ ആപ്പ് നിങ്ങളുടെ ഉപകരണത്തിൽ മുൻകൂറായി ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്</translation> <translation id="6738180164164974883">മൂന്നാം കക്ഷി കുക്കികൾ സജ്ജീകരിക്കാൻ അനുവദിക്കുക</translation> <translation id="6738430949033571771">അക്കൗണ്ട് പരിശോധിച്ചുറപ്പിക്കുന്നു...</translation> <translation id="6739923123728562974">ഡെസ്ക്ടോപ്പ് കുറുക്കുവഴി കാണിക്കുക</translation> @@ -8482,7 +8470,6 @@ <translation id="7853747251428735">കൂടുതൽ ഉപകരണങ്ങൾ</translation> <translation id="7853999103056713222">സുരക്ഷിതമായ പാസ്വേഡ് ഉപയോഗിക്കുക</translation> <translation id="7855678561139483478">ടാബ് പുതിയ വിൻഡോയിലേക്ക് നീക്കുക</translation> -<translation id="7855729579456690716">നിങ്ങൾ മറ്റൊരു ടാബിലേക്ക് മാറുമ്പോൾ സൈറ്റുകൾക്ക്, 'ചിത്രത്തിനുള്ളിൽ ചിത്രം' വിൻഡോ തുറക്കാം</translation> <translation id="7857004848504343806">ChromeOS Flex-ലെ നിർണ്ണായകമായ നിരവധി ഫീച്ചറുകൾ നടപ്പാക്കാൻ ഉപയോഗിക്കുന്ന സുരക്ഷിത മൊഡ്യൂൾ നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ഉണ്ട്. കൂടുതലറിയാൻ, Chromebook സഹായകേന്ദ്രം സന്ദർശിക്കുക: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">ടെക്സ്റ്റ് നിർദ്ദേശങ്ങൾ</translation> <translation id="7857949311770343000">നിങ്ങൾ ഉദ്ദേശിച്ച പുതിയ ടാബ് പേജ് ഇതാണോ?</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index 4c8cc14..21727acb 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> таныг хэрхэн нэвтэрсэн болохыг санадаг бөгөөд боломжтой үед нь таныг автоматаар нэвтрүүлнэ. Унтраалттай үед танаас баталгаажуулахыг үргэлж хүснэ.</translation> <translation id="1008544602823861396">таны мэдээллийг дараахад ашиглахыг блоклосон</translation> <translation id="1008557486741366299">Боломжгүй байна</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Таны өгөгдлийг хамгаалах үүднээс таны 2 сарын турш зочлоогүй сайтаас зөвшөөрлийг хассан}other{Таны өгөгдлийг хамгаалах үүднээс таны 2 сарын турш зочлоогүй сайтуудаас зөвшөөрлийг хассан}}</translation> <translation id="1009663062402466586">Тоглоомын тохиргоо одоо боломжтой боллоо</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Хуудас хариу өгөхгүй байна}other{Хуудас хариу өгөхгүй байна}}</translation> <translation id="1011003645819296594">Хадгалсан төхөөрөмжүүд</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Линкийн хаягийг хуулах</translation> <translation id="1085064499066015002">Бүх сайт дээр үргэлж</translation> <translation id="1085697365578766383">Виртуал машиныг эхлүүлэхэд алдаа гарлаа. Дахин оролдоно уу.</translation> -<translation id="1087965115100412394">Сайтуудад MIDI төхөөрөмжүүдэд холбогдохыг бүү зөвшөөр</translation> <translation id="1088659085457112967">Уншигчийн горимд орох</translation> <translation id="1090126737595388931">Ямар ч үндсэн апп ажиллаагүй байна.</translation> <translation id="1090541560108055381">Хослуулахаасаа өмнө энэ код нь хоёр төхөөрөмж дээр адилхан байгаа эсэхийг шалгана уу</translation> @@ -3228,7 +3226,6 @@ <translation id="3551320343578183772">Цонхыг хаах</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Гарах үед цэвэрлэнэ</translation> -<translation id="3553487194781590058">Таныг өөр таб руу өөрчлөх үед сайтуудад дэлгэц доторх дэлгэцийн цонхыг нээхийг бүү зөвшөөр</translation> <translation id="3554493885489666172">Таны төхөөрөмжийг <ph name="PROFILE_NAME" />-с удирддаг. Администратор энэ төхөөрөмж дээрх дурын профайлын өгөгдөлд хандах боломжтой.</translation> <translation id="3555812735919707620">Өргөтгөл арилгах</translation> <translation id="3557101512409028104">Family Link-р веб сайтын хязгаарлалт, дэлгэцийн цагийн хязгаар тогтоох</translation> @@ -3786,7 +3783,6 @@ <translation id="3975201861340929143">Тайлбар</translation> <translation id="3975565978598857337">Домэйнээр серверт холбогдох амжилтгүй боллоо</translation> <translation id="3976108569178263973">Боломжтой хэвлэгч алга байна.</translation> -<translation id="3976244126942806443">Сайтууд ихэвчлэн хөгжим үүсгэх болон засахад зориулж MIDI төхөөрөмжүүдэд холбогддог</translation> <translation id="397703832102027365">Дуусгаж байна...</translation> <translation id="3977145907578671392">Зарим сайт дээр онцлог Нууцлалтай горимд ажиллахгүй байж болзошгүй</translation> <translation id="3977886311744775419">Автомат шинэчлэлтийг сүлжээний энэ төрөл дээр татаж авдаггүй боловч та шинэчлэлтийг гар аргаар шалгаж болно.</translation> @@ -4687,7 +4683,6 @@ <translation id="4730492586225682674">Түгжигдсэн дэлгэц дээрх мэдрэгч үзгийн сүүлийн тэмдэглэл</translation> <translation id="4730888769809690665"><ph name="SITE" />-д мэдэгдлийг зөвшөөрсөн</translation> <translation id="4731306954230393087">Таны талаар хадгалсан мэдээллээ ашиглахыг нь зөвшөөрсөн</translation> -<translation id="473140019006744096">Энэ шинэчлэлтийг дуусгахад энэ төхөөрөмж дээр хангалттай зай байхгүй байна. Төхөөрөмж дээрээ <ph name="NECESSARY_SPACE" />-г цэвэрлээд, дахин оролдоно уу.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Зүүн)</translation> <translation id="4733793249294335256">Байршил</translation> <translation id="473546211690256853">Энэ дансыг удирдагч <ph name="DOMAIN" /></translation> @@ -5389,7 +5384,6 @@ <translation id="5327912693242073631">Мэдэгдэл шаардлагатай онцлогууд ажиллахгүй</translation> <translation id="532943162177641444">Энэ төхөөрөмжид ашиглах боломжтой мобайл сүлжээний цэгийг тохируулахын тулд <ph name="PHONE_NAME" />-н мэдэгдлийг товшино уу.</translation> <translation id="5329858601952122676">&Устгах</translation> -<translation id="5330592967519769658">Таныг өөр таб руу өөрчлөх үед дэлгэц доторх дэлгэцийн цонхыг нээхийг зөвшөөрсөн</translation> <translation id="5331069282670671859">Танд энэ ангилалд сертификат алга</translation> <translation id="5331568967879689647">ChromeOS системийн апп</translation> <translation id="5331975486040154427">USB-C төхөөрөмж (ард талын портны зүүн тал)</translation> @@ -5567,7 +5561,6 @@ <translation id="5473099001878321374">Үргэлжлүүлснээр та энэ төхөөрөмж нь мөн мобайл дата ашиглан Google, таны хүүхдийн оператор компани, уг төхөөрөмжийн үйлдвэрлэгчээс шинэчлэлт болон аппыг автоматаар татаж суулгаж болохыг зөвшөөрч байна. Эдгээр аппын зарим нь аппын худалдан авалтыг санал болгож магадгүй.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ПИН хамгийн багадаа 1 тэмдэгттэй байх ёстой}other{ПИН хамгийн багадаа # тэмдэгттэй байх ёстой}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> таныг одоо Wi-Fi-д холбогдож, шинэчлэлт татахыг шаардаж байна. Эсвэл хязгаартай холболтоос татаж авна уу (төлбөр гарч болзошгүй).</translation> -<translation id="5478520208448702555">Таныг өөр таб руу өөрчлөх үед сайтууд дэлгэц доторх дэлгэцийн цонхыг нээж магадгүй</translation> <translation id="5481273127572794904">Автоматаар олон файл татахыг зөвшөөрөөгүй</translation> <translation id="5481941284378890518">Ойролцоох хэвлэгчийг нэмэх</translation> <translation id="5484181871714116891">Асаалттай үед iCloud Keychain-д нэвтрэх түлхүүрүүд үүсгэдэг бөгөөд таны Apple төхөөрөмжүүдэд боломжтой байна. Унтраалттай үед энэ төхөөрөмж дээрх таны Chrome профайлд нэвтрэх түлхүүрүүдийг үүсгэдэг.</translation> @@ -5725,7 +5718,6 @@ <translation id="5600348067066185292">Суулгахад цөөн хэдэн хялбар алхам шаардлагатай. Таны компьютерт өөрчлөлт хийхээс өмнө танд баталгаажуулах дахин нэг боломж бий.</translation> <translation id="5600706100022181951">Шинэчлэлтийг <ph name="UPDATE_SIZE_MB" /> МБ эсвэл мобайл датагаар татна. Та үргэлжлүүлэх үү?</translation> <translation id="5601503069213153581">ПИН</translation> -<translation id="5601823921345337195">MIDI төхөөрөмжүүдэд холбогдохыг зөвшөөрөөгүй</translation> <translation id="5601833336918638013">Сайтуудад Bluetooth төхөөрөмж хайхыг бүү зөвшөөр</translation> <translation id="5602586420788540146">Шинэ табын бүлэгт нээх</translation> <translation id="5605758115928394442">Таныг мөн эсэхийг баталгаажуулах зорилгоор таны утсанд мэдэгдэл илгээсэн болно.</translation> @@ -5848,7 +5840,6 @@ <translation id="5707185214361380026">:-ээс өргөтгөлийг ачаалах ажиллагаа амжилтгүй боллоо.</translation> <translation id="5708171344853220004">Майкрософтын үндсэн нэр</translation> <translation id="5709557627224531708">Chrome-г өгөгдмөл хөтчөөрөө тохируулна уу</translation> -<translation id="5710122160114032242">Таныг өөр таб руу өөрчлөх үед дэлгэц доторх дэлгэцийн цонхыг нээхийг зөвшөөрөөгүй</translation> <translation id="5711010025974903573">Үйлчилгээний логууд</translation> <translation id="5711983031544731014">Түгжээг тайлах боломжгүй байна. Нууц үгээ оруулна уу.</translation> <translation id="5712153969432126546">Сайтууд заримдаа документ, гэрээ болон маягт зэрэг PDF-г нийтэлдэг</translation> @@ -6609,7 +6600,6 @@ <translation id="6326175484149238433">Chrome-оос устга</translation> <translation id="6326855256003666642">Сэрүүн байх үеийн тоолуур</translation> <translation id="6327785803543103246">Веб прокси автоматаар илрүүлэх</translation> -<translation id="6331818708794917058">Сайтууд MIDI төхөөрөмжүүдэд холбогдохыг хүсэх боломжтой</translation> <translation id="6333064448949140209">Файлыг дебаг хийхээр Google-д илгээж байна</translation> <translation id="6333170995003625229">Таны имэйл хаяг эсвэл нууц үгийг баталгаажуулж чадсангүй. Дахин нэвтрэхээр оролдоно уу.</translation> <translation id="6334267141726449402">Логуудыг цуглуулахын тулд энэ холбоосыг хуулаад хэрэглэгчид илгээнэ үү.</translation> @@ -6759,7 +6749,6 @@ <translation id="6458701200018867744">Байршуулж чадсангүй (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Хайлт хийхдээ сонголтыг ашиглана уу</translation> <translation id="6459799433792303855">Идэвхтэй цонхыг өөр дэлгэц рүү зөөсөн.</translation> -<translation id="6460566145397380451">MIDI төхөөрөмжүүдэд холбогдохыг зөвшөөрсөн</translation> <translation id="6460601847208524483">Дараагийнхыг хайж ол</translation> <translation id="6461170143930046705">Сүлжээ хайж байна...</translation> <translation id="6463795194797719782">&Засварлах</translation> @@ -7085,7 +7074,6 @@ <translation id="6735304988756581115">Cookies болон бусад сайтын мэдээллийг харуулах ...</translation> <translation id="6736243959894955139">Хаяг</translation> <translation id="6737663862851963468">Kerberos тасалбарыг хасах</translation> -<translation id="6737931010859480781">Энэ аппыг таны төхөөрөмжид урьдчилж суулгасан</translation> <translation id="6738180164164974883">Гуравдагч талын күүки тохируулахыг зөвшөөрөх</translation> <translation id="6738430949033571771">Бүртгэлийг баталгаажуулж байна...</translation> <translation id="6739923123728562974">Дэлгэцийн товчлолыг харуулах</translation> @@ -8478,7 +8466,6 @@ <translation id="7853747251428735">Бусад хэрэгсэл</translation> <translation id="7853999103056713222">Илүү аюулгүй нууц үг ашиглах</translation> <translation id="7855678561139483478">Табыг шинэ цонх руу зөөх</translation> -<translation id="7855729579456690716">Таныг өөр таб руу өөрчлөх үед сайтууд дэлгэц доторх дэлгэцийн цонхыг нээж болно</translation> <translation id="7857004848504343806">Таны компьютер ChromeOS Flex-д аюулгүй байдлын чухал онцлогуудыг хэрэгжүүлэхэд ашигладаг аюулгүй байдлын модуль агуулж байна. Нэмэлт мэдээлэл авах бол Chromebook-н Тусламжийн төвд зочилно уу: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Текстийн зөвлөмж</translation> <translation id="7857949311770343000">Энэ таны хүссэн шинэ хуудас мөн үү?</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 7b20ad2..3fa0380a 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> हे तुम्ही कसे साइन इन केले ते लक्षात ठेवते आणि शक्य असेल तेव्हा आपोआप साइन इन करते. बंद असताना, तुम्हाला प्रत्येक वेळी कंफर्मेशनसाठी विचारले जाईल.</translation> <translation id="1008544602823861396">यावर तुमची माहिती वापरण्यापासून ब्लॉक केले आहे</translation> <translation id="1008557486741366299">सध्या नाही</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{तुमच्या डेटाचे संरक्षण करण्यासाठी, तुम्ही दोन महिन्यांमध्ये भेट न दिलेल्या साइटवरील परवानग्या काढून टाकल्या आहेत}other{तुमच्या डेटाचे संरक्षण करण्यासाठी, तुम्ही दोन महिन्यांमध्ये भेट न दिलेल्या साइटवरील परवानग्या काढून टाकल्या आहेत}}</translation> <translation id="1009663062402466586">गेम नियंत्रणे आता उपलब्ध आहेत</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{प्रतिसाद देत नसलेले पेज}other{प्रतिसाद देत नसलेली पेज}}</translation> <translation id="1011003645819296594">सेव्ह केलेली डिव्हाइस</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">लिंक पत्ता कॉपी करा</translation> <translation id="1085064499066015002">सर्व साइटसाठी नेहमी सुरू</translation> <translation id="1085697365578766383">व्हर्च्युअल मशीन सुरू करताना एरर आली. कृपया पुन्हा प्रयत्न करा.</translation> -<translation id="1087965115100412394">साइटना MIDI डिव्हाइसशी कनेक्ट करण्याची अनुमती देऊ नका</translation> <translation id="1088659085457112967">वाचक मोडमध्ये एंटर करा</translation> <translation id="1090126737595388931">कोणतेही पार्श्वभूमी ॲप्लिकेशन चालत नाहीत</translation> <translation id="1090541560108055381">पेअर करण्यापूर्वी, हा कोड दोन्ही डिव्हाइसवर समान असल्याची खात्री करा</translation> @@ -3231,7 +3229,6 @@ <translation id="3551320343578183772">टॅब बंद करा</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">बाहेर पडताना साफ केले</translation> -<translation id="3553487194781590058">तुम्ही वेगळ्या टॅबवर बदलता, तेव्हा साइटना चित्रात-चित्र विंडो उघडण्याची अनुमती देऊ नका</translation> <translation id="3554493885489666172">तुमचे डिव्हाइस <ph name="PROFILE_NAME" /> द्वारे व्यवस्थापित केले आहे. अॅडमिनिस्ट्रेटर या डिव्हाइसवरील कोणत्याही प्रोफाइलचा डेटा ॲक्सेस करू शकतो.</translation> <translation id="3555812735919707620">एक्स्टेंशन काढून टाका</translation> <translation id="3557101512409028104">Family Link सह वेबसाइटवरील बंधने आणि स्क्रीन वेळ मर्यादा सेट करा</translation> @@ -3790,7 +3787,6 @@ <translation id="3975201861340929143">स्पष्टीकरण</translation> <translation id="3975565978598857337">क्षेत्रासाठी सर्व्हरशी कनेक्ट करता आले नाही</translation> <translation id="3976108569178263973">तेथे कोणतेही प्रिंटर उपलब्ध नाहीत.</translation> -<translation id="3976244126942806443">संगीत तयार आणि संपादित करण्यासाठी साइट सहसा MIDI डिव्हाइसशी कनेक्ट करतात</translation> <translation id="397703832102027365">पूर्ण करीत आहे...</translation> <translation id="3977145907578671392">काही साइटवरील वैशिष्ट्ये कदाचित गुप्त मोडमध्ये काम करणार नाहीत</translation> <translation id="3977886311744775419">या नेटवर्क प्रकारावर आपोआप अपडेट डाउनलोड होत नाहीत पण तुम्ही मॅन्युअली अपडेट पाहू शकता.</translation> @@ -4689,7 +4685,6 @@ <translation id="4730492586225682674">लॉक स्क्रीनवर स्टायलस नवीनतम टीप</translation> <translation id="4730888769809690665"><ph name="SITE" /> साठी सूचनांना अनुमती आहे</translation> <translation id="4731306954230393087">वापरकर्त्याने तुमच्याबद्दल सेव्ह केलेली माहिती वापरण्याची अनुमती दिली आहे</translation> -<translation id="473140019006744096">हे अपडेट पूर्ण करण्यासाठी, या डिव्हाइसवर पुरेशी जागा नाही. तुमच्या डिव्हाइसवर <ph name="NECESSARY_SPACE" /> साफ करा आणि पुन्हा प्रयत्न करा.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (शिल्लक)</translation> <translation id="4733793249294335256">स्थान</translation> <translation id="473546211690256853">हे खाते <ph name="DOMAIN" /> द्वारे व्यवस्थापित केले आहे</translation> @@ -5391,7 +5386,6 @@ <translation id="5327912693242073631">सूचनांची आवश्यकता असलेली वैशिष्ट्ये काम करणार नाहीत</translation> <translation id="532943162177641444">तुम्ही या डिव्हाइसने वापरू शकत असलेले मोबाइल हॉटस्पॉट सेट अप करण्यासाठी तुमच्या <ph name="PHONE_NAME" />वरील सूचनेवर टॅप करा.</translation> <translation id="5329858601952122676">&हटवा</translation> -<translation id="5330592967519769658">तुम्ही वेगळ्या टॅबवर बदलता, तेव्हा चित्रात-चित्र विंडो उघडण्याची अनुमती आहे</translation> <translation id="5331069282670671859">तुमच्याकडे या श्रेणीतील कोणतीही प्रमाणपत्रे नाहीत</translation> <translation id="5331568967879689647">ChromeOS सिस्टीम अॅप</translation> <translation id="5331975486040154427">USB-C डिव्हाइस (डाव्या बाजूचे मागील पोर्ट)</translation> @@ -5569,7 +5563,6 @@ <translation id="5473099001878321374">पुढे सुरू ठेवून, तुम्ही सहमती दर्शवता, की हे डिव्हाइस कदाचित मोबाइल डेटा वापरून Google, तुमच्या लहान मुलाचा वाहक आणि या डिव्हाइसचा उत्पादक यांच्याकडून अपडेट व अॅप्स आपोआप डाउनलोड आणि इंस्टॉलदेखील करू शकेल. यांपैकी काही अॅप्स अॅपमधील खरेदी करण्याचा पर्याय देऊ शकतात.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{पिन हा किमान एका वर्णाचा असणे आवश्यक आहे}other{पिन हा किमान # वर्णांचा असणे आवश्यक आहे}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> नुसार तुम्ही आता वाय-फायशी कनेक्ट करून अपडेट डाउनलोड करणे आवश्यक आहे. किंवा मर्यादित कनेक्शनमधून डाउनलोड करा (शुल्क लागू शकते).</translation> -<translation id="5478520208448702555">तुम्ही वेगळ्या टॅबवर बदलता, तेव्हा साइट कदाचित चित्रात-चित्र विंडो उघडू शकतात</translation> <translation id="5481273127572794904">एकाहून अधिक फाइल आपोआप डाउनलोड करण्याची अनुमती नाही</translation> <translation id="5481941284378890518">जवळपासचे प्रिंटर जोडा</translation> <translation id="5484181871714116891">सुरू असताना, पासकी या iCloud Keychain मध्ये तयार केल्या जातात आणि तुमच्या सर्व Apple डिव्हाइसवर उपलब्ध असतात. बंद असताना, पासकी या डिव्हाइसवरील तुमच्या Chrome प्रोफाइलमध्ये तयार केल्या जातात.</translation> @@ -5727,7 +5720,6 @@ <translation id="5600348067066185292">इंस्टॉलेशनसाठी काही सोप्या पायऱ्या लागतात. तुमच्या काँप्युटरमध्ये बदल केले जाण्यापूर्वी तुमच्याकडे कंफर्म करण्यासाठी दुसरी संधी असेल.</translation> <translation id="5600706100022181951">अपडेट <ph name="UPDATE_SIZE_MB" /> MB मोबाइल डेटा वापरून डाउनलोड केले जाईल. तुम्हाला सुरू ठेवायचे आहे का?</translation> <translation id="5601503069213153581">पिन</translation> -<translation id="5601823921345337195">MIDI डिव्हाइसशी कनेक्ट करण्याची अनुमती नाही</translation> <translation id="5601833336918638013">साइटना ब्लूटूथ डिव्हाइस शोधण्याची अनुमती देऊ नका</translation> <translation id="5602586420788540146">नवीन टॅब गटामध्ये उघडा</translation> <translation id="5605758115928394442">ते तुम्हीच आहात हे निश्चित करण्यासाठी तुमच्या फोनवर सूचना पाठवली होती.</translation> @@ -5849,7 +5841,6 @@ <translation id="5707185214361380026">यावरून एक्स्टेंशन लोड करण्यात अयशस्वी:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chrome ला तुमचा डीफॉल्ट ब्राउझर म्हणून सेट करा</translation> -<translation id="5710122160114032242">तुम्ही वेगळ्या टॅबवर बदलता, तेव्हा चित्रात-चित्र विंडो उघडण्यास अनुमती नाही</translation> <translation id="5711010025974903573">सेवा लॉग</translation> <translation id="5711983031544731014">अनलॉक करता आले नाही. तुमचा पासवर्ड एंटर करा.</translation> <translation id="5712153969432126546">साइट काहीवेळा दस्तऐवज, करार आणि फॉर्म यांसारख्या PDF प्रकाशित करतात</translation> @@ -6612,7 +6603,6 @@ <translation id="6326175484149238433">Chrome मधून काढून टाका</translation> <translation id="6326855256003666642">Keepalive गणना</translation> <translation id="6327785803543103246">वेब प्रॉक्सी स्वयं शोध</translation> -<translation id="6331818708794917058">साइट MIDI डिव्हाइसशी कनेक्ट करण्यासाठी विचारू शकतात</translation> <translation id="6333064448949140209">फाइल डीबग करण्यासाठी Google कडे पाठवली जाईल</translation> <translation id="6333170995003625229">तुमचा ईमेल अॅड्रेस किंवा पासवर्डची पडताळणी करता आली नाही. पुन्हा साइन इन करून पहा.</translation> <translation id="6334267141726449402">लॉग गोळा करण्यासाठी वापरकर्त्याला ही लिंक कॉपी करून पाठवा.</translation> @@ -6762,7 +6752,6 @@ <translation id="6458701200018867744">अपलोड करता आले नाही (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">शोधण्यासाठी निवड वापरा</translation> <translation id="6459799433792303855">ॲक्टिव्ह विंडो दुसऱ्या डिस्प्लेवर हलवली आहे.</translation> -<translation id="6460566145397380451">MIDI डिव्हाइसशी कनेक्ट करण्याची अनुमती आहे</translation> <translation id="6460601847208524483">पुढील शोधा</translation> <translation id="6461170143930046705">नेटवर्क शोधत आहे...</translation> <translation id="6463795194797719782">&संपादन</translation> @@ -7088,7 +7077,6 @@ <translation id="6735304988756581115">कुकीज आणि इतर साइट डेटा दर्शवा...</translation> <translation id="6736243959894955139">पत्ता</translation> <translation id="6737663862851963468">Kerberos तिकीट काढा</translation> -<translation id="6737931010859480781">हे अॅप तुमच्या डिव्हाइसवर प्रीइंस्टॉल केलेले आहे</translation> <translation id="6738180164164974883">तृतीय पक्ष कुकी सेट करण्याची अनुमती द्या</translation> <translation id="6738430949033571771">खात्याची पडताळणी करत आहे...</translation> <translation id="6739923123728562974">डेस्कटॉप शॉर्टकट दर्शवा</translation> @@ -8481,7 +8469,6 @@ <translation id="7853747251428735">अधिक साध&ने</translation> <translation id="7853999103056713222">आणखी सुरक्षित पासवर्ड वापरा</translation> <translation id="7855678561139483478">टॅब नवीन विंडोवर हलवा</translation> -<translation id="7855729579456690716">तुम्ही वेगळ्या टॅबवर बदलता, तेव्हा साइट चित्रात-चित्र विंडो उघडू शकतात</translation> <translation id="7857004848504343806">तुमच्या कॉंप्युटरमध्ये सुरक्षित मॉड्युल आहे, जे ChromeOS Flex मध्ये अनेक महत्त्वाची सुरक्षा वैशिष्ट्ये लागू करण्यासाठी वापरले जाते. अधिक जाणून घेण्यासाठी Chromebook मदत केंद्र ला भेट द्या: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">मजकुराबाबत सूचना</translation> <translation id="7857949311770343000">तुम्हाला हवे असलेले हे नवीन टॅब पेज आहे का?</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 0f371de0..0b7326d 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> mengingat cara anda log masuk dan secara automatik akan log masuk anda jika dibolehkan. Apabila tetapan dimatikan, anda akan diminta untuk memberikan pengesahan setiap kali sebelum log masuk.</translation> <translation id="1008544602823861396">disekat daripada menggunakan maklumat anda pada</translation> <translation id="1008557486741366299">Bukan Sekarang</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Untuk melindungi data anda, kebenaran telah dialih keluar daripada laman yang tidak anda lawati selama 2 bulan}other{Untuk melindungi data anda, kebenaran telah dialih keluar daripada laman yang tidak anda lawati selama 2 bulan}}</translation> <translation id="1009663062402466586">Kini kawalan permainan tersedia</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Halaman Tidak Responsif}other{Halaman Tidak Responsif}}</translation> <translation id="1011003645819296594">Peranti disimpan</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Salin alamat pau&tan</translation> <translation id="1085064499066015002">Sentiasa pada semua laman</translation> <translation id="1085697365578766383">Ralat semasa memulakan mesin maya. Sila cuba lagi.</translation> -<translation id="1087965115100412394">Jangan benarkan laman menyambung kepada peranti MIDI</translation> <translation id="1088659085457112967">Masuk ke Mod Pembaca</translation> <translation id="1090126737595388931">Tiada Apl Latar Belakang Dijalankan</translation> <translation id="1090541560108055381">Sebelum memasangkan, pastikan kod ini sama pada kedua-dua peranti</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">Tutup Tab</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Dikosongkan semasa Keluar</translation> -<translation id="3553487194781590058">Jangan benarkan laman membuka tetingkap gambar dalam gambar apabila anda menukar kepada tab berbeza</translation> <translation id="3554493885489666172">Peranti anda diurus oleh <ph name="PROFILE_NAME" />. Pentadbir dapat mengakses data dalam mana-mana profil pada peranti ini.</translation> <translation id="3555812735919707620">Alih keluar pelanjutan</translation> <translation id="3557101512409028104">Tetapkan sekatan laman web & had masa skrin menggunakan Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Penjelasan</translation> <translation id="3975565978598857337">Gagal menghubungi pelayan untuk realma</translation> <translation id="3976108569178263973">Pencetak tidak tersedia.</translation> -<translation id="3976244126942806443">Laman biasanya menyambung kepada peranti MIDI untuk menghasilkan dan mengedit muzik</translation> <translation id="397703832102027365">Menyelesaikan...</translation> <translation id="3977145907578671392">Ciri pada sesetengah laman mungkin tidak berfungsi dalam Inkognito</translation> <translation id="3977886311744775419">Kemas kini automatik tidak memuat turun pada jenis rangkaian ini, tetapi anda boleh menyemak kemas kini secara manual.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Nota terkini stilus pada skrin kunci</translation> <translation id="4730888769809690665">Pemberitahuan dibenarkan untuk <ph name="SITE" /></translation> <translation id="4731306954230393087">Dibenarkan menggunakan maklumat yang disimpan tentang anda</translation> -<translation id="473140019006744096">Ruang pada peranti ini tidak mencukupi untuk menyelesaikan kemaskinian ini. Kosongkan <ph name="NECESSARY_SPACE" /> pada peranti anda dan cuba lagi.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Kiri)</translation> <translation id="4733793249294335256">Lokasi</translation> <translation id="473546211690256853">Akaun ini diuruskan oleh <ph name="DOMAIN" />.</translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">Ciri yang memerlukan pemberitahuan tidak akan berfungsi</translation> <translation id="532943162177641444">Ketik pemberitahuan pada <ph name="PHONE_NAME" /> anda untuk menyediakan tempat liputan mudah alih yang boleh digunakan oleh peranti ini.</translation> <translation id="5329858601952122676">&Padam</translation> -<translation id="5330592967519769658">Dibenarkan untuk membuka tetingkap gambar dalam gambar apabila anda menukar kepada tab berbeza</translation> <translation id="5331069282670671859">Anda tiada sijil dalam kategori ini</translation> <translation id="5331568967879689647">Apl Sistem Chrome OS</translation> <translation id="5331975486040154427">Peranti USB-C (port belakang sebelah kiri)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">Dengan meneruskan penggunaan, anda bersetuju bahawa peranti ini juga mungkin memuat turun dan memasang kemas kini dan apl daripada Google, pembawa anak anda dan pengeluar peranti ini secara automatik dan mungkin menggunakan data selular. Sesetengah apl ini mungkin menawarkan pembelian dalam apl.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN mestilah sekurang-kurangnya satu aksara}other{PIN mestilah sekurang-kurangnya # aksara}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> menghendaki anda menyambung kepada Wi-Fi sekarang dan memuat turun kemaskinian. Atau, muat turun daripada sambungan bermeter (caj mungkin dikenakan).</translation> -<translation id="5478520208448702555">Laman mungkin membuka tetingkap gambar dalam gambar apabila anda menukar kepada tab berbeza</translation> <translation id="5481273127572794904">Tidak dibenarkan untuk memuat turun berbilang fail secara automatik</translation> <translation id="5481941284378890518">Tambahkan Pencetak Berdekatan</translation> <translation id="5484181871714116891">Apabila dihidupkan, kunci laluan dibuat dalam iCloud Keychain dan tersedia merentas semua peranti Apple anda. Apabila dimatikan, kunci laluan dibuat dalam profil Chrome anda pada peranti ini.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">Pemasangan memerlukan beberapa langkah mudah. Anda akan diberikan satu lagi peluang untuk mengesahkan sebelum perubahan dibuat pada komputer anda.</translation> <translation id="5600706100022181951">Kemas kini akan dimuat turun menggunakan <ph name="UPDATE_SIZE_MB" /> MB data mudah alih. Adakah anda ingin meneruskan?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Tidak dibenarkan untuk menyambung kepada peranti MIDI</translation> <translation id="5601833336918638013">Jangan benarkan laman mencari peranti Bluetooth</translation> <translation id="5602586420788540146">Buka dalam kumpulan tab baharu</translation> <translation id="5605758115928394442">Pemberitahuan telah dihantar ke telefon anda untuk mengesahkan orang itu ialah anda.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">Gagal memuatkan sambungan daripada:</translation> <translation id="5708171344853220004">Nama Utama Microsoft</translation> <translation id="5709557627224531708">Tetapkan Chrome sebagai penyemak imbas lalai anda</translation> -<translation id="5710122160114032242">Tidak dibenarkan untuk membuka tetingkap gambar dalam gambar apabila anda menukar kepada tab berbeza</translation> <translation id="5711010025974903573">Log perkhidmatan</translation> <translation id="5711983031544731014">Tidak dapat membuka kunci. Masukkan kata laluan anda.</translation> <translation id="5712153969432126546">Kadangkala laman menerbitkan PDF, seperti dokumen, kontrak dan borang</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Alih keluar dari Chrome</translation> <translation id="6326855256003666642">Kiraan Pengekal</translation> <translation id="6327785803543103246">Autopenemuan proksi web</translation> -<translation id="6331818708794917058">Tapak boleh meminta untuk menyambung kepada peranti MIDI</translation> <translation id="6333064448949140209">Fail akan dihantar kepada Google untuk dinyahpepijat</translation> <translation id="6333170995003625229">Alamat e-mel atau kata laluan anda tidak dapat disahkan. Cuba log masuk semula.</translation> <translation id="6334267141726449402">Salin dan hantar pautan ini kepada pengguna untuk mengumpul log.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">Muat naik gagal (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Use Selection for Find</translation> <translation id="6459799433792303855">Tetingkap aktif dialihkan ke paparan lain.</translation> -<translation id="6460566145397380451">Dibenarkan untuk menyambung kepada peranti MIDI</translation> <translation id="6460601847208524483">Cari Seterusnya</translation> <translation id="6461170143930046705">Mencari rangkaian...</translation> <translation id="6463795194797719782">&Edit</translation> @@ -7090,7 +7079,6 @@ <translation id="6735304988756581115">Tunjukkan kuki dan data tapak yang lain...</translation> <translation id="6736243959894955139">Alamat</translation> <translation id="6737663862851963468">Alih keluar tiket Kerberos</translation> -<translation id="6737931010859480781">Apl ini telah diprapasang pada peranti anda</translation> <translation id="6738180164164974883">Benarkan penetapkan kuki pihak ketiga</translation> <translation id="6738430949033571771">Mengesahkan akaun...</translation> <translation id="6739923123728562974">Tunjukkan pintasan desktop</translation> @@ -8485,7 +8473,6 @@ <translation id="7853747251428735">Lagi Al&atan</translation> <translation id="7853999103056713222">Gunakan Kata Laluan yang Lebih Selamat</translation> <translation id="7855678561139483478">Alihkan tab ke tetingkap baharu</translation> -<translation id="7855729579456690716">Laman boleh membuka tetingkap gambar dalam gambar apabila anda menukar kepada tab berbeza</translation> <translation id="7857004848504343806">Komputer anda mengandungi modul selamat, yang digunakan untuk melaksanakan banyak ciri keselamatan penting dalam Chrome OS Flex. Lawati Pusat Bantuan Chromebook untuk mengetahui lebih lanjut: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Cadangan teks</translation> <translation id="7857949311770343000">Adakah ini halaman tab baharu yang anda jangkakan?</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index 9bbebae..b823c89e3 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> က သင်လက်မှတ်ထိုးဝင်ပုံကို မှတ်ထားပြီး ရနိုင်တိုင်း အလိုအလျောက် လက်မှတ်ထိုးဝင်ပေးသည်။ ပိတ်ထားပါက အကြိမ်တိုင်း အတည်ပြုချက် တောင်းပါမည်။</translation> <translation id="1008544602823861396">ဤဝဘ်ဆိုက်ကို သင့်အချက်အလက်သုံးခွင့် ပိတ်ထားသည်</translation> <translation id="1008557486741366299">ယခု မလို</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{သင့်ဒေတာကို ကာကွယ်ရန် ၂ လကြာ သင်ဝင်ကြည့်ခြင်းမရှိသည့် ဝဘ်ဆိုက်ထံမှ ခွင့်ပြုချက်များကို ဖယ်ရှားလိုက်သည်}other{သင့်ဒေတာကို ကာကွယ်ရန် ၂ လကြာ သင်ဝင်ကြည့်ခြင်းမရှိသည့် ဝဘ်ဆိုက်များထံမှ ခွင့်ပြုချက်များကို ဖယ်ရှားလိုက်သည်}}</translation> <translation id="1009663062402466586">ဂိမ်းထိန်းချုပ်ခလုတ်များ ယခုသုံးနိုင်ပြီ</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{စာမျက်နှာ တုံ့ပြန်မှုနှေးကွေးသည်}other{စာမျက်နှာများ တုံ့ပြန်မှုနှေးကွေးသည်}}</translation> <translation id="1011003645819296594">သိမ်းထားသည့် စက်ပစ္စည်းများ</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">လင့်ခ်လိပ်စာကူးယူရန်</translation> <translation id="1085064499066015002">ဝဘ်ဆိုက်အားလုံးတွင် အမြဲဖွင့်ထားရန်</translation> <translation id="1085697365578766383">ပကတိအသွင်စက်စနစ် စတင်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။</translation> -<translation id="1087965115100412394">MIDI ကိရိယာများနှင့် ချိတ်ဆက်ရန် ဝဘ်ဆိုက်များကို ခွင့်မပြုပါနှင့်</translation> <translation id="1088659085457112967">'စာဖတ်သူမုဒ်' ဝင်ရန်</translation> <translation id="1090126737595388931">မည်သည့် နောက်ခံ အက်ပ်ပွင့်နေခြင်း မရှိပါ</translation> <translation id="1090541560108055381">မတွဲချိတ်မီ စက်နှစ်ခုစလုံးပေါ်တွင် ဤကုဒ်တူညီကြောင်း သေချာပါစေ</translation> @@ -3240,7 +3238,6 @@ <translation id="3551320343578183772">တဘ် ပိတ်ရန်</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">ထွက်သည့်အခါ ဖယ်ရှားထားသည်</translation> -<translation id="3553487194781590058">အခြားတဘ်သို့ သင်ပြောင်းသောအခါ ဝဘ်ဆိုက်များအား နှစ်ခုထပ်၍ကြည့်ခြင်း ဝင်းဒိုးဖွင့်ခွင့်မပြုရန်</translation> <translation id="3554493885489666172">သင့်စက်ပစ္စည်းကို <ph name="PROFILE_NAME" /> က စီမံခန့်ခွဲသည်။ စီမံခန့်ခွဲသူများက ဤစက်ပေါ်ရှိ ပရိုဖိုင်အားလုံးမှ ဒေတာများကို ဝင်ကြည့်နိုင်သည်။</translation> <translation id="3555812735919707620">တိုးချဲ့မှုကို ဖယ်ရှားရန်</translation> <translation id="3557101512409028104">Family Link ဖြင့် ဝဘ်ဆိုက် ကန့်သတ်ချက်များနှင့် အသုံးပြုချိန် ကန့်သတ်ချက်များ သတ်မှတ်ရန်</translation> @@ -3798,7 +3795,6 @@ <translation id="3975201861340929143">ရှင်းလင်းချက်</translation> <translation id="3975565978598857337">အဖွဲ့အစည်းအတွက် ဆာဗာသို့ ချိတ်ဆက်၍ မရပါ</translation> <translation id="3976108569178263973">ရနိုင်သော ပုံနှိပ်စက်များ မရှိပါ။</translation> -<translation id="3976244126942806443">သီချင်းဖန်တီးခြင်းနှင့် တည်းဖြတ်ခြင်းတို့အတွက် MIDI ကိရိယာများသို့ ဝဘ်ဆိုက်များက ချိတ်ဆက်လေ့ရှိသည်</translation> <translation id="397703832102027365">အဆုံးသတ်နေ...</translation> <translation id="3977145907578671392">‘ရုပ်ဖျက်မုဒ်’ တွင် အချို့ဝဘ်ဆိုက်များရှိ ဝန်ဆောင်မှုများ အလုပ်မလုပ်နိုင်ပါ</translation> <translation id="3977886311744775419">ဤကွန်ရက်အမျိုးအစားတွင် အလိုအလျောက် အပ်ဒိတ်များကို ဒေါင်းလုဒ်မလုပ်သော်လည်း အပ်ဒိတ်များကို ကိုယ်တိုင်စစ်ဆေးနိုင်သည်။</translation> @@ -4699,7 +4695,6 @@ <translation id="4730492586225682674">လော့ခ်ချထားချိန် မျက်နှာပြင်ရှိ စတိုင်လပ်စ် နောက်ဆုံးမှတ်စု</translation> <translation id="4730888769809690665"><ph name="SITE" /> အတွက် အကြောင်းကြားချက်ကို ခွင့်ပြုထားသည်</translation> <translation id="4731306954230393087">၎င်းတို့ သိမ်းထားသော သင့်အချက်အလက်ကို အမြဲသုံးခွင့်ပြုထားသည်</translation> -<translation id="473140019006744096">ဤအပ်ဒိတ်အပြီးသတ်ရန် ယခုစက်တွင် နေရာမလောက်ပါ။ သင့်စက်တွင် <ph name="NECESSARY_SPACE" /> ရှင်းထုတ်ပြီး ထပ်စမ်းကြည့်ပါ။</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ဘယ်)</translation> <translation id="4733793249294335256">တည်နေရာ</translation> <translation id="473546211690256853">ဒီအကောင့်ကို <ph name="DOMAIN" />မှ စီမံကွပ်ကဲသည်</translation> @@ -5401,7 +5396,6 @@ <translation id="5327912693242073631">အကြောင်းကြားချက်လိုအပ်သော ဝန်ဆောင်မှုများ အလုပ်လုပ်မည်မဟုတ်ပါ</translation> <translation id="532943162177641444">ဤစက်ပစ္စည်းက အသုံးပြုနိုင်သော မိုဘိုင်းဟော့စပေါ့ကို သတ်မှတ်ရန် သင့် <ph name="PHONE_NAME" /> ရှိ အကြောင်းကြားချက်ကို တို့ပါ။</translation> <translation id="5329858601952122676">&ဖျက်ရန်</translation> -<translation id="5330592967519769658">အခြားတဘ်သို့ သင်ပြောင်းသောအခါ နှစ်ခုထပ်၍ကြည့်ခြင်း ဝင်းဒိုးဖွင့်ရန် ခွင့်ပြုထားသည်</translation> <translation id="5331069282670671859">သင့်ထံတွင် ဤအမျိုးအစားအတွက် အသိအမှတ်ပြုလက်မှတ် တစ်ခုမျှမရှိပါ။</translation> <translation id="5331568967879689647">ChromeOS စနစ်အက်ပ်</translation> <translation id="5331975486040154427">USB-C ကိရိယာ (ကျောဘက် ဘယ် ပို့တ်)</translation> @@ -5579,7 +5573,6 @@ <translation id="5473099001878321374">ရှေ့ဆက်ခြင်းအားဖြင့် ဤစက်ပစ္စည်းသည် Google၊ သင့်ကလေး၏ ဖုန်းဝန်ဆောင်မှုပေးသူနှင့် ဤစက်ပစ္စည်း ထုတ်လုပ်သူတို့ထံမှ အပ်ဒိတ်များနှင့် အက်ပ်များကို အလိုအလျောက် ဒေါင်းလုဒ်လုပ်၍ ထည့်သွင်းနိုင်ကြောင်းကို သင်က သဘောတူရာ ရောက်ပြီး ယင်းသို့ထည့်သွင်းရာတွင် ဆယ်လူလာ ဒေတာအသုံးပြုနိုင်ပါသည်။ အချို့သော အက်ပ်များတွင် အက်ပ်အတွင်းဝယ်ယူခြင်းများကို ကမ်းလှမ်းနိုင်သည်။</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ပင်နံပါတ်တွင် အနည်းဆုံးအက္ခရာ 1 လုံး ပါရမည်}other{ပင်နံပါတ်တွင် အနည်းဆုံးအက္ခရာ # လုံး ပါရမည်}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> က Wi-Fi သို့ ယခုချိတ်ဆက်ပြီး အပ်ဒိတ်ကို ဒေါင်းလုဒ်လုပ်စေလိုသည်။ သို့မဟုတ် အခမဲ့ မဟုတ်သော ချိတ်ဆက်မှုမှ ဒေါင်းလုဒ်လုပ်ပါ (ဒေတာသုံးစွဲခ ကျသင့်နိုင်သည်)။</translation> -<translation id="5478520208448702555">အခြားတဘ်သို့ သင်ပြောင်းသောအခါ ဝဘ်ဆိုက်များသည် နှစ်ခုထပ်၍ကြည့်ခြင်း ဝင်းဒိုးဖွင့်နိုင်လောက်သည်</translation> <translation id="5481273127572794904">ဖိုင်အများအပြား အလိုအလျောက်ဒေါင်းလုဒ်လုပ်ရန် ခွင့်ပြုမထားပါ</translation> <translation id="5481941284378890518">အနီးတဝိုက်ရှိ ပုံနှိပ်စက်များကို ထည့်ပါ</translation> <translation id="5484181871714116891">ဖွင့်ထားပါက iCloud Keychain တွင် လျှို့ဝှက်ကီးများကို ပြုလုပ်ပြီး သင်၏ Apple စက်များတွင် သုံးနိုင်သည်။ ပိတ်ထားပါက ဤစက်ပေါ်ရှိ သင့် Chrome ပရိုဖိုင်တွင် လျှို့ဝှက်ကီးများကို ပြုလုပ်ပါသည်။</translation> @@ -5737,7 +5730,6 @@ <translation id="5600348067066185292">ထည့်သွင်းရန် လွယ်ကူသောအဆင့်အနည်းငယ် ပြုလုပ်ရမည်။ သင့်ကွန်ပျူတာကို ပြောင်းလဲမှုမပြုလုပ်မီ အတည်ပြုရန် နောက်တစ်ကြိမ် တောင်းဆိုပါမည်။</translation> <translation id="5600706100022181951">အပ်ဒိတ်ကို ဒေါင်းလုဒ်လုပ်ရန် မိုဘိုင်းဒေတာ <ph name="UPDATE_SIZE_MB" /> MB ကို သုံးပါမည်။ ရှေ့ဆက်လိုပါသလား။</translation> <translation id="5601503069213153581">ပင်နံပါတ်</translation> -<translation id="5601823921345337195">MIDI ကိရိယာများသို့ ချိတ်ဆက်ရန် ခွင့်ပြုမထားပါ</translation> <translation id="5601833336918638013">ဘလူးတုသ်သုံးစက်များ ရှာရန် ဝဘ်ဆိုက်များကို ခွင့်မပြုပါနှင့်</translation> <translation id="5602586420788540146">တဘ်အုပ်စုအသစ်တွင် ဖွင့်ရန်</translation> <translation id="5605758115928394442">သင်ဖြစ်ကြောင်း အတည်ပြုရန် သင့်ဖုန်းသို့ အကြောင်းကြားချက်တစ်ခု ပို့ထားသည်။</translation> @@ -5860,7 +5852,6 @@ <translation id="5707185214361380026">မှ အိတ်စတန်းရှင်း ဖွင့်ခြင်း မအောင်မြင်ပါ:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chromium ကို သင်၏မူရင်းဘရောင်ဇာအဖြစ် သတ်မှတ်ပါ</translation> -<translation id="5710122160114032242">အခြားတဘ်သို့ သင်ပြောင်းသောအခါ နှစ်ခုထပ်၍ကြည့်ခြင်း ဝင်းဒိုးဖွင့်ရန် ခွင့်ပြုမထားပါ</translation> <translation id="5711010025974903573">ဝန်ဆောင်မှု မှတ်တမ်းများ</translation> <translation id="5711983031544731014">သော့ဖွင့် မရပါ။ သင်၏ စကားဝှက်ကို ရိုက်ထည့်ပါ။</translation> <translation id="5712153969432126546">ဝဘ်ဆိုက်များသည် စာရွက်စာတမ်း၊ စာချုပ်နှင့် ဖောင်များကဲ့သို့ PDF များကို တစ်ခါတစ်ရံ ထုတ်ဝေသည်</translation> @@ -6622,7 +6613,6 @@ <translation id="6326175484149238433">Chrome ထဲမှ ဖယ်ရှားပစ်ရန်</translation> <translation id="6326855256003666642">Keepalive အရေအတွက်</translation> <translation id="6327785803543103246">ဝဘ်ပရောက်စီ အလိုအလျောက် ရှာဖွေမှု</translation> -<translation id="6331818708794917058">ဝဘ်ဆိုက်များက MIDI ကိရိယာများသို့ ချိတ်ဆက်လိုပါက ခွင့်တောင်းနိုင်သည်</translation> <translation id="6333064448949140209">အမှားရှာဖွေရန် ဖိုင်ကို Google သို့ ပို့လိုက်ပါမည်</translation> <translation id="6333170995003625229">သင့်အီးမေးလ်လိပ်စာ (သို့) စကားဝှက်ကို အတည်ပြု၍ မရပါ။ ထပ်မံ၍ လက်မှတ်ထိုးဝင်ကြည့်ပါ။</translation> <translation id="6334267141726449402">မှတ်တမ်းများစုဆောင်းရန် ဤလင့်ခ်ကို မိတ္တူကူးပြီး အသုံးပြုသူထံ ပို့ပါ။</translation> @@ -6772,7 +6762,6 @@ <translation id="6458701200018867744">အပ်လုဒ်လုပ်ခြင်း မအောင်မြင်ပါ (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)။</translation> <translation id="6459488832681039634">ရှာဖွေမှု အတွက် ရွေးချယ်ခြင်းအသုံးပြုရန်</translation> <translation id="6459799433792303855">လက်ရှိဖွင့်ထားသည့်ဝင်းဒိုးကို အခြားမျက်နှာပြင်ပြသမှုသို့ ရွှေ့ထားသည်။</translation> -<translation id="6460566145397380451">MIDI ကိရိယာများသို့ ချိတ်ဆက်ရန် ခွင့်ပြုထားသည်</translation> <translation id="6460601847208524483">နောက်တစ်ခုရှာ</translation> <translation id="6461170143930046705">ကွန်ရက်များကို ရှာဖွေနေသည်...</translation> <translation id="6463795194797719782">&တည်းဖြတ်ရန်</translation> @@ -7097,7 +7086,6 @@ <translation id="6735304988756581115">ကူကီးများ နှင့် အခြား ဆိုက် ဒေတာကို ပြရန်</translation> <translation id="6736243959894955139">လိပ်စာ</translation> <translation id="6737663862851963468">Kerberos လက်မှတ် ဖယ်ရှားရန်</translation> -<translation id="6737931010859480781">ဤအက်ပ်ကို သင့်စက်တွင် ကြိုတင်ထည့်သွင်းထားသည်</translation> <translation id="6738180164164974883">ပြင်ပကုမ္ပဏီကွတ်ကီးများကို ခွင့်ပြုရန်</translation> <translation id="6738430949033571771">အကောင့် အတည်ပြုနေသည်...</translation> <translation id="6739923123728562974">ဒက်စ်တော့ ဖြတ်လမ်းလင့်ခ်ကို ပြရန်</translation> @@ -8493,7 +8481,6 @@ <translation id="7853747251428735">ပိုမိုသော ကိရိ&ယာများ</translation> <translation id="7853999103056713222">‘ပိုလုံခြုံသည့် စကားဝှက်’ ကိုသုံးနိုင်သည်</translation> <translation id="7855678561139483478">တဘ်ကို ဝင်းဒိုးအသစ်သို့ ရွှေ့ခြင်း</translation> -<translation id="7855729579456690716">အခြားတဘ်သို့ သင်ပြောင်းသောအခါ ဝဘ်ဆိုက်များသည် နှစ်ခုထပ်၍ကြည့်ခြင်း ဝင်းဒိုးဖွင့်နိုင်သည်</translation> <translation id="7857004848504343806">သင့်ကွန်ပျူတာတွင် ChromeOS Flex ရှိ အရေးပါသော လုံခြုံရေးဝန်ဆောင်မှုများစွာ ဆောင်ရွက်ရာတွင် အသုံးပြုသည့် လုံခြုံရေး မော်ဂျူး ပါဝင်သည်။ ပိုမိုလေ့လာရန် Chromebook ကူညီရေးဌာနကို ဝင်ကြည့်ပါ- https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">စာသား အကြံပြုချက်များ</translation> <translation id="7857949311770343000">သင့် စောင့်မျှော်နေခဲ့သည်မှာ ဒီတဲဘ် စာမျက်နှာ အသစ်လား?</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index 1ed7a47..cca9463 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> ले तपाईंले कसरी साइन इन गर्नुभयो भन्ने कुरा याद गर्छ र सम्भव हुँदा तपाईंलाई स्वतः साइन इन गराउँछ। यो सुविधा अफ भएका बेलामा तपाईंलाई हरेक पटक पुष्टि गर्न लगाइने छ।</translation> <translation id="1008544602823861396">लाई तपाईंको जानकारी प्रयोग गर्ने अनुमति दिइएको छैन</translation> <translation id="1008557486741366299">अहिले होइन</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{तपाईंका डेटाको सुरक्षार्थ तपाईंले २ महिनादेखि नखोलेको साइटलाई दिइएका अनुमति रद्द गरिएका छन्}other{तपाईंका डेटाको सुरक्षार्थ तपाईंले २ महिनादेखि नखोलेका साइटहरूलाई दिइएका अनुमति रद्द गरिएका छन्}}</translation> <translation id="1009663062402466586">गेम कन्ट्रोलहरू अब उपलब्ध छन्</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ पृष्ठ प्रतिक्रियाविहीन}other{ पृष्ठहरू प्रतिक्रियाविहीन}}</translation> <translation id="1011003645819296594">सेभ गरिएका डिभाइस</translation> @@ -120,7 +119,6 @@ <translation id="1084824384139382525">लिङ्क ठे&गानाको कपी गर्नुहोस्</translation> <translation id="1085064499066015002">सधैँ सबै साइटमा</translation> <translation id="1085697365578766383">भर्चुअल मेसिन सुरु गर्ने क्रममा त्रुटि भयो। कृपया फेरि प्रयास गर्नुहोस्।</translation> -<translation id="1087965115100412394">साइटहरूलाई MIDI यन्त्रमा कनेक्ट गर्ने अनुमति नदिइयोस्</translation> <translation id="1088659085457112967">पाठक मोड प्रयोग गर्नुहोस्</translation> <translation id="1090126737595388931">कुनै पृष्ठभूमिमा चलिरहेका एपहरू छैनन्</translation> <translation id="1090541560108055381">कुनै डिभाइसमा कनेक्ट गर्नुअघि उक्त डिभाइसमा र यो डिभाइसमा उही कोड देखाइएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्</translation> @@ -3225,7 +3223,6 @@ <translation id="3551320343578183772">ट्याब बन्द गर्नुहोस्</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">बाहिर निस्कदा खालि गरिएको</translation> -<translation id="3553487194781590058">तपाईं एउटाबाट अर्को ट्याबमा जाँदा picture-in-picture विन्डो खोल्ने अनुमति दिइएको छैन</translation> <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> ले तपाईंको डिभाइसको व्यवस्थापन गर्छ। एड्मिनहरू यस यन्त्रमा रहेका जुनसुकै प्रोफाइलमा भएका डेटा हेर्न तथा प्रयोग गर्न सक्छन्।</translation> <translation id="3555812735919707620">एक्सटेन्सन हटाउनुहोस्</translation> <translation id="3557101512409028104">Family Link मार्फत वेबसाइटका प्रतिबन्धहरू र स्क्रिन हेरेर बिताउने समयको सीमा सेट गर्नुहोस्</translation> @@ -3783,7 +3780,6 @@ <translation id="3975201861340929143">थप जानकारी</translation> <translation id="3975565978598857337">क्षेत्रको सर्भरमा सम्पर्क गर्न सकिएन</translation> <translation id="3976108569178263973">कुनै पनि उपलब्ध प्रिन्टर फेला परेन।</translation> -<translation id="3976244126942806443">साइटहरूले सङ्गीत बनाउन तथा सम्पादन गर्न सामान्यतया MIDI डिभाइसमा कनेक्ट गर्छन्</translation> <translation id="397703832102027365">अन्तिम रूप दिदैं...</translation> <translation id="3977145907578671392">इन्कोग्निटो मोडमा केही साइटका सुविधाहरूले काम नगर्न सक्छन्</translation> <translation id="3977886311744775419">यस प्रकारको नेटवर्कमा अद्यावधिकहरू स्वत: डाउनलोड हुँदैनन् तर तपाईं म्यानुअल रूपमा अद्यावधिकहरू जाँच्न सक्नुहुन्छ।</translation> @@ -4683,7 +4679,6 @@ <translation id="4730492586225682674">स्टाइलस प्रयोग गरी लक स्क्रिनबाट लिइएको नवीनतम टिपोट</translation> <translation id="4730888769809690665"><ph name="SITE" /> लाई सूचना पठाउने अनुमति दिइएको छ</translation> <translation id="4731306954230393087">तपाईंका बारेमा उहाँले सेभ गर्नुभएको जानकारी प्रयोग गर्ने अनुमति दिइएको छ</translation> -<translation id="473140019006744096">यस डिभाइसमा यो अपडेट पूरा गर्न चाहिने पर्याप्त खाली ठाउँ छैन। आफ्नो डिभाइसमा <ph name="NECESSARY_SPACE" /> ठाउँ खाली गर्नुहोस् र फेरि प्रयास गर्नुहोस्।</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (बायाँ)</translation> <translation id="4733793249294335256">स्थान</translation> <translation id="473546211690256853">यो खातालाई <ph name="DOMAIN" /> ले व्यवस्थित गरेको छ</translation> @@ -5385,7 +5380,6 @@ <translation id="5327912693242073631">जुन सुविधा चल्न सूचना पठाइनु पर्ने हुन्छ ती सुविधाले काम गर्ने छैनन्</translation> <translation id="532943162177641444">यो यन्त्रले प्रयोग गर्न सक्ने मोबाइल हटस्पट सेटअप गर्न तपाईंको <ph name="PHONE_NAME" /> मा रहेको सूचनामा ट्याप गर्नुहोस्।</translation> <translation id="5329858601952122676">&मेट्नुहोस्</translation> -<translation id="5330592967519769658">तपाईं एउटाबाट अर्को ट्याबमा जाँदा picture-in-picture विन्डो खोल्ने अनुमति दिइएको छ</translation> <translation id="5331069282670671859">तपाईंसँग यो कोटिको कुनै पनि प्रमाणपत्र छैन</translation> <translation id="5331568967879689647">ChromeOS सिस्टम एप</translation> <translation id="5331975486040154427">USB-C यन्त्र (पछाडिको पोर्टको बायाँ)</translation> @@ -5563,7 +5557,6 @@ <translation id="5473099001878321374">तपाईंले जारी राख्नुभयो भने तपाईं यो डिभाइसले Google, तपाईंका बच्चाको मोबाइल सेवा प्रदायक र यो डिभाइसको निर्माताबाट सम्भवतः मोबाइल डेटा प्रयोग गरी अपडेट र एपहरू स्वतः डाउनलोड तथा इन्स्टल गर्न सक्छ भन्ने कुरामा सहमत हुनुहुन्छ भन्ने अर्थ लाग्छ। यीमध्ये केही एपहरूले एपभित्र किनमेल गर्ने सुविधा उपलब्ध गराउन सक्छन्।</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN कम्तीमा पनि एक वर्णको हुनु पर्छ}other{PIN कम्तीमा पनि # वर्णको हुनु पर्छ}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> का अनुसार तपाईंले अहिले नै Wi-Fi मार्फत अपडेट डाउनलोड गर्नु पर्ने हुन्छ। अथवा, डेटाको सीमा तोकिएको इन्टरनेटबाट डाउनलोड गर्नुहोस् (शुल्क लाग्न सक्छ)।</translation> -<translation id="5478520208448702555">तपाईं एउटाबाट अर्को ट्याबमा जाँदा साइटहरूले picture-in-picture विन्डो खोल्न सक्छन्</translation> <translation id="5481273127572794904">धेरै फाइलहरू स्वतः डाउनलोड गर्न अनुमति नदिइएका साइटहरू</translation> <translation id="5481941284378890518">नजिकैका प्रिन्टरहरू थप्नुहोस्</translation> <translation id="5484181871714116891">टगल अन हुँदा पासकीहरू iCloud Keychain मा बनाइन्छन् र तपाईंका Apple डिभाइसहरूमा उपलब्ध हुन्छन्। टगल अफ हुँदा पासकीहरू यो डिभाइसमा तपाईंको Chrome प्रोफाइलमा बनाइन्छन्।</translation> @@ -5721,7 +5714,6 @@ <translation id="5600348067066185292">इन्स्टल गर्न केही चरणहरू पूरा गर्नु पर्ने हुन्छ। तपाईंको कम्प्युटरमा परिवर्तनहरू गर्नुअघि तपाईंलाई पुष्टि गर्ने थप एउटा मौका दिइने छ।</translation> <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> एम. बि. मोबाइल डेटा प्रयोग गरेर अद्यावधिक डाउनलोड गरिने छ। तपाईं जारी राख्न चाहनुहुन्छ?</translation> <translation id="5601503069213153581">पिन</translation> -<translation id="5601823921345337195">MIDI यन्त्रहरूमा कनेक्ट गर्न अनुमति नदिइएका साइटहरू</translation> <translation id="5601833336918638013">साइटहरूलाई ब्लुटुथ डिभाइसहरू खोज्ने अनुमति नदिइयोस्</translation> <translation id="5602586420788540146">नयाँ ट्याब समूहमा खोल्नुहोस्</translation> <translation id="5605758115928394442">यो व्यक्ति तपाईं नै हो भन्ने सुनिश्चित गर्न तपाईंको फोनमा एउटा सूचना पठाइयो।</translation> @@ -5843,7 +5835,6 @@ <translation id="5707185214361380026">यहाँबाट विस्तार लोड गर्न असफल भयो।</translation> <translation id="5708171344853220004">Microsoft</translation> <translation id="5709557627224531708">Chrome लाई आफ्नो डिफल्ट ब्राउजरका रूपमा सेट गर्नुहोस्</translation> -<translation id="5710122160114032242">तपाईं एउटाबाट अर्को ट्याबमा जाँदा picture-in-picture विन्डो खोल्ने अनुमति दिइएको छैन</translation> <translation id="5711010025974903573">सेवासम्बन्धी लगहरू</translation> <translation id="5711983031544731014">अनलक गर्न सकिएन। आप्नो पासवर्ड प्रविष्टि गर्नुहोस्।</translation> <translation id="5712153969432126546">साइटहरूले कहिलेकाहीँ कागजात, करार तथा फाराम जस्ता PDF फाइलहरू प्रकाशित गर्छन्</translation> @@ -6605,7 +6596,6 @@ <translation id="6326175484149238433">Chrome बाट हटाउनुहोस्</translation> <translation id="6326855256003666642">सक्रिय राख्ने गणना</translation> <translation id="6327785803543103246">वेब प्रोक्सीको स्वत:खोज</translation> -<translation id="6331818708794917058">साइटहरूले MIDI यन्त्रहरूमा कनेक्ट हुने अनुमति माग्न सक्छन्</translation> <translation id="6333064448949140209">फाइल डिबग प्रक्रियाका लागि Google मा पठाइने छ</translation> <translation id="6333170995003625229">तपाईंको इमेल ठेगाना वा पासवर्ड पुष्टि गर्न सकिएन। फेरि साइन इन गरी हेर्नुहोस्।</translation> <translation id="6334267141726449402">लगहरू सङ्कलन गर्ने प्रयोजनका लागि यो लिंक कपी गरेर यी प्रयोगकर्तालाई पठाउनुहोस्।</translation> @@ -6755,7 +6745,6 @@ <translation id="6458701200018867744">अपलोड गर्न सकिएन (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)।</translation> <translation id="6459488832681039634">पत्ता लगाउन छनोट प्रयोग गर्नुहोस्</translation> <translation id="6459799433792303855">सक्रिय विन्डोलाई अर्को प्रदर्शनमा सारियो।</translation> -<translation id="6460566145397380451">MIDI यन्त्रहरूमा कनेक्ट गर्ने अनुमति दिइएका साइटहरू</translation> <translation id="6460601847208524483">अर्को फेला पार्नुहोस्</translation> <translation id="6461170143930046705">नेटवर्कहरू खोज्दै...</translation> <translation id="6463795194797719782">&सम्पादन</translation> @@ -7082,7 +7071,6 @@ <translation id="6735304988756581115">कूकीहरू र अन्य साइट डाटा देखाउनुहोस्...</translation> <translation id="6736243959894955139">ठेगाना</translation> <translation id="6737663862851963468">Kerberos को टिकट हटाउनुहोस्</translation> -<translation id="6737931010859480781">यो एप तपाईंको डिभाइसमा अग्रिम रूपमा इन्स्टल गरिएको छ</translation> <translation id="6738180164164974883">तेस्रो पक्षीय कुकीहरू सेट गर्ने अनुमति दिनुहोस्</translation> <translation id="6738430949033571771">खाता पुष्टि गरिँदै छ...</translation> <translation id="6739923123728562974">डेस्कटपको सर्टकट देखाउनुहोस्</translation> @@ -8478,7 +8466,6 @@ <translation id="7853747251428735">थप उपकरणहरू</translation> <translation id="7853999103056713222">अझ सुरक्षित पासवर्ड प्रयोग गर्नुहोस्</translation> <translation id="7855678561139483478">ट्याब नयाँ विन्डोमा सार्नुहोस्</translation> -<translation id="7855729579456690716">तपाईं एउटाबाट अर्को ट्याबमा जाँदा साइटहरूले picture-in-picture विन्डो खोल्न सक्छन्</translation> <translation id="7857004848504343806">तपाईंको कम्प्युटरमा सुरक्षित मोड्युल समावेश छ। ChromeOS Flex मा सुरक्षासम्बन्धी थुप्रै महत्त्वपूर्ण सुविधाहरू लागू गर्नका लागि उक्त मोड्युल प्रयोग गरिन्छ। तपाईं यसका सम्बन्धमा थप जान्न चाहनुहुन्छ भने Chromebook को मद्दत केन्द्रमा जानुहोस्: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">पाठसम्बन्धी सुझावहरू</translation> <translation id="7857949311770343000">के यो नै तपाईंले अपेक्षा गर्नुभएको नयाँ ट्याब पृष्ठ हो?</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index 5631d61..accf3c7 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> onthoudt hoe je bent ingelogd en logt je automatisch in als dat mogelijk is. Als dit uitstaat, wordt je elke keer om bevestiging gevraagd.</translation> <translation id="1008544602823861396">mag je gegevens niet gebruiken op</translation> <translation id="1008557486741366299">Niet nu</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Ter bescherming van je gegevens zijn de rechten verwijderd voor een site die je al 2 maanden niet hebt bezocht}other{Ter bescherming van je gegevens zijn de rechten verwijderd voor sites die je al 2 maanden niet hebt bezocht}}</translation> <translation id="1009663062402466586">Gamebediening nu beschikbaar</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Pagina reageert niet}other{Pagina's reageren niet}}</translation> <translation id="1011003645819296594">Opgeslagen apparaten</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Linkadr&es kopiëren</translation> <translation id="1085064499066015002">Altijd op alle sites</translation> <translation id="1085697365578766383">Fout bij starten van virtuele machine. Probeer het opnieuw.</translation> -<translation id="1087965115100412394">Niet toestaan dat sites verbinding maken met MIDI-apparaten</translation> <translation id="1088659085457112967">Lezermodus aanzetten</translation> <translation id="1090126737595388931">Geen actieve achtergrondapps</translation> <translation id="1090541560108055381">Voordat je de apparaten koppelt, check je of deze code gelijk is op beide apparaten</translation> @@ -3217,7 +3215,6 @@ <translation id="3551320343578183772">Tabblad sluiten</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Gewist bij afsluiten</translation> -<translation id="3553487194781590058">Niet toestaan dat sites een scherm-in-scherm-venster openen als je naar een ander tabblad gaat</translation> <translation id="3554493885489666172">Je apparaat wordt beheerd door <ph name="PROFILE_NAME" />. Beheerders hebben op dit apparaat toegang tot de gegevens van elk profiel.</translation> <translation id="3555812735919707620">Extensie verwijderen</translation> <translation id="3557101512409028104">Stel websitebeperkingen en limieten voor schermtijd in met Family Link</translation> @@ -3776,7 +3773,6 @@ <translation id="3975201861340929143">Uitleg</translation> <translation id="3975565978598857337">Verbinding maken met server voor domein mislukt</translation> <translation id="3976108569178263973">Er zijn geen printers beschikbaar.</translation> -<translation id="3976244126942806443">Sites maken meestal verbinding met MIDI-apparaten voor het maken en bewerken van muziek</translation> <translation id="397703832102027365">Wordt voltooid...</translation> <translation id="3977145907578671392">Functies op bepaalde sites werken misschien niet in de incognitomodus</translation> <translation id="3977886311744775419">Automatische updates worden niet gedownload op dit type netwerk, maar je kunt handmatig op updates controleren.</translation> @@ -4674,7 +4670,6 @@ <translation id="4730492586225682674">Laatste notitie met stylus op vergrendelscherm</translation> <translation id="4730888769809690665">Meldingen toegestaan voor <ph name="SITE" /></translation> <translation id="4731306954230393087">Mag de informatie gebruiken die over jou is opgeslagen</translation> -<translation id="473140019006744096">Er is niet voldoende ruimte op dit apparaat beschikbaar om deze update af te ronden. Maak <ph name="NECESSARY_SPACE" /> vrij op je apparaat en probeer het opnieuw.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (links)</translation> <translation id="4733793249294335256">Locatie</translation> <translation id="473546211690256853">Dit account wordt beheerd door <ph name="DOMAIN" />.</translation> @@ -5376,7 +5371,6 @@ <translation id="5327912693242073631">Functies die afhankelijk zijn van meldingen, werken niet</translation> <translation id="532943162177641444">Tik op de melding op je <ph name="PHONE_NAME" /> om de mobiele hotspot in te stellen die door dit apparaat kan worden gebruikt.</translation> <translation id="5329858601952122676">Verwij&deren</translation> -<translation id="5330592967519769658">Mag een scherm-in-scherm-venster openen als je naar een ander tabblad gaat</translation> <translation id="5331069282670671859">Je hebt geen certificaten in deze categorie</translation> <translation id="5331568967879689647">Chrome OS-systeem-app</translation> <translation id="5331975486040154427">USB-C-apparaat (poort links aan de achterkant)</translation> @@ -5554,7 +5548,6 @@ <translation id="5473099001878321374">Als je verdergaat, ga je ermee akkoord dat dit apparaat ook automatische updates en apps van Google, de provider van je kind en de fabrikant van dit apparaat kan downloaden en installeren, waarbij mogelijk mobiele data worden gebruikt. Sommige van deze apps kunnen in-app aankopen aanbieden.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{De pincode moet ten minste 1 teken bevatten}other{De pincode moet ten minste # tekens bevatten}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> vereist dat je nu verbinding maakt met wifi en een update downloadt. Je kunt de update ook downloaden via een verbinding met datalimiet (er kunnen kosten van toepassing zijn).</translation> -<translation id="5478520208448702555">Sites kunnen een scherm-in-scherm-venster openen als je naar een ander tabblad gaat</translation> <translation id="5481273127572794904">Geen toestemming om automatisch meerdere bestanden te downloaden</translation> <translation id="5481941284378890518">Printers in de buurt toevoegen</translation> <translation id="5484181871714116891">Als deze optie aanstaat, worden toegangssleutels gemaakt in iCloud Sleutelhanger en zijn deze beschikbaar op je Apple-apparaten. Staat de optie uit, dan worden toegangssleutels gemaakt in je Chrome-profiel op dit apparaat.</translation> @@ -5712,7 +5705,6 @@ <translation id="5600348067066185292">De installatie vereist een paar simpele stappen. Je krijgt nog een kans om te bevestigen voordat er wijzigingen op je computer worden aangebracht.</translation> <translation id="5600706100022181951">De update wordt gedownload met <ph name="UPDATE_SIZE_MB" /> MB mobiele data. Wil je doorgaan?</translation> <translation id="5601503069213153581">Pincode</translation> -<translation id="5601823921345337195">Geen toestemming om verbinding te maken met MIDI-apparaten</translation> <translation id="5601833336918638013">Niet toestaan dat sites naar bluetooth-apparaten zoeken</translation> <translation id="5602586420788540146">Openen in nieuwe tabbladgroep</translation> <translation id="5605758115928394442">Er is een melding naar je telefoon verstuurd om te bevestigen dat jij het bent.</translation> @@ -5832,7 +5824,6 @@ <translation id="5707185214361380026">Laden van extensie mislukt vanuit:</translation> <translation id="5708171344853220004">Principal-naam van Microsoft</translation> <translation id="5709557627224531708">Chrome instellen als je standaardbrowser</translation> -<translation id="5710122160114032242">Mag geen scherm-in-scherm-venster openen als je naar een ander tabblad gaat</translation> <translation id="5711010025974903573">Servicelogboeken</translation> <translation id="5711983031544731014">Kan niet ontgrendelen. Geef je wachtwoord op.</translation> <translation id="5712153969432126546">Sites publiceren soms pdf's, zoals documenten, contracten en formulieren</translation> @@ -6592,7 +6583,6 @@ <translation id="6326175484149238433">Verwijderen uit Chrome</translation> <translation id="6326855256003666642">Aantal keepalive-activiteiten</translation> <translation id="6327785803543103246">Webproxy automatisch vinden</translation> -<translation id="6331818708794917058">Sites kunnen vragen of ze verbinding mogen maken met MIDI-apparaten</translation> <translation id="6333064448949140209">Bestanden worden naar Google gestuurd voor foutopsporing</translation> <translation id="6333170995003625229">Je e-mailadres of wachtwoord kan niet worden geverifieerd. Probeer opnieuw in te loggen.</translation> <translation id="6334267141726449402">Kopieer en verstuur deze link naar de gebruiker om de logboeken te verzamelen.</translation> @@ -6742,7 +6732,6 @@ <translation id="6458701200018867744">Upload mislukt (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Gebruik selectie voor zoekactie</translation> <translation id="6459799433792303855">Het actieve venster is verplaatst naar een ander scherm.</translation> -<translation id="6460566145397380451">Toestemming om verbinding te maken met MIDI-apparaten</translation> <translation id="6460601847208524483">Zoek volgende</translation> <translation id="6461170143930046705">Zoeken naar netwerken...</translation> <translation id="6463795194797719782">B&ewerken</translation> @@ -7068,7 +7057,6 @@ <translation id="6735304988756581115">Cookies en andere sitegegevens bekijken...</translation> <translation id="6736243959894955139">Adres</translation> <translation id="6737663862851963468">Kerberos-ticket verwijderen</translation> -<translation id="6737931010859480781">Deze app is vooraf geïnstalleerd op je apparaat</translation> <translation id="6738180164164974883">Toestaan dat cookies van derden worden ingesteld</translation> <translation id="6738430949033571771">Account verifiëren...</translation> <translation id="6739923123728562974">Bureaubladsnelkoppeling bekijken</translation> @@ -8459,7 +8447,6 @@ <translation id="7853747251428735">Meer hu&lpprogramma's</translation> <translation id="7853999103056713222">Een veiliger wachtwoord gebruiken</translation> <translation id="7855678561139483478">Tabblad verplaatsen naar nieuw venster</translation> -<translation id="7855729579456690716">Sites kunnen een scherm-in-scherm-venster openen als je naar een ander tabblad gaat</translation> <translation id="7857004848504343806">Je computer bevat een beveiligde module die wordt gebruikt om veel van de belangrijke beveiligingsfuncties in Chrome OS Flex te implementeren. Ga voor meer informatie naar het Helpcentrum voor Chromebooks: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Tekstsuggesties</translation> <translation id="7857949311770343000">Is dit de nieuwe pagina met tabbladen die je had verwacht?</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index 9f8ae860..35cfabc 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> husker hvordan du logget på, og logger på automatisk når det er mulig. Når dette er slått av, blir du bedt om bekreftelse hver gang.</translation> <translation id="1008544602823861396">er blokkert fra å bruke informasjonen din på</translation> <translation id="1008557486741366299">Ikke nå</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{For å beskytte dataene dine har vi fjernet tillatelsene fra et nettsted du ikke har besøkt på to måneder}other{For å beskytte dataene dine har vi fjernet tillatelsene fra nettsteder du ikke har besøkt på to måneder}}</translation> <translation id="1009663062402466586">Spillkontrollene er tilgjengelige nå</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Siden svarer ikke}other{Sidene svarer ikke}}</translation> <translation id="1011003645819296594">Lagrede enheter</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopiér linkadr&essen</translation> <translation id="1085064499066015002">Alltid, på alle nettsteder</translation> <translation id="1085697365578766383">Feil ved oppstart av den virtuelle maskinen. Prøv på nytt.</translation> -<translation id="1087965115100412394">Ikke la nettsteder koble til MIDI-enheter</translation> <translation id="1088659085457112967">Gå inn i lesermodus</translation> <translation id="1090126737595388931">Ingen bakgrunnsprogrammer kjører</translation> <translation id="1090541560108055381">Før sammenkobling må du forsikre deg om at denne koden er lik på begge enhetene</translation> @@ -3227,7 +3225,6 @@ <translation id="3551320343578183772">Lukk fanen</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Fjernes ved avslutning</translation> -<translation id="3553487194781590058">Ikke la nettsteder åpne bilde-i-bilde-vinduer når du bytter til andre faner</translation> <translation id="3554493885489666172">Enheten administreres av <ph name="PROFILE_NAME" />. Administratorene har tilgang til dataene i alle profiler på denne enheten.</translation> <translation id="3555812735919707620">Fjern utvidelsen</translation> <translation id="3557101512409028104">Angi begrensninger for nettsteder og skjermtid med Family Link</translation> @@ -3784,7 +3781,6 @@ <translation id="3975201861340929143">Forklaring</translation> <translation id="3975565978598857337">Kunne ikke kontakte tjeneren for området</translation> <translation id="3976108569178263973">Det er ingen tilgjengelige skrivere.</translation> -<translation id="3976244126942806443">Nettsteder kobler vanligvis til MIDI-enheter for å lage og redigere musikk</translation> <translation id="397703832102027365">Fullfører …</translation> <translation id="3977145907578671392">Det kan hende at funksjoner på enkelte nettsteder ikke fungerer i Inkognito</translation> <translation id="3977886311744775419">Automatiske oppdateringer lastes ikke ned på denne nettverkstypen, men du kan se etter oppdateringer manuelt.</translation> @@ -4684,7 +4680,6 @@ <translation id="4730492586225682674">Vis det siste pekepenn-notatet på låseskjermen</translation> <translation id="4730888769809690665">Varsler er tillatt for <ph name="SITE" /></translation> <translation id="4731306954230393087">Nettsteder som kan bruke informasjon de har lagret om deg</translation> -<translation id="473140019006744096">Det er ikke nok plass på enheten til å fullføre oppdateringen. Frigjør <ph name="NECESSARY_SPACE" /> på enheten, og prøv igjen.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (venstre)</translation> <translation id="4733793249294335256">Sted</translation> <translation id="473546211690256853">Denne kontoen administreres av <ph name="DOMAIN" />.</translation> @@ -5386,7 +5381,6 @@ <translation id="5327912693242073631">Funksjoner som krever varsler, kommer ikke til å virke</translation> <translation id="532943162177641444">Trykk på varselet på <ph name="PHONE_NAME" />-enheten din for å konfigurere en mobil wifi-sone denne enheten kan bruke.</translation> <translation id="5329858601952122676">&Slett</translation> -<translation id="5330592967519769658">Nettsteder som har lov til å åpne bilde-i-bilde-vinduer når du bytter til andre faner</translation> <translation id="5331069282670671859">Du har ingen sertifikater i denne kategorien</translation> <translation id="5331568967879689647">ChromeOS-systemapp</translation> <translation id="5331975486040154427">USB-C-enhet (porten bak på venstre side)</translation> @@ -5563,7 +5557,6 @@ <translation id="5473099001878321374">Hvis du fortsetter, godtar du at apper og oppdateringer fra Google, barnets operatør og enhetsprodusenten også kan lastes ned og installeres på enheten automatisk – muligens via mobildata. Noen av disse appene kan tilby kjøp i appen.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-koden må bestå av minst ett tegn}other{PIN-koden må bestå av minst # tegn}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> krever at du kobler til wifi nå og laster ned en oppdatering. Eller last ned via en tilkobling med datamåling (kostnader kan påløpe).</translation> -<translation id="5478520208448702555">Nettsteder kan åpne bilde-i-bilde-vinduer når du bytter til andre faner</translation> <translation id="5481273127572794904">Nettsteder som ikke har lov til å laste ned flere filer automatisk</translation> <translation id="5481941284378890518">Legg til skrivere i nærheten</translation> <translation id="5484181871714116891">Når dette er på, opprettes passnøkler i iCloud-nøkkelringen og blir tilgjengelige på Apple-enhetene dine. Når dette er av, opprettes passnøkler i Chrome-profilen din på denne enheten.</translation> @@ -5721,7 +5714,6 @@ <translation id="5600348067066185292">Installasjonen utføres på noen få enkle trinn. Du får en ny mulighet til å bekrefte før det gjøres endringer på datamaskinen.</translation> <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB mobildata blir brukt under nedlastingen av oppdateringen. Vil du fortsette?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Nettsteder som ikke har lov til å koble til MIDI-enheter</translation> <translation id="5601833336918638013">Ikke la nettsteder se etter Bluetooth-enheter</translation> <translation id="5602586420788540146">Åpne i ny fanegruppe</translation> <translation id="5605758115928394442">Vi har sendt et varsel til telefonen din for å bekrefte at det er deg.</translation> @@ -5843,7 +5835,6 @@ <translation id="5707185214361380026">Kunne ikke laste inn utvidelse fra:</translation> <translation id="5708171344853220004">Microsoft hovednavn</translation> <translation id="5709557627224531708">Angi Chrome som standardnettleser</translation> -<translation id="5710122160114032242">Nettsteder som ikke har lov til å åpne bilde-i-bilde-vinduer når du bytter til andre faner</translation> <translation id="5711010025974903573">Tjenestelogger</translation> <translation id="5711983031544731014">Kan ikke låse opp. Skriv inn passordet ditt.</translation> <translation id="5712153969432126546">Nettsteder publiserer av og til PDF-filer, for eksempel dokumenter, kontrakter og skjemaer</translation> @@ -6605,7 +6596,6 @@ <translation id="6326175484149238433">Fjern fra Chrome</translation> <translation id="6326855256003666642">Keepalive-teller</translation> <translation id="6327785803543103246">Automatisk oppdagelse av proxy-tjenere</translation> -<translation id="6331818708794917058">Nettsteder kan be om å få koble til MIDI-enheter</translation> <translation id="6333064448949140209">Filen sendes til Google for feilsøking</translation> <translation id="6333170995003625229">Kunne ikke bekrefte e-postadressen eller passordet. Prøv å logge på igjen.</translation> <translation id="6334267141726449402">Kopier og send denne linken til brukeren for å samle inn loggene.</translation> @@ -6755,7 +6745,6 @@ <translation id="6458701200018867744">Opplastingen mislyktes (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Bruk markering for Finn</translation> <translation id="6459799433792303855">Det aktive vinduet er flyttet til en annen skjerm.</translation> -<translation id="6460566145397380451">Nettsteder som har lov til å koble til MIDI-enheter</translation> <translation id="6460601847208524483">Finn neste</translation> <translation id="6461170143930046705">Søker etter nettverk …</translation> <translation id="6463795194797719782">R&ediger</translation> @@ -7081,7 +7070,6 @@ <translation id="6735304988756581115">Vis informasjonskapsler og andre nettsteddata</translation> <translation id="6736243959894955139">Adresse</translation> <translation id="6737663862851963468">Fjern Kerberos-sak</translation> -<translation id="6737931010859480781">Denne appen er forhåndsinstallert på enheten din</translation> <translation id="6738180164164974883">Tillat nettstedet å angi informasjonskapsler fra tredjeparter</translation> <translation id="6738430949033571771">Bekrefter kontoen …</translation> <translation id="6739923123728562974">Vis skrivebordssnarvei</translation> @@ -8476,7 +8464,6 @@ <translation id="7853747251428735">Flere verktø&y</translation> <translation id="7853999103056713222">Bruk et sikrere passord</translation> <translation id="7855678561139483478">Flytt fanen til et nytt vindu</translation> -<translation id="7855729579456690716">Nettsteder kan åpne bilde-i-bilde-vinduer når du bytter til andre faner</translation> <translation id="7857004848504343806">Datamaskinen din inneholder en sikker modul, som brukes til å implementere mange viktige sikkerhetsfunksjoner i ChromeOS Flex. Gå til Chromebook-brukerstøtten for å finne ut mer: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Tekstforslag</translation> <translation id="7857949311770343000">Er dette den nye fanen du ventet på?</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index 8b10c71d..a38e1b1 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">ଆପଣ କିପରି ସାଇନ ଇନ କରିଛନ୍ତି ତାହା <ph name="BRAND" /> ମନେ ରଖେ ଏବଂ ସମ୍ଭବ ହେଲେ ଆପଣଙ୍କୁ ସ୍ୱତଃ ସାଇନ ଇନ କରାଏ। ବନ୍ଦ ଥିଲେ, ପ୍ରତ୍ୟେକ ଥର ଆପଣଙ୍କୁ ସୁନିଶ୍ଚିତ କରିବାକୁ କୁହାଯିବ।</translation> <translation id="1008544602823861396">ଏଥିରେ ଆପଣଙ୍କ ସୂଚନାକୁ ବ୍ୟବହାର କରିବାରୁ ବ୍ଲକ କରାଯାଇଛି</translation> <translation id="1008557486741366299">ଏବେ ନୁହେଁ</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{ଆପଣଙ୍କ ଡାଟାକୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ଆପଣ 2 ମାସ ହେଲା ଭିଜିଟ କରିନଥିବା ଏକ ସାଇଟରୁ ଅନୁମତିଗୁଡ଼ିକୁ କାଢ଼ି ଦିଆଯାଇଛି}other{ଆପଣଙ୍କ ଡାଟାକୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ଆପଣ 2 ମାସ ହେଲା ଭିଜିଟ କରିନଥିବା ସାଇଟଗୁଡ଼ିକରୁ ଅନୁମତିଗୁଡ଼ିକୁ କାଢ଼ି ଦିଆଯାଇଛି}}</translation> <translation id="1009663062402466586">ବର୍ତ୍ତମାନ ଗେମ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ ଉପଲବ୍ଧ ଅଛି</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ପୃଷ୍ଠା ଅପ୍ରତିକ୍ରିୟାଶୀଳ}other{ପୃଷ୍ଠାଗୁଡିକ ଅପ୍ରତିକ୍ରିୟାଶୀଳ}}</translation> <translation id="1011003645819296594">ସେଭ କରାଯାଇଥିବା ଡିଭାଇସଗୁଡ଼ିକ</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">&ଲିଙ୍କ ଠିକଣା କପି କରନ୍ତୁ</translation> <translation id="1085064499066015002">ସମସ୍ତ ସାଇଟରେ ସର୍ବଦା</translation> <translation id="1085697365578766383">ଭର୍ଚୁଆଲ୍ ମେସିନ୍ ଆରମ୍ଭ କରିବାରେ ତୃଟି। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> -<translation id="1087965115100412394">MIDI ଡିଭାଇସଗୁଡ଼ିକ ସହ ସଂଯୋଗ କରିବାକୁ ସାଇଟଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ</translation> <translation id="1088659085457112967">ରିଡର୍ ମୋଡରେ ପ୍ରବେଶ କରନ୍ତୁ</translation> <translation id="1090126737595388931">କୌଣସି ଆପ୍ସ ପୃଷ୍ଠପଟରେ ଚାଲୁନାହିଁ</translation> <translation id="1090541560108055381">ପେୟାରିଂ ପୂର୍ବରୁ, ଉଭୟ ଡିଭାଇସରେ ଏହି କୋଡ ସମାନ ହୋଇଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation> @@ -3215,7 +3213,6 @@ <translation id="3551320343578183772">ଟାବ୍ ବନ୍ଦ କରନ୍ତୁ</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">ବାହାରିଗଲା ପରେ ଖାଲି କରାଯାଇଛି</translation> -<translation id="3553487194781590058">ଆପଣ ଏକ ଅଲଗା ଟାବକୁ ପରିବର୍ତ୍ତନ କଲେ ଏକ ପିକଚର-ଇନ-ପିକଚର ୱିଣ୍ଡୋ ଖୋଲିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ</translation> <translation id="3554493885489666172">ଆପଣଙ୍କ ଡିଭାଇସ୍ <ph name="PROFILE_NAME" /> ଦ୍ୱାରା ପରିଚାଳିତ ହେଉଛି। ଆଡମିନିଷ୍ଟ୍ରେଟରମାନେ ଏହି ଡିଭାଇସରେ ଥିବା ଯେ କୌଣସି ପ୍ରୋଫାଇଲରେ ଡାଟା ଆକ୍ସେସ୍ କରିପାରିବେ।</translation> <translation id="3555812735919707620">ଏକ୍ସଟେନ୍ସନ୍ କାଢ଼ିଦିଅନ୍ତୁ</translation> <translation id="3557101512409028104">Family Link ସହିତ ୱେବ୍ସାଇଟ୍ ପ୍ରତିବନ୍ଧତାଗୁଡ଼ିକ ଏବଂ ସ୍କ୍ରିନ୍ର ସମୟ ସୀମା ସେଟ୍ କରନ୍ତୁ</translation> @@ -3773,7 +3770,6 @@ <translation id="3975201861340929143">ବ୍ୟାଖ୍ୟା</translation> <translation id="3975565978598857337">ଏହି କ୍ଷେତ୍ର ପାଇଁ ଯୋଗାଯୋଗ ସର୍ଭର୍ ବିଫଳ ହୋଇଛି</translation> <translation id="3976108569178263973">କୌଣସି ପ୍ରିଣ୍ଟର୍ ଉପଲବ୍ଧ ନାହିଁ।</translation> -<translation id="3976244126942806443">ମ୍ୟୁଜିକ ତିଆରି ଏବଂ ଏଡିଟ କରିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ ସାଧାରଣତଃ MIDI ଡିଭାଇସଗୁଡ଼ିକ ସହ କନେକ୍ଟ କରିଥାଏ</translation> <translation id="397703832102027365">ପୂରା ହେବାକୁ ଯାଉଛି...</translation> <translation id="3977145907578671392">କିଛି ସାଇଟରେ ଫିଚରଗୁଡ଼ିକ ଇନକଗ୍ନିଟୋ ମୋଡରେ କାମ କରିନପାରେ</translation> <translation id="3977886311744775419">ଏହି ନେ୍ଟ୍ୱାର୍କ ପ୍ରକାରରେ ସ୍ୱଚାଳିତ ଅପ୍ଡେଟ୍ଗୁଡ଼ିକ ଡାଉନ୍ଲୋଡ୍ ହୁଏ ନାହିଁ, କିନ୍ତୁ ଆପଣ ମାନୁଆଲୀ ଅପ୍ଡେଟ୍ଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବେ।</translation> @@ -4674,7 +4670,6 @@ <translation id="4730492586225682674">ଲକ୍ ସ୍କ୍ରିନରେ ଷ୍ଟାଇଲସ୍ ନବୀନତମ ନୋଟ୍</translation> <translation id="4730888769809690665"><ph name="SITE" /> ପାଇଁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଅନୁମତି ଦିଆଯାଇଛି</translation> <translation id="4731306954230393087">ଆପଣଙ୍କ ବିଷୟରେ ତାହା ସେଭ କରିଥିବା ସୂଚନାକୁ ବ୍ୟବହାର କରିବା ପାଇଁ ଅନୁମତି ଦିଆଯାଇଛି</translation> -<translation id="473140019006744096">ଏହି ଅପଡେଟକୁ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଏହି ଡିଭାଇସରେ ଯଥେଷ୍ଟ ସ୍ପେସ ନାହିଁ। ଆପଣଙ୍କ ଡିଭାଇସରେ <ph name="NECESSARY_SPACE" /> ସ୍ପେସ ଖାଲି କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ବାମ)</translation> <translation id="4733793249294335256">ଲୋକେସନ୍</translation> <translation id="473546211690256853">ଏହି ଆକାଉଣ୍ଟ <ph name="DOMAIN" /> ଦ୍ଵାରା ପରିଚାଳିତ ହେଉଛି</translation> @@ -5376,7 +5371,6 @@ <translation id="5327912693242073631">ବିଜ୍ଞପ୍ତି ଆବଶ୍ୟକ କରୁଥିବା ଫିଚରଗୁଡ଼ିକ କାମ କରିବ ନାହିଁ</translation> <translation id="532943162177641444">ମୋବାଇଲ୍ ହଟ୍ସ୍ପଟ୍ ସେଟ୍ ଅପ୍ କରିବାକୁ ଯାହା ଏହି ଡିଭାଇସ୍ ଦ୍ୱାରା ବ୍ୟବହାର କରାଯାଇପାରିବ, ଆପଣଙ୍କର <ph name="PHONE_NAME" />ର ବିଜ୍ଞପ୍ତିରେ ଟାପ୍ କରନ୍ତୁ।</translation> <translation id="5329858601952122676">&ବିଲୋପ</translation> -<translation id="5330592967519769658">ଆପଣ ଏକ ଅଲଗା ଟାବକୁ ପରିବର୍ତ୍ତନ କଲେ ଏକ ପିକଚର-ଇନ-ପିକଚର ୱିଣ୍ଡୋ ଖୋଲିବାକୁ ଅନୁମତି ଦିଆଯାଇଛି</translation> <translation id="5331069282670671859">ଆପଣଙ୍କ ପାଖରେ ଏହି ବର୍ଗ ପାଇଁ କୌଣସି ସାର୍ଟିଫିକେଟ୍ ନାହିଁ</translation> <translation id="5331568967879689647">ChromeOS ସିଷ୍ଟମ ଆପ</translation> <translation id="5331975486040154427">USB-C ଡିଭାଇସ୍ (ବାମପଟ ପଛ ପୋର୍ଟ)</translation> @@ -5554,7 +5548,6 @@ <translation id="5473099001878321374">ଜାରି ରଖି, ଏହି ଡିଭାଇସ ସମ୍ଭବତଃ ସେଲ୍ୟୁଲାର ଡାଟା ବ୍ୟବହାର କରି, Google, ଆପଣଙ୍କ ପିଲାର କ୍ୟାରିଅର ଏବଂ ଏହି ଡିଭାଇସର ନିର୍ମାତାଙ୍କଠାରୁ, ଅପଡେଟ ଓ ଆପଗୁଡ଼ିକୁ ମଧ୍ୟ ସ୍ଵଚାଳିତ ଭାବେ ଡାଉନଲୋଡ ଏବଂ ଇନଷ୍ଟଲ କରିପାରିବ ବୋଲି ଆପଣ ସମ୍ମତ ହୁଅନ୍ତି। ଏହି ଆପଗୁଡ଼ିକ ମଧ୍ୟରୁ କିଛି ଆପ ଇନ-ଆପ କ୍ରୟଗୁଡ଼ିକ ଅଫର କରିପାରେ।</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PINରେ ଅତିକମରେ ଗୋଟିଏ ଅକ୍ଷର ରହିବା ଆବଶ୍ୟକ}other{PINରେ ଅତିକମରେ #ଟି ଅକ୍ଷର ରହିବା ଆବଶ୍ୟକ}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> ପାଇଁ ଆପଣଙ୍କୁ ବର୍ତ୍ତମାନ ୱାଇ-ଫାଇ ସହ ସଂଯୋଗ କରି ଏକ ଅପଡେଟ ଡାଉନଲୋଡ କରିବାର ଆବଶ୍ୟକତା ଅଛି। କିମ୍ବା, ଏକ ମିଟର ହୋଇଥିବା ସଂଯୋଗରୁ ଡାଉନଲୋଡ କରନ୍ତୁ (ଚାର୍ଜ ଲାଗୁ ହୋଇପାରେ)।</translation> -<translation id="5478520208448702555">ଆପଣ ଏକ ଅଲଗା ଟାବକୁ ପରିବର୍ତ୍ତନ କଲେ ସାଇଟଗୁଡ଼ିକ ଏକ ପିକଚର-ଇନ-ପିକଚର ୱିଣ୍ଡୋ ଖୋଲିପାରେ</translation> <translation id="5481273127572794904">ଏକାଧିକ ଫାଇଲକୁ ସ୍ୱଚାଳିତ ଭାବେ ଡାଉନଲୋଡ୍ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation> <translation id="5481941284378890518">ନିକଟସ୍ଥ ପ୍ରିଣ୍ଟର୍ ଯୋଗ କରନ୍ତୁ</translation> <translation id="5484181871714116891">ଏହା ଚାଲୁ ଥିଲେ, iCloud କୀଚେନରେ ପାସଗୁଡ଼ିକୁ ତିଆରି କରାଯାଇଥାଏ ଏବଂ ସେଗୁଡ଼ିକ ଆପଣଙ୍କର ସମଗ୍ର Apple ଡିଭାଇସରେ ଉପଲବ୍ଧ ହୋଇଥାଏ। ଏହା ବନ୍ଦ ଥିଲେ, ଏହି ଡିଭାଇସରେ ଥିବା ଆପଣଙ୍କ Chrome ପ୍ରୋଫାଇଲରେ ପାସଗୁଡ଼ିକୁ ତିଆରି କରାଯାଇଥାଏ।</translation> @@ -5712,7 +5705,6 @@ <translation id="5600348067066185292">ଇନଷ୍ଟଲେସନ ପାଇଁ କିଛି ସହଜ ଷ୍ଟେପ ଆବଶ୍ୟକ। ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରେ ପରିବର୍ତ୍ତନ କରାଯିବା ପୂର୍ବରୁ ଆପଣଙ୍କୁ ସୁନିଶ୍ଚିତ କରିବାକୁ ଆଉ ଏକ ସୁଯୋଗ ମିଳିବ।</translation> <translation id="5600706100022181951">ମୋବାଇଲ୍ ଡାଟାର <ph name="UPDATE_SIZE_MB" /> MB ବ୍ୟବହାର କରି ଅପ୍ଡେଟ୍ ଡାଉନ୍ଲୋଡ୍ କରାଯିବ। ଆପଣ ଜାରି ରଖିବାକୁ ଚାହୁଁଛନ୍ତି କି?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI ଡିଭାଇସଗୁଡ଼ିକ ସହିତ ସଂଯୋଗ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation> <translation id="5601833336918638013">ବ୍ଲୁଟୁଥ ଡିଭାଇସଗୁଡ଼ିକୁ ଖୋଜିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ</translation> <translation id="5602586420788540146">ନୂଆ ଟାବ ଗ୍ରୁପରେ ଖୋଲନ୍ତୁ</translation> <translation id="5605758115928394442">ଏହା ଆପଣ ବୋଲି ସୁନିଶ୍ଚିତ କରିବା ପାଇଁ ଆପଣଙ୍କ ଫୋନ୍କୁ ଗୋଟିଏ ବିଜ୍ଞପ୍ତି ପଠାଯାଇଥିଲା।</translation> @@ -5832,7 +5824,6 @@ <translation id="5707185214361380026">ଏଠାରୁ ଏକ୍ସଟେନ୍ସନ୍ ଲୋଡ୍ କରିବାରେ ବିଫଳ ହେଲା:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chromeକୁ ଆପଣଙ୍କର ଡିଫଲ୍ଟ ବ୍ରାଉଜର୍ ଭାବେ ସେଟ୍ କରନ୍ତୁ।</translation> -<translation id="5710122160114032242">ଆପଣ ଏକ ଅଲଗା ଟାବକୁ ପରିବର୍ତ୍ତନ କଲେ ଏକ ପିକଚର-ଇନ-ପିକଚର ୱିଣ୍ଡୋ ଖୋଲିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation> <translation id="5711010025974903573">ସେବା ସମ୍ବନ୍ଧିତ ଲଗଗୁଡ଼ିକ</translation> <translation id="5711983031544731014">ଅନ୍ଲକ୍ କରିବାରେ ଅକ୍ଷମ। ନିଜର ପାସ୍ୱାର୍ଡ ଲେଖନ୍ତୁ।</translation> <translation id="5712153969432126546">ସାଇଟଗୁଡ଼ିକ ବେଳେବେଳେ ଡକ୍ୟୁମେଣ୍ଟ, ଚୁକ୍ତି ଏବଂ ଫର୍ମଗୁଡ଼ିକ ପରି PDFଗୁଡ଼ିକୁ ପବ୍ଲିସ୍ କରେ</translation> @@ -6593,7 +6584,6 @@ <translation id="6326175484149238433">Chromeରୁ କାଢ଼ିଦିଅନ୍ତୁ</translation> <translation id="6326855256003666642">କିପ୍ଆଲାଇଭ୍ କାଉଣ୍ଟ</translation> <translation id="6327785803543103246">ୱେବ୍ ପ୍ରକ୍ସି ଅଟୋଡିସ୍କୋଭରୀ</translation> -<translation id="6331818708794917058">MIDI ଡିଭାଇସଗୁଡ଼ିକ ସହିତ ସଂଯୋଗ କରିବାକୁ ସାଇଟଗୁଡ଼ିକ ପଚାରିପାରିବ</translation> <translation id="6333064448949140209">ଡିବଗିଂ ପାଇଁ ଫାଇଲ୍ Googleକୁ ପଠାଯିବ</translation> <translation id="6333170995003625229">ଆପଣଙ୍କ ଇମେଲ ଠିକଣା କିମ୍ବା ପାସୱାର୍ଡକୁ ଯାଞ୍ଚ କରାଯାଇପାରିଲା ନାହିଁ। ପୁଣି ସାଇନ ଇନ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="6334267141726449402">ଲଗଗୁଡ଼ିକୁ ସଂଗ୍ରହ କରିବା ପାଇଁ ଏହି ଲିଙ୍କକୁ କପି କରି ୟୁଜରଙ୍କୁ ପଠାନ୍ତୁ।</translation> @@ -6743,7 +6733,6 @@ <translation id="6458701200018867744">ଅପ୍ଲୋଡ୍ ବିଫଳ ହେଲା (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)।</translation> <translation id="6459488832681039634">ଖୋଜିବା ପାଇଁ ଚୟନ ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="6459799433792303855">ସକ୍ରିୟ ଥିବା ୱିଣ୍ଡୋ, ଅନ୍ୟ ଏକ ଡିସ୍ପ୍ଲେକୁ ଘୁଞ୍ଚାଯାଇଛି।</translation> -<translation id="6460566145397380451">MIDI ଡିଭାଇସଗୁଡ଼ିକ ସହ ସଂଯୋଗ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇଛି</translation> <translation id="6460601847208524483">ପରବର୍ତ୍ତୀ ଖୋଜନ୍ତୁ</translation> <translation id="6461170143930046705">ନେଟ୍ୱାର୍କଗୁଡ଼ିକ ସନ୍ଧାନ କରୁଛି...</translation> <translation id="6463795194797719782">&ସମ୍ପାଦନ</translation> @@ -7071,7 +7060,6 @@ <translation id="6735304988756581115">କୁକୀ ଏବଂ ଅନ୍ୟ ସାଇଟ୍ ଡାଟା ଦେଖନ୍ତୁ...</translation> <translation id="6736243959894955139">ଠିକଣା</translation> <translation id="6737663862851963468">Kerberos ଟିକେଟ୍ କାଢ଼ି ଦିଅନ୍ତୁ</translation> -<translation id="6737931010859480781">ଆପଣଙ୍କ ଡିଭାଇସରେ ଏହି ଆପକୁ ପୂର୍ବରୁ ଇନଷ୍ଟଲ କରାଯାଇଛି</translation> <translation id="6738180164164974883">ତୃତୀୟ-ପକ୍ଷ କୁକୀଗୁଡ଼ିକ ସେଟ କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation> <translation id="6738430949033571771">ଆକାଉଣ୍ଟକୁ ଯାଞ୍ଚ କରାଯାଉଛି...</translation> <translation id="6739923123728562974">ଡେସ୍କଟପ୍ ସର୍ଟକଟ୍ ଦେଖାନ୍ତୁ</translation> @@ -8465,7 +8453,6 @@ <translation id="7853747251428735">ଅଧିକ ଟୁ&ଲ୍ସ୍</translation> <translation id="7853999103056713222">ଏକ ଅଧିକ ସୁରକ୍ଷିତ ପାସୱାର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="7855678561139483478">ଟାବ୍କୁ ନୂଆ ୱିଣ୍ଡୋକୁ ମୁଭ୍ କରନ୍ତୁ</translation> -<translation id="7855729579456690716">ଆପଣ ଏକ ଅଲଗା ଟାବକୁ ପରିବର୍ତ୍ତନ କଲେ ସାଇଗୁଡ଼ିକ ଏକ ପିକଚର-ଇନ-ପିକଚର ୱିଣ୍ଡୋ ଖୋଲିପାରିବ</translation> <translation id="7857004848504343806">ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରେ ଏକ ସୁରକ୍ଷିତ ମଡ୍ୟୁଲ ଅଛି, ଯାହା ChromeOS Flexରେ ଅନେକ ଜଟିଳ ସୁରକ୍ଷା ଫିଚର ଲାଗୁ କରିବା ପାଇଁ ବ୍ୟବହୃତ ହୋଇଥାଏ। ଅଧିକ ଜାଣିବା ପାଇଁ Chromebook ସହାୟତା କେନ୍ଦ୍ର ଭିଜିଟ କରନ୍ତୁ: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">ଟେକ୍ସଟ୍ ପରାମର୍ଶ</translation> <translation id="7857949311770343000">ଏହା କ'ଣ ଆପଣ ପ୍ରତ୍ୟାଶିତ କରୁଥିବା ନୂଆ ଟାବ୍ ପୃଷ୍ଠା ଅଟେ?</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index 9c4ba4b..186dd77 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> ਯਾਦ ਰੱਖਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਵੇਂ ਸਾਈਨ-ਇਨ ਕੀਤਾ ਹੈ ਅਤੇ ਸੰਭਵ ਹੋਣ 'ਤੇ ਤੁਹਾਨੂੰ ਆਪਣੇ ਆਪ ਸਾਈਨ-ਇਨ ਕਰਦਾ ਹੈ। ਬੰਦ ਹੋਣ 'ਤੇ, ਤੁਹਾਨੂੰ ਹਰ ਵਾਰ ਤਸਦੀਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ।</translation> <translation id="1008544602823861396">ਇਸਨੂੰ ਇੱਥੇ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ</translation> <translation id="1008557486741366299">ਹੁਣ ਨਹੀਂ</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{ਤੁਹਾਡੀ ਡਾਟਾ ਸੁਰੱਖਿਆ ਲਈ, ਉਸ ਸਾਈਟ ਤੋਂ ਇਜਾਜ਼ਤਾਂ ਨੂੰ ਹਟਾ ਲਿਆ ਗਿਆ ਸੀ ਜਿਸ 'ਤੇ ਤੁਸੀਂ 2 ਮਹੀਨਿਆਂ ਤੋਂ ਨਹੀਂ ਗਏ ਸੀ}one{ਤੁਹਾਡੀ ਡਾਟਾ ਸੁਰੱਖਿਆ ਲਈ, ਉਸ ਸਾਈਟ ਤੋਂ ਇਜਾਜ਼ਤਾਂ ਨੂੰ ਹਟਾ ਲਿਆ ਗਿਆ ਸੀ ਜਿਸ 'ਤੇ ਤੁਸੀਂ 2 ਮਹੀਨਿਆਂ ਤੋਂ ਨਹੀਂ ਗਏ ਸੀ}other{ਤੁਹਾਡੀ ਡਾਟਾ ਸੁਰੱਖਿਆ ਲਈ, ਉਨ੍ਹਾਂ ਸਾਈਟਾਂ ਤੋਂ ਇਜਾਜ਼ਤਾਂ ਨੂੰ ਹਟਾ ਲਿਆ ਗਿਆ ਸੀ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ 2 ਮਹੀਨਿਆਂ ਤੋਂ ਨਹੀਂ ਗਏ ਸੀ}}</translation> <translation id="1009663062402466586">ਗੇਮ ਦੇ ਕੰਟਰੋਲ ਹੁਣ ਉਪਲਬਧ ਹਨ</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{ਪੰਨਾ ਗੈਰਜਵਾਬਦੇਹ}one{ਪੰਨੇ ਗੈਰਜਵਾਬਦੇਹ}other{ਪੰਨੇ ਗੈਰਜਵਾਬਦੇਹ}}</translation> <translation id="1011003645819296594">ਰੱਖਿਅਤ ਕੀਤੇ ਡੀਵਾਈਸ</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">ਲਿੰਕ ਪ&ਤੇ ਕਾਪੀ ਕਰੋ</translation> <translation id="1085064499066015002">ਸਾਰੀਆਂ ਸਾਈਟਾਂ 'ਤੇ ਹਮੇਸ਼ਾਂ ਚਾਲੂ</translation> <translation id="1085697365578766383">ਆਭਾਸੀ ਮਸ਼ੀਨ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਗੜਬੜ ਹੋ ਗਈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> -<translation id="1087965115100412394">ਸਾਈਟਾਂ ਨੂੰ MIDI ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਾ ਦਿਓ</translation> <translation id="1088659085457112967">ਰੀਡਰ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਵੋ</translation> <translation id="1090126737595388931">ਕੋਈ ਪਿਛੋਕੜ ਐਪ ਨਹੀਂ ਚੱਲ ਰਹੇ ਹਨ</translation> <translation id="1090541560108055381">ਜੋੜਾਬੱਧ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਪੱਕਾ ਕਰੋ ਕਿ ਇਹ ਕੋਡ ਦੋਵਾਂ ਡੀਵਾਈਸਾਂ 'ਤੇ ਇੱਕੋ ਜਿਹਾ ਹੈ</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">ਟੈਬ ਬੰਦ ਕਰੋ</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">ਬਾਹਰ ਜਾਣ 'ਤੇ ਕਲੀਅਰ ਕੀਤੀਆਂ ਗਈਆਂ</translation> -<translation id="3553487194781590058">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਵੱਖਰੀ ਟੈਬ 'ਤੇ ਸਵਿੱਚ ਕਰਨ 'ਤੇ, ਸਾਈਟਾਂ ਨੂੰ ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਵਿੰਡੋ ਖੋਲ੍ਹਣ ਦੀ ਆਗਿਆ ਨਾ ਦਿਓ</translation> <translation id="3554493885489666172">ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਬੰਧਨ <ph name="PROFILE_NAME" /> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਪ੍ਰਸ਼ਾਸਕ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਕਿਸੇ ਵੀ ਪ੍ਰੋਫਾਈਲ ਦੇ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹਨ।</translation> <translation id="3555812735919707620">ਐਕਸਟੈਂਸ਼ਨ ਹਟਾਓ</translation> <translation id="3557101512409028104">Family Link ਨਾਲ ਵੈੱਬਸਾਈਟ ਪਾਬੰਦੀਆਂ ਅਤੇ ਸਕ੍ਰੀਨ ਸਮੇਂ ਦੀਆਂ ਸੀਮਾਵਾਂ ਸੈੱਟ ਕਰੋ</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">ਵਿਆਖਿਆ</translation> <translation id="3975565978598857337">ਖੇਤਰ ਲਈ ਸਰਵਰ ਨਾਲ ਸੰਪਰਕ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</translation> <translation id="3976108569178263973">ਕੋਈ ਪ੍ਰਿੰਟਰ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।</translation> -<translation id="3976244126942806443">ਸਾਈਟਾਂ ਆਮ ਤੌਰ 'ਤੇ ਸੰਗੀਤ ਬਣਾਉਣ ਅਤੇ ਉਸਦਾ ਸੰਪਾਦਨ ਕਰਨ ਲਈ MIDI ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਦੀਆਂ ਹਨ</translation> <translation id="397703832102027365">ਅੰਤਮ ਰੂਪ ਦੇ ਰਿਹਾ ਹੈ...</translation> <translation id="3977145907578671392">ਸ਼ਾਇਦ ਇਨਕੋਗਨਿਟੋ ਵਿੱਚ ਕੁਝ ਸਾਈਟਾਂ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਕੰਮ ਨਾ ਕਰਨ</translation> <translation id="3977886311744775419">ਸਵੈਚਲਿਤ ਅੱਪਡੇਟ ਇਸ ਕਿਸਮ ਦੇ ਨੈੱਟਵਰਕ 'ਤੇ ਡਾਊਨਲੋਡ ਨਹੀਂ ਹੁੰਦੇ ਹਨ, ਪਰ ਤੁਸੀਂ ਅੱਪਡੇਟਾਂ ਲਈ ਹੱਥੀਂ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ।</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">ਲਾਕ ਸਕ੍ਰੀਨ 'ਤੇ ਸਟਾਈਲਸ ਦਾ ਨਵੀਨਤਮ ਨੋਟ-ਕਥਨ</translation> <translation id="4730888769809690665"><ph name="SITE" /> ਲਈ ਸੂਚਨਾਵਾਂ ਦੀ ਆਗਿਆ ਹੈ</translation> <translation id="4731306954230393087">ਉਨ੍ਹਾਂ ਨੇ ਤੁਹਾਡੇ ਬਾਰੇ ਰੱਖਿਅਤ ਕੀਤੀ ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੱਤੀ ਹੈ</translation> -<translation id="473140019006744096">ਇਸ ਅੱਪਡੇਟ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਲੋੜੀਂਦੀ ਜਗ੍ਹਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। ਆਪਣੇ ਡੀਵਾਈਸ 'ਤੇ <ph name="NECESSARY_SPACE" /> ਦੀ ਜਗ੍ਹਾ ਕਲੀਅਰ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ਖੱਬੇ ਪਾਸੇ)</translation> <translation id="4733793249294335256">ਟਿਕਾਣਾ</translation> <translation id="473546211690256853">ਇਹ ਖਾਤਾ <ph name="DOMAIN" /> ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">ਜਿਨ੍ਹਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸੂਚਨਾਵਾਂ ਦੀ ਲੋੜ ਹੈ ਉਹ ਕੰਮ ਨਹੀਂ ਕਰਨਗੀਆਂ</translation> <translation id="532943162177641444">ਇਸ ਡੀਵਾਈਸ ਵੱਲੋਂ ਵਰਤੇ ਜਾ ਸਕਣ ਵਾਲੇ ਮੋਬਾਈਲ ਹੌਟਸਪੌਟ ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਲਈ ਆਪਣੇ <ph name="PHONE_NAME" /> 'ਤੇ ਸੂਚਨਾ 'ਤੇ ਟੈਪ ਕਰੋ।</translation> <translation id="5329858601952122676">&ਮਿਟਾਓ</translation> -<translation id="5330592967519769658">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਵੱਖਰੀ ਟੈਬ 'ਤੇ ਸਵਿੱਚ ਕਰਨ 'ਤੇ, ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਵਿੰਡੋ ਖੋਲ੍ਹਣ ਦੀ ਆਗਿਆ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ</translation> <translation id="5331069282670671859">ਤੁਹਾਡੇ ਕੋਲ ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਕੋਈ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨਹੀਂ ਹਨ</translation> <translation id="5331568967879689647">ChromeOS ਸਿਸਟਮ ਐਪ</translation> <translation id="5331975486040154427">USB-C ਡੀਵਾਈਸ (ਖੱਬੇ ਪਾਸੇ ਪਿੱਛੇ ਦਾ ਪੋਰਟ)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">ਜਾਰੀ ਰੱਖ ਕੇ, ਤੁਸੀਂ ਇਹ ਸਹਿਮਤੀ ਦਿੰਦੇ ਹੋ ਕਿ ਇਹ ਡੀਵਾਈਸ ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਸੈਲਿਊਲਰ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਨਾਲ Google, ਤੁਹਾਡੇ ਬੱਚੇ ਦਾ ਕੈਰੀਅਰ ਅਤੇ ਇਸ ਡੀਵਾਈਸ ਦੇ ਨਿਰਮਾਤਾ ਤੋਂ ਅੱਪਡੇਟ ਅਤੇ ਐਪਾਂ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਡਾਊਨਲੋਡ ਅਤੇ ਸਥਾਪਤ ਵੀ ਕਰ ਸਕਦਾ ਹੈ। ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕੁਝ ਐਪਾਂ ਐਪ-ਅੰਦਰ ਖਰੀਦਾਂ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰ ਸਕਦੀਆਂ ਹਨ।</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{ਪਿੰਨ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਅੱਖਰ-ਚਿੰਨ੍ਹ ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ}one{ਪਿੰਨ ਘੱਟੋ-ਘੱਟ # ਅੱਖਰ-ਚਿੰਨ੍ਹ ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ}other{ਪਿੰਨ ਘੱਟੋ-ਘੱਟ # ਅੱਖਰ-ਚਿੰਨ੍ਹਾਂ ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> ਲਈ ਤੁਹਾਨੂੰ ਹੁਣ ਵਾਈ-ਫਾਈ ਨਾਲ ਕਨੈਕਟ ਹੋ ਕੇ ਅੱਪਡੇਟ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਜਾਂ, ਮੀਟਰਬੱਧ ਕਨੈਕਸ਼ਨ ਰਾਹੀਂ ਡਾਊਨਲੋਡ ਕਰੋ (ਖਰਚੇ ਲਾਗੂ ਹੋ ਸਕਦੇ ਹਨ)।</translation> -<translation id="5478520208448702555">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਵੱਖਰੀ ਟੈਬ 'ਤੇ ਸਵਿੱਚ ਕਰਨ 'ਤੇ, ਸਾਈਟਾਂ ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਵਿੰਡੋ ਖੋਲ੍ਹ ਸਕਦੀਆਂ ਹਨ</translation> <translation id="5481273127572794904">ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਈ ਫ਼ਾਈਲਾਂ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation> <translation id="5481941284378890518">ਨੇੜਲੇ ਪ੍ਰਿੰਟਰ ਸ਼ਾਮਲ ਕਰੋ</translation> <translation id="5484181871714116891">ਚਾਲੂ ਹੋਣ 'ਤੇ, ਪਾਸਕੀਆਂ iCloud Keychain ਵਿੱਚ ਬਣਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ ਅਤੇ ਤੁਹਾਡੇ Apple ਡੀਵਾਈਸਾਂ ਵਿੱਚ ਉਪਲਬਧ ਹੁੰਦੀਆਂ ਹਨ। ਬੰਦ ਹੋਣ 'ਤੇ, ਪਾਸਕੀਆਂ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਤੁਹਾਡੇ Chrome ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਬਣਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ।</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">ਸਥਾਪਨਾ ਕਰਨ ਲਈ ਕੁਝ ਆਸਾਨ ਕਦਮ ਚੁੱਕਣੇ ਹੁੰਦੇ ਹਨ। ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਤਬਦੀਲੀਆਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਡੇ ਕੋਲ ਤਸਦੀਕ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਮੌਕਾ ਹੋਵੇਗਾ।</translation> <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB ਮੋਬਾਈਲ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਨਾਲ ਅੱਪਡੇਟ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation> <translation id="5601833336918638013">ਸਾਈਟਾਂ ਨੂੰ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਦੀ ਖੋਜ ਕਰਨ ਦੀ ਆਗਿਆ ਨਾ ਦਿਓ</translation> <translation id="5602586420788540146">ਨਵੇਂ ਟੈਬ ਗਰੁੱਪ ਵਿੱਚ ਖੋਲ੍ਹੋ</translation> <translation id="5605758115928394442">ਤੁਹਾਡੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਇੱਕ ਸੂਚਨਾ ਤੁਹਾਡੇ ਫ਼ੋਨ 'ਤੇ ਭੇਜੀ ਗਈ।</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">ਇਸ ਤੋਂ ਐਕਸਟੈਂਸ਼ਨ ਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਫਲ:</translation> <translation id="5708171344853220004">Microsoft ਪ੍ਰਿੰਸੀਪਲ ਨਾਮ</translation> <translation id="5709557627224531708">Chrome ਨੂੰ ਆਪਣੇ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ ਵਜੋਂ ਸੈੱਟ ਕਰੋ</translation> -<translation id="5710122160114032242">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਵੱਖਰੀ ਟੈਬ 'ਤੇ ਸਵਿੱਚ ਕਰਨ 'ਤੇ, ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਵਿੰਡੋ ਖੋਲ੍ਹਣ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੱਤੀ ਜਾਂਦੀ</translation> <translation id="5711010025974903573">ਸੇਵਾ ਲੌਗ</translation> <translation id="5711983031544731014">ਅਣਲਾਕ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਆਪਣਾ ਪਾਸਵਰਡ ਦਰਜ ਕਰੋ।</translation> <translation id="5712153969432126546">ਸਾਈਟਾਂ ਕਈ ਵਾਰ ਦਸਤਾਵੇਜ਼, ਇਕਰਾਰਨਾਮਿਆਂ ਅਤੇ ਫ਼ਾਰਮਾਂ ਵਰਗੇ PDF ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦੀਆਂ ਹਨ</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Chrome ਤੋਂ ਹਟਾਓ</translation> <translation id="6326855256003666642">ਕੀਪਅਲਾਈਵ ਦੀ ਗਣਨਾ</translation> <translation id="6327785803543103246">ਵੈੱਬ ਪ੍ਰੌਕਸੀ autodiscovery</translation> -<translation id="6331818708794917058">ਸਾਈਟਾਂ MIDI ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਲਈ ਪੁੱਛ ਸਕਦੀਆਂ ਹਨ</translation> <translation id="6333064448949140209">ਫ਼ਾਈਲ ਡੀਬੱਗਿੰਗ ਲਈ Google ਨੂੰ ਭੇਜੀ ਜਾਵੇਗੀ</translation> <translation id="6333170995003625229">ਤੁਹਾਡੇ ਈਮੇਲ ਪਤੇ ਜਾਂ ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ। ਦੁਬਾਰਾ ਸਾਈਨ-ਇਨ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="6334267141726449402">ਲੌਗ ਇਕੱਤਰ ਕਰਨ ਲਈ ਇਸ ਲਿੰਕ ਨੂੰ ਕਾਪੀ ਕਰ ਕੇ ਵਰਤੋਂਕਾਰ ਨੂੰ ਭੇਜੋ।</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">ਅੱਪਲੋਡ ਅਸਫਲ ਰਿਹਾ (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)।</translation> <translation id="6459488832681039634">ਲੱਭਣ ਲਈ ਚੋਣ ਵਰਤੋ</translation> <translation id="6459799433792303855">ਕਿਰਿਆਸ਼ੀਲ ਵਿੰਡੋ ਨੂੰ ਕਿਸੇ ਹੋਰ ਡਿਸਪਲੇ 'ਤੇ ਲਿਜਾਇਆ ਗਿਆ।</translation> -<translation id="6460566145397380451">MIDI ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਹੈ</translation> <translation id="6460601847208524483">ਅਗਲਾ ਲੱਭੋ</translation> <translation id="6461170143930046705">ਨੈੱਟਵਰਕ ਖੋਜੇ ਜਾ ਰਹੇ ਹਨ...</translation> <translation id="6463795194797719782">&ਸੰਪਾਦਿਤ ਕਰੋ</translation> @@ -7093,7 +7082,6 @@ <translation id="6735304988756581115">ਕੁਕੀਜ਼ ਅਤੇ ਹੋਰ ਸਾਈਟ ਡਾਟਾ ਦਿਖਾਓ...</translation> <translation id="6736243959894955139">ਪਤਾ</translation> <translation id="6737663862851963468">Kerberos ਟਿਕਟ ਹਟਾਓ</translation> -<translation id="6737931010859480781">ਇਹ ਐਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ 'ਤੇ ਪਹਿਲਾਂ ਤੋਂ ਸਥਾਪਤ ਹੈ</translation> <translation id="6738180164164974883">ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਕੂਕੀਜ਼ ਸੈੱਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ</translation> <translation id="6738430949033571771">ਖਾਤੇ ਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ...</translation> <translation id="6739923123728562974">ਡੈਸਕਟਾਪ ਸ਼ਾਰਟਕੱਟ ਦਿਖਾਓ</translation> @@ -8486,7 +8474,6 @@ <translation id="7853747251428735">ਹੋਰ ਟੂ&ਲਸ</translation> <translation id="7853999103056713222">ਜ਼ਿਆਦਾ ਸੁਰੱਖਿਅਤ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰੋ</translation> <translation id="7855678561139483478">ਟੈਬ ਨੂੰ ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਲਿਜਾਓ</translation> -<translation id="7855729579456690716">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਵੱਖਰੀ ਟੈਬ 'ਤੇ ਸਵਿੱਚ ਕਰਨ 'ਤੇ, ਸਾਈਟਾਂ ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਵਿੰਡੋ ਖੋਲ੍ਹ ਸਕਦੀਆਂ ਹਨ</translation> <translation id="7857004848504343806">ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਕੋਈ ਅਜਿਹਾ ਸੁਰੱਖਿਆ ਮਾਡਿਊਲ ਹੈ, ਜਿਸਨੂੰ ChromeOS Flex ਵਿਚਲੀਆਂ ਕਈ ਮਹੱਤਵਪੂਰਨ ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਹੋਰ ਜਾਣਨ ਲਈ Chromebook ਦੇ ਮਦਦ ਕੇਂਦਰ 'ਤੇ ਜਾਓ: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">ਲਿਖਤ ਸੁਝਾਅ</translation> <translation id="7857949311770343000">ਕੀ ਇਹ ਉਹੀ ਨਵੀਂ ਟੈਬ ਪੰਨਾ ਹੈ ਜਿਸਦੀ ਤੁਸੀਂ ਆਸ ਕਰ ਰਹੇ ਸੀ?</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 6163e0b4..638b53a5e 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">Aplikacja <ph name="BRAND" /> pamięta Twoje dane logowania i automatycznie loguje Cię, gdy jest to możliwe. Jeśli ta funkcja jest wyłączona, przed każdym zalogowaniem się zobaczysz prośbę o potwierdzenie.</translation> <translation id="1008544602823861396">nie może używać Twoich danych na</translation> <translation id="1008557486741366299">Nie teraz</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Aby chronić Twoje dane, usunęliśmy uprawnienia witryny, której od 2 miesięcy nie odwiedzasz}few{Aby chronić Twoje dane, usunęliśmy uprawnienia witryn, których od 2 miesięcy nie odwiedzasz}many{Aby chronić Twoje dane, usunęliśmy uprawnienia witryn, których od 2 miesięcy nie odwiedzasz}other{Aby chronić Twoje dane, usunęliśmy uprawnienia witryn, których od 2 miesięcy nie odwiedzasz}}</translation> <translation id="1009663062402466586">Opcje gry są już dostępne</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Strona nie odpowiada}few{Strony nie odpowiadają}many{Strony nie odpowiadają}other{Strony nie odpowiadają}}</translation> <translation id="1011003645819296594">Zapisane urządzenia</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopiuj adr&es linku</translation> <translation id="1085064499066015002">Zawsze na wszystkich stronach</translation> <translation id="1085697365578766383">Błąd podczas uruchamiania maszyny wirtualnej. Spróbuj ponownie.</translation> -<translation id="1087965115100412394">Nie zezwalaj witrynom na łączenie się z urządzeniami MIDI</translation> <translation id="1088659085457112967">Włącz tryb czytnika</translation> <translation id="1090126737595388931">Brak aplikacji uruchomionych w tle</translation> <translation id="1090541560108055381">Przed sparowaniem urządzeń sprawdź, czy wyświetla się na nich ten sam kod</translation> @@ -3201,7 +3199,6 @@ <translation id="3551320343578183772">Zamknij kartę</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Usuń po zamknięciu</translation> -<translation id="3553487194781590058">Nie zezwalaj witrynom na otwieranie okna obrazu w obrazie podczas przechodzenia na inną kartę</translation> <translation id="3554493885489666172">Twoim urządzeniem zarządza <ph name="PROFILE_NAME" />. Dostęp do danych każdego profilu na nim mają administratorzy.</translation> <translation id="3555812735919707620">Usuń rozszerzenie</translation> <translation id="3557101512409028104">Ustaw ograniczenia dostępu do stron i czasu korzystania z urządzenia w Family Link</translation> @@ -3760,7 +3757,6 @@ <translation id="3975201861340929143">Objaśnienie</translation> <translation id="3975565978598857337">Nie udało się połączyć z serwerem obszaru</translation> <translation id="3976108569178263973">Brak dostępnych drukarek.</translation> -<translation id="3976244126942806443">Strony zwykle łączą się z urządzeniami MIDI, aby umożliwić tworzenie i edytowanie muzyki</translation> <translation id="397703832102027365">Kończę...</translation> <translation id="3977145907578671392">W niektórych witrynach funkcje mogą nie działać w trybie incognito</translation> <translation id="3977886311744775419">W sieci tego typu aktualizacje nie są pobierane automatycznie, możesz jednak sprawdzić ręcznie, czy są dostępne.</translation> @@ -4660,7 +4656,6 @@ <translation id="4730492586225682674">Ostatnia notatka zapisana rysikiem na ekranie blokady</translation> <translation id="4730888769809690665">Witryna <ph name="SITE" /> może wysyłać powiadomienia</translation> <translation id="4731306954230393087">Z uprawnieniami do używania zapisanych informacji o Tobie</translation> -<translation id="473140019006744096">Na tym urządzeniu jest za mało miejsca, aby dokończyć tę aktualizację. Zwolnij <ph name="NECESSARY_SPACE" /> i spróbuj ponownie.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (lewa)</translation> <translation id="4733793249294335256">Lokalizacja</translation> <translation id="473546211690256853">To konto jest zarządzane w domenie <ph name="DOMAIN" /></translation> @@ -5362,7 +5357,6 @@ <translation id="5327912693242073631">Funkcje, które wymagają powiadomień, nie będą działać</translation> <translation id="532943162177641444">Kliknij powiadomienie na telefonie <ph name="PHONE_NAME" />, by skonfigurować mobilny hotspot, z którego może korzystać to urządzenie.</translation> <translation id="5329858601952122676">&Usuń</translation> -<translation id="5330592967519769658">Zezwolono na otwieranie okna obrazu w obrazie po przejściu na inną kartę</translation> <translation id="5331069282670671859">Nie masz certyfikatów w tej kategorii</translation> <translation id="5331568967879689647">Aplikacja systemowa Chrome OS</translation> <translation id="5331975486040154427">Urządzenie USB-C (tylny port na lewym boku)</translation> @@ -5539,7 +5533,6 @@ <translation id="5473099001878321374">Przechodząc dalej, zgadzasz się, że to urządzenie może też automatycznie pobierać i instalować aktualizacje oraz aplikacje od Google, operatora urządzenia Twojego dziecka i producenta urządzenia oraz że może się to odbywać z użyciem komórkowej transmisji danych. Niektóre z tych aplikacji mogą oferować zakupy w aplikacji.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Kod PIN musi mieć co najmniej 1 znak}few{Kod PIN musi mieć co najmniej # znaki}many{Kod PIN musi mieć co najmniej # znaków}other{Kod PIN musi mieć co najmniej # znaku}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> wymaga połączenia się z Wi-Fi i pobrania aktualizacji. Możesz też rozpocząć pobieranie za pomocą połączenia z pomiarem użycia danych (mogą zostać naliczone opłaty).</translation> -<translation id="5478520208448702555">Witryny mogą otwierać okno obrazu w obrazie, gdy przechodzisz na inną kartę</translation> <translation id="5481273127572794904">Nie zezwolono na automatyczne pobieranie wielu plików</translation> <translation id="5481941284378890518">Dodaj drukarki znalezione w pobliżu</translation> <translation id="5484181871714116891">Gdy opcja jest włączona, klucze dostępu są tworzone w pęku kluczy iCloud i są dostępne na wszystkich urządzeniach Apple. Gdy opcja jest wyłączona, klucze dostępu są tworzone w profilu Chrome na tym urządzeniu.</translation> @@ -5697,7 +5690,6 @@ <translation id="5600348067066185292">Zainstaluj system operacyjny w kilku prostych krokach. Zanim zmiany zostaną zapisane na Twoim komputerze, jeszcze raz poprosimy Cię o potwierdzenie.</translation> <translation id="5600706100022181951">Pobranie aktualizacji wykorzysta <ph name="UPDATE_SIZE_MB" /> MB mobilnej transmisji danych. Czy chcesz kontynuować?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Nie zezwolono na łączenie się z urządzeniami MIDI</translation> <translation id="5601833336918638013">Nie zezwalaj witrynom na wyszukiwanie urządzeń Bluetooth</translation> <translation id="5602586420788540146">Otwórz w nowej grupie kart</translation> <translation id="5605758115928394442">Wysłaliśmy powiadomienie na Twój telefon, by potwierdzić, że to Ty.</translation> @@ -5819,7 +5811,6 @@ <translation id="5707185214361380026">Nie udało się wczytać rozszerzenia z:</translation> <translation id="5708171344853220004">Nazwa główna firmy Microsoft</translation> <translation id="5709557627224531708">Ustaw Chrome jako domyślną przeglądarkę</translation> -<translation id="5710122160114032242">Nie zezwolono na otwieranie okna obrazu w obrazie po przejściu na inną kartę</translation> <translation id="5711010025974903573">Dzienniki serwisowe</translation> <translation id="5711983031544731014">Nie można odblokować. Wpisz hasło.</translation> <translation id="5712153969432126546">Czasami witryny publikują pliki PDF takie jak dokumenty, umowy i formularze</translation> @@ -6581,7 +6572,6 @@ <translation id="6326175484149238433">Usuń z Chrome</translation> <translation id="6326855256003666642">Liczba elementów wymuszających aktywność</translation> <translation id="6327785803543103246">Automatyczne wykrywanie internetowego serwera proxy</translation> -<translation id="6331818708794917058">Strony mogą prosić o zgodę na połączenie z urządzeniami MIDI</translation> <translation id="6333064448949140209">Plik zostanie wysłany do Google w celu debugowania</translation> <translation id="6333170995003625229">Nie udało się zweryfikować Twojego adresu e-mail ani hasła. Zaloguj się jeszcze raz.</translation> <translation id="6334267141726449402">Skopiuj i wyślij ten link do użytkownika, aby pobrać logi.</translation> @@ -6731,7 +6721,6 @@ <translation id="6458701200018867744">Nie udało się przesłać (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Użyj zaznaczenia do funkcji Znajdź</translation> <translation id="6459799433792303855">Aktywne okno zostało przeniesione na inny ekran.</translation> -<translation id="6460566145397380451">Zezwolono na łączenie się z urządzeniami MIDI</translation> <translation id="6460601847208524483">Znajdź następne</translation> <translation id="6461170143930046705">Szukam sieci...</translation> <translation id="6463795194797719782">&Edycja</translation> @@ -7061,7 +7050,6 @@ <translation id="6735304988756581115">Pokaż pliki cookie i inne dane witryn...</translation> <translation id="6736243959894955139">Adres</translation> <translation id="6737663862851963468">Usuwanie zgłoszenia Kerberos</translation> -<translation id="6737931010859480781">Ta aplikacja jest wstępnie zainstalowana na urządzeniu</translation> <translation id="6738180164164974883">Zezwalaj na przechowywanie plików cookie innych firm</translation> <translation id="6738430949033571771">Weryfikuję konto…</translation> <translation id="6739923123728562974">Pokaż skrót na pulpicie</translation> @@ -8453,7 +8441,6 @@ <translation id="7853747251428735">Więcej narzę&dzi</translation> <translation id="7853999103056713222">Użyj bezpieczniejszego hasła</translation> <translation id="7855678561139483478">Przenieś kartę do nowego okna</translation> -<translation id="7855729579456690716">Witryny mogą otwierać okno obrazu w obrazie, gdy przechodzisz na inną kartę</translation> <translation id="7857004848504343806">Twój komputer ma moduł zabezpieczeń, który umożliwia zastosowanie wielu krytycznych funkcji zabezpieczeń w ChromeOS Flex. Więcej informacji znajdziesz w Centrum pomocy Chromebooka na stronie: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Sugestie tekstowe</translation> <translation id="7857949311770343000">Czy to oczekiwana strona nowej karty?</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 0e8661cb..06da88a 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">O <ph name="BRAND" /> lembra como você fez login e conecta sua conta automaticamente sempre que possível. Quando essa opção estiver desativada, será necessário fornecer uma confirmação todas as vezes.</translation> <translation id="1008544602823861396">está impedido de usar suas informações em</translation> <translation id="1008557486741366299">Não agora</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Para proteger seus dados, as permissões de um site que você não acessa há dois meses foram removidas}one{Para proteger seus dados, as permissões de um site que você não acessa há dois meses foram removidas}other{Para proteger seus dados, as permissões de sites que você não acessa há dois meses foram removidas}}</translation> <translation id="1009663062402466586">Controles do jogo já disponíveis</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Página sem resposta}one{Páginas sem resposta}other{Páginas sem resposta}}</translation> <translation id="1011003645819296594">Dispositivos salvos</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copiar &endereço do link</translation> <translation id="1085064499066015002">Sempre em todos os sites</translation> <translation id="1085697365578766383">Erro ao iniciar a máquina virtual. Tente novamente.</translation> -<translation id="1087965115100412394">Não permitir que os sites se conectem a dispositivos MIDI</translation> <translation id="1088659085457112967">Entrar no modo leitor</translation> <translation id="1090126737595388931">Nenhum aplicativo de fundo sendo executado</translation> <translation id="1090541560108055381">Antes de parear, confira se é mostrado o mesmo código nos dois dispositivos</translation> @@ -3233,7 +3231,6 @@ <translation id="3551320343578183772">Fechar guia</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" />: <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Limpar ao sair</translation> -<translation id="3553487194781590058">Não permitir que os sites abram uma janela picture-in-picture quando você mudar para outra guia</translation> <translation id="3554493885489666172">Seu dispositivo é gerenciado por <ph name="PROFILE_NAME" />. Os administradores podem acessar os dados de qualquer perfil neste dispositivo.</translation> <translation id="3555812735919707620">Remover extensão</translation> <translation id="3557101512409028104">Defina restrições de sites e limites de tempo de uso com o Family Link</translation> @@ -3792,7 +3789,6 @@ <translation id="3975201861340929143">Explicação</translation> <translation id="3975565978598857337">Falha ao entrar em contato com o servidor desse domínio</translation> <translation id="3976108569178263973">Não há impressoras disponíveis.</translation> -<translation id="3976244126942806443">Os sites geralmente se conectam a dispositivos MIDI para criar e editar músicas</translation> <translation id="397703832102027365">Finalizando...</translation> <translation id="3977145907578671392">Os recursos de alguns sites podem não funcionar na navegação anônima</translation> <translation id="3977886311744775419">Não é possível fazer o download das atualizações automáticas neste tipo de rede, mas você pode verificar as atualizações manualmente.</translation> @@ -4693,7 +4689,6 @@ <translation id="4730492586225682674">Anotação mais recente da stylus na tela de bloqueio</translation> <translation id="4730888769809690665">Notificações permitidas para <ph name="SITE" /></translation> <translation id="4731306954230393087">Pode usar as informações salvas sobre você</translation> -<translation id="473140019006744096">Não há espaço suficiente neste dispositivo para concluir a atualização. Libere <ph name="NECESSARY_SPACE" /> no dispositivo e tente novamente.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (esquerdo)</translation> <translation id="4733793249294335256">Local</translation> <translation id="473546211690256853">Esta conta é gerenciada por <ph name="DOMAIN" /></translation> @@ -5395,7 +5390,6 @@ <translation id="5327912693242073631">Os recursos que precisam das notificações não funcionarão</translation> <translation id="532943162177641444">Toque na notificação no <ph name="PHONE_NAME" /> para configurar o ponto de acesso móvel que pode ser usado por este dispositivo.</translation> <translation id="5329858601952122676">&Excluir</translation> -<translation id="5330592967519769658">Com permissão para abrir uma janela picture-in-picture ao mudar para uma guia diferente</translation> <translation id="5331069282670671859">Você não tem certificados nesta categoria</translation> <translation id="5331568967879689647">App do sistema ChromeOS</translation> <translation id="5331975486040154427">Dispositivo USB-C (porta traseira da esquerda)</translation> @@ -5573,7 +5567,6 @@ <translation id="5473099001878321374">Ao continuar, você concorda que este dispositivo também pode fazer o download e a instalação de atualizações de apps do Google, da operadora da criança e do fabricante do dispositivo automaticamente, possivelmente usando dados da rede celular. Alguns aplicativos podem oferecer compras no app.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{O PIN precisa ter pelo menos 1 caractere}one{O PIN precisa ter pelo menos # caractere}other{O PIN precisa ter pelo menos # caracteres}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> precisa que você se conecte ao Wi-Fi para fazer o download de uma atualização. Você também pode fazer o download em uma conexão limitada (sujeito a cobranças).</translation> -<translation id="5478520208448702555">Os sites podem abrir uma janela picture-in-picture quando você muda para uma guia diferente</translation> <translation id="5481273127572794904">Bloquear o download automático de vários arquivos</translation> <translation id="5481941284378890518">Adicionar impressoras próximas</translation> <translation id="5484181871714116891">Quando ativadas, as chaves de acesso serão criadas com as Chaves do iCloud e ficarão disponíveis nos seus dispositivos Apple. Quando desativadas, as chaves de acesso serão criadas no seu perfil do Chrome nesse dispositivo.</translation> @@ -5731,7 +5724,6 @@ <translation id="5600348067066185292">Siga algumas etapas simples para fazer a instalação. Você terá outra chance de confirmar suas opções antes que as mudanças sejam concluídas.</translation> <translation id="5600706100022181951">O download da atualização será feito com <ph name="UPDATE_SIZE_MB" /> MB de dados móveis. Quer continuar?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Bloquear a conexão a dispositivos MIDI</translation> <translation id="5601833336918638013">Não permitir que os sites procurem dispositivos Bluetooth</translation> <translation id="5602586420788540146">Abrir em um novo grupo de guias</translation> <translation id="5605758115928394442">Uma notificação foi enviada ao seu smartphone para confirmar sua identidade.</translation> @@ -5854,7 +5846,6 @@ <translation id="5707185214361380026">Falha ao carregar a extensão a partir de:</translation> <translation id="5708171344853220004">Nome principal da Microsoft</translation> <translation id="5709557627224531708">Definir o Chrome como seu navegador padrão</translation> -<translation id="5710122160114032242">Sem permissão para abrir uma janela picture-in-picture ao mudar para uma guia diferente</translation> <translation id="5711010025974903573">Registros do serviço</translation> <translation id="5711983031544731014">Não foi possível realizar o desbloqueio. Insira sua senha.</translation> <translation id="5712153969432126546">Às vezes, os sites podem publicar PDFs, como documentos, contratos, e formulários</translation> @@ -6616,7 +6607,6 @@ <translation id="6326175484149238433">Remover do Google Chrome</translation> <translation id="6326855256003666642">Contagem de manutenção de atividade</translation> <translation id="6327785803543103246">Descoberta automática do proxy da Web</translation> -<translation id="6331818708794917058">Os sites podem pedir para se conectar a dispositivos MIDI</translation> <translation id="6333064448949140209">O arquivo será enviado ao Google para depuração</translation> <translation id="6333170995003625229">Não foi possível verificar seu endereço de e-mail ou sua senha. Tente fazer login novamente.</translation> <translation id="6334267141726449402">Copie e envie esse link ao usuário para coletar os registros.</translation> @@ -6766,7 +6756,6 @@ <translation id="6458701200018867744">Falha no upload (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Usar seleção para buscar</translation> <translation id="6459799433792303855">A janela ativa foi movida para outra tela.</translation> -<translation id="6460566145397380451">Permitir a conexão a dispositivos MIDI</translation> <translation id="6460601847208524483">Localizar próximo</translation> <translation id="6461170143930046705">Procurando redes…</translation> <translation id="6463795194797719782">&Editar</translation> @@ -7094,7 +7083,6 @@ <translation id="6735304988756581115">Mostrar cookies e outros dados do site...</translation> <translation id="6736243959894955139">Endereço</translation> <translation id="6737663862851963468">Remover tíquete do Kerberos</translation> -<translation id="6737931010859480781">Este app é pré-instalado no seu dispositivo</translation> <translation id="6738180164164974883">Permitir a definição de cookies de terceiros</translation> <translation id="6738430949033571771">Verificando a conta…</translation> <translation id="6739923123728562974">Mostrar atalho na área de trabalho</translation> @@ -8489,7 +8477,6 @@ <translation id="7853747251428735">Mais &ferramentas</translation> <translation id="7853999103056713222">Usar uma senha mais segura</translation> <translation id="7855678561139483478">Mover guia para uma nova janela</translation> -<translation id="7855729579456690716">Os sites podem abrir uma janela picture-in-picture quando você muda para outra guia</translation> <translation id="7857004848504343806">Seu computador tem um módulo de segurança, que é usado para implementar vários recursos de proteção importantes no ChromeOS Flex. Visite a Central de Ajuda do Chromebook para saber mais: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Sugestões de texto</translation> <translation id="7857949311770343000">Esta é a página "Nova guia" que você esperava?</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 347c8ad..d11151d 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">O <ph name="BRAND" /> memoriza a forma como iniciou sessão e inicia automaticamente a sua sessão sempre que possível. Quando esta opção está desativada, é-lhe pedida sempre uma confirmação.</translation> <translation id="1008544602823861396">fica impedido de usar as suas informações em</translation> <translation id="1008557486741366299">Agora não</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Para proteger os seus dados, foram removidas as autorizações de um site que não visita há 2 meses}other{Para proteger os seus dados, foram removidas as autorizações dos sites que não visita há 2 meses}}</translation> <translation id="1009663062402466586">Controlos de jogos já disponíveis</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Página sem resposta}other{Páginas sem resposta}}</translation> <translation id="1011003645819296594">Dispositivos guardados</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copiar &endereço do link</translation> <translation id="1085064499066015002">Sempre em todos os sites</translation> <translation id="1085697365578766383">Não foi possível iniciar a máquina virtual. Tente novamente.</translation> -<translation id="1087965115100412394">Não permitir que os sites estabeleçam ligação a dispositivos MIDI</translation> <translation id="1088659085457112967">Entrar no modo de leitor</translation> <translation id="1090126737595388931">Não há aplicações em execução em segundo plano</translation> <translation id="1090541560108055381">Antes de sincronizar, certifique-se de que este código é o mesmo em ambos os dispositivos</translation> @@ -3218,7 +3216,6 @@ <translation id="3551320343578183772">Fechar Separador</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Apagar à saída</translation> -<translation id="3553487194781590058">Não permitir que os sites abram uma janela de ecrã no ecrã quando muda para um separador diferente</translation> <translation id="3554493885489666172">O seu dispositivo é gerido por <ph name="PROFILE_NAME" />. Os administradores conseguem aceder aos dados em qualquer perfil neste dispositivo.</translation> <translation id="3555812735919707620">Remover extensão</translation> <translation id="3557101512409028104">Defina restrições de Websites e limites de tempo de utilização com o Family Link</translation> @@ -3777,7 +3774,6 @@ <translation id="3975201861340929143">Explicação</translation> <translation id="3975565978598857337">Falha ao contactar o servidor do domínio.</translation> <translation id="3976108569178263973">Não existem impressoras disponíveis.</translation> -<translation id="3976244126942806443">Normalmente, os sites estabelecem ligação a dispositivos MIDI para criar e editar música</translation> <translation id="397703832102027365">A finalizar...</translation> <translation id="3977145907578671392">As funcionalidades em alguns sites podem não funcionar na Navegação anónima</translation> <translation id="3977886311744775419">As atualizações automáticas não são transferidas neste tipo de rede, mas pode verificar se existem atualizações manualmente.</translation> @@ -4677,7 +4673,6 @@ <translation id="4730492586225682674">Nota mais recente com a caneta stylus no ecrã de bloqueio</translation> <translation id="4730888769809690665">São permitidas notificações de <ph name="SITE" /></translation> <translation id="4731306954230393087">Autorizado a usar as informações que guardou sobre si</translation> -<translation id="473140019006744096">Não existe espaço suficiente neste dispositivo para concluir a atualização. Limpe <ph name="NECESSARY_SPACE" /> no dispositivo e tente novamente.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (esquerdo)</translation> <translation id="4733793249294335256">Local</translation> <translation id="473546211690256853">Esta conta é gerida por <ph name="DOMAIN" /></translation> @@ -5379,7 +5374,6 @@ <translation id="5327912693242073631">As funcionalidades que necessitam de notificações não funcionarão.</translation> <translation id="532943162177641444">Toque na notificação no <ph name="PHONE_NAME" /> para configurar a zona Wi-Fi móvel que pode ser utilizada por este dispositivo.</translation> <translation id="5329858601952122676">E&liminar</translation> -<translation id="5330592967519769658">Com autorização para abrir uma janela de ecrã no ecrã quando muda para um separador diferente</translation> <translation id="5331069282670671859">Não tem certificados nesta categoria</translation> <translation id="5331568967879689647">App do sistema ChromeOS</translation> <translation id="5331975486040154427">Dispositivo USB-C (porta traseira do lado esquerdo)</translation> @@ -5557,7 +5551,6 @@ <translation id="5473099001878321374">Ao continuar, aceita que este dispositivo também pode transferir e instalar automaticamente atualizações e apps da Google, do operador da criança e do fabricante deste dispositivo, possivelmente através de dados móveis. Algumas destas apps podem oferecer compras na app.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{O PIN tem de ter, pelo menos, um caráter.}other{O PIN tem de ter, pelo menos, # carateres.}}</translation> <translation id="5474859849784484111">O domínio <ph name="MANAGER" /> requer que estabeleça ligação a uma rede Wi-Fi agora e transfira uma atualização. Em alternativa, transfira a partir de uma ligação com acesso limitado (podem aplicar-se custos).</translation> -<translation id="5478520208448702555">Os sites podem abrir uma janela de ecrã no ecrã quando muda para um separador diferente</translation> <translation id="5481273127572794904">Sem autorização para transferir vários ficheiros automaticamente</translation> <translation id="5481941284378890518">Adicionar impressoras próximas</translation> <translation id="5484181871714116891">Quando a opção está ativada, as chaves de acesso são criadas no Porta-chaves iCloud e estão disponíveis nos seus dispositivos Apple. Quando a opção está desativada, as chaves de acesso são criadas no seu perfil do Chrome neste dispositivo.</translation> @@ -5715,7 +5708,6 @@ <translation id="5600348067066185292">Para a instalação, efetue alguns passos fáceis. Terá outra oportunidade de confirmar antes de realizar as alterações ao seu computador.</translation> <translation id="5600706100022181951">A atualização será transferida e irá utilizar <ph name="UPDATE_SIZE_MB" /> MB de dados móveis. Quer continuar?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Sem autorização para estabelecer ligação a dispositivos MIDI</translation> <translation id="5601833336918638013">Não permitir que os sites procurem dispositivos Bluetooth</translation> <translation id="5602586420788540146">Abra num novo grupo de separadores</translation> <translation id="5605758115928394442">Foi enviada uma notificação para o seu telemóvel para confirmar a sua identidade.</translation> @@ -5838,7 +5830,6 @@ <translation id="5707185214361380026">Falha ao carregar a extensão de:</translation> <translation id="5708171344853220004">Nome principal Microsoft</translation> <translation id="5709557627224531708">Definir o Chrome como o navegador predefinido</translation> -<translation id="5710122160114032242">Não tem autorização para abrir uma janela de ecrã no ecrã quando muda para um separador diferente</translation> <translation id="5711010025974903573">Registos de serviço</translation> <translation id="5711983031544731014">Não foi possível desbloquear. Introduza a sua palavra-passe.</translation> <translation id="5712153969432126546">Por vezes, os sites publicam PDFs, como documentos, contratos e formulários</translation> @@ -6600,7 +6591,6 @@ <translation id="6326175484149238433">Remover do Chrome</translation> <translation id="6326855256003666642">Contagem keepalive</translation> <translation id="6327785803543103246">Deteção automática de proxy da Web</translation> -<translation id="6331818708794917058">Os sites podem solicitar a ligação a dispositivos MIDI</translation> <translation id="6333064448949140209">O ficheiro será enviado para a Google para depuração</translation> <translation id="6333170995003625229">Não foi possível validar o seu endereço de email ou palavra-passe. Tente iniciar sessão novamente.</translation> <translation id="6334267141726449402">Copie e envie este link para o utilizador para recolher os registos.</translation> @@ -6750,7 +6740,6 @@ <translation id="6458701200018867744">O carregamento falhou (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Usar selecção para localizar</translation> <translation id="6459799433792303855">Janela ativa movida para outro ecrã.</translation> -<translation id="6460566145397380451">Com autorização para estabelecer ligação a dispositivos MIDI</translation> <translation id="6460601847208524483">Localizar seguinte</translation> <translation id="6461170143930046705">A procurar redes…</translation> <translation id="6463795194797719782">&Editar</translation> @@ -7076,7 +7065,6 @@ <translation id="6735304988756581115">Mostrar cookies e outros dados do site...</translation> <translation id="6736243959894955139">Endereço</translation> <translation id="6737663862851963468">Remover permissão Kerberos</translation> -<translation id="6737931010859480781">Esta app está pré-instalada no seu dispositivo</translation> <translation id="6738180164164974883">Permitir a definição de cookies de terceiros</translation> <translation id="6738430949033571771">A validar a conta…</translation> <translation id="6739923123728562974">Mostrar atalho no ambiente de trabalho</translation> @@ -8471,7 +8459,6 @@ <translation id="7853747251428735">Mais ferrament&as</translation> <translation id="7853999103056713222">Use uma palavra-passe mais segura</translation> <translation id="7855678561139483478">Mover separador para nova janela</translation> -<translation id="7855729579456690716">Os sites podem abrir uma janela de ecrã no ecrã quando muda para um separador diferente</translation> <translation id="7857004848504343806">O seu computador contém um módulo seguro, que é usado para implementar várias funcionalidades de segurança essenciais no ChromeOS Flex. Visite o Centro de Ajuda do Chromebook em https://support.google.com/chromebook/?p=sm para saber mais</translation> <translation id="7857093393627376423">Sugestões de texto</translation> <translation id="7857949311770343000">É esta a página novo separador que esperava?</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 7bba867..1832c402 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> reține modul în care te-ai conectat și te conectează automat când este posibil. Când opțiunea este dezactivată, ți se va solicita confirmarea de fiecare dată.</translation> <translation id="1008544602823861396">nu are permisiunea de a folosi informațiile tale de la</translation> <translation id="1008557486741366299">Nu acum</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Pentru a-ți proteja datele, s-au eliminat permisiunile de pe un site pe care nu l-ai accesat de două luni}few{Pentru a-ți proteja datele, s-au eliminat permisiunile de pe site-urile pe care nu le-ai accesat în ultimele două luni}other{Pentru a-ți proteja datele, s-au eliminat permisiunile de pe site-urile pe care nu le-ai accesat în ultimele două luni}}</translation> <translation id="1009663062402466586">Comenzile pentru joc sunt acum disponibile</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Pagină inactivă}few{Pagini inactive}other{Pagini inactive}}</translation> <translation id="1011003645819296594">Dispozitive salvate</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Copiază adresa linkului</translation> <translation id="1085064499066015002">Întotdeauna pe toate site-urile</translation> <translation id="1085697365578766383">A apărut o eroare la pornirea mașinii virtuale. Încearcă din nou.</translation> -<translation id="1087965115100412394">Nu permite site-urilor să se conecteze la dispozitive MIDI</translation> <translation id="1088659085457112967">Accesează modul Cititor</translation> <translation id="1090126737595388931">Nu rulează aplicații în fundal</translation> <translation id="1090541560108055381">Înainte de asociere, asigură-te că apare același cod pe ambele dispozitive</translation> @@ -3218,7 +3216,6 @@ <translation id="3551320343578183772">Închide fila</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Șters la ieșire</translation> -<translation id="3553487194781590058">Nu permite site-urilor să deschidă o fereastră picture-in-picture atunci când treci la altă filă</translation> <translation id="3554493885489666172">Dispozitivul este gestionat de <ph name="PROFILE_NAME" />. Administratorii pot accesa datele din orice profil de pe acest dispozitiv.</translation> <translation id="3555812735919707620">Eliminați extensia</translation> <translation id="3557101512409028104">Setează restricții pentru site-uri și limite de timp pentru durata de folosire a ecranului cu Family Link</translation> @@ -3777,7 +3774,6 @@ <translation id="3975201861340929143">Explicație</translation> <translation id="3975565978598857337">Contactarea serverului pentru domeniu nu a reușit</translation> <translation id="3976108569178263973">Nu există imprimante disponibile.</translation> -<translation id="3976244126942806443">Site-urile se conectează de obicei la dispozitive MIDI pentru crearea și editarea muzicii</translation> <translation id="397703832102027365">Se finalizează...</translation> <translation id="3977145907578671392">Este posibil ca funcțiile de pe anumite site-uri să nu ruleze în modul incognito</translation> <translation id="3977886311744775419">Actualizările automate nu se descarcă în acest tip de rețea, dar poți căuta actualizări manual.</translation> @@ -4677,7 +4673,6 @@ <translation id="4730492586225682674">Cea mai recentă notă cu creionul de pe ecranul de blocare</translation> <translation id="4730888769809690665">Notificări permise pentru <ph name="SITE" /></translation> <translation id="4731306954230393087">Poate folosi informațiile pe care le-a salvat despre tine</translation> -<translation id="473140019006744096">Nu există spațiu suficient pe dispozitiv pentru a finaliza actualizarea. Eliberează <ph name="NECESSARY_SPACE" /> pe dispozitiv și încearcă din nou.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (stânga)</translation> <translation id="4733793249294335256">Locație</translation> <translation id="473546211690256853">Acest cont este administrat de <ph name="DOMAIN" /></translation> @@ -5379,7 +5374,6 @@ <translation id="5327912693242073631">Funcțiile care au nevoie de notificări nu vor funcționa</translation> <translation id="532943162177641444">Atinge notificarea pe <ph name="PHONE_NAME" /> pentru a configura hotspotul mobil care poate fi folosit de acest dispozitiv.</translation> <translation id="5329858601952122676">&Șterge</translation> -<translation id="5330592967519769658">Au permisiunea de a deschide o fereastră picture-in-picture atunci când treci la altă filă</translation> <translation id="5331069282670671859">Nu ai niciun certificat în această categorie</translation> <translation id="5331568967879689647">Aplicație pentru sistemul de operare Chrome</translation> <translation id="5331975486040154427">Dispozitiv USB-C (portul din stânga spate)</translation> @@ -5557,7 +5551,6 @@ <translation id="5473099001878321374">Dacă alegi să continui înseamnă că ești de acord ca dispozitivul să poată descărca și instala automat actualizări și aplicații de la Google, de la operatorul copilului și de la producătorul dispozitivului, probabil folosind datele mobile. Este posibil ca unele dintre aceste aplicații să ofere achiziții în aplicație.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Codul PIN trebuie să conțină minimum un caracter}few{Codul PIN trebuie să conțină minimum # caractere}other{Codul PIN trebuie să conțină minimum # de caractere}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> îți solicită să te conectezi acum la rețeaua Wi-Fi și să descarci o actualizare. Sau poți să descarci folosind o conexiune contorizată (se pot aplica taxe).</translation> -<translation id="5478520208448702555">Site-urile pot deschide o fereastră picture-in-picture atunci când treci la altă filă</translation> <translation id="5481273127572794904">Nu au permisiunea de a descărca automat mai multe fișiere</translation> <translation id="5481941284378890518">Adaugă imprimantele din apropiere</translation> <translation id="5484181871714116891">Când opțiunea este activată, cheile de acces se creează în iCloud Keychain și sunt disponibile pe dispozitivele Apple. Când opțiunea este dezactivată, cheile de acces se creează în profilul Chrome pe acest dispozitiv.</translation> @@ -5715,7 +5708,6 @@ <translation id="5600348067066185292">Instalarea presupune câțiva pași simpli. Vei avea o altă ocazie de a confirma înainte ca modificările să se aplice pe computer.</translation> <translation id="5600706100022181951">Actualizarea va fi descărcată folosind <ph name="UPDATE_SIZE_MB" /> MB de date mobile Vrei să continui?</translation> <translation id="5601503069213153581">Cod PIN</translation> -<translation id="5601823921345337195">Nu au permisiunea de a se conecta la dispozitive MIDI</translation> <translation id="5601833336918638013">Nu permite site-urilor să caute dispozitive Bluetooth</translation> <translation id="5602586420788540146">Deschide într-un nou grup de file</translation> <translation id="5605758115928394442">Ți s-a trimis o notificare pe telefon pentru a-ți confirma identitatea.</translation> @@ -5837,7 +5829,6 @@ <translation id="5707185214361380026">Nu s-a încărcat extensia de la:</translation> <translation id="5708171344853220004">Nume unic Microsoft</translation> <translation id="5709557627224531708">Setează Chrome ca browser prestabilit</translation> -<translation id="5710122160114032242">Nu au permisiunea de a deschide o fereastră picture-in-picture atunci când treci la altă filă</translation> <translation id="5711010025974903573">Jurnale de service</translation> <translation id="5711983031544731014">Nu se poate debloca. Introdu parola.</translation> <translation id="5712153969432126546">Site-urile publică uneori fișiere PDF, cum ar documente, contracte și formulare</translation> @@ -6599,7 +6590,6 @@ <translation id="6326175484149238433">Eliminați din Chrome</translation> <translation id="6326855256003666642">Număr necesar pentru stare activă</translation> <translation id="6327785803543103246">Web Proxy Auto-Discovery</translation> -<translation id="6331818708794917058">Site-urile pot solicita permisiunea de a se conecta la dispozitive MIDI</translation> <translation id="6333064448949140209">Fișierul va fi trimis la Google pentru remedierea erorilor</translation> <translation id="6333170995003625229">Adresa de e-mail sau parola nu a putut fi confirmată. Încearcă să te conectezi din nou.</translation> <translation id="6334267141726449402">Copiază și trimite linkul utilizatorului pentru a colecta jurnalele.</translation> @@ -6749,7 +6739,6 @@ <translation id="6458701200018867744">Încărcarea nu a reușit (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Folosește selecția pentru a găsi</translation> <translation id="6459799433792303855">Fereastra activă a fost mutată pe alt ecran.</translation> -<translation id="6460566145397380451">Au permisiunea de a se conecta la dispozitive MIDI</translation> <translation id="6460601847208524483">Următorul</translation> <translation id="6461170143930046705">Se caută rețele...</translation> <translation id="6463795194797719782">&Editează</translation> @@ -7077,7 +7066,6 @@ <translation id="6735304988756581115">Afișează cookie-uri și alte date privind site-ul...</translation> <translation id="6736243959894955139">Adresă</translation> <translation id="6737663862851963468">Elimină un tichet Kerberos</translation> -<translation id="6737931010859480781">Aplicația este preinstalată pe dispozitiv.</translation> <translation id="6738180164164974883">Permite setarea cookie-urilor terță parte</translation> <translation id="6738430949033571771">Se realizează verificarea contului...</translation> <translation id="6739923123728562974">Afișează comanda rapidă pe desktop</translation> @@ -8472,7 +8460,6 @@ <translation id="7853747251428735">Mai multe instru&mente</translation> <translation id="7853999103056713222">Folosește o parolă mai sigură</translation> <translation id="7855678561139483478">Mută fila în fereastră nouă</translation> -<translation id="7855729579456690716">Site-urile pot să deschidă o fereastră picture-in-picture atunci când treci la altă filă</translation> <translation id="7857004848504343806">Computerul conține un modul securizat, care este folosit pentru a implementa numeroase funcții esențiale de securitate în sistemul de operare Chrome Flex. Accesează Centrul de ajutor Chromebook pentru a afla mai multe: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Sugestii de text</translation> <translation id="7857949311770343000">Aceasta este pagina Filă nouă pe care o așteptați?</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index d05c9b9..b60f1a23 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> запоминает, как вы вошли в аккаунт, и автоматически выполняет вход, когда это возможно. Если функция отключена, каждый раз будет запрашиваться подтверждение.</translation> <translation id="1008544602823861396">запрещено использовать информацию о вас на</translation> <translation id="1008557486741366299">Не сейчас</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Для защиты ваших данных мы отозвали разрешения у сайта, который вы не посещали 2 месяца.}one{Для защиты ваших данных мы отозвали разрешения у сайтов, которые вы не посещали 2 месяца.}few{Для защиты ваших данных мы отозвали разрешения у сайтов, которые вы не посещали 2 месяца.}many{Для защиты ваших данных мы отозвали разрешения у сайтов, которые вы не посещали 2 месяца.}other{Для защиты ваших данных мы отозвали разрешения у сайтов, которые вы не посещали 2 месяца.}}</translation> <translation id="1009663062402466586">Теперь доступны средства управления играми</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Страница не отвечает}one{Страницы не отвечают}few{Страницы не отвечают}many{Страницы не отвечают}other{Страницы не отвечают}}</translation> <translation id="1011003645819296594">Сохраненные устройства</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Копировать ад&рес ссылки</translation> <translation id="1085064499066015002">Разрешить на всех сайтах</translation> <translation id="1085697365578766383">Не удалось запустить виртуальную машину. Повторите попытку.</translation> -<translation id="1087965115100412394">Запретить сайтам подключаться к MIDI-устройствам</translation> <translation id="1088659085457112967">Включить режим чтения</translation> <translation id="1090126737595388931">Нет приложений, работающих в фоновом режиме</translation> <translation id="1090541560108055381">Перед подключением убедитесь, что код одинаковый на обоих устройствах.</translation> @@ -3219,7 +3217,6 @@ <translation id="3551320343578183772">Закрыть вкладку</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Удаляется при выходе</translation> -<translation id="3553487194781590058">Запретить сайтам открывать окно "картинка в картинке", если вы переходите на другую вкладку</translation> <translation id="3554493885489666172">Ваше устройство находится под управлением домена <ph name="PROFILE_NAME" />. Администраторы имеют доступ к данным всех профилей на этом устройстве.</translation> <translation id="3555812735919707620">Удалить расширение</translation> <translation id="3557101512409028104">С помощью Family Link вы можете ограничивать доступ к сайтам и время использования устройства.</translation> @@ -3778,7 +3775,6 @@ <translation id="3975201861340929143">Описание</translation> <translation id="3975565978598857337">Не удалось связаться с областью сервера.</translation> <translation id="3976108569178263973">Нет доступных принтеров.</translation> -<translation id="3976244126942806443">Обычно сайты подключаются к MIDI-устройствам для создания и изменения музыки.</translation> <translation id="397703832102027365">Завершение…</translation> <translation id="3977145907578671392">В режиме инкогнито некоторые функции сайтов могут быть отключены.</translation> <translation id="3977886311744775419">Скачать обновления в вашей сети можно только вручную.</translation> @@ -4678,7 +4674,6 @@ <translation id="4730492586225682674">Последняя заметка, созданная на заблокированном экране с помощью стилуса</translation> <translation id="4730888769809690665">Сайту <ph name="SITE" /> разрешено отправлять уведомления</translation> <translation id="4731306954230393087">Сайтам разрешено использовать сохраненную информацию о вас.</translation> -<translation id="473140019006744096">На устройстве недостаточно места для установки обновления. Освободите <ph name="NECESSARY_SPACE" /> и повторите попытку.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (левый)</translation> <translation id="4733793249294335256">Папка</translation> <translation id="473546211690256853">Этот аккаунт находится в домене <ph name="DOMAIN" /></translation> @@ -5380,7 +5375,6 @@ <translation id="5327912693242073631">Функции, которые используют уведомления, не будут работать</translation> <translation id="532943162177641444">Откройте уведомление на телефоне <ph name="PHONE_NAME" />, чтобы настроить точку доступа, к которой сможет подключиться это устройство.</translation> <translation id="5329858601952122676">&Удалить</translation> -<translation id="5330592967519769658">Разрешено открывать окно "картинка в картинке", если вы переходите на другую вкладку</translation> <translation id="5331069282670671859">Нет сертификатов в этой категории</translation> <translation id="5331568967879689647">Системное приложение Chrome OS</translation> <translation id="5331975486040154427">Устройство USB-C (дальний порт слева)</translation> @@ -5558,7 +5552,6 @@ <translation id="5473099001878321374">Продолжая, вы разрешаете устройству автоматически скачивать и устанавливать обновления и приложения от производителя устройства, оператора связи вашего ребенка и компании Google (в том числе по мобильной сети). Некоторые из этих приложений могут предлагать платный контент.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-код должен содержать не менее 1 символа.}one{PIN-код должен содержать не менее # символа.}few{PIN-код должен содержать не менее # символов.}many{PIN-код должен содержать не менее # символов.}other{PIN-код должен содержать не менее # символа.}}</translation> <translation id="5474859849784484111">Согласно действующим правилам (источник – <ph name="MANAGER" />) необходимо скачать обновление по Wi-Fi. Вам также доступно подключение с тарификацией, но в этом случае за передачу данных может взиматься плата.</translation> -<translation id="5478520208448702555">Сайты могут открывать окно "картинка в картинке", если вы переходите на другую вкладку</translation> <translation id="5481273127572794904">Запретить сайтам автоматически скачивать несколько файлов</translation> <translation id="5481941284378890518">Добавить ближайшие принтеры</translation> <translation id="5484181871714116891">Если параметр включен, ключи доступа создаются в службе "Связка ключей iCloud" и доступны на всех ваших устройствах Apple. Если параметр отключен, ключи доступа создаются в профиле Chrome на этом устройстве.</translation> @@ -5716,7 +5709,6 @@ <translation id="5600348067066185292">Для установки нужно выполнить несколько простых действий. У вас будет ещё одна возможность подтвердить изменения, прежде чем они будут применены к компьютеру.</translation> <translation id="5600706100022181951">Чтобы скачать обновление, потребуется <ph name="UPDATE_SIZE_MB" /> МБ мобильного трафика. Продолжить?</translation> <translation id="5601503069213153581">PIN-код</translation> -<translation id="5601823921345337195">Запретить сайтам подключаться к MIDI-устройствам</translation> <translation id="5601833336918638013">Запретить сайтам поиск устройств Bluetooth</translation> <translation id="5602586420788540146">Открыть в новой группе вкладок</translation> <translation id="5605758115928394442">На ваш телефон отправлено уведомление для подтверждения личности.</translation> @@ -5838,7 +5830,6 @@ <translation id="5707185214361380026">Не удалось загрузить расширение из:</translation> <translation id="5708171344853220004">Имя участника Microsoft</translation> <translation id="5709557627224531708">Сделайте Google Chrome браузером по умолчанию</translation> -<translation id="5710122160114032242">Сайтам запрещено открывать окно "картинка в картинке", если вы переходите на другую вкладку</translation> <translation id="5711010025974903573">Служебные журналы</translation> <translation id="5711983031544731014">Невозможно разблокировать. Введите пароль.</translation> <translation id="5712153969432126546">Иногда на сайтах публикуются файлы в формате PDF, например документы, договоры или формы.</translation> @@ -6600,7 +6591,6 @@ <translation id="6326175484149238433">Удалить</translation> <translation id="6326855256003666642">Количество соединений keepalive</translation> <translation id="6327785803543103246">Автоматическое определение настроек прокси-сервера</translation> -<translation id="6331818708794917058">Разрешить сайтам отправлять запрос на подключение к MIDI-устройствам</translation> <translation id="6333064448949140209">Файл будет отправлен в Google для отладки</translation> <translation id="6333170995003625229">Введен недействительный адрес электронной почты или пароль. Повторите попытку.</translation> <translation id="6334267141726449402">Скопируйте и отправьте ссылку пользователю для сбора журналов.</translation> @@ -6750,7 +6740,6 @@ <translation id="6458701200018867744">Ошибка загрузки (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Найти выделенное</translation> <translation id="6459799433792303855">Активное окно перемещено на другой экран.</translation> -<translation id="6460566145397380451">Разрешить сайтам подключаться к MIDI-устройствам</translation> <translation id="6460601847208524483">Найти след.</translation> <translation id="6461170143930046705">Поиск сетей…</translation> <translation id="6463795194797719782">&Изменить</translation> @@ -7082,7 +7071,6 @@ <translation id="6735304988756581115">Показать cookie и другие данные...</translation> <translation id="6736243959894955139">Адрес</translation> <translation id="6737663862851963468">Удалить билет Kerberos</translation> -<translation id="6737931010859480781">Приложение предустановлено на устройстве</translation> <translation id="6738180164164974883">Разрешить использование сторонних файлов cookie</translation> <translation id="6738430949033571771">Проверка аккаунта…</translation> <translation id="6739923123728562974">Показывать ярлык на рабочем столе</translation> @@ -8476,7 +8464,6 @@ <translation id="7853747251428735">Дополнительные инструмен&ты</translation> <translation id="7853999103056713222">Используйте более надежный пароль</translation> <translation id="7855678561139483478">Открыть вкладку в новом окне</translation> -<translation id="7855729579456690716">Сайты могут открывать окно "картинка в картинке", если вы переходите на другую вкладку</translation> <translation id="7857004848504343806">Компьютер оснащен модулем безопасности, с помощью которого в Chrome OS Flex реализовано множество критически важных функций защиты. Более подробную информацию можно получить в Справочном центре Chromebook: https://support.google.com/chromebook/?p=sm.</translation> <translation id="7857093393627376423">Текстовые подсказки</translation> <translation id="7857949311770343000">Другая страница быстрого доступа?</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index 4ec086fa..a93bf60 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> ඔබ පුරනය වූ ආකාරය මතක තබා ගන්නා අතර ස්වයංක්රීයව ඔබව පුරනය කරයි. ක්රියාවිරහිත වූ විට, එක් එක් වහවේ තහවුරු කිරීම සඳහා ඔබෙන් අසනු ඇත.</translation> <translation id="1008544602823861396">මෙය මත ඔබේ තොරතුරු භාවිත කිරීමෙන් අවහිර කරනු ලබයි</translation> <translation id="1008557486741366299">දැන් නොවේ</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{ඔබේ දත්ත ආරක්ෂා කිරීම සඳහා, ඔබ මාස 2කින් නොපැමිණි අඩවියකින් අවසර ඉවත් කර ඇත}one{ඔබේ දත්ත ආරක්ෂා කිරීම සඳහා, ඔබ මාස 2කින් නොපැමිණි අඩවිවලින් අවසර ඉවත් කර ඇත}other{ඔබේ දත්ත ආරක්ෂා කිරීම සඳහා, ඔබ මාස 2කින් නොපැමිණි අඩවිවලින් අවසර ඉවත් කර ඇත}}</translation> <translation id="1009663062402466586">ක්රීඩා පාලන දැන් ලබා ගත හැකිය</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{පිටුව ප්රතිචාර නොදක්වයි}one{පිටු ප්රතිචාර නොදක්වයි}other{පිටු ප්රතිචාර නොදක්වයි}}</translation> <translation id="1011003645819296594">සුරැකි උපාංග</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">සබැඳි ලිපි&නය පිටපත් කරන්න</translation> <translation id="1085064499066015002">සියලු අඩවිවල සැමවිට ක්රියාත්මකයි</translation> <translation id="1085697365578766383">අථත්ය යාන්ත්රණය ආරම්භ කිරීමේ දෝෂයකි. කරුණාකර නැවත උත්සාහ කරන්න.</translation> -<translation id="1087965115100412394">MIDI උපාංගවලට සම්බන්ධ වීමට අඩවිවලට ඉඩ නොදෙන්න</translation> <translation id="1088659085457112967">කියවන ප්රකාරයට ඇතුළු වන්න</translation> <translation id="1090126737595388931">පසුබිමේ යෙදුම් කිසිවක් ක්රියා නොකරයි</translation> <translation id="1090541560108055381">යුගල කිරීමට පෙර, උපාංග දෙකෙහිම මෙම කේතය සමාන දැයි සහතික කර ගන්න</translation> @@ -3231,7 +3229,6 @@ <translation id="3551320343578183772">ටැබය වසන්න</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">පිට වීමේදී හිස් කෙරිණි</translation> -<translation id="3553487194781590058">ඔබ වෙනත් පටිත්තකට වෙනස් කරන විට පින්තූර-තුළ-පින්තූර කවුළුවක් විවෘත කිරීමට වෙබ් අඩවි වලට ඉඩ නොදෙන්න</translation> <translation id="3554493885489666172">ඔබගේ උපාංගය <ph name="PROFILE_NAME" /> විසින් කළමනාකරණය කෙරේ. පරිපාලකයින්ට මෙම උපාංගයේ ඕනෑම පැතිකඩක ඇති දත්තවලට ප්රවේශ විය හැකිය.</translation> <translation id="3555812735919707620">දිගුව ඉවත් කරන්න</translation> <translation id="3557101512409028104">Family Link මඟින් වෙබ් අඩවි සීමා කිරීම් සහ තිර කාල සීමා සකසන්න</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">පැහැදිලි කිරීම</translation> <translation id="3975565978598857337">ක්ෂේත්රය සඳහා සේවාදායකය සම්බන්ධ කිරීම අසාර්ථක විය</translation> <translation id="3976108569178263973">ලද හැකි මුද්රක නැත.</translation> -<translation id="3976244126942806443">වෙබ් අඩවි සංගීතය නිර්මාණය කිරීම සහ සංස්කරණ කිරීම සඳහා සාමාන්යයෙන් MIDI උපාංග වෙත සම්බන්ධ වේ</translation> <translation id="397703832102027365">අවසන්කරමින්...</translation> <translation id="3977145907578671392">සමහර අඩවිවල විශේෂාංග අප්රසිද්ධියේ ක්රියා නොකළ හැකිය</translation> <translation id="3977886311744775419">ස්වයංක්රීය යාවත්කාලීන මෙම ජාල වර්ගයේ බාගන්නා නැති නමුත්, ඔබට යාවත්කාලීන සඳහා හස්තීයව පරීක්ෂා කළ හැක.</translation> @@ -4691,7 +4687,6 @@ <translation id="4730492586225682674">අගුලු තිරය මත පන්හිඳ නවතම සටහන</translation> <translation id="4730888769809690665"><ph name="SITE" /> සඳහා දැනුම්දීම් ඉඩ දී ඇත</translation> <translation id="4731306954230393087">ඔවුන් ඔබ ගැන සුරකින ලද තොරතුරු භාවිත කිරීමට ඉඩ දෙන්න</translation> -<translation id="473140019006744096">මෙම යාවත්කාලීනය සම්පූර්ණ කිරීමට මෙම උපාංගයේ ප්රමාණවත් ඉඩක් නොමැත. ඔබගේ උපාංගයෙහි <ph name="NECESSARY_SPACE" /> හිස් කර නැවත උත්සාහ කරන්න.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (වම)</translation> <translation id="4733793249294335256">ස්ථානය</translation> <translation id="473546211690256853">මෙම ගිනුම පාලනය වන්නේ <ph name="DOMAIN" /> නි</translation> @@ -5393,7 +5388,6 @@ <translation id="5327912693242073631">දැනුම්දීම් අවශ්ය විශේෂාංග ක්රියා නොකරනු ඇත</translation> <translation id="532943162177641444">මෙම උපාංගය මගින් භාවිත කළ හැකි ජංගම හොට්ස්පොට් පිහිටුවීමට ඔබේ <ph name="PHONE_NAME" /> මත දැනුම්දීම තට්ටු කරන්න.</translation> <translation id="5329858601952122676">&මකන්න</translation> -<translation id="5330592967519769658">ඔබ වෙනත් පටිත්තකට වෙනස් කරන විට පින්තූරය තුළ පින්තූරය කවුළුවක් විවෘත කිරීමට අවසර ඇත</translation> <translation id="5331069282670671859">ඔබට මෙම ප්රවර්ගයෙහි සහතික නොමැත</translation> <translation id="5331568967879689647">ChromeOS පද්ධති යෙදුම</translation> <translation id="5331975486040154427">USB-C උපාංගය (වම්පස පසු තොට)</translation> @@ -5571,7 +5565,6 @@ <translation id="5473099001878321374">ඉදිරියට යාමෙන්, බොහෝ විට සෙලියුලර් දත්ත භාවිතයෙන් මෙම උපාංගයට Google, ඔබගේ දරුවාගේ වාහකය, සහ මෙම උපාංගයේ නිෂ්පාදක වෙතින් යාවත්කාලීන සහ යෙදුම් ස්වයංක්රියව බාගෙන ස්ථාපනය කළ හැකි බවට ඔබ එකඟ වේ. මෙම යෙදුම්වලින් සමහරක් යෙදුම-තුළ මිලදී ගැනීම් පිරිනමයි.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN අඩු තරමින් අනුලකුණු එකක් විය යුතුය}one{PIN අඩු තරමින් අනුලකුණු #ක් විය යුතුය}other{PIN අඩු තරමින් අනුලකුණු #ක් විය යුතුය}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> හට ඔබ දැන් Wi-Fi වෙත සම්බන්ධ වී යාවත්කාලීනයක් බාගැනීම අවශ්යයි. නැති නම්, මනුගත සම්බන්ධතාවකින් බාගන්න (ගාස්තු අදාළ විය හැකිය).</translation> -<translation id="5478520208448702555">ඔබ වෙනත් පටිත්තකට වෙනස් කරන විට වෙබ් අඩවි පින්තූරය තුළ පින්තූර කවුළුවක් විවෘත කළ හැකි ය</translation> <translation id="5481273127572794904">ගොනු කිහිපයක් ස්වයංක්රියව බාගැනීමට ඉඩ නොදේ</translation> <translation id="5481941284378890518">අවට මුද්රක එක් කරන්න</translation> <translation id="5484181871714116891">ක්රියාත්මක වූ විට, මුරයතුරු iCloud Keychain තුළ තනනු ලබන අතර ඔබේ Apple උපාංග හරහා ලබා ගත හැක. ක්රියාවිරහිත වූ විට, මෙම උපාංගයෙහි ඔබේ Chrome පැතිකඩ තුළ මුරයතුරු තනනු ලැබේ.</translation> @@ -5729,7 +5722,6 @@ <translation id="5600348067066185292">ස්ථාපනය පහසු පියවර කිහිපයක් ගනී. ඔබගේ පරිගණකයට වෙනස් කිරීම් සිදු කිරීමට පෙර තහවුරු කිරීමට ඔබට තවත් අවස්ථාවක් ලැබෙනු ඇත.</translation> <translation id="5600706100022181951">යාවත්කාලීනය <ph name="UPDATE_SIZE_MB" /> MB ජංගම දත්ත භාවිත කර බාගනු ඇත. ඔබ දිගටම කරගෙන යාමට කැමතිද?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI උපාංග වෙත සම්බන්ධ වීමට ඉඩ නොදේ</translation> <translation id="5601833336918638013">බ්ලූටූත් උපාංග සෙවීමට අඩවිවලට ඉඩ නොදෙන්න</translation> <translation id="5602586420788540146">නව පටිති සමූහයක විවෘත කරන්න</translation> <translation id="5605758115928394442">ඒ ඔබ බව තහවුරු කිරීමට ඔබේ දුරකථනයට දැනුම්දීමක් යවන ලදි.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">මෙතැනින් දිගුව ලබාගත නොහැක:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chrome ඔබේ පෙරනිමි බ්රවුසරය ලෙස සකසන්න</translation> -<translation id="5710122160114032242">ඔබ වෙනත් පටිත්තකට වෙනස් කරන විට පින්තූරය තුළ පින්තූර කවුළුවක් විවෘත කිරීමට ඉඩ නොදේ</translation> <translation id="5711010025974903573">සේවා ලොග</translation> <translation id="5711983031544731014">අගුලු හැරීමට නොහැකිය. ඔබගේ මුරපදය ඇතුළු කරන්න.</translation> <translation id="5712153969432126546">අඩවි සමහර විට ලේඛන, කොන්ත්රාත්තු සහ පෝරම වැනි PDF ප්රකාශයට පත් කළ හැකිය</translation> @@ -6615,7 +6606,6 @@ <translation id="6326175484149238433">Chrome වෙතින් ඉවත් කරන්න</translation> <translation id="6326855256003666642">Keepalive ගණන</translation> <translation id="6327785803543103246">වෙබ් ප්රොක්සි ස්වයං අනාවරණය</translation> -<translation id="6331818708794917058">අඩවි MIDI උපාංග වෙත සම්බන්ධ වීමට ඉල්ලිය හැකිය</translation> <translation id="6333064448949140209">ගොනුව නිදොස් කිරීම සඳහා Google වෙත යවනු ඇත</translation> <translation id="6333170995003625229">ඔබගේ ඉ-තැපැල් ලිපිනය හෝ මුරපදය සත්යාපනය කළ නොහැකි විය. නැවත පිරීමට උත්සාහ කරන්න.</translation> <translation id="6334267141726449402">ලොග් එකතු කිරීම සඳහා මෙම සබැඳිය පිටපත් කර පරිශීලකයාට යවන්න.</translation> @@ -6765,7 +6755,6 @@ <translation id="6458701200018867744">උඩුගත කිරීම අසාර්ථක විය (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Find සඳහා තෝරාගැනීම භාවිත කරන්න</translation> <translation id="6459799433792303855">සක්රිය කවුළුව වෙනත් සංදර්ශකයකට මාරු කරන ලදි.</translation> -<translation id="6460566145397380451">MIDI උපාංග වෙත සම්බන්ධ වීමට ඉඩ දේ</translation> <translation id="6460601847208524483">ඊළඟ සොයන්න</translation> <translation id="6461170143930046705">ජාල සොයනු ලැබේ...</translation> <translation id="6463795194797719782">&සංස්කරණය</translation> @@ -7092,7 +7081,6 @@ <translation id="6735304988756581115">කුකීස් සහ වෙනත් සයිට් දත්ත පෙන්වන්න..</translation> <translation id="6736243959894955139">ලිපිනය</translation> <translation id="6737663862851963468">Kerberos ප්රවේශපත්රය ඉවත් කරන්න</translation> -<translation id="6737931010859480781">මෙම යෙදුම ඔබේ උපාංගයෙහි පෙර ස්ථාපනය කර ඇත</translation> <translation id="6738180164164974883">තෙවන පාර්ශවීය කුකීස් සැකසීමට ඉඩ දෙන්න</translation> <translation id="6738430949033571771">ගිණුම සත්යාපනය කරමින්...</translation> <translation id="6739923123728562974">ඩෙස්ක්ටොප් කෙටි මග පෙන්වන්න</translation> @@ -8487,7 +8475,6 @@ <translation id="7853747251428735">තවත් මෙවලම්</translation> <translation id="7853999103056713222">සුරක්ෂිත මුරපදයක් භාවිතා කරන්න</translation> <translation id="7855678561139483478">පටිත්ත නව කවුළුවට ගෙන යන්න</translation> -<translation id="7855729579456690716">ඔබ වෙනත් පටිත්තකට වෙනස් කරන විට වෙබ් අඩවිවලට පින්තූරය තුළ පින්තූර කවුළුවක් විවෘත කළ හැක</translation> <translation id="7857004848504343806">ඔබගේ පරිගණකයේ ආරක්ෂිත මොඩියුලයක් අඩංගු වන අතර, එය ChromeOS Flex හි බාෙහෝ තීරණාත්මක ආරක්ෂක විශේෂාංග ක්රියාත්මක කිරීමට භාවිත වේ. තව දැන ගැනීමට Chromebook උදවු මධ්යස්ථානය වෙත යන්න: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">පෙළ යෝජනා</translation> <translation id="7857949311770343000">මෙය ඔබ බලාපොරොත්තු වූ නව ටැබ පිටුවද?</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index b7d1785..8b656d9 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> si zapamätá, ako ste sa prihlásili, a ak je to možné, automaticky vás prihlási. Keď je táto možnosť vypnutá, výzva na potvrdenie sa vám zobrazí vždy.</translation> <translation id="1008544602823861396">má zablokované používanie vašich informácií na</translation> <translation id="1008557486741366299">Teraz nie</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Z dôvodu ochrany vašich údajov boli z webu, ktorý ste nenavštívili dva mesiace, odstránené povolenia}few{Z dôvodu ochrany vašich údajov boli z webov, ktoré ste nenavštívili dva mesiace, odstránené povolenia}many{Z dôvodu ochrany vašich údajov boli z webov, ktoré ste nenavštívili dva mesiace, odstránené povolenia}other{Z dôvodu ochrany vašich údajov boli z webov, ktoré ste nenavštívili dva mesiace, odstránené povolenia}}</translation> <translation id="1009663062402466586">Ovládanie hry nie je k dispozícii</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Stránka nereaguje}few{Stránky nereagujú}many{Stránky nereagujú}other{Stránky nereagujú}}</translation> <translation id="1011003645819296594">Uložené zariadenia</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopírovať adre&su odkazu</translation> <translation id="1085064499066015002">Vždy na všetkých weboch</translation> <translation id="1085697365578766383">Pri spúšťaní virtuálneho počítača sa vyskytla chyba. Skúste to znova.</translation> -<translation id="1087965115100412394">Nepovoliť webom pripájať sa k zariadeniam MIDI</translation> <translation id="1088659085457112967">Spustiť režim čítačky</translation> <translation id="1090126737595388931">Na pozadí nie sú spustené žiadne aplikácie</translation> <translation id="1090541560108055381">Pred spárovaním sa uistite, že tento kód je v oboch zariadeniach rovnaký</translation> @@ -3219,7 +3217,6 @@ <translation id="3551320343578183772">Zatvoriť kartu</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Vymazané pri ukončení</translation> -<translation id="3553487194781590058">Nepovoliť webom otvárať okno obrazu v obraze po prechode na inú kartu</translation> <translation id="3554493885489666172">Vaše zariadenie spravuje <ph name="PROFILE_NAME" />. Správcovia majú prístup k údajom vo všetkých profiloch tohto zariadenia.</translation> <translation id="3555812735919707620">Odstrániť rozšírenie</translation> <translation id="3557101512409028104">Pomocou aplikácie Family Link môžete nastaviť obmedzenia webov a obmedzenia času používania</translation> @@ -3778,7 +3775,6 @@ <translation id="3975201861340929143">Vysvetlenie</translation> <translation id="3975565978598857337">Kontaktovanie servera pre oblasť zlyhalo</translation> <translation id="3976108569178263973">Nie sú k dispozícii žiadne tlačiarne.</translation> -<translation id="3976244126942806443">Weby sa zvyčajne pripájajú k zariadeniam MIDI, aby mohli vytvárať a upravovať hudbu</translation> <translation id="397703832102027365">Prebieha dokončovanie...</translation> <translation id="3977145907578671392">Funkcie na niektorých weboch nemusia byť v režime inkognito k dispozícii</translation> <translation id="3977886311744775419">Automatické aktualizácie sa nestiahnu v tomto type siete, ale dostupnosť aktualizácií môžete skontrolovať manuálne.</translation> @@ -4678,7 +4674,6 @@ <translation id="4730492586225682674">Zobraziť poslednú poznámku napísanú dotykovým perom na uzamknutej obrazovke</translation> <translation id="4730888769809690665">Web <ph name="SITE" /> má povolené upozornenia</translation> <translation id="4731306954230393087">Web má povolené používať informácie, ktoré o vás uložil</translation> -<translation id="473140019006744096">V tomto zariadení nie je dostatok priestoru na dokončenie tejto aktualizácie. Uvoľnite v ňom <ph name="NECESSARY_SPACE" /> a vyskúšajte to znova.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (ľavé)</translation> <translation id="4733793249294335256">Umiestnenie</translation> <translation id="473546211690256853">Tento účet spravuje doména <ph name="DOMAIN" />.</translation> @@ -5380,7 +5375,6 @@ <translation id="5327912693242073631">Funkcie vyžadujúce upozornenia nebudú fungovať</translation> <translation id="532943162177641444">Klepnutím na upozornenie v telefóne <ph name="PHONE_NAME" /> nastavte mobilný hotspot, ktorý môže toto zariadenie použiť.</translation> <translation id="5329858601952122676">&Odstrániť</translation> -<translation id="5330592967519769658">Keď prejdete na inú kartu, otvorí sa okno obrazu v obraze</translation> <translation id="5331069282670671859">V tejto kategórii nemáte žiadne certifikáty</translation> <translation id="5331568967879689647">Systémová aplikácia systému Chrome OS</translation> <translation id="5331975486040154427">Zariadenie USB-C (port vľavo vzadu)</translation> @@ -5558,7 +5552,6 @@ <translation id="5473099001878321374">Pokračovaním vyjadrujete súhlas s tým, že toto zariadenie môže tiež automaticky sťahovať a inštalovať aktualizácie a aplikácie od Googlu, operátora vášho dieťaťa a výrobcu tohto zariadenia a v prípade potreby pritom môže používať mobilné dáta. Niektoré tieto aplikácie môžu ponúkať nákupy v aplikácii.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN musí mať aspoň jeden znak}few{PIN musí mať aspoň # znaky}many{PIN must be at least # characters}other{PIN musí mať aspoň # znakov}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> vyžaduje, aby ste sa ihneď pripojili k sieti Wi-Fi a stiahli aktualizáciu. Prípadne ju stiahnite prostredníctvom meraného pripojenia (môžu sa účtovať poplatky).</translation> -<translation id="5478520208448702555">Weby môžu otvoriť okno obrazu v obraze, keď prejdete na inú kartu</translation> <translation id="5481273127572794904">Nemôže automaticky sťahovať viacero súborov</translation> <translation id="5481941284378890518">Pridať tlačiarne v okolí</translation> <translation id="5484181871714116891">Keď je táto možnosť zapnutá, prístupové kľúče sa vytvárajú v iCloud Kľúčenke a sú k dispozícii v zariadeniach Apple. Keď je táto možnosť vypnutá, prístupové kľúče sa vytvárajú v profile Chromu v tomto zariadení.</translation> @@ -5716,7 +5709,6 @@ <translation id="5600348067066185292">Inštalácia pozostáva z niekoľkých ľahkých krokov. Než sa vo vašom počítači vykonajú zmeny, budete mať ďalšiu príležitosť ju potvrdiť.</translation> <translation id="5600706100022181951">Aktualizácia bude stiahnutá použitím <ph name="UPDATE_SIZE_MB" /> MB mobilných dát. Chcete pokračovať?</translation> <translation id="5601503069213153581">Kód PIN</translation> -<translation id="5601823921345337195">Nemôže sa pripájať sa k zariadeniam MIDI</translation> <translation id="5601833336918638013">Nepovoliť webom vyhľadávať zariadenia s rozhraním Bluetooth</translation> <translation id="5602586420788540146">Otvoriť v novej skupine kariet</translation> <translation id="5605758115928394442">Do vášho telefónu bolo odoslané upozornenie, ktorým overíte, že ste to vy.</translation> @@ -5838,7 +5830,6 @@ <translation id="5707185214361380026">Nepodarilo sa načítať rozšírenie zo zdroja</translation> <translation id="5708171344853220004">Hlavný názov Microsoft</translation> <translation id="5709557627224531708">Nastavte Chrome ako predvolený prehliadač</translation> -<translation id="5710122160114032242">Keď prejdete na inú kartu, okno obrazu v obraze sa neotvorí</translation> <translation id="5711010025974903573">Servisné denníky</translation> <translation id="5711983031544731014">Nie je možné odomknúť. Zadajte heslo.</translation> <translation id="5712153969432126546">Weby niekedy zverejňujú súbory PDF, napríklad dokumenty, zmluvy a formuláre</translation> @@ -6600,7 +6591,6 @@ <translation id="6326175484149238433">Odstrániť z Chromu</translation> <translation id="6326855256003666642">Počet akcií zabraňujúcich ukončeniu</translation> <translation id="6327785803543103246">Automatické zisťovanie webového proxy servera</translation> -<translation id="6331818708794917058">Weby môžu žiadať o pripojenie k zariadeniam MIDI</translation> <translation id="6333064448949140209">Súbor bude odoslaný Googlu na účely ladenia</translation> <translation id="6333170995003625229">Vašu e‑mailovú adresu alebo heslo sa nepodarilo overiť. Skúste sa prihlásiť znova.</translation> <translation id="6334267141726449402">Skopírujte a odošlite tento odkaz používateľovi, aby mohol zhromažďovať denníky.</translation> @@ -6750,7 +6740,6 @@ <translation id="6458701200018867744">Nepodarilo sa nahrať (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Použiť výber na hľadanie</translation> <translation id="6459799433792303855">Aktívne okno bolo presunuté na inú obrazovku.</translation> -<translation id="6460566145397380451">Môže sa pripájať sa k zariadeniam MIDI</translation> <translation id="6460601847208524483">Nájsť ďalšie</translation> <translation id="6461170143930046705">Vyhľadávajú sa siete...</translation> <translation id="6463795194797719782">&Upraviť</translation> @@ -7080,7 +7069,6 @@ <translation id="6735304988756581115">Zobraziť súbory cookie a ďalšie dáta webov…</translation> <translation id="6736243959894955139">Adresa</translation> <translation id="6737663862851963468">Odstrániť lístok Kerberos</translation> -<translation id="6737931010859480781">Táto aplikácia je predinštalovaná vo vašom zariadení</translation> <translation id="6738180164164974883">Povoliť nastavovať súbory cookie tretích strán</translation> <translation id="6738430949033571771">Overuje sa účet…</translation> <translation id="6739923123728562974">Zobraziť odkaz na pracovnej ploche</translation> @@ -8474,7 +8462,6 @@ <translation id="7853747251428735">Ďalšie nástro&je</translation> <translation id="7853999103056713222">Používajte bezpečnejšie heslo</translation> <translation id="7855678561139483478">Presun karty do nového okna</translation> -<translation id="7855729579456690716">Weby môžu otvoriť okno obrazu v obraze, keď prejdete na inú kartu</translation> <translation id="7857004848504343806">Váš počítač obsahuje bezpečnostný modul, pomocou ktorého sa v systéme Chrome OS Flex implementujú mnohé dôležité bezpečnostné funkcie. Viac sa dozviete v centre pomoci pre Chromebooky na https://support.google.com/chromebook/?p=sm.</translation> <translation id="7857093393627376423">Textové návrhy</translation> <translation id="7857949311770343000">Je toto stránka na novej karte, ktorú ste čakali?</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index a14b1b4..a2ed4f8 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> si zapomni način vaše prijave in vas samodejno prijavi, ko je to mogoče. Če je ta možnost izklopljena, boste vsakič pozvani k potrditvi.</translation> <translation id="1008544602823861396">ne sme uporabljati vaših podatkov na</translation> <translation id="1008557486741366299">Ne zdaj</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Zaradi zaščite podatkov so bila za spletno mesto, ki ga niste obiskali dva meseca, odstranjena dovoljenja.}one{Zaradi zaščite podatkov so bila odstranjena dovoljenja za spletna mesta, ki jih niste obiskali dva meseca.}two{Zaradi zaščite podatkov so bila odstranjena dovoljenja za spletna mesta, ki jih niste obiskali dva meseca.}few{Zaradi zaščite podatkov so bila odstranjena dovoljenja za spletna mesta, ki jih niste obiskali dva meseca.}other{Zaradi zaščite podatkov so bila odstranjena dovoljenja za spletna mesta, ki jih niste obiskali dva meseca.}}</translation> <translation id="1009663062402466586">Zdaj so na voljo kontrolniki za igre</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Stran se ne odziva}one{Strani se ne odzivajo}two{Strani se ne odzivajo}few{Strani se ne odzivajo}other{Strani se ne odzivajo}}</translation> <translation id="1011003645819296594">Shranjene naprave</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopiraj naslov pove&zave</translation> <translation id="1085064499066015002">Vedno na vseh spletnih mestih</translation> <translation id="1085697365578766383">Navideznega računalnika ni bilo mogoče zagnati. Poskusite znova.</translation> -<translation id="1087965115100412394">Spletnim mestom ni dovoljeno povezovanje z napravami MIDI.</translation> <translation id="1088659085457112967">Vklop načina bralnika</translation> <translation id="1090126737595388931">Ni aktivnih programov v ozadju</translation> <translation id="1090541560108055381">Pred seznanjanjem poskrbite, da je v obeh napravah prikazana ista koda.</translation> @@ -3235,7 +3233,6 @@ <translation id="3551320343578183772">Zapri zavihek</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Izbris ob izhodu</translation> -<translation id="3553487194781590058">Spletnim mestom ni omogočeno odpiranje okna v načinu slike v sliki ob preklopu na drug zavihek</translation> <translation id="3554493885489666172">Napravo upravlja domena <ph name="PROFILE_NAME" />. Skrbniki lahko dostopajo do podatkov v katerem koli profilu v tej napravi.</translation> <translation id="3555812735919707620">Odstrani razširitev</translation> <translation id="3557101512409028104">Nastavitev omejitev za obisk spletnih mest in omejitev časa uporabe s Family Linkom</translation> @@ -3794,7 +3791,6 @@ <translation id="3975201861340929143">Razlaga</translation> <translation id="3975565978598857337">Vzpostavljanje stika s strežnikom območja ni uspelo</translation> <translation id="3976108569178263973">Noben tiskalnik ni na voljo.</translation> -<translation id="3976244126942806443">Spletna mesta običajno vzpostavijo povezavo z napravami MIDI zaradi ustvarjanja in urejanja glasbe</translation> <translation id="397703832102027365">Dokončanje ...</translation> <translation id="3977145907578671392">Funkcije na nekaterih spletnih mestih morda ne bodo delovale v anonimnem načinu.</translation> <translation id="3977886311744775419">Samodejne posodobitve se ne prenesejo v tej vrsti omrežja, vendar lahko ročno preverite, ali so na voljo posodobitve.</translation> @@ -4695,7 +4691,6 @@ <translation id="4730492586225682674">Najnovejši zapisek s pisalom na zaklenjenem zaslonu</translation> <translation id="4730888769809690665">Obvestila so dovoljena za <ph name="SITE" /></translation> <translation id="4731306954230393087">Spletnemu mestu je dovoljena uporaba podatkov, ki jih je shranilo o vas</translation> -<translation id="473140019006744096">V napravi ni dovolj prostora za dokončanje te posodobitve. Počistite <ph name="NECESSARY_SPACE" /> v napravi in poskusite znova.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (leva)</translation> <translation id="4733793249294335256">Lokacija</translation> <translation id="473546211690256853">Ta račun upravlja domena <ph name="DOMAIN" /></translation> @@ -5397,7 +5392,6 @@ <translation id="5327912693242073631">Funkcije, ki potrebujejo obvestila, ne bodo delovale.</translation> <translation id="532943162177641444">Dotaknite se obvestila v telefonu <ph name="PHONE_NAME" />, če želite nastaviti mobilno dostopno točko, ki jo lahko uporablja ta naprava.</translation> <translation id="5329858601952122676">&Izbriši</translation> -<translation id="5330592967519769658">Omogočeno odpiranje okna v načinu slike v sliki ob preklopu na drug zavihek</translation> <translation id="5331069282670671859">V tej kategoriji nimate potrdil</translation> <translation id="5331568967879689647">Aplikacija za sistem Chrome OS</translation> <translation id="5331975486040154427">Naprava USB-C (vrata levo zadaj)</translation> @@ -5575,7 +5569,6 @@ <translation id="5473099001878321374">Če nadaljujete, se strinjate, da lahko ta naprava tudi samodejno prenaša in namešča posodobitve in aplikacije Googla, operaterja in proizvajalca te otrokove naprave – morda s prenosom podatkov v mobilnih omrežjih. Nekatere od teh aplikacij morda ponujajo nakupe v aplikaciji.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Koda PIN mora vsebovati najmanj en znak}one{Koda PIN mora vsebovati najmanj # znak}two{Koda PIN mora vsebovati najmanj # znaka}few{Koda PIN mora vsebovati najmanj # znake}other{Koda PIN mora vsebovati najmanj # znakov}}</translation> <translation id="5474859849784484111">Domena <ph name="MANAGER" /> zahteva, da se 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).</translation> -<translation id="5478520208448702555">Spletna mesta morda odprejo okno v načinu slike v sliki ob preklopu na drug zavihek</translation> <translation id="5481273127572794904">Ni dovoljeno samodejno prenesti več datotek</translation> <translation id="5481941284378890518">Dodajanje tiskalnikov v bližini</translation> <translation id="5484181871714116891">Če je vklopljeno, se ključi za dostop ustvarijo v storitvi iCloud Keychain in so na voljo v napravah Apple. Če je izklopljeno, se ključi za dostop ustvarijo v profilu v Chromu v tej napravi.</translation> @@ -5734,7 +5727,6 @@ <translation id="5600348067066185292">Postopek namestitve vključuje nekaj preprostih korakov. Pred izvedbo kakršnih koli sprememb v računalniku boste imeli še eno možnost za potrditev.</translation> <translation id="5600706100022181951">Posodobitev bo prenesena v mobilnem omrežju, pri čimer bo prenesenih toliko podatkov: <ph name="UPDATE_SIZE_MB" /> MB. Ali želite nadaljevati?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Ni dovoljena povezava z napravami MIDI</translation> <translation id="5601833336918638013">Spletnim mestom ni dovoljeno iskanje naprav Bluetooth.</translation> <translation id="5602586420788540146">Odpri v novi skupini zavihkov</translation> <translation id="5605758115928394442">V vaš telefon smo poslali obvestilo, da potrdite, da ste to res vi.</translation> @@ -5857,7 +5849,6 @@ <translation id="5707185214361380026">Ni bilo mogoče naložiti razširitve z mesta:</translation> <translation id="5708171344853220004">Microsoftovo glavno ime</translation> <translation id="5709557627224531708">Nastavite Chrome kot privzeti brskalnik</translation> -<translation id="5710122160114032242">Ni omogočeno odpiranje okna v načinu slike v sliki ob preklopu na drug zavihek</translation> <translation id="5711010025974903573">Dnevniki storitve</translation> <translation id="5711983031544731014">Odklepanje ni mogoče. Vnesite geslo.</translation> <translation id="5712153969432126546">Spletna mesta občasno objavijo datoteke PDF, na primer dokumente, pogodbe in obrazce.</translation> @@ -6619,7 +6610,6 @@ <translation id="6326175484149238433">Odstrani iz Chroma</translation> <translation id="6326855256003666642">Štetje ohranjanja dejavnosti</translation> <translation id="6327785803543103246">Samodejno odkrivanje spletnega strežnika proxy</translation> -<translation id="6331818708794917058">Spletna mesta lahko zahtevajo vzpostavitev povezave z napravami MIDI</translation> <translation id="6333064448949140209">Datoteka bo poslana Googlu zaradi odpravljanja napak</translation> <translation id="6333170995003625229">Vašega e-poštnega naslova ali gesla ni bilo mogoče preveriti. Poskusite se znova prijaviti.</translation> <translation id="6334267141726449402">Kopirajte in pošljite to povezavo uporabniku, če želi zbrati dnevnike.</translation> @@ -6769,7 +6759,6 @@ <translation id="6458701200018867744">Nalaganje ni uspelo (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Uporabi izbor za iskanje</translation> <translation id="6459799433792303855">Aktivno okno je premaknjeno na drug zaslon.</translation> -<translation id="6460566145397380451">Dovoljena je povezava z napravami MIDI</translation> <translation id="6460601847208524483">Poišči naslednje</translation> <translation id="6461170143930046705">Iskanje omrežij ...</translation> <translation id="6463795194797719782">&Urejanje</translation> @@ -7101,7 +7090,6 @@ <translation id="6735304988756581115">Prikaz piškotkov in drugih podatkov mesta ...</translation> <translation id="6736243959894955139">Naslov</translation> <translation id="6737663862851963468">Odstranitev kartončka za Kerberos</translation> -<translation id="6737931010859480781">Ta aplikacija je vnaprej nameščena v napravi</translation> <translation id="6738180164164974883">Dovoli nastavljanje piškotkov tretjih oseb</translation> <translation id="6738430949033571771">Preverjanje računa …</translation> <translation id="6739923123728562974">Prikaži bližnjico na namizju</translation> @@ -8496,7 +8484,6 @@ <translation id="7853747251428735">Več &orodij</translation> <translation id="7853999103056713222">Uporabite varnejše geslo</translation> <translation id="7855678561139483478">Premik zavihka v novo okno</translation> -<translation id="7855729579456690716">Spletna mesta lahko odprejo okno v načinu slike v sliki ob preklopu na drug zavihek</translation> <translation id="7857004848504343806">V računalnik je vgrajen varnostni modul, potreben za številne nujne varnostne funkcije v sistemu ChromeOS Flex. Več o njem lahko preberete v centru za pomoč za Chromebook: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Besedilni predlogi</translation> <translation id="7857949311770343000">Ste pričakovali takšen nov zavihek s povezavami?</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index d079569..5322587 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">"<ph name="BRAND" />" mban mend se si je identifikuar dhe të identifikon automatikisht kur është e mundur. Kur është joaktiv, do të të kërkohet gjithmonë konfirmimi.</translation> <translation id="1008544602823861396">është bllokuar që të mos përdorë informacionet e tua në</translation> <translation id="1008557486741366299">Jo tani</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Për të mbrojtur të dhënat e tua, lejet u hoqën nga një sajt që nuk e ke vizituar për 2 muaj}other{Për të mbrojtur të dhënat e tua, lejet u hoqën nga sajtet që nuk i ke vizituar për 2 muaj}}</translation> <translation id="1009663062402466586">Kontrollet e lojës janë të disponueshme tani</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{faqe nuk reagon}other{faqe nuk reagojnë}}</translation> <translation id="1011003645819296594">Pajisjet e ruajtura</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopjo adr&esën e lidhjes</translation> <translation id="1085064499066015002">Gjithmonë në të gjitha sajtet</translation> <translation id="1085697365578766383">Gabim me hapjen e pajisjes virtuale. Provo sërish.</translation> -<translation id="1087965115100412394">Mos lejo që sajtet të lidhen me pajisjet MIDI</translation> <translation id="1088659085457112967">Hyr në modalitetin e lexuesit</translation> <translation id="1090126737595388931">Nuk ka aplikacione sfondi në punë</translation> <translation id="1090541560108055381">Para çiftimit, sigurohu që ky kod të jetë i njëjtë në të dyja pajisjet</translation> @@ -3215,7 +3213,6 @@ <translation id="3551320343578183772">Mbylle skedën</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">U pastrua gjatë daljes</translation> -<translation id="3553487194781590058">Mos lejo që sajtet të hapin një dritare në modalitetin "figurë brenda figurës" kur kalon te një skedë tjetër</translation> <translation id="3554493885489666172">Pajisja jote menaxhohet nga <ph name="PROFILE_NAME" />. Administratorët mund të kenë qasje në të dhënat në çdo profil në këtë pajisje.</translation> <translation id="3555812735919707620">Hiqe shtesën</translation> <translation id="3557101512409028104">Cakto kufizimet e sajteve të uebit dhe kufijtë për kohën para ekranit me Family Link</translation> @@ -3774,7 +3771,6 @@ <translation id="3975201861340929143">Shpjegimi</translation> <translation id="3975565978598857337">Kontaktimi me serverin për zonën e verifikimit dështoi</translation> <translation id="3976108569178263973">Nuk u gjetën printerë.</translation> -<translation id="3976244126942806443">Sajtet lidhen zakonisht me pajisjet MIDI për krijimin dhe modifikimin e muzikës</translation> <translation id="397703832102027365">Po përfundon...</translation> <translation id="3977145907578671392">Veçoritë në disa sajte mund të mos funksionojnë në modalitetin "I fshehtë"</translation> <translation id="3977886311744775419">Përditësimet automatike nuk përditësohen në këtë lloj rrjeti, por mund të kontrollosh për përditësime manualisht.</translation> @@ -4674,7 +4670,6 @@ <translation id="4730492586225682674">Shënimi më i fundit me stilolaps në ekranin e kyçjes</translation> <translation id="4730888769809690665">Njoftimet lejohen për <ph name="SITE" /></translation> <translation id="4731306954230393087">Lejohet që të përdorë informacionet që ka ruajtur për ty</translation> -<translation id="473140019006744096">Nuk ka hapësirë të mjaftueshme në këtë pajisje për ta përfunduar këtë përditësim. Pastro <ph name="NECESSARY_SPACE" /> në pajisjen tënde dhe provo përsëri.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (majtas)</translation> <translation id="4733793249294335256">Vendndodhja</translation> <translation id="473546211690256853">Kjo llogari menaxhohet nga <ph name="DOMAIN" />.</translation> @@ -5376,7 +5371,6 @@ <translation id="5327912693242073631">Veçoritë që kanë nevojë për njoftime nuk do të funksionojnë</translation> <translation id="532943162177641444">Trokit te njoftimi në telefonin tënd <ph name="PHONE_NAME" /> për të konfiguruar zonën e qasjes së internetit në celular që mund të përdoret nga kjo pajisje.</translation> <translation id="5329858601952122676">&Fshi</translation> -<translation id="5330592967519769658">Lejohet që të hapin një dritare në modalitetin "figurë brenda figurës" kur kalon te një skedë tjetër</translation> <translation id="5331069282670671859">Nuk ke asnjë certifikatë në këtë kategori</translation> <translation id="5331568967879689647">Aplikacioni i sistemit ChromeOS</translation> <translation id="5331975486040154427">Pajisja USB-C (porta e pasme, majtas)</translation> @@ -5554,7 +5548,6 @@ <translation id="5473099001878321374">Duke vazhduar, ti pranon që kjo pajisje mund të shkarkojë dhe të instalojë po ashtu automatikisht përditësime dhe aplikacione nga Google, operatori celular i fëmijës dhe nga prodhuesi i kësaj pajisjeje, mundësisht duke përdorur të dhënat celulare. Disa prej këtyre aplikacioneve mund të ofrojnë blerje përmes aplikacionit.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Kodi PIN duhet të ketë të paktën një karakter}other{Kodi PIN duhet të ketë të paktën # karaktere}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> kërkon që të lidhesh me Wi-Fi tani dhe të shkarkosh një përditësim. Ndryshe, shkarko nga një lidhje me matje (mund të zbatohen tarifa).</translation> -<translation id="5478520208448702555">Sajtet mund të hapin një dritare në modalitetin "figurë brenda figurës" kur kalon te një skedë tjetër</translation> <translation id="5481273127572794904">Nuk lejohen të shkarkojnë automatikisht shumë skedarë</translation> <translation id="5481941284378890518">Shto printerët në afërsi</translation> <translation id="5484181871714116891">Kur është aktive, çelësat e kalimit krijohen në iCloud Keychain dhe ofrohen nëpër pajisjet e tua Apple. Kur është joaktive, çelësat e kalimit krijohen në profilin tënd të Chrome në këtë pajisje.</translation> @@ -5712,7 +5705,6 @@ <translation id="5600348067066185292">Instalimi kërkon disa hapa të lehta. Do të të jepet një mundësi tjetër për të konfirmuar përpara se të bëhen ndryshime në kompjuterin tënd.</translation> <translation id="5600706100022181951">Përditësimi do të shkarkohet duke përdorur <ph name="UPDATE_SIZE_MB" /> MB të dhëna celulare. Dëshiron të vazhdosh?</translation> <translation id="5601503069213153581">Kodi PIN</translation> -<translation id="5601823921345337195">Nuk lejohen të lidhen me pajisjet MIDI</translation> <translation id="5601833336918638013">Mos lejo që sajtet të kërkojnë për pajisjet me Bluetooth</translation> <translation id="5602586420788540146">Hape në një grup të ri skedash</translation> <translation id="5605758115928394442">Një njoftim është dërguar te telefoni yt për të konfirmuar që je ti.</translation> @@ -5834,7 +5826,6 @@ <translation id="5707185214361380026">Dështoi në ngarkimin e shtesës nga:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Caktoje Chrome si shfletuesin tënd të parazgjedhur</translation> -<translation id="5710122160114032242">Nuk lejohet të hapin një dritare në modalitetin "figurë brenda figurës" kur kalon te një skedë tjetër</translation> <translation id="5711010025974903573">Evidencat e shërbimit</translation> <translation id="5711983031544731014">Nuk mund të shkyçet. Fut fjalëkalimin</translation> <translation id="5712153969432126546">Sajtet ndonjëherë publikojnë PDF, si dokumente, kontrata dhe formularë</translation> @@ -6596,7 +6587,6 @@ <translation id="6326175484149238433">Hiqe nga Chrome</translation> <translation id="6326855256003666642">Numërimi i proceseve të mbajtjes aktive</translation> <translation id="6327785803543103246">Zbulimi automatik i përfaqësuesit të uebit</translation> -<translation id="6331818708794917058">Sajtet mund të kërkojnë të lidhen me pajisjet me MIDI</translation> <translation id="6333064448949140209">Skedari do të dërgohet te Google për korrigjimin e gabimeve</translation> <translation id="6333170995003625229">Adresa e email-it ose fjalëkalimi yt nuk mund të verifikohej. Provo të identifikohesh përsëri.</translation> <translation id="6334267141726449402">Kopjoje dhe dërgoja këtë lidhje përdoruesit për të mbledhur evidencat.</translation> @@ -6746,7 +6736,6 @@ <translation id="6458701200018867744">Ngarkimi dështoi (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Përdor përzgjedhjen për të gjetur</translation> <translation id="6459799433792303855">Dritarja aktive u zhvendos në një ekran tjetër.</translation> -<translation id="6460566145397380451">Lejohen të lidhen me pajisjet MIDI</translation> <translation id="6460601847208524483">Gjej tjetrin</translation> <translation id="6461170143930046705">Po kërkon për rrjete...</translation> <translation id="6463795194797719782">&Redakto</translation> @@ -7072,7 +7061,6 @@ <translation id="6735304988756581115">Shfaq kukit dhe të dhëna të tjera të faqes...</translation> <translation id="6736243959894955139">Adresa</translation> <translation id="6737663862851963468">Hiq biletën e Kerberos</translation> -<translation id="6737931010859480781">Ky aplikacion është instaluar paraprakisht në pajisjen tënde</translation> <translation id="6738180164164974883">Lejo që të caktohen kuki të palëve të treta</translation> <translation id="6738430949033571771">Llogaria po verifikohet...</translation> <translation id="6739923123728562974">Shfaq shkurtoren e desktopit</translation> @@ -8465,7 +8453,6 @@ <translation id="7853747251428735">Vegla të tj&era</translation> <translation id="7853999103056713222">Përdor një fjalëkalim më të sigurt</translation> <translation id="7855678561139483478">Lëvize skedën në dritare të re</translation> -<translation id="7855729579456690716">Sajtet mund të hapin një dritare në modalitetin "figurë brenda figurës" kur kalon te një skedë tjetër</translation> <translation id="7857004848504343806">Kompjuteri yt përmban një modul sigurie që përdoret për të zbatuar shumë funksione kritike të sigurisë në Chrome OS Flex. Vizito "Qendrën e ndihmës të Chromebook" për të mësuar më shumë: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Sugjerimet e tekstit</translation> <translation id="7857949311770343000">A është kjo faqja e skedës së re që po prisje?</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index b0b4f3d..b433eb5 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> pamti kako ste se prijavili i automatski vas prijavljuje kada je to moguće. Kada je isključen, od vas će se tražiti potvrda svaki put.</translation> <translation id="1008544602823861396">je onemogućen da koristi vaše podatke na</translation> <translation id="1008557486741366299">Ne sada</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Da bismo zaštitili podatke, dozvole su uklonjene sa sajta koji niste posetili 2 meseca}one{Da bismo zaštitili podatke, dozvole su uklonjene sa sajtova koje niste posetili 2 meseca}few{Da bismo zaštitili podatke, dozvole su uklonjene sa sajtova koje niste posetili 2 meseca}other{Da bismo zaštitili podatke, dozvole su uklonjene sa sajtova koje niste posetili 2 meseca}}</translation> <translation id="1009663062402466586">Kontrole za igre su sada dostupne</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Stranica se ne odaziva}one{Stranice se ne odazivaju}few{Stranice se ne odazivaju}other{Stranice se ne odazivaju}}</translation> <translation id="1011003645819296594">Sačuvani uređaji</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopiraj adr&esu linka</translation> <translation id="1085064499066015002">Uvek na svim sajtovima</translation> <translation id="1085697365578766383">Greška pri pokretanju virtuelne mašine. Probajte ponovo.</translation> -<translation id="1087965115100412394">Ne dozvoljavaj sajtovima da se povezuju sa MIDI uređajima</translation> <translation id="1088659085457112967">Uključi režim čitača</translation> <translation id="1090126737595388931">Nije pokrenuta nijedna pozadinska aplikacija</translation> <translation id="1090541560108055381">Pre uparivanja se uverite da je ovaj kôd isti na oba uređaja</translation> @@ -3225,7 +3223,6 @@ <translation id="3551320343578183772">Zatvori karticu</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Briše se na izlazu</translation> -<translation id="3553487194781590058">Ne dozvoljavajte sajtovima da otvaraju prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="3554493885489666172">Uređajem upravlja <ph name="PROFILE_NAME" />. Administratori mogu da pristupaju podacima svih profila na ovom uređaju.</translation> <translation id="3555812735919707620">Ukloni dodatak</translation> <translation id="3557101512409028104">Podesite ograničenja za veb-sajtove i vreme ispred ekrana pomoću Family Link-a</translation> @@ -3784,7 +3781,6 @@ <translation id="3975201861340929143">Objašnjenje</translation> <translation id="3975565978598857337">Povezivanje sa serverom za domen nije uspelo</translation> <translation id="3976108569178263973">Nema dostupnih štampača.</translation> -<translation id="3976244126942806443">Sajtovi se obično povezuju sa MIDI uređajima za pravljenje i izmenu muzike</translation> <translation id="397703832102027365">Dovršavanje...</translation> <translation id="3977145907578671392">Funkcije na nekim sajtovima možda neće raditi u režimu bez arhiviranja</translation> <translation id="3977886311744775419">Automatska ažuriranja se ne preuzimaju na ovom tipu mreže, ali možete ručno da proverite da li ima ažuriranja.</translation> @@ -4684,7 +4680,6 @@ <translation id="4730492586225682674">Najnovija beleška pisaljke na zaključanom ekranu</translation> <translation id="4730888769809690665">Obaveštenja su omogućena za <ph name="SITE" /></translation> <translation id="4731306954230393087">Veb-sajt želi da koristi informacije koje je sačuvao o vama</translation> -<translation id="473140019006744096">Nema dovoljno mesta na ovom uređaju da bi se ovo ažuriranje završilo. Oslobodite <ph name="NECESSARY_SPACE" /> na uređaju i probajte ponovo.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (leva)</translation> <translation id="4733793249294335256">Lokacija</translation> <translation id="473546211690256853">Ovim nalogom upravlja <ph name="DOMAIN" /></translation> @@ -5386,7 +5381,6 @@ <translation id="5327912693242073631">Funkcije kojima trebaju obaveštenja neće raditi</translation> <translation id="532943162177641444">Dodirnite obaveštenje na telefonu <ph name="PHONE_NAME" /> da biste podesili mobilni hotspot koji može da se koristi na ovom uređaju.</translation> <translation id="5329858601952122676">&Izbriši</translation> -<translation id="5330592967519769658">Dozvoljeno je da se otvara prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="5331069282670671859">Nemate nijedan sertifikat u ovoj kategoriji</translation> <translation id="5331568967879689647">Chrome OS sistemska aplikacija</translation> <translation id="5331975486040154427">Uređaj sa USB priključkom tipa C (levi zadnji port)</translation> @@ -5563,7 +5557,6 @@ <translation id="5473099001878321374">Ako nastavite, prihvatate da ovaj uređaj može i automatski da preuzima i instalira ažuriranja i aplikacije od Google-a, detetovog mobilnog operatera i proizvođača ovog uređaja, uz moguć prenos podataka preko mobilnog operatera. Neke od ovih aplikacija možda nude kupovine u aplikacijama.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN mora da sadrži bar jedan znak}one{PIN mora da sadrži bar # znak}few{PIN mora da sadrži bar # znaka}other{PIN mora da sadrži bar # znakova}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> zahteva da se odmah povežete na WiFi i da preuzmete ažuriranje. Ili preuzmite pomoću veze sa ograničenjem (možda se naplaćuju troškovi).</translation> -<translation id="5478520208448702555">Sajtovi mogu da otvaraju prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="5481273127572794904">Nije im dozvoljeno da automatski preuzimaju više fajlova</translation> <translation id="5481941284378890518">Dodaj obližnje štampače</translation> <translation id="5484181871714116891">Kada je ovo uključeno, pristupni kodovi se prave u iCloud Keychain-u i dostupni su na svim Apple uređajima. Kada je isključeno, pristupni kodovi se prave u Chrome profilu na ovom uređaju.</translation> @@ -5721,7 +5714,6 @@ <translation id="5600348067066185292">Instalacija se obavlja u par lakih koraka. Imaćete još jednu priliku za potvrdu pre nego što se primene promene na računaru.</translation> <translation id="5600706100022181951">Ažuriranje će se preuzeti uz upotrebu <ph name="UPDATE_SIZE_MB" /> MB mobilnih podataka. Želite li da nastavite?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Nije im dozvoljeno da se povezuju sa MIDI uređajima</translation> <translation id="5601833336918638013">Ne dozvoljavaj sajtovima da traže Bluetooth uređaje</translation> <translation id="5602586420788540146">Otvori u novoj grupi kartica</translation> <translation id="5605758115928394442">Poslali smo vam obaveštenje na telefon da biste potvrdili da ste to vi.</translation> @@ -5844,7 +5836,6 @@ <translation id="5707185214361380026">Nije uspelo učitavanje dodatka iz:</translation> <translation id="5708171344853220004">Microsoft glavno ime</translation> <translation id="5709557627224531708">Podesite Chrome kao podrazumevani pregledač</translation> -<translation id="5710122160114032242">Nije dozvoljeno da se otvara prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="5711010025974903573">Evidencije usluge</translation> <translation id="5711983031544731014">Otključavanje nije moguće. Unesite lozinku.</translation> <translation id="5712153969432126546">Sajtovi ponekad objavljuju PDF-ove, poput dokumenata, ugovora i obrazaca</translation> @@ -6607,7 +6598,6 @@ <translation id="6326175484149238433">Ukloni iz Chrome-a</translation> <translation id="6326855256003666642">Broj keepalive signala</translation> <translation id="6327785803543103246">Automatsko otkrivanje veb-proksija</translation> -<translation id="6331818708794917058">Sajtovi mogu da traže da se povezuju sa MIDI uređajima</translation> <translation id="6333064448949140209">Datoteka će biti poslata Google-u radi otklanjanja grešaka</translation> <translation id="6333170995003625229">Verifikacija imejl adrese ili lozinke nije uspela. Probajte ponovo da se prijavite.</translation> <translation id="6334267141726449402">Kopirajte i pošaljite ovaj link korisniku da biste prikupili evidencije.</translation> @@ -6757,7 +6747,6 @@ <translation id="6458701200018867744">Otpremanje nije uspelo (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Koristi izbor za pronalaženje</translation> <translation id="6459799433792303855">Aktivni prozor je pomeren na drugi ekran.</translation> -<translation id="6460566145397380451">Dozvoljeno im je da se povezuju sa MIDI uređajima</translation> <translation id="6460601847208524483">Pronađi sledeće</translation> <translation id="6461170143930046705">Traže se mreže...</translation> <translation id="6463795194797719782">&Izmeni</translation> @@ -7088,7 +7077,6 @@ <translation id="6735304988756581115">Prikaži kolačiće i ostale podatke sa sajta...</translation> <translation id="6736243959894955139">Adresa</translation> <translation id="6737663862851963468">Uklonite Kerberos tiket</translation> -<translation id="6737931010859480781">Ova aplikacija je unapred instalirana na uređaju</translation> <translation id="6738180164164974883">Dozvoli podešavanje kolačića treće strane</translation> <translation id="6738430949033571771">Verifikuje se nalog…</translation> <translation id="6739923123728562974">Prikaži prečicu na radnoj površini</translation> @@ -8485,7 +8473,6 @@ <translation id="7853747251428735">Još a&latki</translation> <translation id="7853999103056713222">Koristite bezbedniju lozinku</translation> <translation id="7855678561139483478">Premesti karticu u nov prozor</translation> -<translation id="7855729579456690716">Sajtovi mogu da otvore prozor sa slikom u slici kada pređete na drugu karticu</translation> <translation id="7857004848504343806">Računar sadrži bezbednosni modul, koji se koristi za primenu mnogih izuzetno važnih bezbednosnih funkcija u Chrome OS Flex-u. Posetite centar za pomoć za Chromebook da biste saznali više: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Tekstualni predlozi</translation> <translation id="7857949311770343000">Da li je ovo stranica nove kartice koju ste očekivali?</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 8d387de4..8cb8704d 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> памти како сте се пријавили и аутоматски вас пријављује када је то могуће. Када је искључен, од вас ће се тражити потврда сваки пут.</translation> <translation id="1008544602823861396">је онемогућен да користи ваше податке на</translation> <translation id="1008557486741366299">Не сада</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Да бисмо заштитили податке, дозволе су уклоњене са сајта који нисте посетили 2 месеца}one{Да бисмо заштитили податке, дозволе су уклоњене са сајтова које нисте посетили 2 месеца}few{Да бисмо заштитили податке, дозволе су уклоњене са сајтова које нисте посетили 2 месеца}other{Да бисмо заштитили податке, дозволе су уклоњене са сајтова које нисте посетили 2 месеца}}</translation> <translation id="1009663062402466586">Контроле за игре су сада доступне</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Страница се не одазива}one{Странице се не одазивају}few{Странице се не одазивају}other{Странице се не одазивају}}</translation> <translation id="1011003645819296594">Сачувани уређаји</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Копирај адр&есу линка</translation> <translation id="1085064499066015002">Увек на свим сајтовима</translation> <translation id="1085697365578766383">Грешка при покретању виртуелне машине. Пробајте поново.</translation> -<translation id="1087965115100412394">Не дозвољавај сајтовима да се повезују са MIDI уређајима</translation> <translation id="1088659085457112967">Укључи режим читача</translation> <translation id="1090126737595388931">Није покренута ниједна позадинска апликација</translation> <translation id="1090541560108055381">Пре упаривања се уверите да је овај кôд исти на оба уређаја</translation> @@ -3225,7 +3223,6 @@ <translation id="3551320343578183772">Затвори картицу</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Брише се на излазу</translation> -<translation id="3553487194781590058">Не дозвољавајте сајтовима да отварају прозор са сликом у слици када пређете на другу картицу</translation> <translation id="3554493885489666172">Уређајем управља <ph name="PROFILE_NAME" />. Администратори могу да приступају подацима свих профила на овом уређају.</translation> <translation id="3555812735919707620">Уклони додатак</translation> <translation id="3557101512409028104">Подесите ограничења за веб-сајтове и време испред екрана помоћу Family Link-а</translation> @@ -3784,7 +3781,6 @@ <translation id="3975201861340929143">Објашњење</translation> <translation id="3975565978598857337">Повезивање са сервером за домен није успело</translation> <translation id="3976108569178263973">Нема доступних штампача.</translation> -<translation id="3976244126942806443">Сајтови се обично повезују са MIDI уређајима за прављење и измену музике</translation> <translation id="397703832102027365">Довршавање...</translation> <translation id="3977145907578671392">Функције на неким сајтовима можда неће радити у режиму без архивирања</translation> <translation id="3977886311744775419">Аутоматска ажурирања се не преузимају на овом типу мреже, али можете ручно да проверите да ли има ажурирања.</translation> @@ -4684,7 +4680,6 @@ <translation id="4730492586225682674">Најновија белешка писаљке на закључаном екрану</translation> <translation id="4730888769809690665">Обавештења су омогућена за <ph name="SITE" /></translation> <translation id="4731306954230393087">Веб-сајт жели да користи информације које је сачувао о вама</translation> -<translation id="473140019006744096">Нема довољно места на овом уређају да би се ово ажурирање завршило. Ослободите <ph name="NECESSARY_SPACE" /> на уређају и пробајте поново.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (лева)</translation> <translation id="4733793249294335256">Локација</translation> <translation id="473546211690256853">Овим налогом управља <ph name="DOMAIN" /></translation> @@ -5386,7 +5381,6 @@ <translation id="5327912693242073631">Функције којима требају обавештења неће радити</translation> <translation id="532943162177641444">Додирните обавештење на телефону <ph name="PHONE_NAME" /> да бисте подесили мобилни хотспот који може да се користи на овом уређају.</translation> <translation id="5329858601952122676">&Избриши</translation> -<translation id="5330592967519769658">Дозвољено је да се отвара прозор са сликом у слици када пређете на другу картицу</translation> <translation id="5331069282670671859">Немате ниједан сертификат у овој категорији</translation> <translation id="5331568967879689647">Chrome ОС системска апликација</translation> <translation id="5331975486040154427">Уређај са USB прикључком типа C (леви задњи порт)</translation> @@ -5563,7 +5557,6 @@ <translation id="5473099001878321374">Ако наставите, прихватате да овај уређај може и аутоматски да преузима и инсталира ажурирања и апликације од Google-а, дететовог мобилног оператера и произвођача овог уређаја, уз могућ пренос података преко мобилног оператера. Неке од ових апликација можда нуде куповине у апликацијама.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN мора да садржи бар један знак}one{PIN мора да садржи бар # знак}few{PIN мора да садржи бар # знака}other{PIN мора да садржи бар # знакова}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> захтева да се одмах повежете на WiFi и да преузмете ажурирање. Или преузмите помоћу везе са ограничењем (можда се наплаћују трошкови).</translation> -<translation id="5478520208448702555">Сајтови могу да отварају прозор са сликом у слици када пређете на другу картицу</translation> <translation id="5481273127572794904">Није им дозвољено да аутоматски преузимају више фајлова</translation> <translation id="5481941284378890518">Додај оближње штампаче</translation> <translation id="5484181871714116891">Када је ово укључено, приступни кодови се праве у iCloud Keychain-у и доступни су на свим Apple уређајима. Када је искључено, приступни кодови се праве у Chrome профилу на овом уређају.</translation> @@ -5721,7 +5714,6 @@ <translation id="5600348067066185292">Инсталација се обавља у пар лаких корака. Имаћете још једну прилику за потврду пре него што се примене промене на рачунару.</translation> <translation id="5600706100022181951">Ажурирање ће се преузети уз употребу <ph name="UPDATE_SIZE_MB" /> MB мобилних података. Желите ли да наставите?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Није им дозвољено да се повезују са MIDI уређајима</translation> <translation id="5601833336918638013">Не дозвољавај сајтовима да траже Bluetooth уређаје</translation> <translation id="5602586420788540146">Отвори у новој групи картица</translation> <translation id="5605758115928394442">Послали смо вам обавештење на телефон да бисте потврдили да сте то ви.</translation> @@ -5844,7 +5836,6 @@ <translation id="5707185214361380026">Није успело учитавање додатка из:</translation> <translation id="5708171344853220004">Microsoft главно име</translation> <translation id="5709557627224531708">Подесите Chrome као подразумевани прегледач</translation> -<translation id="5710122160114032242">Није дозвољено да се отвара прозор са сликом у слици када пређете на другу картицу</translation> <translation id="5711010025974903573">Евиденције услуге</translation> <translation id="5711983031544731014">Откључавање није могуће. Унесите лозинку.</translation> <translation id="5712153969432126546">Сајтови понекад објављују PDF-ове, попут докумената, уговора и образаца</translation> @@ -6607,7 +6598,6 @@ <translation id="6326175484149238433">Уклони из Chrome-а</translation> <translation id="6326855256003666642">Број keepalive сигнала</translation> <translation id="6327785803543103246">Аутоматско откривање веб-проксија</translation> -<translation id="6331818708794917058">Сајтови могу да траже да се повезују са MIDI уређајима</translation> <translation id="6333064448949140209">Датотека ће бити послата Google-у ради отклањања грешака</translation> <translation id="6333170995003625229">Верификација имејл адресе или лозинке није успела. Пробајте поново да се пријавите.</translation> <translation id="6334267141726449402">Копирајте и пошаљите овај линк кориснику да бисте прикупили евиденције.</translation> @@ -6757,7 +6747,6 @@ <translation id="6458701200018867744">Отпремање није успело (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Користи избор за проналажење</translation> <translation id="6459799433792303855">Активни прозор је померен на други екран.</translation> -<translation id="6460566145397380451">Дозвољено им је да се повезују са MIDI уређајима</translation> <translation id="6460601847208524483">Пронађи следеће</translation> <translation id="6461170143930046705">Траже се мреже...</translation> <translation id="6463795194797719782">&Измени</translation> @@ -7088,7 +7077,6 @@ <translation id="6735304988756581115">Прикажи колачиће и остале податке са сајта...</translation> <translation id="6736243959894955139">Адреса</translation> <translation id="6737663862851963468">Уклоните Kerberos тикет</translation> -<translation id="6737931010859480781">Ова апликација је унапред инсталирана на уређају</translation> <translation id="6738180164164974883">Дозволи подешавање колачића треће стране</translation> <translation id="6738430949033571771">Верификује се налог…</translation> <translation id="6739923123728562974">Прикажи пречицу на радној површини</translation> @@ -8485,7 +8473,6 @@ <translation id="7853747251428735">Још а&латки</translation> <translation id="7853999103056713222">Користите безбеднију лозинку</translation> <translation id="7855678561139483478">Премести картицу у нов прозор</translation> -<translation id="7855729579456690716">Сајтови могу да отворе прозор са сликом у слици када пређете на другу картицу</translation> <translation id="7857004848504343806">Рачунар садржи безбедносни модул, који се користи за примену многих изузетно важних безбедносних функција у Chrome OS Flex-у. Посетите центар за помоћ за Chromebook да бисте сазнали више: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Текстуални предлози</translation> <translation id="7857949311770343000">Да ли је ово страница нове картице коју сте очекивали?</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index b9410f4..43105094 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> kommer ihåg hur du loggade in och loggar in dig automatiskt när det är möjligt. När funktionen är inaktiverad måste du bekräfta varje gång.</translation> <translation id="1008544602823861396">har blockerats från att använda dina uppgifter på</translation> <translation id="1008557486741366299">Inte nu</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{För att skydda din data har behörigheter tagits bort från en webbplats som du inte har besökt på två månader}other{För att skydda din data har behörigheter tagits bort från webbplatser som du inte har besökt på två månader}}</translation> <translation id="1009663062402466586">Nu är spelkontroller tillgängliga</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{sida svarar inte}other{sidor svarar inte}}</translation> <translation id="1011003645819296594">Sparade enheter</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopiera länk&adress</translation> <translation id="1085064499066015002">Alltid på alla webbplatser</translation> <translation id="1085697365578766383">Det gick inte att starta den virtuella maskinen. Försök igen.</translation> -<translation id="1087965115100412394">Tillåt inte att webbplatser ansluter till MIDI-enheter</translation> <translation id="1088659085457112967">Aktivera läsarläge</translation> <translation id="1090126737595388931">Inga bakgrundsprogram körs</translation> <translation id="1090541560108055381">Kontrollera att samma kod visas på båda enheterna innan du parkopplar</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">Stäng flik</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Rensas vis avslutning</translation> -<translation id="3553487194781590058">Tillåt inte att webbplatser öppnar bild-i-bild-fönster när du byter till en annan flik</translation> <translation id="3554493885489666172">Enheten hanteras av <ph name="PROFILE_NAME" />. Administratörer kan få åtkomst till data i alla profiler på enheten.</translation> <translation id="3555812735919707620">Ta bort tillägg</translation> <translation id="3557101512409028104">Begränsa vilka webbplatser som är tillgängliga och ange skärmtid med Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Förklaring</translation> <translation id="3975565978598857337">Det gick inte att kontakta servern för sfären</translation> <translation id="3976108569178263973">Inga skrivare är tillgängliga.</translation> -<translation id="3976244126942806443">Webbplatser brukar ansluta till MIDI-enheter för att skapa och redigera musik</translation> <translation id="397703832102027365">Slutför ...</translation> <translation id="3977145907578671392">Vissa webbplatsers funktioner kanske inte fungerar i inkognitoläge</translation> <translation id="3977886311744775419">Automatiska uppdateringar laddas inte ned med den här nätverkstypen, men du kan söka efter uppdateringar manuellt.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Senaste anteckningen med e-penna på låsskärmen</translation> <translation id="4730888769809690665">Aviseringar har tillåtits för <ph name="SITE" /></translation> <translation id="4731306954230393087">Tillåts att använda uppgifter som webbplatsen har sparat om dig</translation> -<translation id="473140019006744096">Det gick inte att slutföra uppdateringen eftersom utrymmet inte räcker till. Frigör <ph name="NECESSARY_SPACE" /> på enheten och försök igen.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" /> % (vänster)</translation> <translation id="4733793249294335256">Plats</translation> <translation id="473546211690256853">Detta konto hanteras av <ph name="DOMAIN" /></translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">Funktioner som kräver aviseringar slutar fungera</translation> <translation id="532943162177641444">Konfigurera den trådlösa surfzonen som den här enheten ska kunna använda genom att trycka på aviseringen på din <ph name="PHONE_NAME" />.</translation> <translation id="5329858601952122676">&Ta bort</translation> -<translation id="5330592967519769658">Tillåts öppna bild-i-bild-fönster när du byter till en annan flik</translation> <translation id="5331069282670671859">Du har inga certifikat i den här kategorin</translation> <translation id="5331568967879689647">Systemapp i Chrome OS</translation> <translation id="5331975486040154427">USB-C-enhet (bakre porten på vänster sida)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">Genom att fortsätta godkänner du att enheten kan ladda ned och installera uppdateringar och appar automatiskt från Google, ditt barns operatör och enhetstillverkaren, eventuellt genom att använda mobildata. Det kan hända att några av apparna erbjuder köp i appen.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Pinkoden måste innehålla minst ett tecken}other{Pinkoden måste innehålla minst # tecken}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> kräver att du ansluter till wifi och laddar ned en uppdatering nu. Du kan även ladda ned via en anslutning med datapriser (avgifter kan tillkomma).</translation> -<translation id="5478520208448702555">Webbplatser kan öppna ett bild-i-bild-fönster när du byter till en annan flik</translation> <translation id="5481273127572794904">Får inte ladda ned flera filer automatiskt</translation> <translation id="5481941284378890518">Lägg till skrivare i närheten</translation> <translation id="5484181871714116891">När detta är aktiverat skapas nycklar i iCloud Keychain och kan användas på alla dina Apple-enheter. När detta är inaktiverat skapas nycklar i Chrome-profilen på den här enheten.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">Du kan installera med några enkla steg. Du får en ny chans att bekräfta innan ändringarna görs på datorn.</translation> <translation id="5600706100022181951">Nedladdningen av uppdateringen förbrukar <ph name="UPDATE_SIZE_MB" /> MB mobildata. Vill du fortsätta?</translation> <translation id="5601503069213153581">Pinkod</translation> -<translation id="5601823921345337195">Får inte ansluta till MIDI-enheter</translation> <translation id="5601833336918638013">Tillåt inte att webbplatser söker efter Bluetooth-enheter</translation> <translation id="5602586420788540146">Öppna i en ny flikgrupp</translation> <translation id="5605758115928394442">En avisering har skickats till din mobil för att bekräfta att det är du.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">Det gick inte att läsa in tillägget från:</translation> <translation id="5708171344853220004">Huvudnamn för Microsoft</translation> <translation id="5709557627224531708">Ange Chrome som standardwebbläsare</translation> -<translation id="5710122160114032242">Tillåts inte att öppna ett bild-i-bild-fönster när du byter till en annan flik</translation> <translation id="5711010025974903573">Tjänstloggar</translation> <translation id="5711983031544731014">Det går inte att låsa upp. Ange ditt lösenord.</translation> <translation id="5712153969432126546">Ibland publicerar webbplatser PDF-filer, som dokument, avtal och formulär</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Ta bort från Chrome</translation> <translation id="6326855256003666642">Antal keepalive</translation> <translation id="6327785803543103246">Automatisk identifiering av webbproxy</translation> -<translation id="6331818708794917058">Webbplatser får begära tillstånd att ansluta till MIDI-enheter</translation> <translation id="6333064448949140209">Filen skickas till Google för felsökning</translation> <translation id="6333170995003625229">Det gick inte att verifiera e-postadressen eller lösenordet. Testa att logga in igen.</translation> <translation id="6334267141726449402">Kopiera och skicka den här länken till användaren för att samla in loggarna.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">Uppladdningen misslyckades (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Använd markering för sökning</translation> <translation id="6459799433792303855">Det aktiva fönstret har flyttats till en annan skärm.</translation> -<translation id="6460566145397380451">Får ansluta till MIDI-enheter</translation> <translation id="6460601847208524483">Sök nästa</translation> <translation id="6461170143930046705">Söker efter nätverk …</translation> <translation id="6463795194797719782">&Redigera</translation> @@ -7090,7 +7079,6 @@ <translation id="6735304988756581115">Visa cookies och andra webbplatsdata...</translation> <translation id="6736243959894955139">Adress</translation> <translation id="6737663862851963468">Ta bort Kerberos-biljett</translation> -<translation id="6737931010859480781">Den här appen är förinstallerad på enheten</translation> <translation id="6738180164164974883">Tillåt att cookies från tredje part sparas</translation> <translation id="6738430949033571771">Verifierar konto …</translation> <translation id="6739923123728562974">Visa skrivbordsgenväg</translation> @@ -8485,7 +8473,6 @@ <translation id="7853747251428735">Fler verk&tyg</translation> <translation id="7853999103056713222">Använd ett säkrare lösenord</translation> <translation id="7855678561139483478">Flytta fliken till ett nytt fönster</translation> -<translation id="7855729579456690716">Webbplatser kan öppna ett bild-i-bild-fönster när du byter till en annan flik</translation> <translation id="7857004848504343806">Datorn innehåller en säker modul som används för att implementera flera viktiga säkerhetsfunktioner i ChromeOS Flex. Besök hjälpcentret för Chromebook om du vill läsa mer: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Textförslag</translation> <translation id="7857949311770343000">Var det den här nya fliksidan du väntade dig?</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 4f9d1b3..d0c75c2 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> hukumbuka jinsi ulivyoingia katika akaunti na kukuruhusu uingie katika akaunti kiotomatiki inapowezekana. Kikizimwa, utaombwa uthibitishe nenosiri lako kila wakati.</translation> <translation id="1008544602823861396">imezuiwa isitumie maelezo yako yaliyo kwenye</translation> <translation id="1008557486741366299">Si Sasa</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Ili kulinda data yako, ruhusa ziliondolewa kwenye tovuti ambayo hujaitembelea kwa miezi 2}other{Ili kulinda data yako, ruhusa ziliondolewa kwenye tovuti ambazo hujazitembelea kwa miezi 2}}</translation> <translation id="1009663062402466586">Vidhibiti vya mchezo sasa vinapatikana</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Ukurasa Umekwama}other{Kurasa Zimekwama}}</translation> <translation id="1011003645819296594">Vifaa vilivyohifadhiwa</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Nakili &anwani ya kiungo</translation> <translation id="1085064499066015002">Kila wakati kwenye tovuti zote</translation> <translation id="1085697365578766383">Hitilafu imetokea wakati wa kuwasha mashine dhahania. Tafadhali jaribu tena.</translation> -<translation id="1087965115100412394">Usiruhusu tovuti ziunganishe kwenye vifaa vya MIDI</translation> <translation id="1088659085457112967">Washa Hali ya Kisomaji</translation> <translation id="1090126737595388931">Hakuna Programu zinazoendelea katika Mandharinyuma</translation> <translation id="1090541560108055381">Kabla ya kuoanisha, hakikisha kwamba msimbo huu unafanana kwenye vifaa vyote viwili</translation> @@ -3229,7 +3227,6 @@ <translation id="3551320343578183772">Funga Kichupo</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Kitafutwa Utakapofunga ukurasa</translation> -<translation id="3553487194781590058">Usiruhusu tovuti kufungua dirisha la kipengele cha kupachika picha ndani ya picha nyingine unapobadilisha ili utumie kichupo tofauti</translation> <translation id="3554493885489666172">Kifaa chako kinadhibitiwa na <ph name="PROFILE_NAME" />. Wasimamizi wanaweza kufikia data katika wasifu wowote kwenye kifaa hiki.</translation> <translation id="3555812735919707620">Ondoa kiendelezi</translation> <translation id="3557101512409028104">Weka vizuizi vya tovuti na vikomo vya muda wa kutumia kifaa ukitumia Family Link</translation> @@ -3788,7 +3785,6 @@ <translation id="3975201861340929143">Maelezo</translation> <translation id="3975565978598857337">Imeshindwa kuwasiliana na sehemu kwenye seva</translation> <translation id="3976108569178263973">Hakuna printa zinazopatikana.</translation> -<translation id="3976244126942806443">Kwa kawaida tovuti huunganisha kwenye vifaa vya MIDI kwa ajili ya kutayarisha na kubadilisha muziki</translation> <translation id="397703832102027365">Inahitimisha</translation> <translation id="3977145907578671392">Huenda vipengele kwenye baadhi ya tovuti visifanye kazi katika hali fiche</translation> <translation id="3977886311744775419">Masasisho ya kiotomatiki hayawezi kupakuliwa kwenye aina hii ya mtandao lakini unaweza kuangalia masasisho mwenyewe.</translation> @@ -4687,7 +4683,6 @@ <translation id="4730492586225682674">Dokezo la hivi punde lililoandikwa kwa kutumia Stylus wakati skrini imefungwa</translation> <translation id="4730888769809690665">Umeruhusu arifa za tovuti ya <ph name="SITE" /></translation> <translation id="4731306954230393087">Umeruhusu itumie maelezo ambayo imehifadhi kukuhusu</translation> -<translation id="473140019006744096">Nafasi haitoshi kwenye kifaa hiki ili kukamilisha sasisho hili. Futa <ph name="NECESSARY_SPACE" /> kwenye kifaa chako na ujaribu tena.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Kushoto)</translation> <translation id="4733793249294335256">Eneo</translation> <translation id="473546211690256853">Akaunti hii inadhibitiwa na <ph name="DOMAIN" /></translation> @@ -5389,7 +5384,6 @@ <translation id="5327912693242073631">Vipengele vinavyohitaji arifa havitafanya kazi</translation> <translation id="532943162177641444">Gusa arifa kwenye <ph name="PHONE_NAME" /> yako ili uweke mipangilio ya mtandaopepe unaohamishika ambao unaweza kutumiwa na kifaa hiki.</translation> <translation id="5329858601952122676">&Futa</translation> -<translation id="5330592967519769658">Inaruhusiwa kufungua dirisha la kipengele cha kupachika picha ndani ya picha nyingine unapobadilisha ili utumie kichupo tofauti</translation> <translation id="5331069282670671859">Huna vyeti katika aina hii</translation> <translation id="5331568967879689647">Programu ya Mfumo wa Uendeshaji wa Chrome</translation> <translation id="5331975486040154427">Kifaa cha USB-C (mlango wa upande wa kushoto nyuma)</translation> @@ -5567,7 +5561,6 @@ <translation id="5473099001878321374">Kwa kuendelea, unakubali kwamba kifaa hiki pia kinaweza kupakua na kusakinisha masasisho na programu kiotomatiki kutoka Google, kampuni inayompa mtoto wako huduma za simu na mtengenezaji wa kifaa hiki, kwa kutumia data ya mtandao wa simu (panapowezekana). Huenda baadhi ya programu hizi zikawa na ununuzi wa ndani ya programu.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Ni lazima PIN iwe na angalau herufi moja}other{Ni lazima PIN iwe na angalau herufi #}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> inahitaji uunganishe kwenye Wi-Fi sasa na upakue sasisho. Au, pakua kwa kutumia muunganisho wa mtandao unaopima data (huenda ukatozwa ada).</translation> -<translation id="5478520208448702555">Huenda tovuti zikafungua dirisha la kipengele cha kupachika picha ndani ya picha nyingine unapobadilisha ili utumie kichupo tofauti</translation> <translation id="5481273127572794904">Zisizoruhusiwa kupakua faili nyingi kiotomatiki</translation> <translation id="5481941284378890518">Ongeza Printa za Uhamishaji wa Karibu</translation> <translation id="5484181871714116891">Kipengele hiki kikiwa kimewashwa, funguo za siri huwekwa kwenye iCloud Keychain na zinapatikana kwenye vifaa vyako vyote vya Apple. Kikiwa kimezimwa, funguo za siri huwekwa katika wasifu wako wa Chrome kwenye kifaa hiki.</translation> @@ -5725,7 +5718,6 @@ <translation id="5600348067066185292">Usakinishaji unachukua hatua kadhaa rahisi. Utakuwa na nafasi nyingine ya kuthibitisha kabla mabadiliko hayajafanywa kwenye kompyuta yako.</translation> <translation id="5600706100022181951">Sasisho litapakuliwa kwa kutumia MB <ph name="UPDATE_SIZE_MB" /> za data ya simu. Je, ungependa kuendelea?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">Zisizoruhusiwa kuunganisha kwenye vifaa vya MIDI</translation> <translation id="5601833336918638013">Usiruhusu tovuti zitafute vifaa vyenye Bluetooth</translation> <translation id="5602586420788540146">Fungua katika kikundi kipya cha vichupo</translation> <translation id="5605758115928394442">Arifa imetumwa kwenye simu yako ili kuthibitisha ni wewe.</translation> @@ -5847,7 +5839,6 @@ <translation id="5707185214361380026">Haijafaulu kupakia kiendelezi kutoka:</translation> <translation id="5708171344853220004">Jina la Microsoft Principal</translation> <translation id="5709557627224531708">Weka Chrome iwe kivinjari chako chaguomsingi</translation> -<translation id="5710122160114032242">Hairuhusiwi kufungua dirisha la kipengele cha kupachika picha ndani ya picha nyingine unapobadilisha ili utumie kichupo tofauti</translation> <translation id="5711010025974903573">Kumbukumbu za huduma</translation> <translation id="5711983031544731014">Imeshindwa kufungua. Weka nenosiri lako.</translation> <translation id="5712153969432126546">Wakati mwingine, tovuti huchapisha faili za PDF, kama vile hati, mikataba na fomu</translation> @@ -6609,7 +6600,6 @@ <translation id="6326175484149238433">Ondoa kwenye Chrome</translation> <translation id="6326855256003666642">Shughuli Zinazotumia Kiendelezi</translation> <translation id="6327785803543103246">Ugunduzi wa seva mbadala za wavuti kiotomatiki</translation> -<translation id="6331818708794917058">Tovuti zinaweza kuomba ruhusa ya kuunganisha kwenye vifaa vya MIDI</translation> <translation id="6333064448949140209">Faili itatumwa kwa Google kwa ajili ya utatuzi</translation> <translation id="6333170995003625229">Imeshindwa kuthibitisha anwani ya barua pepe au nenosiri. Jaribu kuingia tena katika akaunti.</translation> <translation id="6334267141726449402">Nakili na utume kiungo hiki kwa mtumiaji ili ukusanye kumbukumbu.</translation> @@ -6759,7 +6749,6 @@ <translation id="6458701200018867744">Imeshindwa kupakia (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Tumia Iliyochaguliwa Kupata</translation> <translation id="6459799433792303855">Dirisha linalotumika limehamishiwa kwenye skrini nyingine.</translation> -<translation id="6460566145397380451">Zinazoruhusiwa kuunganisha kwenye vifaa vya MIDI</translation> <translation id="6460601847208524483">Pata Ifuatayo</translation> <translation id="6461170143930046705">Inatafuta mitandao...</translation> <translation id="6463795194797719782">&Hariri</translation> @@ -7085,7 +7074,6 @@ <translation id="6735304988756581115">Onyesha vidakuzi na data ya tovuti zingine...</translation> <translation id="6736243959894955139">Anwani</translation> <translation id="6737663862851963468">Ondoa tiketi ya Kerberos</translation> -<translation id="6737931010859480781">Programu hii imesakinishwa mapema kwenye kifaa chako</translation> <translation id="6738180164164974883">Ruhusu tovuti ziweke mipangilio ya vidakuzi vya mshirika mwingine</translation> <translation id="6738430949033571771">Inathibitisha akaunti...</translation> <translation id="6739923123728562974">Onyesha mkato wa eneo-kazi</translation> @@ -8481,7 +8469,6 @@ <translation id="7853747251428735">Zana Zaidi</translation> <translation id="7853999103056713222">Tumia Nenosiri Salama</translation> <translation id="7855678561139483478">Sogeza kichupo kwenye dirisha jipya</translation> -<translation id="7855729579456690716">Tovuti zinaweza kufungua dirisha la kipengele cha kupachika picha ndani ya picha nyingine unapobadilisha ili utumie kichupo tofauti</translation> <translation id="7857004848504343806">Kompyuta yako ina sehemu ya usalama, ambayo inatumiwa kutekeleza vipengele vingi muhimu vya usalama kwenye ChromeOS Flex. Tembelea Kituo cha Usaidizi cha Chromebook ili upate malezo zaidi: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Mapendekezo ya maandishi</translation> <translation id="7857949311770343000">Je, huu ndio ukurasa wa kichupo kipya uliokuwa ukiutarajia?</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index b7149c6..4ef074ec 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> நீங்கள் உள்நுழையும் விதத்தை நினைவில் வைத்திருந்து, சாத்தியமான சூழல்களில் தானாகவே உங்களை உள்நுழையச் செய்யும். முடக்கப்பட்டிருக்கும்போது, ஒவ்வொரு முறை உள்நுழையும்போதும் நீங்கள்தான் உள்நுழைகிறீர்கள் என்பதை உறுதிப்படுத்துமாறு கேட்கப்படும்.</translation> <translation id="1008544602823861396">உங்களைப் பற்றிய தகவல்களைப் பயன்படுத்துவதில் இருந்து தடுக்கப்பட்டுள்ளது</translation> <translation id="1008557486741366299">இப்போது இல்லை </translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{உங்கள் தரவைப் பாதுகாக்க கடந்த 2 மாதங்களாக நீங்கள் பார்வையிடாத தளத்தில் இருந்து அனுமதிகள் அகற்றப்பட்டன}other{உங்கள் தரவைப் பாதுகாக்க கடந்த 2 மாதங்களாக நீங்கள் பார்வையிடாத தளங்களில் இருந்து அனுமதிகள் அகற்றப்பட்டன}}</translation> <translation id="1009663062402466586">கேம் கண்ட்ரோல்கள் இப்போது கிடைக்கின்றன</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{பக்கம் செயலிழந்தது}other{பக்கங்கள் செயலிழந்தன}}</translation> <translation id="1011003645819296594">சேமிக்கப்பட்ட சாதனங்கள்</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">இணைப்பு முக&வரியை நகலெடு</translation> <translation id="1085064499066015002">அனைத்துத் தளங்களிலும் எப்போதும் அனுமதி</translation> <translation id="1085697365578766383">விர்ச்சுவல் மெஷினைத் தொடங்கும்போது பிழை ஏற்பட்டது. மீண்டும் முயலவும்.</translation> -<translation id="1087965115100412394">MIDI சாதனங்களுடன் இணைவதற்குத் தளங்களை அனுமதிக்காதே</translation> <translation id="1088659085457112967">படித்தல் பயன்முறையில் நுழை</translation> <translation id="1090126737595388931">இயக்கத்தில் எந்த பின்புல Apps உம் இல்லை</translation> <translation id="1090541560108055381">இணைப்பதற்கு முன்பு, இரண்டு சாதனங்களிலும் ஒரே குறியீடு காட்டப்படுவதை உறுதிசெய்துகொள்ளவும்</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">தாவலை மூடுக</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">வெளியேறும் போது அழி</translation> -<translation id="3553487194781590058">வேறொரு உலாவிப் பக்கத்திற்கு மாறும்போது பிக்ச்சர்-இன்-பிக்ச்சர் சாளரத்தைத் திறக்க தளங்களை அனுமதிக்காதே</translation> <translation id="3554493885489666172">உங்கள் சாதனத்தை <ph name="PROFILE_NAME" /> நிர்வகிக்கிறது. இந்தச் சாதனத்தில் உள்ள எந்தவொரு சுயவிவரத் தரவையும் நிர்வாகிகளால் அணுக முடியும்.</translation> <translation id="3555812735919707620">நீட்டிப்பை அகற்று</translation> <translation id="3557101512409028104">Family Link மூலம் இணையதளக் கட்டுப்பாடுகளையும் பயன்படுத்தும் நேர வரம்பையும் அமைக்கலாம்</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">விளக்கம்</translation> <translation id="3975565978598857337">டொமைனுக்காக சேவையகத்தைப் பயன்படுத்த இயலவில்லை</translation> <translation id="3976108569178263973">பிரிண்டர்கள் எதுவும் இல்லை.</translation> -<translation id="3976244126942806443">இசையை உருவாக்குதல், எடிட் செய்தல் ஆகியவற்றுக்காக MIDI சாதனங்களுடன் தளங்கள் வழக்கமாக இணையும்</translation> <translation id="397703832102027365">இறுதிபடுத்துகிறது...</translation> <translation id="3977145907578671392">மறைநிலைப் பயன்முறையில் இருக்கும்போது சில தளங்களில் உள்ள அம்சங்கள் செயல்படாமல் போகக்கூடும்</translation> <translation id="3977886311744775419">தானியங்குப் புதுப்பிப்புகள் இந்த வகை நெட்வொர்க்கில் பதிவிறக்கப்படாது, ஆனால் புதுப்பிப்புகள் உள்ளனவா என்று நேரடியாகப் பார்த்து, அவற்றை பதிவிறக்கலாம்.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">ஸ்டைலஸ் மூலம் பூட்டுத் திரையில் எடுத்த சமீபத்திய குறிப்பு</translation> <translation id="4730888769809690665"><ph name="SITE" /> தளத்திற்கு அறிவிப்புகள் அனுப்ப அனுமதியுள்ளது</translation> <translation id="4731306954230393087">தளங்கள் உங்களைப் பற்றிச் சேமித்துள்ள தகவல்களைப் பயன்படுத்த அனுமதிக்கப்பட்டுள்ளவை</translation> -<translation id="473140019006744096">இந்தப் புதுப்பிப்பை நிறைவுசெய்ய இந்தச் சாதனத்தில் போதிய சேமிப்பிடம் இல்லை. உங்கள் சாதனத்தில் <ph name="NECESSARY_SPACE" /> காலியாக்கிவிட்டு மீண்டும் முயலவும்.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (இடதுபக்கம்)</translation> <translation id="4733793249294335256">இருப்பிடம்</translation> <translation id="473546211690256853">இந்தக் கணக்கு <ph name="DOMAIN" /> ஆல் நிர்வகிக்கப்படுகிறது</translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">அறிவிப்புகளுடன் இயங்கும் அம்சங்கள் செயல்படாது</translation> <translation id="532943162177641444">இந்தச் சாதனம் பயன்படுத்தக்கூடிய மொபைல் ஹாட்ஸ்பாட்டை அமைக்க, <ph name="PHONE_NAME" /> இல் தெரியும் அறிவிப்பைத் தட்டவும்.</translation> <translation id="5329858601952122676">&நீக்கு</translation> -<translation id="5330592967519769658">வேறொரு உலாவிப் பக்கத்திற்கு மாறும்போது பிக்ச்சர்-இன்-பிக்ச்சர் சாளரத்தைத் திறக்க அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation> <translation id="5331069282670671859">உங்களிடம் இந்த வகையான சான்றிதழ்கள் இல்லை</translation> <translation id="5331568967879689647">ChromeOS சிஸ்டம் ஆப்ஸ்</translation> <translation id="5331975486040154427">USB-C சாதனம் (இடது பக்கம் பின்னே இருக்கும் போர்ட்)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">தொடர்வதன் மூலம், Google, உங்கள் பிள்ளையின் மொபைல் நிறுவனம், இந்தச் சாதனத்தின் உற்பத்தியாளர் ஆகியோரிடமிருந்து புதுப்பிப்புகளையும் ஆப்ஸையும் மொபைல் டேட்டா மூலம் இந்தச் சாதனம் தானாகவே பதிவிறக்கி, நிறுவக்கூடும் என்பதை ஏற்கிறீர்கள். 'ஆப்ஸில் வாங்குதல்' வசதி சில ஆப்ஸில் இருக்கலாம்.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{பின்(PIN) குறைந்தது 1 எழுத்தைக் கொண்டிருக்க வேண்டும்}other{பின்(PIN) குறைந்தது # எழுத்துகளைக் கொண்டிருக்க வேண்டும்}}</translation> <translation id="5474859849784484111">இப்போதே வைஃபையுடன் இணைத்து புதுப்பிப்பைப் பதிவிறக்குமாறு <ph name="MANAGER" /> கோருகிறது. அல்லது கட்டண நெட்வொர்க் இணைப்பின் மூலம் இதைப் பதிவிறக்கலாம் (கட்டணங்கள் விதிக்கப்படலாம்).</translation> -<translation id="5478520208448702555">வேறொரு உலாவிப் பக்கத்திற்கு மாறும்போது தளங்கள் பிக்ச்சர்-இன்-பிக்ச்சர் சாளரத்தைத் திறக்கக்கூடும்</translation> <translation id="5481273127572794904">பல ஃபைல்களைத் தானாகவே பதிவிறக்க அனுமதி இல்லாத தளங்கள்</translation> <translation id="5481941284378890518">அருகிலுள்ள பிரிண்டர்களைச் சேர்</translation> <translation id="5484181871714116891">இது இயக்கப்பட்டிருந்தால், iCloud Keychainனில் கடவுச்சாவிகள் உருவாக்கப்பட்டு உங்கள் Apple சாதனங்கள் அனைத்திலும் கிடைக்கும். இது முடக்கப்பட்டிருந்தால், இந்தச் சாதனத்திலுள்ள உங்கள் Chrome சுயவிவரத்தில் கடவுச்சாவிகள் உருவாக்கப்படும்.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">சில எளிய படிகளில் நிறுவலாம். உங்கள் கம்ப்யூட்டரில் மாற்றங்கள் செய்யப்படும் முன் உறுதிப்படுத்த மற்றொரு வாய்ப்பு கிடைக்கும்.</translation> <translation id="5600706100022181951">புதுப்பிப்பைப் பதிவிறக்க, <ph name="UPDATE_SIZE_MB" /> மெ.பை. மொபைல் டேட்டா பயன்படுத்தப்படும். தொடர வேண்டுமா?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI சாதனங்களுடன் இணைப்பதற்கு அனுமதி இல்லாத தளங்கள்</translation> <translation id="5601833336918638013">புளூடூத் சாதனங்கள் உள்ளதா எனத் தேட தளங்களுக்கு அனுமதி இல்லை</translation> <translation id="5602586420788540146">புதிய பக்கக் குழுவில் திறக்கும்</translation> <translation id="5605758115928394442">அது நீங்கள்தான் என்பதை உறுதிப்படுத்த உங்கள் ஃபோனுக்கு ஓர் அறிவிப்பு அனுப்பப்பட்டுள்ளது.</translation> @@ -5853,7 +5845,6 @@ <translation id="5707185214361380026">இதிலிருந்து நீட்டிப்பை ஏற்றுவதில் தோல்வி:</translation> <translation id="5708171344853220004">Microsoft Principal பெயர்</translation> <translation id="5709557627224531708">Chromeமை உங்கள் இயல்பு உலாவியாக அமைக்கவும்</translation> -<translation id="5710122160114032242">வேறொரு உலாவிப் பக்கத்திற்கு மாறும்போது பிக்ச்சர்-இன்-பிக்ச்சர் சாளரத்தைத் திறக்க அனுமதிக்கப்படாத தளங்கள்</translation> <translation id="5711010025974903573">சேவைப் பதிவுகள்</translation> <translation id="5711983031544731014">அன்லாக் செய்ய முடியவில்லை. கடவுச்சொல்லை உள்ளிடவும்.</translation> <translation id="5712153969432126546">சிலசமயம் ஆவணங்கள், ஒப்பந்தங்கள், படிவங்கள் போன்ற PDFகளை தளங்கள் வெளியிடும்</translation> @@ -6615,7 +6606,6 @@ <translation id="6326175484149238433">Chromeமிலிருந்து அகற்று</translation> <translation id="6326855256003666642">கீப்அலைவ் கவுண்ட்</translation> <translation id="6327785803543103246">இணைய ப்ராக்ஸியைத் தானாகக் கண்டறி</translation> -<translation id="6331818708794917058">MIDI சாதனங்களுடன் தளங்கள் இணைய முயலும்போது அனுமதி கேள்</translation> <translation id="6333064448949140209">ஃபைல் பிழைத் திருத்தத்திற்காக Googleளுக்கு அனுப்பப்படும்</translation> <translation id="6333170995003625229">உங்கள் மின்னஞ்சல் முகவரியையோ கடவுச்சொல்லையோ சரிபார்க்க முடியவில்லை. மீண்டும் உள்நுழையவும்.</translation> <translation id="6334267141726449402">பதிவுகளைச் சேகரிக்க, இந்த இணைப்பைப் பயனருக்கு நகலெடுத்து அனுப்பவும்.</translation> @@ -6765,7 +6755,6 @@ <translation id="6458701200018867744">பதிவேற்ற முடியவில்லை (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">தேடுவதற்கு தேர்ந்தெடுத்ததைப் பயன்படுத்து</translation> <translation id="6459799433792303855">செயலில் உள்ள சாளரம், மற்றொரு திரைக்கு நகர்த்தப்பட்டது.</translation> -<translation id="6460566145397380451">MIDI சாதனங்களுடன் இணைப்பதற்கு அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation> <translation id="6460601847208524483">அடுத்ததைக் கண்டுபிடி</translation> <translation id="6461170143930046705">நெட்வொர்க்குகளைத் தேடுகிறது...</translation> <translation id="6463795194797719782">&திருத்து</translation> @@ -7091,7 +7080,6 @@ <translation id="6735304988756581115">குக்கீகள் மற்றும் பிற தள தரவைக் காண்பி...</translation> <translation id="6736243959894955139">முகவரி</translation> <translation id="6737663862851963468">Kerberos டிக்கெட்டை அகற்றுதல்</translation> -<translation id="6737931010859480781">இந்த ஆப்ஸ் உங்கள் சாதனத்தில் முன்பே நிறுவப்பட்டுள்ளது</translation> <translation id="6738180164164974883">மூன்றாம் தரப்புக் குக்கீகளை அனுமதி</translation> <translation id="6738430949033571771">கணக்கைச் சரிபார்க்கிறது...</translation> <translation id="6739923123728562974">டெஸ்க்டாப் ஷார்ட்கட்டைக் காட்டு</translation> @@ -8486,7 +8474,6 @@ <translation id="7853747251428735">மேலும் கருவி&கள்</translation> <translation id="7853999103056713222">பாதுகாப்பான கடவுச்சொல்லைப் பயன்படுத்துங்கள்</translation> <translation id="7855678561139483478">தாவலை புதிய சாளரத்திற்கு நகர்த்து</translation> -<translation id="7855729579456690716">வேறொரு உலாவிப் பக்கத்திற்கு மாறும்போது தளங்கள் பிக்ச்சர்-இன்-பிக்ச்சர் சாளரத்தைத் திறக்க தளங்களை அனுமதி</translation> <translation id="7857004848504343806">உங்கள் கம்ப்யூட்டரில் பாதுகாப்பு மாடியூல் உள்ளது. இது ChromeOS Flexஸில் உள்ள பல முக்கியமான பாதுகாப்பு அம்சங்களைச் செயல்படுத்துவதற்குப் பயன்படுத்தப்படுகிறது. மேலும் அறிய, Chromebook உதவி மையத்திற்குச் செல்லவும்: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">சொல் பரிந்துரைகள்</translation> <translation id="7857949311770343000">இந்தப் புதிய தாவல் பக்கத்தைத்தான் எதிர்பார்த்தீர்களா?</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 0c4c771..dabb90c 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">మీరు ఎలా సైన్ ఇన్ చేశారు అనే దానిని <ph name="BRAND" /> గుర్తుంచుకొని, వీలయినప్పుడు ఆటోమేటిక్గా మిమ్మల్ని సైన్ ఇన్ చేస్తుంది. ఇది ఆఫ్లో ఉన్నప్పుడు, ప్రతిసారి ధృవీకరించమని మిమ్మల్ని అడుగుతుంది.</translation> <translation id="1008544602823861396">ఈ సైట్లలో ఉండే మీ సమాచారాన్ని ఉపయోగించకుండా బ్లాక్ చేయబడింది</translation> <translation id="1008557486741366299">ఇప్పుడు కాదు</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{మీ డేటాను సురక్షితంగా ఉంచడానికి, 2 నెలలుగా మీరు ఉపయోగించని సైట్ నుండి అనుమతులు తీసివేయబడ్డాయి}other{మీ డేటాను సురక్షితంగా ఉంచడానికి, 2 నెలలుగా మీరు ఉపయోగించని సైట్ల నుండి అనుమతులు తీసివేయబడ్డాయి}}</translation> <translation id="1009663062402466586">గేమ్ కంట్రోల్స్ ఇప్పుడు అందుబాటులో ఉన్నాయి</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{పేజీ ప్రతిస్పందించడం లేదు}other{పేజీలు ప్రతిస్పందించడం లేదు}}</translation> <translation id="1011003645819296594">సేవ్ చేసిన పరికరాలు</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">లింక్ చిరు&నామాను కాపీ చేయి</translation> <translation id="1085064499066015002">ఎల్లప్పుడూ అన్ని సైట్లలో అనుమతించండి</translation> <translation id="1085697365578766383">వర్చువల్ మెషిన్ను ప్రారంభించడంలో ఎర్రర్ ఏర్పడింది. దయచేసి మళ్లీ ట్రై చేయండి.</translation> -<translation id="1087965115100412394">MIDI పరికరాలను కనెక్ట్ చేయడానికి సైట్లను అనుమతించకండి</translation> <translation id="1088659085457112967">రీడర్ మోడ్లోకి ఎంటర్ అవ్వండి</translation> <translation id="1090126737595388931">నేపథ్య యాప్లు ఏవి అమలులో లేవు</translation> <translation id="1090541560108055381">పెయిర్ చేసే ముందు, రెండు పరికరాల్లో ఈ కోడ్ ఒకేలా ఉందని నిర్ధారించుకోండి</translation> @@ -3230,7 +3228,6 @@ <translation id="3551320343578183772">ట్యాబ్ను మూసివేయి</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">నిష్క్రమణలో క్లియర్ చేయబడింది</translation> -<translation id="3553487194781590058">మీరు వేరే ట్యాబ్కు మారినప్పుడు పిక్చర్-ఇన్-పిక్చర్ విండోను తెరవడానికి సైట్లను అనుమతించవద్దు</translation> <translation id="3554493885489666172">మీ పరికరం <ph name="PROFILE_NAME" /> ద్వారా మేనేజ్ చేయబడుతుంది. ఈ పరికరంలో ఎలాంటి ప్రొఫైల్లోని డేటాను అయినా అడ్మినిస్ట్రేటర్లు యాక్సెస్ చేయగలరు.</translation> <translation id="3555812735919707620">ఎక్సటెన్షన్ని తీసివేయండి</translation> <translation id="3557101512409028104">Family Linkతో వెబ్సైట్ పరిమితులు & పరికర వినియోగ వ్యవధిని సెట్ చేయండి</translation> @@ -3789,7 +3786,6 @@ <translation id="3975201861340929143">వివరణ</translation> <translation id="3975565978598857337">సర్వర్ కోసం నెట్వర్క్ పరిధిని కనెక్ట్ చేయడంలో విఫలమైంది</translation> <translation id="3976108569178263973">అందుబాటులో ఉన్న ప్రింటర్లు లేవు.</translation> -<translation id="3976244126942806443">మ్యూజిక్ను క్రియేట్ చేయడం, ఎడిట్ చేయడం కోసం సాధారణంగా సైట్లు MIDI పరికరాలకు కనెక్ట్ అవుతాయి</translation> <translation id="397703832102027365">పూర్తి చేస్తోంది...</translation> <translation id="3977145907578671392">అజ్ఞాత మోడ్లో కొన్ని సైట్లలోని ఫీచర్లు పని చేయవు</translation> <translation id="3977886311744775419">ఈ రకమైన నెట్వర్క్లో ఆటోమేటిక్ అప్డేట్లు డౌన్లోడ్ చేయబడవు, కానీ మీరు మాన్యువల్గా అప్డేట్లను చెక్ చేయవచ్చు.</translation> @@ -4690,7 +4686,6 @@ <translation id="4730492586225682674">స్టైలస్ లాక్ స్క్రీన్పై తాజా గమనిక</translation> <translation id="4730888769809690665"><ph name="SITE" /> కోసం నోటిఫికేషన్లకు అనుమతి ఉంది</translation> <translation id="4731306954230393087">సైట్లు మీ గురించి సేవ్ చేసిన సమాచారాన్ని ఉపయోగించడానికి అనుమతించబడింది</translation> -<translation id="473140019006744096">ఈ అప్డేట్ను పూర్తి చేయడానికి ఈ పరికరంలో తగినంత స్పేస్ లేదు. మీ పరికరంలో <ph name="NECESSARY_SPACE" />ని క్లీన్ అప్ చేసి, మళ్లీ ట్రై చేయండి.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ఎడమ)</translation> <translation id="4733793249294335256">లొకేషన్</translation> <translation id="473546211690256853">ఈ ఖాతాను <ph name="DOMAIN" /> మేనేజ్ చేస్తోంది</translation> @@ -5392,7 +5387,6 @@ <translation id="5327912693242073631">నోటిఫికేషన్లు అవసరం అయ్యే ఫీచర్లు పని చేయవు</translation> <translation id="532943162177641444">ఈ పరికరం ఉపయోగించగల విధంగా మొబైల్ హాట్స్పాట్ను సెటప్ చేయడానికి, మీ <ph name="PHONE_NAME" />లోని నోటిఫికేషన్ను నొక్కండి.</translation> <translation id="5329858601952122676">&తొలగించు</translation> -<translation id="5330592967519769658">మీరు వేరే ట్యాబ్కు మారినప్పుడు పిక్చర్-ఇన్-పిక్చర్ విండోను తెరవమని అడగవచ్చు</translation> <translation id="5331069282670671859">ఈ వర్గంలో మీకు ప్రమాణపత్రాలు ఏవీ లేవు</translation> <translation id="5331568967879689647">ChromeOS సిస్టమ్ యాప్</translation> <translation id="5331975486040154427">USB-C పరికరం (ఎడమవైపు వెనుక పోర్ట్)</translation> @@ -5570,7 +5564,6 @@ <translation id="5473099001878321374">కొనసాగించడం ద్వారా, ఈ పరికరం Google, మీ చిన్నారి క్యారియర్, అలాగే ఈ పరికర తయారీదారు నుండి ఆటోమేటిక్గా అప్డేట్లను, యాప్లను డౌన్లోడ్ చేసి, ఇన్స్టాల్ చేయవచ్చని ఇందుకు సెల్యులార్ డేటా ఉపయోగించబడవచ్చని మీరు అంగీకరిస్తున్నారు. ఈ యాప్లలో కొన్ని, 'యాప్లో కొనుగోళ్ల'ను ఆఫర్ చేయవచ్చు.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{పిన్ తప్పనిసరిగా కనీసం ఒక అక్షరాన్ని కలిగి ఉండాలి}other{పిన్ తప్పనిసరిగా కనీసం # అక్షరాలను ఉండాలి}}</translation> <translation id="5474859849784484111">ఇప్పుడే మీరు Wi-Fiకి కనెక్ట్ అయ్యి, అప్డేట్ను డౌన్లోడ్ చేయాలని <ph name="MANAGER" /> తెలియజేస్తోంది. లేదా డేటా నియంత్రణ ఉన్న కనెక్షన్ నుండి డౌన్లోడ్ చేయండి (ఛార్జీలు వర్తించవచ్చు).</translation> -<translation id="5478520208448702555">మీరు వేరే ట్యాబ్కు మారినప్పుడు సైట్లు పిక్చర్-ఇన్-పిక్చర్ విండోను తెరవవచ్చు</translation> <translation id="5481273127572794904">ఆటోమేటిక్గా అనేక ఫైళ్లను డౌన్లోడ్ చేయడానికి అనుమతించబడలేదు</translation> <translation id="5481941284378890518">సమీప ప్రింటర్లను జోడించండి</translation> <translation id="5484181871714116891">టోగుల్ ఆన్ చేసినప్పుడు, పాస్-కీలు iCloud కీచైన్లో క్రియేట్ చేయబడతాయి, ఇంకా అవి మీ Apple పరికరాలలో అందుబాటులో ఉంటాయి. టోగుల్ ఆఫ్ చేసినప్పుడు, ఈ పరికరంలోని మీ Chrome ప్రొఫైల్లో పాస్-కీలు క్రియేట్ చేయబడతాయి.</translation> @@ -5728,7 +5721,6 @@ <translation id="5600348067066185292">కొన్ని సులభమైన దశలలో ఇన్స్టాలేషన్ పూర్తవుతుంది. మీ కంప్యూటర్లో ఏవైనా మార్పులను చేసే ముందు మీకు నిర్ధారించుకోవడానికి మరో అవకాశం ఉంటుంది.</translation> <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB మొబైల్ డేటాను ఉపయోగించి అప్డేట్ డౌన్లోడ్ చేయబడుతుంది. మీరు కొనసాగాలని అనుకుంటున్నారా?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI పరికరాలకు కనెక్ట్ చేయడానికి అనుమతించబడలేదు</translation> <translation id="5601833336918638013">బ్లూటూత్ పరికరాల కోసం వెతకడానికి సైట్లను అనుమతించవద్దు</translation> <translation id="5602586420788540146">కొత్త ట్యాబ్ గ్రూప్లో తెరవండి</translation> <translation id="5605758115928394442">మీరేనని నిర్ధారించుకోవడానికి మీ ఫోన్కు ఒక నోటిఫికేషన్ పంపబడింది.</translation> @@ -5850,7 +5842,6 @@ <translation id="5707185214361380026">దీని నుండి ఎక్స్టెన్షన్ను లోడ్ చేయడంలో విఫలమైంది:</translation> <translation id="5708171344853220004">Microsoft ప్రధాన పేరు</translation> <translation id="5709557627224531708">Chromeని మీ డిఫాల్ట్ బ్రౌజర్గా సెట్ చేయండి</translation> -<translation id="5710122160114032242">మీరు వేరే ట్యాబ్కు మారినప్పుడు పిక్చర్-ఇన్-పిక్చర్ విండోను తెరవడానికి అనుమతి లేదు</translation> <translation id="5711010025974903573">సర్వీస్ లాగ్లు</translation> <translation id="5711983031544731014">అన్లాక్ చేయడం సాధ్యపడలేదు. మీ పాస్వర్డ్ను నమోదు చేయండి.</translation> <translation id="5712153969432126546">సైట్లు కొన్నిసార్లు డాక్యుమెంట్లు, కాంట్రాక్ట్లు, ఫారమ్లు వంటి PDFలను పబ్లిష్ చేస్తాయి</translation> @@ -6612,7 +6603,6 @@ <translation id="6326175484149238433">Chrome నుండి తీసివేయండి</translation> <translation id="6326855256003666642">సక్రియ కార్యాచరణల గణన</translation> <translation id="6327785803543103246">వెబ్ ప్రాక్సీ స్వీయశోధన</translation> -<translation id="6331818708794917058">MIDI పరికరాలకు కనెక్ట్ చేయడానికి సైట్లు అడగగలవు</translation> <translation id="6333064448949140209">ఫైల్ డీబగ్గింగ్ కోసం Googleకు పంపబడుతుంది</translation> <translation id="6333170995003625229">మీ ఈమెయిల్ అడ్రస్ లేదా పాస్వర్డ్ను వెరిఫై చేయడం సాధ్యం కాలేదు. తిరిగి సైన్ ఇన్ చేయడాన్ని ట్రై చేయండి.</translation> <translation id="6334267141726449402">లాగ్లను కలెక్ట్ చేయడానికి, ఈ లింక్ను కాపీ చేసి, యూజర్కు పంపండి.</translation> @@ -6762,7 +6752,6 @@ <translation id="6458701200018867744">అప్లోడ్ విఫలమైంది (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">కనుగొనడానికి ఎంపికను ఉపయోగించండి</translation> <translation id="6459799433792303855">యాక్టివ్ విండో మరో డిస్ప్లేకు తరలించబడింది.</translation> -<translation id="6460566145397380451">MIDI పరికరాలకు కనెక్ట్ చేయడానికి అనుమతించబడింది</translation> <translation id="6460601847208524483">తరువాతది కనుగొనండి</translation> <translation id="6461170143930046705">నెట్వర్క్ల కోసం వెతుకుతోంది...</translation> <translation id="6463795194797719782">సవ&రించు</translation> @@ -7088,7 +7077,6 @@ <translation id="6735304988756581115">కుక్కీలు మరియు ఇతర సైట్ డేటాను చూపించు...</translation> <translation id="6736243959894955139">అడ్రస్</translation> <translation id="6737663862851963468">Kerberos టిక్కెట్ను తీసివేయండి</translation> -<translation id="6737931010859480781">ఈ యాప్ మీ పరికరంలో ప్రీ - ఇన్స్టాల్ చేయబడింది</translation> <translation id="6738180164164974883">థర్డ్-పార్టీ కుక్కీలను సెట్ చేయడానికి అనుమతించండి</translation> <translation id="6738430949033571771">ఖాతాను వెరిఫై చేస్తోంది...</translation> <translation id="6739923123728562974">డెస్క్టాప్ షార్ట్కట్ను చూపు</translation> @@ -8482,7 +8470,6 @@ <translation id="7853747251428735">మరిన్ని సాధనా&లు</translation> <translation id="7853999103056713222">మరింత సురక్షితమైన పాస్వర్డ్ను ఉపయోగించండి</translation> <translation id="7855678561139483478">ట్యాబ్ను కొత్త విండోకు తరలించు</translation> -<translation id="7855729579456690716">మీరు వేరే ట్యాబ్కు మారినప్పుడు సైట్లు పిక్చర్-ఇన్-పిక్చర్ విండోను తెరవవచ్చు</translation> <translation id="7857004848504343806">మీ కంప్యూటర్ ఒక సెక్యూరిటీ మాడ్యూల్ను కలిగి ఉంది, ఇది ChromeOS Flexలో అనేక కీలకమైన సెక్యూరిటీ ఫీచర్లను అమలు చేయడానికి ఉపయోగించబడుతుంది. మరింత తెలుసుకోవడానికి Chromebook సహాయ కేంద్రాన్ని సందర్శించండి: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">టెక్స్ట్ సూచనలు</translation> <translation id="7857949311770343000">మీరు ఆశిస్తున్న కొత్త ట్యాబ్ పేజీ ఇదేనా?</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index 056176a..e4bb3477 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> จะจดจำวิธีลงชื่อเข้าใช้และลงชื่อเข้าใช้ให้คุณโดยอัตโนมัติเมื่อเป็นไปได้ หากปิดการตั้งค่านี้ ระบบจะขอให้คุณยืนยันทุกครั้ง</translation> <translation id="1008544602823861396">ถูกบล็อกไม่ให้ใช้ข้อมูลของคุณใน</translation> <translation id="1008557486741366299">ไม่ใช่ตอนนี้</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{ระบบได้นำสิทธิ์ออกจากเว็บไซต์ที่คุณไม่ได้เข้าชมนาน 2 เดือนเพื่อปกป้องข้อมูลของคุณ}other{ระบบได้นำสิทธิ์ออกจากเว็บไซต์ที่คุณไม่ได้เข้าชมนาน 2 เดือนเพื่อปกป้องข้อมูลของคุณ}}</translation> <translation id="1009663062402466586">การควบคุมเกมพร้อมใช้งานแล้ว</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{หน้าไม่ตอบสนอง}other{หน้าไม่ตอบสนอง}}</translation> <translation id="1011003645819296594">อุปกรณ์ที่บันทึกไว้</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">คัดลอก&ที่อยู่ลิงก์</translation> <translation id="1085064499066015002">ตลอดเวลาในทุกเว็บไซต์</translation> <translation id="1085697365578766383">เกิดข้อผิดพลาดขณะเริ่มต้นเครื่องเสมือน โปรดลองอีกครั้ง</translation> -<translation id="1087965115100412394">ไม่อนุญาตให้เว็บไซต์เชื่อมต่ออุปกรณ์ MIDI</translation> <translation id="1088659085457112967">เข้าสู่โหมดผู้อ่าน</translation> <translation id="1090126737595388931">ไม่มีแอปพลิเคชันทำงานในพื้นหลัง</translation> <translation id="1090541560108055381">ตรวจสอบว่ารหัสนี้เหมือนกันในอุปกรณ์ทั้ง 2 เครื่องก่อนที่จะจับคู่</translation> @@ -3217,7 +3215,6 @@ <translation id="3551320343578183772">ปิดแท็บ</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">ล้างเมื่อออก</translation> -<translation id="3553487194781590058">ไม่อนุญาตให้เว็บไซต์เปิดหน้าต่างการแสดงภาพซ้อนภาพเมื่อคุณเปลี่ยนไปยังแท็บอื่น</translation> <translation id="3554493885489666172">อุปกรณ์ของคุณจัดการโดย <ph name="PROFILE_NAME" /> ผู้ดูแลระบบจะเข้าถึงข้อมูลของโปรไฟล์ใดก็ได้ในอุปกรณ์นี้</translation> <translation id="3555812735919707620">นำส่วนขยายออก</translation> <translation id="3557101512409028104">ตั้งค่าการจำกัดเว็บไซต์และจำกัดเวลาอยู่หน้าจอด้วย Family Link</translation> @@ -3776,7 +3773,6 @@ <translation id="3975201861340929143">คำอธิบาย</translation> <translation id="3975565978598857337">ติดต่อเซิร์ฟเวอร์ของขอบเขตไม่สำเร็จ</translation> <translation id="3976108569178263973">ไม่มีเครื่องพิมพ์พร้อมใช้งาน</translation> -<translation id="3976244126942806443">โดยปกติแล้วเว็บไซต์จะเชื่อมต่อกับอุปกรณ์ MIDI เพื่อสร้างและแก้ไขเพลง</translation> <translation id="397703832102027365">กำลังสิ้นสุดการทำงาน...</translation> <translation id="3977145907578671392">ฟีเจอร์บนเว็บไซต์บางเว็บอาจใช้งานในโหมดไม่ระบุตัวตนไม่ได้</translation> <translation id="3977886311744775419">เครือข่ายประเภทนี้จะไม่ดาวน์โหลดอัปเดตอัตโนมัติ แต่คุณตรวจหาอัปเดตได้ด้วยตนเอง</translation> @@ -4676,7 +4672,6 @@ <translation id="4730492586225682674">บันทึกชิ้นล่าสุดที่ใช้สไตลัสในหน้าจอล็อก</translation> <translation id="4730888769809690665">อนุญาตให้ <ph name="SITE" /> แสดงการแจ้งเตือน</translation> <translation id="4731306954230393087">ได้รับอนุญาตให้ใช้ข้อมูลเกี่ยวกับคุณที่บันทึกไว้</translation> -<translation id="473140019006744096">อุปกรณ์นี้มีพื้นที่ว่างไม่เพียงพอที่จะทำการอัปเดตนี้ให้เสร็จสมบูรณ์ ล้างข้อมูล <ph name="NECESSARY_SPACE" /> ในอุปกรณ์แล้วลองอีกครั้ง</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (ซ้าย)</translation> <translation id="4733793249294335256">ตำแหน่ง</translation> <translation id="473546211690256853">บัญชีนี้จัดการโดย <ph name="DOMAIN" /></translation> @@ -5378,7 +5373,6 @@ <translation id="5327912693242073631">ฟีเจอร์ที่ต้องใช้การแจ้งเตือนจะไม่ทำงาน</translation> <translation id="532943162177641444">แตะการแจ้งเตือนใน <ph name="PHONE_NAME" /> เพื่อตั้งค่าฮอตสปอตเคลื่อนที่ที่อุปกรณ์นี้ใช้ได้</translation> <translation id="5329858601952122676">&ลบ</translation> -<translation id="5330592967519769658">อนุญาตให้เปิดหน้าต่างการแสดงภาพซ้อนภาพเมื่อคุณเปลี่ยนไปยังแท็บอื่น</translation> <translation id="5331069282670671859">คุณไม่มีใบรับรองในหมวดหมู่นี้</translation> <translation id="5331568967879689647">แอประบบ Chrome OS</translation> <translation id="5331975486040154427">อุปกรณ์ USB-C (พอร์ตด้านหลังซ้าย)</translation> @@ -5556,7 +5550,6 @@ <translation id="5473099001878321374">การดำเนินการต่อเป็นการยอมรับว่าอุปกรณ์นี้อาจใช้อินเทอร์เน็ตมือถือดาวน์โหลดและติดตั้งการอัปเดตและแอปจาก Google, ผู้ให้บริการของบุตรหลาน และผู้ผลิตอุปกรณ์โดยอัตโนมัติด้วย บางแอปเหล่านี้อาจมีการซื้อในแอป</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN ต้องมีอักขระอย่างน้อย 1 ตัว}other{PIN ต้องมีอักขระอย่างน้อย # ตัว}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> ต้องการให้คุณเชื่อมต่อ Wi-Fi ตอนนี้และดาวน์โหลดอัปเดต หรือดาวน์โหลดจากการเชื่อมต่อที่มีการวัดปริมาณอินเทอร์เน็ต (อาจมีค่าบริการ)</translation> -<translation id="5478520208448702555">เว็บไซต์อาจเปิดหน้าต่างการแสดงภาพซ้อนภาพเมื่อคุณเปลี่ยนไปยังแท็บอื่น</translation> <translation id="5481273127572794904">ไม่ได้รับอนุญาตให้ดาวน์โหลดไฟล์หลายไฟล์โดยอัตโนมัติ</translation> <translation id="5481941284378890518">เพิ่มเครื่องพิมพ์ที่อยู่ใกล้เคียง</translation> <translation id="5484181871714116891">เมื่อเปิด ระบบจะสร้างพาสคีย์ในพวงกุญแจ iCloud เพื่อให้พร้อมใช้งานในอุปกรณ์ Apple เมื่อปิด ระบบจะสร้างพาสคีย์ในโปรไฟล์ Chrome ในอุปกรณ์นี้</translation> @@ -5714,7 +5707,6 @@ <translation id="5600348067066185292">ติดตั้งได้ง่ายๆ ในไม่กี่ขั้นตอน คุณจะมีโอกาสยืนยันอีกครั้งก่อนที่ระบบจะทำการเปลี่ยนแปลงในคอมพิวเตอร์</translation> <translation id="5600706100022181951">ระบบจะดาวน์โหลดอัปเดตโดยใช้อินเทอร์เน็ตมือถือ <ph name="UPDATE_SIZE_MB" /> MB คุณต้องการดำเนินการต่อไหม</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">ไม่ได้รับอนุญาตให้เชื่อมต่ออุปกรณ์ MIDI</translation> <translation id="5601833336918638013">ไม่อนุญาตให้เว็บไซต์ค้นหาอุปกรณ์บลูทูธ</translation> <translation id="5602586420788540146">เปิดในกลุ่มแท็บใหม่</translation> <translation id="5605758115928394442">เราส่งการแจ้งเตือนให้คุณทางโทรศัพท์แล้วเพื่อยืนยันตัวตน</translation> @@ -5834,7 +5826,6 @@ <translation id="5707185214361380026">ไม่สามารถโหลดส่วนขยายจาก:</translation> <translation id="5708171344853220004">ชื่อหลักของ Microsoft</translation> <translation id="5709557627224531708">ตั้ง Chrome เป็นเบราว์เซอร์เริ่มต้น</translation> -<translation id="5710122160114032242">ไม่อนุญาตให้เปิดหน้าต่างการแสดงภาพซ้อนภาพเมื่อคุณเปลี่ยนไปยังแท็บอื่น</translation> <translation id="5711010025974903573">บันทึกของบริการ</translation> <translation id="5711983031544731014">ไม่สามารถปลดล็อก โปรดใส่รหัสผ่าน</translation> <translation id="5712153969432126546">บางครั้งเว็บไซต์จะเผยแพร่ PDF เช่น เอกสาร สัญญา แบบฟอร์ม</translation> @@ -6595,7 +6586,6 @@ <translation id="6326175484149238433">ลบจาก Chrome</translation> <translation id="6326855256003666642">จำนวนที่เชื่อมต่อแบบคงอยู่</translation> <translation id="6327785803543103246">การค้นหาเว็บพร็อกซีอัตโนมัติ</translation> -<translation id="6331818708794917058">เว็บไซต์ขอเชื่อมต่อกับอุปกรณ์ MIDI ได้</translation> <translation id="6333064448949140209">ระบบจะส่งไฟล์ไปยัง Google เพื่อแก้ไขข้อบกพร่อง</translation> <translation id="6333170995003625229">ยืนยันอีเมลหรือรหัสผ่านของคุณไม่ได้ ลองลงชื่อเข้าใช้อีกครั้ง</translation> <translation id="6334267141726449402">คัดลอกและส่งลิงก์นี้ให้ผู้ใช้เพื่อรวบรวมบันทึก</translation> @@ -6745,7 +6735,6 @@ <translation id="6458701200018867744">อัปโหลดไม่สำเร็จ (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)</translation> <translation id="6459488832681039634">ใช้สิ่งที่เลือกเพื่อค้นหา</translation> <translation id="6459799433792303855">หน้าต่างที่ใช้งานย้ายไปอยู่หน้าจออื่น</translation> -<translation id="6460566145397380451">ได้รับอนุญาตให้เชื่อมต่ออุปกรณ์ MIDI</translation> <translation id="6460601847208524483">ค้นหาถัดไป</translation> <translation id="6461170143930046705">กำลังค้นหาเครือข่าย...</translation> <translation id="6463795194797719782">แ&ก้ไข</translation> @@ -7071,7 +7060,6 @@ <translation id="6735304988756581115">แสดงคุกกี้และข้อมูลอื่นของเว็บไซต์...</translation> <translation id="6736243959894955139">ที่อยู่</translation> <translation id="6737663862851963468">นำตั๋ว Kerberos ออก</translation> -<translation id="6737931010859480781">แอปนี้ติดตั้งล่วงหน้าแล้วในอุปกรณ์ของคุณ</translation> <translation id="6738180164164974883">อนุญาตให้ตั้งค่าคุกกี้ของบุคคลที่สาม</translation> <translation id="6738430949033571771">กำลังยืนยันบัญชี...</translation> <translation id="6739923123728562974">แสดงทางลัดในเดสก์ท็อป</translation> @@ -8465,7 +8453,6 @@ <translation id="7853747251428735">เครื่องมือเ&พิ่มเติม</translation> <translation id="7853999103056713222">ใช้รหัสผ่านที่ปลอดภัยยิ่งขึ้น</translation> <translation id="7855678561139483478">ย้ายแท็บไปที่หน้าต่างใหม่</translation> -<translation id="7855729579456690716">เว็บไซต์จะเปิดหน้าต่างการแสดงภาพซ้อนภาพเมื่อคุณเปลี่ยนไปยังแท็บอื่น</translation> <translation id="7857004848504343806">คอมพิวเตอร์ของคุณมีโมดูลความปลอดภัย ซึ่งใช้เพื่อนำฟีเจอร์การรักษาความปลอดภัยที่สำคัญจำนวนมากมาใช้ใน Chrome OS Flex ดูข้อมูลเพิ่มเติมได้จากศูนย์ช่วยเหลือของ Chromebook ที่ https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">คำแนะนำข้อความ</translation> <translation id="7857949311770343000">นี่คือหน้าแท็บใหม่ที่คุณคาดไว้ใช่ไหม</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index b153d69..b5672b5f9 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" />, nasıl oturum açtığınızı hatırlar ve mümkün olduğunda oturumunuzu otomatik olarak açar. Bu özellik kapalıyken her defasında işlemi onaylamanız istenir.</translation> <translation id="1008544602823861396">sitesinin, şu sitelerdeki bilgilerinizi kullanması engellendi</translation> <translation id="1008557486741366299">Şimdi Değil</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{2 aydır ziyaret etmediğiniz sitenin izinleri, verilerinizi korumak için kaldırıldı}other{2 aydır ziyaret etmediğiniz sitelerin izinleri, verilerinizi korumak için kaldırıldı}}</translation> <translation id="1009663062402466586">Oyun denetimleri artık kullanılabilir</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Sayfa Yanıt Vermiyor}other{Sayfalar Yanıt Vermiyor}}</translation> <translation id="1011003645819296594">Kayıtlı cihazlar</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Bağlantı adr&esini kopyala</translation> <translation id="1085064499066015002">Tüm sitelerde her zaman</translation> <translation id="1085697365578766383">Sanal makine başlatılırken hata oluştu. Lütfen tekrar deneyin.</translation> -<translation id="1087965115100412394">Sitelerin MIDI cihazlara bağlanmasına izin verme</translation> <translation id="1088659085457112967">Okuyucu Moduna Geç</translation> <translation id="1090126737595388931">Çalışan Hiç Arka Plan Uygulama Yok</translation> <translation id="1090541560108055381">Eşleme işleminden önce bu kodun iki cihazda da aynı olduğundan emin olun</translation> @@ -3215,7 +3213,6 @@ <translation id="3551320343578183772">Sekmeyi Kapat</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" />-<ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Çıkışta Temizlenecek</translation> -<translation id="3553487194781590058">Siteler farklı bir sekmeye geçtiğinizde pencere içinde pencere açamaz</translation> <translation id="3554493885489666172">Cihazınız <ph name="PROFILE_NAME" /> tarafından yönetiliyor. Yöneticiler bu cihazda tüm profillerdeki verilere erişebilir.</translation> <translation id="3555812735919707620">Uzantıyı kaldır</translation> <translation id="3557101512409028104">Family Link ile web sitesi kısıtlamaları ve ekran süresi sınırlamaları ayarlayın</translation> @@ -3774,7 +3771,6 @@ <translation id="3975201861340929143">Açıklama</translation> <translation id="3975565978598857337">Alanın sunucusuyla iletişim kurulamadı</translation> <translation id="3976108569178263973">Kullanılabilir yazıcı yok.</translation> -<translation id="3976244126942806443">Müzik üretmek ve düzenlemek için siteler genellikle MIDI cihazlarına bağlanır</translation> <translation id="397703832102027365">Sonlandırılıyor...</translation> <translation id="3977145907578671392">Bazı sitelerdeki özellikler Gizli modda çalışmayabilir</translation> <translation id="3977886311744775419">Otomatik güncellemeler bu ağ türünde indirilmez ancak güncellemeleri manuel olarak kontrol edebilirsiniz.</translation> @@ -4674,7 +4670,6 @@ <translation id="4730492586225682674">Kilit ekranında ekran kalemiyle alınan en son not</translation> <translation id="4730888769809690665"><ph name="SITE" /> için bildirimlere izin veriliyor</translation> <translation id="4731306954230393087">Sizinle ilgili kaydettiği bilgileri kullanmasına izin verilen siteler</translation> -<translation id="473140019006744096">Bu cihazda bu güncellemeyi tamamlayacak kadar alan yok. Cihazınızda <ph name="NECESSARY_SPACE" /> yer açıp tekrar deneyin.</translation> <translation id="4733161265940833579">%<ph name="BATTERY_PERCENTAGE" /> (Sol)</translation> <translation id="4733793249294335256">Konum</translation> <translation id="473546211690256853">Bu hesap <ph name="DOMAIN" /> tarafından yönetiliyor.</translation> @@ -5376,7 +5371,6 @@ <translation id="5327912693242073631">Bildirimlerin kullanılmasını gerektiren özellikler çalışmaz</translation> <translation id="532943162177641444">Bu cihaz tarafından kullanılabilecek mobil hotspot'u ayarlamak için <ph name="PHONE_NAME" /> telefonunuzdaki bildirime dokunun.</translation> <translation id="5329858601952122676">&Sil</translation> -<translation id="5330592967519769658">Farklı bir sekmeye geçtiğinizde pencere içinde pencere açmasına izin verilen siteler</translation> <translation id="5331069282670671859">Bu kategoride hiç sertifikanız yok</translation> <translation id="5331568967879689647">ChromeOS Sistem Uygulaması</translation> <translation id="5331975486040154427">USB-C cihaz (sol arka bağlantı noktası)</translation> @@ -5554,7 +5548,6 @@ <translation id="5473099001878321374">Devam ederek bu cihazın Google'dan, çocuğunuzun operatöründen ve bu cihazın üreticisinden güncellemeleri ve uygulamaları, muhtemelen hücresel veri üzerinden otomatik olarak indirip yükleyebileceğini kabul etmiş olursunuz. Bu uygulamalardan bazıları uygulama içi satın alma seçenekleri sunabilir.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN en az bir karakter olmalıdır}other{PIN en az # karakter olmalıdır}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" />, şimdi kablosuz ağa bağlanarak bir güncelleme indirmenizi gerektiriyor. İsterseniz sayaçlı bir bağlantı üzerinden indirebilirsiniz (bunun için ödeme alınabilir).</translation> -<translation id="5478520208448702555">Siteler farklı bir sekmeye geçtiğinizde pencere içinde pencere açabilir</translation> <translation id="5481273127572794904">Birden fazla dosyayı otomatik olarak indirmesine izin verilmeyen siteler</translation> <translation id="5481941284378890518">Yakınlardaki Yazıcıları Ekle</translation> <translation id="5484181871714116891">Bu ayar açıkken geçiş anahtarları iCloud Anahtar Zinciri'nde oluşturulur ve Apple cihazlarınızda kullanılabilir. Bu ayar kapalıyken geçiş anahtarları bu cihazdaki Chrome profilinizde oluşturulur.</translation> @@ -5712,7 +5705,6 @@ <translation id="5600348067066185292">Yükleme işlemi birkaç kolay adımda gerçekleştirilebilir. Bilgisayarınızda değişiklik yapılmadan önce bu değişiklikleri onaylamak için bir şansınız daha olur.</translation> <translation id="5600706100022181951">Güncellemeyi indirmek için <ph name="UPDATE_SIZE_MB" /> MB mobil veri kullanılacak. Devam etmek istiyor musunuz?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI cihazlarına bağlanmasına izin verilmeyen siteler</translation> <translation id="5601833336918638013">Sitelerin, Bluetooth cihazları aramasına izin verme</translation> <translation id="5602586420788540146">Yeni sekme grubunda aç</translation> <translation id="5605758115928394442">Telefonunuza kimliğinizi doğrulamak için bir bildirim gönderildi.</translation> @@ -5835,7 +5827,6 @@ <translation id="5707185214361380026">Uzantı şuradan yüklenemedi:</translation> <translation id="5708171344853220004">Microsoft Asıl Adı</translation> <translation id="5709557627224531708">Chrome'u varsayılan tarayıcınız olarak ayarlama</translation> -<translation id="5710122160114032242">Farklı bir sekmeye geçtiğinizde pencere içinde pencere açmasına izin verilmeyen siteler</translation> <translation id="5711010025974903573">Hizmet günlükleri</translation> <translation id="5711983031544731014">Kilit açılamıyor. Şifrenizi girin.</translation> <translation id="5712153969432126546">Siteler, bazen doküman, sözleşme ve form gibi PDF'ler yayınlar</translation> @@ -6597,7 +6588,6 @@ <translation id="6326175484149238433">Chrome'dan kaldır</translation> <translation id="6326855256003666642">Canlı Tutma Sayısı</translation> <translation id="6327785803543103246">Web proxy otomatik keşfi</translation> -<translation id="6331818708794917058">Siteler, MIDI cihazlarına bağlanmak isteyebilir</translation> <translation id="6333064448949140209">Dosya, hata ayıklama amacıyla Google'a gönderilecektir</translation> <translation id="6333170995003625229">E-posta adresiniz veya şifreniz doğrulanamadı. Tekrar oturum açmayı deneyin.</translation> <translation id="6334267141726449402">Günlükleri toplamak için bu bağlantıyı kopyalayıp kullanıcıya gönderin.</translation> @@ -6747,7 +6737,6 @@ <translation id="6458701200018867744">Yükleme başarısız oldu (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Bul için Seçim'i Kullan</translation> <translation id="6459799433792303855">Etkin pencere başka bir ekrana taşındı.</translation> -<translation id="6460566145397380451">MIDI cihazlarına bağlanmasına izin verilen siteler</translation> <translation id="6460601847208524483">Sonrakini Bul</translation> <translation id="6461170143930046705">Ağ aranıyor...</translation> <translation id="6463795194797719782">&Düzenle</translation> @@ -7073,7 +7062,6 @@ <translation id="6735304988756581115">Çerezleri ve diğer site verilerini göster...</translation> <translation id="6736243959894955139">Adres</translation> <translation id="6737663862851963468">Kerberos biletini kaldır</translation> -<translation id="6737931010859480781">Bu uygulama cihazınıza önceden yüklenmiş</translation> <translation id="6738180164164974883">Üçüncü taraf çerezlerinin ayarlanmasına izin ver</translation> <translation id="6738430949033571771">Hesap doğrulanıyor...</translation> <translation id="6739923123728562974">Masaüstü kısayolunu göster</translation> @@ -8467,7 +8455,6 @@ <translation id="7853747251428735">&Diğer Araçlar</translation> <translation id="7853999103056713222">Daha Güvenli Bir Şifre Kullanın</translation> <translation id="7855678561139483478">Sekmeyi yeni pencereye taşı</translation> -<translation id="7855729579456690716">Siteler farklı bir sekmeye geçtiğinizde pencere içinde pencere açabilir</translation> <translation id="7857004848504343806">Bilgisayarınızda, ChromeOS Flex'teki pek çok kritik güvenlik özelliğini uygulamak için kullanılan bir güvenli modül bulunmaktadır. Daha fazla bilgi edinmek için Chromebook Yardım Merkezi'ni ziyaret edin: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Metin önerileri</translation> <translation id="7857949311770343000">Bu, beklediğiniz yeni sekme sayfası mı?</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index e26f2be..27ad491 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> запам’ятовує, як ви ввійшли в обліковий запис, і за можливості автоматично входить у нього. Якщо цю функцію вимкнути, потрібно буде підтверджувати дані під час кожного входу.</translation> <translation id="1008544602823861396">заблоковано для використання вашої інформації на</translation> <translation id="1008557486741366299">Не зараз</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Щоб захистити ваші дані, було скасовано дозволи для сайту, який ви не відвідували протягом 2 місяців}one{Щоб захистити ваші дані, було скасовано дозволи для сайтів, які ви не відвідували протягом 2 місяців}few{Щоб захистити ваші дані, було скасовано дозволи для сайтів, які ви не відвідували протягом 2 місяців}many{Щоб захистити ваші дані, було скасовано дозволи для сайтів, які ви не відвідували протягом 2 місяців}other{Щоб захистити ваші дані, було скасовано дозволи для сайтів, які ви не відвідували протягом 2 місяців}}</translation> <translation id="1009663062402466586">Тепер доступні елементи керування іграми</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Сторінка не відповідає}one{Сторінки не відповідають}few{Сторінки не відповідають}many{Сторінки не відповідають}other{Сторінки не відповідають}}</translation> <translation id="1011003645819296594">Збережені пристрої</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Копіювати адр&есу посилання</translation> <translation id="1085064499066015002">Завжди на всіх сайтах</translation> <translation id="1085697365578766383">Не вдалося запустити віртуальну машину. Повторіть спробу.</translation> -<translation id="1087965115100412394">Заборонити сайтам підключатися до пристроїв MIDI</translation> <translation id="1088659085457112967">Перейти в режим читання</translation> <translation id="1090126737595388931">Не запущено жодну фонову програму</translation> <translation id="1090541560108055381">Перед підключенням переконайтеся, що ввели один код на обох пристроях</translation> @@ -3235,7 +3233,6 @@ <translation id="3551320343578183772">Закрити вкладку</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Очищено під час виходу</translation> -<translation id="3553487194781590058">Заборонити сайтам відкривати вікно в режимі "Картинка в картинці", коли ви переходите на іншу вкладку</translation> <translation id="3554493885489666172">Вашим пристроєм керує <ph name="PROFILE_NAME" />. Адміністратори мають доступ до даних у всіх профілях на цьому пристрої.</translation> <translation id="3555812735919707620">Видалити розширення</translation> <translation id="3557101512409028104">Установіть обмеження для веб-сайтів і часу використання пристрою в додатку Family Link</translation> @@ -3794,7 +3791,6 @@ <translation id="3975201861340929143">Пояснення</translation> <translation id="3975565978598857337">Не вдалося зв'язатися із сервером для цієї області</translation> <translation id="3976108569178263973">Немає доступних принтерів.</translation> -<translation id="3976244126942806443">Сайти зазвичай підключаються до пристроїв MIDI для створення й редагування музики</translation> <translation id="397703832102027365">Завершення...</translation> <translation id="3977145907578671392">Функції на деяких сайтах можуть не працювати в анонімному режимі</translation> <translation id="3977886311744775419">Автоматичні оновлення не завантажуються в цьому типі мережі, але ви можете пошукати їх вручну.</translation> @@ -4695,7 +4691,6 @@ <translation id="4730492586225682674">Показувати на заблокованому екрані останню нотатку, створену за допомогою стилуса</translation> <translation id="4730888769809690665">Сповіщення для сайту <ph name="SITE" /> дозволено</translation> <translation id="4731306954230393087">Дозволено використовувати збережену про вас інформацію</translation> -<translation id="473140019006744096">На цьому пристрої недостатньо місця, щоб виконати оновлення. Звільніть <ph name="NECESSARY_SPACE" /> пам’яті й повторіть спробу.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Лівий)</translation> <translation id="4733793249294335256">Розташування</translation> <translation id="473546211690256853">Цим обліковим записом керує домен <ph name="DOMAIN" /></translation> @@ -5397,7 +5392,6 @@ <translation id="5327912693242073631">Функції, яким потрібні сповіщення, не працюватимуть</translation> <translation id="532943162177641444">Торкніться сповіщення на пристрої <ph name="PHONE_NAME" />, щоб налаштувати для нього мобільну точку доступу.</translation> <translation id="5329858601952122676">&Видалити</translation> -<translation id="5330592967519769658">Дозволено відкривати вікно в режимі "Картинка в картинці", коли ви переходите на іншу вкладку</translation> <translation id="5331069282670671859">У вас немає сертифікатів цієї категорії</translation> <translation id="5331568967879689647">Системний додаток ОС Chrome</translation> <translation id="5331975486040154427">Пристрій, під’єднаний до порту USB-C (ліворуч на задній панелі)</translation> @@ -5575,7 +5569,6 @@ <translation id="5473099001878321374">Продовжуючи, ви дозволяєте цьому пристрою автоматично завантажувати та встановлювати оновлення й додатки від Google, оператора дитини та виробника пристрою, зокрема через мобільний трафік. У деяких додатках можуть пропонуватися покупки.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN-код має містити принаймні один символ}one{PIN-код має містити принаймні # символ}few{PIN-код має містити принаймні # символи}many{PIN-код має містити принаймні # символів}other{PIN-код має містити принаймні # символу}}</translation> <translation id="5474859849784484111">Домен <ph name="MANAGER" /> вимагає, щоб ви підключилися до мережі Wi-Fi та завантажили оновлення. Ви також можете використовувати підключення з тарифікацією трафіку (може стягуватися плата).</translation> -<translation id="5478520208448702555">Якщо перейти на іншу вкладку, сайти можуть відкривати вікно в режимі "Картинка в картинці"</translation> <translation id="5481273127572794904">Заборонено автоматично завантажувати кілька файлів</translation> <translation id="5481941284378890518">Додати принтери поруч</translation> <translation id="5484181871714116891">Якщо цю функцію ввімкнено, ключі доступу створюються в iCloud Keychain і доступні на всіх пристроях Apple. Якщо її вимкнено, ключі доступу створюються в профілі Chrome на цьому пристрої.</translation> @@ -5733,7 +5726,6 @@ <translation id="5600348067066185292">Щоб установити ОС, виконайте кілька простих кроків. У вас буде ще одна можливість підтвердити зміни, перш ніж вони набудуть чинності на комп’ютері.</translation> <translation id="5600706100022181951">Щоб завантажити оновлення, буде використано <ph name="UPDATE_SIZE_MB" /> МБ мобільного Інтернету. Продовжити?</translation> <translation id="5601503069213153581">PIN-код</translation> -<translation id="5601823921345337195">Заборонено підключатися до пристроїв MIDI</translation> <translation id="5601833336918638013">Заборонити сайтам шукати пристрої з Bluetooth</translation> <translation id="5602586420788540146">Відкрити в новій групі вкладок</translation> <translation id="5605758115928394442">Ми надіслали сповіщення на ваш телефон, щоб підтвердити вашу особу.</translation> @@ -5853,7 +5845,6 @@ <translation id="5707185214361380026">Не вдалося завантажити розширення з:</translation> <translation id="5708171344853220004">Ім'я учасника Microsoft</translation> <translation id="5709557627224531708">Зробіть Chrome веб-переглядачем за умовчанням</translation> -<translation id="5710122160114032242">Заборонено відкривати вікно в режимі "Картинка в картинці", коли ви переходите на іншу вкладку</translation> <translation id="5711010025974903573">Журнали технічного обслуговування</translation> <translation id="5711983031544731014">Не вдалося розблокувати. Введіть пароль.</translation> <translation id="5712153969432126546">Сайти іноді публікують файли PDF, як-от документи, договори та форми</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Видалити з Chrome</translation> <translation id="6326855256003666642">Кількість процесів, які використовуються розширеннями</translation> <translation id="6327785803543103246">Автоматичне виявлення веб-проксі</translation> -<translation id="6331818708794917058">Сайти можуть запитувати дозвіл на підключення до пристроїв MIDI</translation> <translation id="6333064448949140209">Файл буде надіслано в Google для налагодження</translation> <translation id="6333170995003625229">Не вдалося підтвердити електронну адресу або пароль. Повторіть спробу.</translation> <translation id="6334267141726449402">Скопіюйте й надішліть це посилання користувачу, щоб зібрати журнали.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">Помилка завантаження (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Використати виділення для пошуку</translation> <translation id="6459799433792303855">Активне вікно переміщено на інший дисплей</translation> -<translation id="6460566145397380451">Дозволено підключатися до пристроїв MIDI</translation> <translation id="6460601847208524483">Знайти наступне</translation> <translation id="6461170143930046705">Пошук мереж…</translation> <translation id="6463795194797719782">&Редагувати</translation> @@ -7096,7 +7085,6 @@ <translation id="6735304988756581115">Показати файли cookie та інші дані із сайтів...</translation> <translation id="6736243959894955139">Адреса</translation> <translation id="6737663862851963468">Видалити квиток Kerberos</translation> -<translation id="6737931010859480781">Цей додаток попередньо встановлено на вашому пристрої</translation> <translation id="6738180164164974883">Дозволити налаштовувати сторонні файли cookie</translation> <translation id="6738430949033571771">Підтвердження облікового запису…</translation> <translation id="6739923123728562974">Показувати ярлик на робочому столі</translation> @@ -8490,7 +8478,6 @@ <translation id="7853747251428735">Інші інструменти</translation> <translation id="7853999103056713222">Використовуйте надійніший пароль</translation> <translation id="7855678561139483478">Перемістити вкладку в нове вікно</translation> -<translation id="7855729579456690716">Сайти можуть відкривати вікно в режимі "Картинка в картинці", коли ви переходите на іншу вкладку</translation> <translation id="7857004848504343806">Ваш комп’ютер містить модуль безпеки, який виконує багато важливих функцій захисту в ОС Chrome Flex. Щоб дізнатися більше, відвідайте Довідковий центр Chromebook: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Підказки тексту</translation> <translation id="7857949311770343000">Це сторінка нової вкладки, яку ви очікували?</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 9c179e1..daca2a86b 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> آپ کے سائن ان کرنے کے طریقے کو یاد رکھتا ہے اور ممکن ہونے پر آپ کو خودکار طور پر سائن ان کرتا ہے۔ آف ہونے پر، آپ سے ہر بار توثیق کرنے کیلئے کہا جائے گا۔</translation> <translation id="1008544602823861396">آپ کی معلومات کو اس پر استعمال کرنے سے مسدود کر دیا گیا ہے</translation> <translation id="1008557486741366299">ابھی نہیں</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{اپنے ڈیٹا کا تحفظ کرنے کے لیے، اجازتوں کو اس سائٹ سے ہٹا دیا گیا جسے آپ نے 2 ماہ سے ملاحظہ نہیں کیا ہے}other{اپنے ڈیٹا کا تحفظ کرنے کے لیے، اجازتوں کو ان سائٹس سے ہٹا دیا گیا جنہیں آپ نے 2 ماہ سے ملاحظہ نہیں کیا ہے}}</translation> <translation id="1009663062402466586">گیم کنٹرولز اب دستیاب ہے</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{صفحہ غیر اثرپذیر ہے}other{صفحات غیر اثرپذیر ہیں}}</translation> <translation id="1011003645819296594">محفوظ کردہ آلات</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">لنک پ&تہ کاپی کریں</translation> <translation id="1085064499066015002">ہمیشہ سبھی سائٹس پر</translation> <translation id="1085697365578766383">ورچوئل مشین شروع کرنے میں خرابی پیش آ گئی ہے۔ براہ کرم دوبارہ کوشش کریں۔</translation> -<translation id="1087965115100412394">سائٹس کو MIDI آلات سے منسلک ہونے کی اجازت نہ دیں</translation> <translation id="1088659085457112967">ریڈر وضع داخل کریں</translation> <translation id="1090126737595388931">پس منظر کی کوئی ایپس نہیں چل رہی ہیں</translation> <translation id="1090541560108055381">جوڑا بنانے سے پہلے، یقینی بنائیں کہ یہ کوڈ دونوں آلات پر ایک جیسا ہے</translation> @@ -3229,7 +3227,6 @@ <translation id="3551320343578183772">ٹیب بند کریں</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">باہر نلکنے پر صاف کی گئی</translation> -<translation id="3553487194781590058">جب آپ کسی دوسرے ٹیب پر جاتے ہیں تو سائٹس کو تصویر میں تصویر والی ونڈو کھولنے کی اجازت نہ دیں</translation> <translation id="3554493885489666172">آپ کا آلہ <ph name="PROFILE_NAME" /> کے زیر انتظام ہے۔ منتظمین اس آلے پر کسی بھی پروفائل میں ڈیٹا تک رسائی حاصل کر سکتے ہیں۔</translation> <translation id="3555812735919707620">ایکسٹینشن کو ہٹائیں</translation> <translation id="3557101512409028104">Family Link کی مدد سے ویب سائٹ کی پابندیاں اور اسکرین کے وقت کی حدود سیٹ کریں</translation> @@ -3788,7 +3785,6 @@ <translation id="3975201861340929143">وضاحت</translation> <translation id="3975565978598857337">دائرہ کار کے لیے سرور سے منسلک ہونا ناکام ہو گیا</translation> <translation id="3976108569178263973">پرنٹرز دستیاب نہیں ہیں۔</translation> -<translation id="3976244126942806443">موسیقی بنانے اور اس میں ترمیم کرنے کے لیے سائٹس عام طور پر MIDI آلات سے منسلک ہوتی ہیں</translation> <translation id="397703832102027365">مکمل کیا جا رہا ہے…</translation> <translation id="3977145907578671392">ہو سکتا ہے کہ کچھ سائٹس پر خصوصیات پوشیدگی وضع میں کام نہ کریں</translation> <translation id="3977886311744775419">خودکار اپ ڈیٹس نیٹ ورک کی اس قسم پر ڈاؤن لوڈ نہیں ہوتے ہیں، لیکن آپ دستی طور پر اپ ڈیٹس چیک کر سکتے ہیں۔</translation> @@ -4688,7 +4684,6 @@ <translation id="4730492586225682674">مقفل اسکرین پر اسٹائلس تازہ ترین نوٹ</translation> <translation id="4730888769809690665"><ph name="SITE" /> کے لیے اطلاعات کی اجازت ہے</translation> <translation id="4731306954230393087">ان کی جانب سے آپ سے متعلق محفوظ کردہ معلومات کو استعمال کرنے کی اجازت ہے</translation> -<translation id="473140019006744096">اس اپ ڈیٹ کو مکمل کرنے کے لیے اس آلے پر کافی اسپیس نہیں ہے۔ اپنے آلے پر <ph name="NECESSARY_SPACE" /> کو صاف کریں اور دوبارہ کوشش کریں۔</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (بائیں)</translation> <translation id="4733793249294335256">مقام</translation> <translation id="473546211690256853">یہ اکاؤنٹ <ph name="DOMAIN" /> کے زیر انتظام ہے۔</translation> @@ -5390,7 +5385,6 @@ <translation id="5327912693242073631">وہ خصوصیات کام نہیں کریں گی جن کے لیے اطلاعات کی ضرورت ہوتی ہے</translation> <translation id="532943162177641444">اس آلہ کے ذریعے استعمال کئے جانے والے موبائل ہاٹ اسپاٹ کو سیٹ اپ کرنے کیلئے اپنے <ph name="PHONE_NAME" /> پر اطلاع پر تھپتھپائيں۔</translation> <translation id="5329858601952122676">&حذف کریں</translation> -<translation id="5330592967519769658">جب آپ کسی دوسرے ٹیب پر جاتے ہیں تو تصویر میں تصویر والی ونڈو کھولنے کی اجازت ہے</translation> <translation id="5331069282670671859">آپ کے پاس اس زمرے کا کوئی سرٹیفکیٹ نہیں ہے</translation> <translation id="5331568967879689647">ChromeOS سسٹم ایپ</translation> <translation id="5331975486040154427">USB-C آلہ (بائیں طرف کا پچھلا پورٹ)</translation> @@ -5567,7 +5561,6 @@ <translation id="5473099001878321374">جاری رکھ کر، آپ اتفاق کرتے ہیں کہ یہ آلہ خودکار طور پر Google، آپ کے بچے کے کیریئر اور اس آلہ کے مینوفیکچرر سے، ممکنہ طور پر سیلولر ڈیٹا استعمال کرتے ہوئے اپ ڈیٹس اور ایپس بھی ڈاؤن لوڈ اور انسٹال کر سکتا ہے۔ ان میں سے کچھ ایپس درون ایپ خریداریاں بھی پیش کر سکتی ہیں۔</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN میں کم از کم ایک حرف ہونا چاہیے}other{PIN میں کم از کم # حروف ہونا چاہیے}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> کو درکار ہے کہ آپ ابھی Wi-Fi سے منسلک ہوں اور اپ ڈیٹ ڈاؤن لوڈ کریں۔ یا میٹرڈ کنکشن سے ڈاؤن لوڈ کریں (چارجز لاگو ہو سکتے ہیں)۔</translation> -<translation id="5478520208448702555">جب آپ کسی دوسرے ٹیب پر جاتے ہیں تو سائٹس تصویر میں تصویر والی ونڈو کھول سکتی ہیں</translation> <translation id="5481273127572794904">خودکار طور پر متعدد فائلز ڈاؤن لوڈ کرنے کی اجازت نہیں ہے</translation> <translation id="5481941284378890518">قریبی پرنٹرز کو شامل کریں</translation> <translation id="5484181871714116891">آن ہونے پر، پاس کیز iCloud Keychain میں تخلیق ہوتی ہیں اور آپ کے Apple آلات پر دستیاب ہوتی ہیں۔ آف ہونے پر، اس آلہ پر آپ کی Chrome پروفائل میں پاس کیز تخلیق کی جاتی ہیں۔</translation> @@ -5725,7 +5718,6 @@ <translation id="5600348067066185292">انسٹالیشن میں کچھ آسان مراحل لگتے ہیں۔ آپ کے کمپیوٹر میں تبدیلیاں کرنے سے پہلے آپ کو تصدیق کرنے کا دوسرا موقع ملے گا۔</translation> <translation id="5600706100022181951">موبائل ڈیٹا <ph name="UPDATE_SIZE_MB" /> MB استعمال کرتے ہوۓ اپڈیٹ ڈاؤن لوڈ ہو جائے گا۔ کیا آپ اسے جاری رکھنا چاہتے ہيں؟</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">MIDI آلات سے منسلک ہونے کی اجازت نہیں ہے</translation> <translation id="5601833336918638013">سائٹس کو بلوٹوتھ آلات تلاش کرنے کی اجازت نہ دیں</translation> <translation id="5602586420788540146">نئے ٹیب گروپ میں کھولیں</translation> <translation id="5605758115928394442">اس بات کی تصدیق کرنے کیلئے کہ یہ آپ ہی ہیں، آپ کے فون پر ایک اطلاع بھیجی گئی۔</translation> @@ -5847,7 +5839,6 @@ <translation id="5707185214361380026">ایکسٹیشن کو اس سے لوڈ کرنے میں ناکام:</translation> <translation id="5708171344853220004">Microsoft کا اصولی نام</translation> <translation id="5709557627224531708">Chrome کو اپنے ڈیفالٹ براؤزر کے بطور سیٹ کریں</translation> -<translation id="5710122160114032242">جب آپ کسی دوسرے ٹیب پر جاتے ہیں تو تصویر میں تصویر والی ونڈو کھولنے کی اجازت نہیں ہے</translation> <translation id="5711010025974903573">سروس لاگز</translation> <translation id="5711983031544731014">غیر مقفل کرنے سے قاصر۔ اپنا پاس ورڈ درج کریں۔</translation> <translation id="5712153969432126546">سائٹس کبھی کبھار دستاویزات، معاہدوں اور فارمز جیسی PDFs شائع کرتی ہیں</translation> @@ -6610,7 +6601,6 @@ <translation id="6326175484149238433">Chrome سے ہٹائیں</translation> <translation id="6326855256003666642">کیپ الائیو شمار</translation> <translation id="6327785803543103246">ویب پراکسی کی خودکار دریافت</translation> -<translation id="6331818708794917058">سائٹس MIDI آلات سے منسلک ہونے کے لیے پوچھ سکتی ہیں</translation> <translation id="6333064448949140209">ڈیبگ کرنے کیلئے فائل Google کو بھیج دی جائے گی</translation> <translation id="6333170995003625229">آپ کے ای میل پتہ یا پاس ورڈ کی توثیق نہیں کی جا سکی۔ دوبارہ سائن ان کرنے کی کوشش کریں۔</translation> <translation id="6334267141726449402">لاگز جمع کرنے کے لیے اس لنک کو کاپی کر کے صارف کو بھیجیں۔</translation> @@ -6760,7 +6750,6 @@ <translation id="6458701200018867744">اپ لوڈ نہیں ہو سکا (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)۔</translation> <translation id="6459488832681039634">تلاش کیلئے انتخاب کا استعمال کریں</translation> <translation id="6459799433792303855">فعال ونڈو کسی اور ڈسپلے میں منتقل کر دی گئی۔</translation> -<translation id="6460566145397380451">MIDI آلات سے منسلک ہونے کی اجازت ہے</translation> <translation id="6460601847208524483">اگلا تلاش کریں</translation> <translation id="6461170143930046705">نیٹ ورکس تلاش کیے جا رہے ہیں...</translation> <translation id="6463795194797719782">&ترمیم کریں</translation> @@ -7087,7 +7076,6 @@ <translation id="6735304988756581115">کوکیز اور دیگر سائٹ ڈیٹا کو دکھائیں…</translation> <translation id="6736243959894955139">پتہ</translation> <translation id="6737663862851963468">Kerberos ٹکٹ ہٹائیں</translation> -<translation id="6737931010859480781">یہ ایپ آپ کے آلے پر پہلے سے انسٹال ہے</translation> <translation id="6738180164164974883">فریق ثالث کی کوکیز سیٹ کرنے کی اجازت دیں</translation> <translation id="6738430949033571771">اکاؤنٹ کی توثیق کی جا رہی ہے...</translation> <translation id="6739923123728562974">ڈیسک ٹاپ شارٹ کٹ دکھائیں</translation> @@ -8483,7 +8471,6 @@ <translation id="7853747251428735">مزید ٹولز</translation> <translation id="7853999103056713222">نسبتًا محفوظ پاس ورڈ کا استعمال کریں</translation> <translation id="7855678561139483478">ٹیب کو نئی ونڈو میں منتقل کریں</translation> -<translation id="7855729579456690716">جب آپ کسی دوسرے ٹیب پر جاتے ہیں تو سائٹس تصویر میں تصویر والی ونڈو کھول سکتی ہیں</translation> <translation id="7857004848504343806">آپ کے کمپیوٹر میں ایک محفوظ ماڈیول شامل ہے جو سیکیورٹی کی کئی اہم خصوصیات کو ChromeOS Flex میں لاگو کرنے کیلئے استعمال ہوتا ہے۔ مزید جاننے کیلئے Chromebook کا مرکز امداد ملاحظہ کریں: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">متنی تجاویز</translation> <translation id="7857949311770343000">کیا یہی وہ نیا ٹیب صفحہ ہے جس کی آپ توقع کر رہے تھے؟</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 4146914..b4eb9b3 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> hisobga qanday kirganingizni eslab qoladi va avtomatik kiritishga urinadi. Yoqilmasa, har safar tasdiqlash talab etiladi.</translation> <translation id="1008544602823861396">shaxsiy maʼlumotlaringizdan foydalanishi bloklangan</translation> <translation id="1008557486741366299">Hozir emas</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Xavfsizlik yuzasidan 2 oydan beri ochilmagan saytdan ruxsatlar olib tashlandi}other{Xavfsizlik yuzasidan 2 oydan beri ochilmagan saytlardan ruxsatlar olib tashlandi}}</translation> <translation id="1009663062402466586">Oʻyin boshqaruvlari taqdim etildi</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Sahifa javob bermayapti}other{Sahifalar javob bermayapti}}</translation> <translation id="1011003645819296594">Saqlangan qurilmalar</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Havola manzilini &nusxalash</translation> <translation id="1085064499066015002">Doim barcha saytlarda</translation> <translation id="1085697365578766383">Virtual mashinani ishga tushirishda xatolik yuz berdi. Qaytadan urining.</translation> -<translation id="1087965115100412394">Saytlarga MIDI qurilmalarga ulanishni taqiqlash</translation> <translation id="1088659085457112967">Mutolaa rejimiga kirish</translation> <translation id="1090126737595388931">Orqa fonda ishlayotgan ilovalar yo‘q</translation> <translation id="1090541560108055381">Ulashdan avval ikkala qurilmadagi kod bir xil ekanini tekshiring</translation> @@ -3219,7 +3217,6 @@ <translation id="3551320343578183772">Ichki oynani yopish</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Chiqish vaqtida tozalanadi</translation> -<translation id="3553487194781590058">Boshqa varaqqa oʻtsangiz, saytlar tasvir ustida tasvir oynasini ochishi taqiqlansin</translation> <translation id="3554493885489666172">Qurilmangiz <ph name="PROFILE_NAME" /> domenida boshqariladi. Administratorlar bu qurilmadagi har qaysi profil maʼlumotlarini ochishi mumkin.</translation> <translation id="3555812735919707620">Kengaytmani o‘chirish</translation> <translation id="3557101512409028104">Family Link orqali saytlar va qurilmadan foydalanish vaqtiga cheklovlarni sozlash</translation> @@ -3778,7 +3775,6 @@ <translation id="3975201861340929143">Izoh</translation> <translation id="3975565978598857337">Server kiritilgan domenga ulanmadi</translation> <translation id="3976108569178263973">Hech qanday printer topilmadi.</translation> -<translation id="3976244126942806443">Saytlar odatda musiqa yaratish va tahrirlash uchun MIDI qurilmalarga ulanadi</translation> <translation id="397703832102027365">Yakunlanmoqda...</translation> <translation id="3977145907578671392">Ayrim saytlardagi funksiyalar Inkognito rejimida ishlamasligi mumkin</translation> <translation id="3977886311744775419">Bunday turdagi tarmoq orqali yangilanishlarni avtomatik yuklab olish imkonsiz, lekin yangilanishlarni oʻzingiz tekshirib koʻrishingiz mumkin.</translation> @@ -4679,7 +4675,6 @@ <translation id="4730492586225682674">Ekran qulfida stilus yordamida yaratilgan oxirgi qayd</translation> <translation id="4730888769809690665"><ph name="SITE" /> uchun bildirishnomalarga ruxsat berilgan</translation> <translation id="4731306954230393087">Siz haqingizda saqlagan maʼlumotlardan foydalanishga ruxsat berilgan</translation> -<translation id="473140019006744096">Bu yangilanish yakunlanishi uchun qurilmadagi joy yetarli emas. Qurilmada <ph name="NECESSARY_SPACE" /> joy boʻshating va qayta urining.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (chap)</translation> <translation id="4733793249294335256">Jild</translation> <translation id="473546211690256853">Bu hisob <ph name="DOMAIN" /> tomonidan boshqariladi</translation> @@ -5381,7 +5376,6 @@ <translation id="5327912693242073631">Bildirishnomalardan foydalanadigan funksiyalar ishlamaydi</translation> <translation id="532943162177641444">Bu qurilmaga mobil hotspot orqali internet tarqatish uchun <ph name="PHONE_NAME" /> telefoningizdagi bildirishnoma ustiga bosing.</translation> <translation id="5329858601952122676">&O‘chirish</translation> -<translation id="5330592967519769658">Boshqa varaqqa oʻtsangiz, tasvir ustida tasvir oynasini ochishga ruxsat beriladi</translation> <translation id="5331069282670671859">Bu turkumdagi sertifikatlar yo‘q</translation> <translation id="5331568967879689647">ChromeOS tizim ilovasi</translation> <translation id="5331975486040154427">USB-C qurilma (chap tomondagi orqa port)</translation> @@ -5559,7 +5553,6 @@ <translation id="5473099001878321374">Davom etish orqali siz bu qurilma Google, aloqa operatoringiz va qurilma ishlab chiqaruvchisidan dasturiy yangilanish va ilovalarni mobil internet orqali ham avtomatik ravishda yuklab olishi va oʻrnatishiga rozilik bildirgan hisoblanasiz. Ayrim ilovalar ichki xaridlarni ham taklif etishi mumkin.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN kod kamida bitta belgidan iborat boʻlsin}other{PIN kod kamida # ta belgidan iborat boʻlsin}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> domeni hoziroq Wi-Fi tarmoqqa ulanib, yangilanishni yuklab olishni talab qilmoqda. Yoki trafik hisoblanadigan ulanishdan foydalanib yuklab olish mumkin.</translation> -<translation id="5478520208448702555">Boshqa varaqqa oʻtsangiz, saytlar tasvir ustida tasvir oynasini ochishi mumkin</translation> <translation id="5481273127572794904">Bir nechta faylni avtomatik yuklab olish taqiqlangan</translation> <translation id="5481941284378890518">Yaqin-atrofdagi printerlarni qo‘shish</translation> <translation id="5484181871714116891">Yoniq boʻlsa, iCloud Keychain orqali yaratilgan kalitlardan barcha Apple qurilmalarida foydalanish mumkin. Oʻchiq boʻlsa, bu qurilmada kalitlar Chrome profili orqali yaratiladi.</translation> @@ -5717,7 +5710,6 @@ <translation id="5600348067066185292">Oʻrnatish jarayoni bir nechta bosqichni oʻz ichiga oladi. Kompyuterda oʻzgartirishlar amalga oshishidan oldin tasdiqlash uchun yana boshqa imkoniyat boʻladi.</translation> <translation id="5600706100022181951">Yangilanishni yuklab olish uchun <ph name="UPDATE_SIZE_MB" /> mobil trafik zarur. Yuklab olinsinmi?</translation> <translation id="5601503069213153581">PIN kod</translation> -<translation id="5601823921345337195">MIDI qurilmalarga ulanishga ruxsat berilmagan</translation> <translation id="5601833336918638013">Saytlar Bluetooth qurilmalarni qidirishi mumkin emas</translation> <translation id="5602586420788540146">Yangi varaqlar guruhida ochish</translation> <translation id="5605758115928394442">Telefoningizga bildirishnoma yuborildi. Shaxsingizni tasdiqlang.</translation> @@ -5839,7 +5831,6 @@ <translation id="5707185214361380026">Kengaytmani bu yerdan yuklab bo‘lmadi:</translation> <translation id="5708171344853220004">Microsoft qatnashchisining ismi</translation> <translation id="5709557627224531708">Chromeni standart brauzer etib tayinlang</translation> -<translation id="5710122160114032242">Boshqa varaqqa oʻtsangiz, tasvir ustida tasvir oynasini ochish taqiqlanadi</translation> <translation id="5711010025974903573">Xizmat jurnali</translation> <translation id="5711983031544731014">Qulfdan chiqarib bo‘lmadi. Parolni kiriting.</translation> <translation id="5712153969432126546">Baʼzan saytlar hujjatlar, shartnomalar va shakllarni PDF formatda chop etadi.</translation> @@ -6601,7 +6592,6 @@ <translation id="6326175484149238433">Chrome‘dan olib tashlash</translation> <translation id="6326855256003666642">Keepalive ulanishlari soni</translation> <translation id="6327785803543103246">Proksi-server avtomatik aniqlanishi</translation> -<translation id="6331818708794917058">Saytlar MIDI qurilmarga ulanishga ruxsat soʻray oladi</translation> <translation id="6333064448949140209">Fayl batafsil ko‘rib chiqilishi uchun Google serverlariga yuboriladi</translation> <translation id="6333170995003625229">Email manzil yoki parolingiz tekshirilmadi. Qaytadan kirishga urining.</translation> <translation id="6334267141726449402">Jurnallarni yigʻish uchun bu havoladan nusxa oling va foydalanuvchiga yuboring.</translation> @@ -6751,7 +6741,6 @@ <translation id="6458701200018867744">Yuklanmadi (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Belgilanish bo‘yicha qidiruv</translation> <translation id="6459799433792303855">Faol oyna boshqa ekranga uzatildi.</translation> -<translation id="6460566145397380451">MIDI qurilmalarga ulanishga ruxsat berilgan</translation> <translation id="6460601847208524483">Keyingisini topish</translation> <translation id="6461170143930046705">Tarmoqlar qidirilmoqda...</translation> <translation id="6463795194797719782">&O‘zgartirish...</translation> @@ -7077,7 +7066,6 @@ <translation id="6735304988756581115">Cookie fayllari va boshqa sayt ma‘lumotlarini ko‘rsatish...</translation> <translation id="6736243959894955139">Manzil</translation> <translation id="6737663862851963468">Kerberos chiptasini olib tashlash</translation> -<translation id="6737931010859480781">Bu ilova qurilmangizda oldindan oʻrnatilgan</translation> <translation id="6738180164164974883">Tashqi cookielarni sozlashga ruxsat berish</translation> <translation id="6738430949033571771">Hisob tekshirilmoqda...</translation> <translation id="6739923123728562974">Yorliqni ish stolida ko‘rsatish</translation> @@ -8470,7 +8458,6 @@ <translation id="7853747251428735">Qo‘shimcha &vositalar</translation> <translation id="7853999103056713222">Xavfsiz parol ishlatish</translation> <translation id="7855678561139483478">Varaqni yangi oynaga olish</translation> -<translation id="7855729579456690716">Boshqa varaqqa oʻtsangiz, saytlar tasvir ustida tasvir oynasini ocha oladi</translation> <translation id="7857004848504343806">Kompyuteringizda himoya moduli mavjud. Undan ChromeOS Flex platformasida ko‘plab jiddiy xavfsizlik funksiyalarini amalga oshirishda foydalaniladi. Batafsil ma’lumotni Chromebook yordam markazidan olishingiz mumkin: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Matn takliflari</translation> <translation id="7857949311770343000">Bu boshqa tezkor havolalar sahifasimi?</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index f2d71f73..35ce2b58 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" /> ghi nhớ cách bạn đăng nhập và tự động giúp bạn đăng nhập khi có thể. Nếu tắt tính năng này thì bạn sẽ cần xác nhận mỗi lần đăng nhập.</translation> <translation id="1008544602823861396">không được sử dụng thông tin của bạn trên</translation> <translation id="1008557486741366299">Để sau</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Chúng tôi đã thu hồi quyền của một trang web nhằm bảo vệ dữ liệu của bạn vì đã 2 tháng bạn không truy cập trang web đó}other{Chúng tôi đã thu hồi quyền của một số trang web nhằm bảo vệ dữ liệu của bạn vì đã 2 tháng bạn không truy cập các trang web đó}}</translation> <translation id="1009663062402466586">Đã có chế độ điều khiển trò chơi</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Trang không phản hồi}other{Trang không phản hồi}}</translation> <translation id="1011003645819296594">Thiết bị đã lưu</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">S&ao chép địa chỉ liên kết</translation> <translation id="1085064499066015002">Cho phép trên tất cả trang web</translation> <translation id="1085697365578766383">Lỗi khi khởi động máy ảo. Vui lòng thử lại.</translation> -<translation id="1087965115100412394">Không cho phép trang web kết nối với các thiết bị MIDI</translation> <translation id="1088659085457112967">Bật chế độ đọc</translation> <translation id="1090126737595388931">Không có ứng dụng nền nào đang chạy</translation> <translation id="1090541560108055381">Trước khi ghép nối, hãy đảm bảo mã này giống nhau trên cả hai thiết bị</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">Đóng Thẻ</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Xóa khi thoát</translation> -<translation id="3553487194781590058">Không cho phép các trang web mở cửa sổ hình trong hình khi bạn chuyển sang thẻ khác</translation> <translation id="3554493885489666172">Thiết bị của bạn do <ph name="PROFILE_NAME" /> quản lý. Quản trị viên có thể truy cập vào dữ liệu trong bất kỳ hồ sơ nào trên thiết bị này.</translation> <translation id="3555812735919707620">Xóa tiện ích</translation> <translation id="3557101512409028104">Đặt các hạn chế về trang web và giới hạn thời gian sử dụng thiết bị bằng Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Thông tin giải thích</translation> <translation id="3975565978598857337">Không kết nối được với máy chủ của vùng</translation> <translation id="3976108569178263973">Không có máy in nào.</translation> -<translation id="3976244126942806443">Các trang web thường kết nối với thiết bị MIDI để tạo và chỉnh sửa nhạc</translation> <translation id="397703832102027365">Đang hoàn tất...</translation> <translation id="3977145907578671392">Một số tính năng trên một số trang web có thể không hoạt động được ở Chế độ ẩn danh</translation> <translation id="3977886311744775419">Các bản cập nhật tự động không tải xuống trên loại mạng này, nhưng bạn có thể kiểm tra các bản cập nhật theo cách thủ công.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Ghi chú mới nhất bằng bút cảm ứng trên màn hình khóa</translation> <translation id="4730888769809690665">Cho phép <ph name="SITE" /> gửi thông báo</translation> <translation id="4731306954230393087">Được phép sử dụng thông tin mà họ đã lưu về bạn</translation> -<translation id="473140019006744096">Thiết bị này không có đủ dung lượng để hoàn tất quá trình cập nhật này. Hãy giải phóng <ph name="NECESSARY_SPACE" /> trên thiết bị rồi thử lại.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Trái)</translation> <translation id="4733793249294335256">Vị trí</translation> <translation id="473546211690256853">Tài khoản này do <ph name="DOMAIN" /> quản lý</translation> @@ -5394,7 +5389,6 @@ <translation id="5327912693242073631">Các tính năng cần gửi thông báo sẽ không hoạt động</translation> <translation id="532943162177641444">Nhấn vào thông báo trên <ph name="PHONE_NAME" /> của bạn để thiết lập điểm phát sóng di động mà thiết bị này có thể dùng.</translation> <translation id="5329858601952122676">&Xoá</translation> -<translation id="5330592967519769658">Được phép mở cửa sổ hình trong hình khi bạn chuyển sang thẻ khác</translation> <translation id="5331069282670671859">Bạn không có chứng chỉ nào thuộc loại này</translation> <translation id="5331568967879689647">Ứng dụng hệ thống trên ChromeOS</translation> <translation id="5331975486040154427">Thiết bị USB-C (cổng phía sau, bên trái)</translation> @@ -5572,7 +5566,6 @@ <translation id="5473099001878321374">Bằng cách tiếp tục, bạn đồng ý rằng thiết bị này cũng có thể tự động tải xuống và cài đặt các bản cập nhật và ứng dụng của Google, nhà mạng của con bạn và nhà sản xuất thiết bị (có thể dùng dữ liệu di động). Một vài ứng dụng trong số này có thể cung cấp các lựa chọn mua hàng trong ứng dụng.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Mã PIN phải có ít nhất 1 ký tự}other{Mã PIN phải có ít nhất # ký tự}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> yêu cầu bạn kết nối Wi-Fi ngay bây giờ và tải bản cập nhật xuống, hoặc tải xuống từ đường kết nối có đo lượng dữ liệu (bạn có thể mất phí).</translation> -<translation id="5478520208448702555">Các trang web có thể mở cửa sổ hình trong hình khi bạn chuyển sang thẻ khác</translation> <translation id="5481273127572794904">Không được phép tự động tải nhiều tệp xuống</translation> <translation id="5481941284378890518">Thêm máy in lân cận</translation> <translation id="5484181871714116891">Khi bật tuỳ chọn này, bạn chọn tạo khoá truy cập bằng Chuỗi khoá iCloud và có thể sử dụng khoá đó trên các thiết bị Apple của bạn. Khi bạn tắt tuỳ chọn này, hồ sơ Chrome của bạn trên thiết bị này sẽ là nơi tạo khoá truy cập.</translation> @@ -5730,7 +5723,6 @@ <translation id="5600348067066185292">Quá trình cài đặt chỉ mất vài bước đơn giản. Bạn sẽ được yêu cầu xác nhận một lần nữa trước khi hệ thống thực hiện các thay đổi trên máy tính của bạn.</translation> <translation id="5600706100022181951">Bản cập nhật sẽ được tải xuống bằng cách dùng <ph name="UPDATE_SIZE_MB" /> MB dữ liệu di động. Bạn có muốn tiếp tục không?</translation> <translation id="5601503069213153581">Mã PIN</translation> -<translation id="5601823921345337195">Không được phép kết nối với các thiết bị MIDI</translation> <translation id="5601833336918638013">Không cho phép các trang web tìm thiết bị Bluetooth</translation> <translation id="5602586420788540146">Mở trong nhóm thẻ mới</translation> <translation id="5605758115928394442">Chúng tôi đã gửi một thông báo đến điện thoại của bạn để xác nhận đó là bạn.</translation> @@ -5852,7 +5844,6 @@ <translation id="5707185214361380026">Không tải được tiện ích từ:</translation> <translation id="5708171344853220004">Tên Chính của Microsoft</translation> <translation id="5709557627224531708">Đặt Chrome làm trình duyệt mặc định</translation> -<translation id="5710122160114032242">Không được phép mở cửa sổ hình trong hình khi bạn chuyển sang thẻ khác</translation> <translation id="5711010025974903573">Nhật ký dịch vụ</translation> <translation id="5711983031544731014">Không mở khóa được. Hãy nhập mật khẩu của bạn.</translation> <translation id="5712153969432126546">Đôi khi, trang web sẽ xuất bản các tệp PDF, như tài liệu, hợp đồng và biểu mẫu</translation> @@ -6614,7 +6605,6 @@ <translation id="6326175484149238433">Xóa khỏi Chrome</translation> <translation id="6326855256003666642">Số lượng giữ kết nối</translation> <translation id="6327785803543103246">Tự động phát hiện proxy web</translation> -<translation id="6331818708794917058">Các trang web có thể yêu cầu kết nối với thiết bị MIDI</translation> <translation id="6333064448949140209">Tệp sẽ được gửi tới Google để được gỡ lỗi</translation> <translation id="6333170995003625229">Không xác minh được địa chỉ email hoặc mật khẩu của bạn. Hãy thử đăng nhập lại.</translation> <translation id="6334267141726449402">Sao chép và gửi đường liên kết này cho người dùng để thu thập nhật ký.</translation> @@ -6764,7 +6754,6 @@ <translation id="6458701200018867744">Không tải lên được (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Sử dụng Phần lựa chọn cho Tìm kiếm</translation> <translation id="6459799433792303855">Cửa sổ đang hoạt động được di chuyển sang màn hình khác.</translation> -<translation id="6460566145397380451">Được phép kết nối với các thiết bị MIDI</translation> <translation id="6460601847208524483">Tìm Tiếp theo</translation> <translation id="6461170143930046705">Đang tìm mạng...</translation> <translation id="6463795194797719782">&Chỉnh sửa</translation> @@ -7090,7 +7079,6 @@ <translation id="6735304988756581115">Hiển thị cookie và các dữ liệu khác của trang web...</translation> <translation id="6736243959894955139">Địa chỉ</translation> <translation id="6737663862851963468">Xóa vé Kerberos</translation> -<translation id="6737931010859480781">Ứng dụng này đã được cài đặt trước trên thiết bị của bạn</translation> <translation id="6738180164164974883">Cho phép đặt cookie của bên thứ ba</translation> <translation id="6738430949033571771">Đang xác minh tài khoản...</translation> <translation id="6739923123728562974">Hiển thị lối tắt trên màn hình</translation> @@ -8485,7 +8473,6 @@ <translation id="7853747251428735">Côn&g cụ khác</translation> <translation id="7853999103056713222">Sử dụng mật khẩu an toàn hơn</translation> <translation id="7855678561139483478">Di chuyển thẻ sang cửa sổ mới</translation> -<translation id="7855729579456690716">Các trang web có thể mở cửa sổ hình trong hình khi bạn chuyển sang thẻ khác</translation> <translation id="7857004848504343806">Máy tính của bạn chứa một mô-đun bảo mật dùng để triển khai nhiều tính năng bảo mật thiết yếu trong ChromeOS Flex. Hãy truy cập Trung tâm trợ giúp của Chromebook để tìm hiểu thêm: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Đề xuất văn bản</translation> <translation id="7857949311770343000">Đây có phải là trang thẻ mới bạn muốn không?</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index 9207fae..7f636438 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" />会记住您的登录方式,并在可能的情况下自动为您登录。关闭此功能后,您每次登录时,系统都会要求您确认。</translation> <translation id="1008544602823861396">已被禁止在以下网站上使用您的相关信息:</translation> <translation id="1008557486741366299">以后再说</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{为了保护您的数据,对于这个您在 2 个月内未访问过的网站,系统已将其权限撤消}other{为了保护您的数据,对于这些您在 2 个月内未访问过的网站,系统已将其权限撤消}}</translation> <translation id="1009663062402466586">游戏控件现已可供使用</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{1 个页面无响应}other{多个页面无响应}}</translation> <translation id="1011003645819296594">已保存的设备</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">复制链接地址(&E)</translation> <translation id="1085064499066015002">在所有网站上始终允许</translation> <translation id="1085697365578766383">启动虚拟机时出错。请重试。</translation> -<translation id="1087965115100412394">不允许网站连接到 MIDI 设备</translation> <translation id="1088659085457112967">进入阅读器模式</translation> <translation id="1090126737595388931">没有任何后台应用在运行</translation> <translation id="1090541560108055381">配对之前,请确保在这两部设备上显示的配对码相同</translation> @@ -3203,7 +3201,6 @@ <translation id="3551320343578183772">关闭标签页</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">退出时清除</translation> -<translation id="3553487194781590058">不允许网站在您切换到另一标签页时打开画中画窗口</translation> <translation id="3554493885489666172">您的设备由 <ph name="PROFILE_NAME" /> 管理。管理员可访问此设备上任意个人资料中的数据。</translation> <translation id="3555812735919707620">卸载扩展程序</translation> <translation id="3557101512409028104">通过 Family Link 设置网站限制和设备使用时间限制</translation> @@ -3761,7 +3758,6 @@ <translation id="3975201861340929143">说明</translation> <translation id="3975565978598857337">无法连接到指定领域的服务器</translation> <translation id="3976108569178263973">没有找到可用的打印机。</translation> -<translation id="3976244126942806443">网站通常会连接到 MIDI 设备以便创作和编辑音乐</translation> <translation id="397703832102027365">正在完成...</translation> <translation id="3977145907578671392">在无痕模式下,某些网站上的功能可能会无法正常运作</translation> <translation id="3977886311744775419">使用此网络类型时无法下载自动更新,但您可以手动检查是否有更新。</translation> @@ -4657,7 +4653,6 @@ <translation id="4730492586225682674">在锁定屏幕上显示触控笔最新记事</translation> <translation id="4730888769809690665">允许 <ph name="SITE" /> 传送通知</translation> <translation id="4731306954230393087">允许使用其保存的与您相关的信息</translation> -<translation id="473140019006744096">此设备的空间不足,无法完成更新。请在设备上清理出 <ph name="NECESSARY_SPACE" /> 的空间,然后重试。</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />%(左侧)</translation> <translation id="4733793249294335256">位置</translation> <translation id="473546211690256853">此账号由 <ph name="DOMAIN" /> 管理</translation> @@ -5355,7 +5350,6 @@ <translation id="5327912693242073631">所有需要使用通知的功能都将无法正常运行</translation> <translation id="532943162177641444">请点按您的 <ph name="PHONE_NAME" /> 设备上的通知,以设置可供此设备使用的移动热点。</translation> <translation id="5329858601952122676">删除(&D)</translation> -<translation id="5330592967519769658">可以在您切换到另一标签页时打开画中画窗口</translation> <translation id="5331069282670671859">您没有此类别的证书</translation> <translation id="5331568967879689647">Chrome 操作系统系统应用</translation> <translation id="5331975486040154427">USB-C 设备(左侧后端端口)</translation> @@ -5533,7 +5527,6 @@ <translation id="5473099001878321374">继续操作即表示您同意:此设备还可自动下载并安装来自 Google、您孩子的运营商和此设备的制造商的更新及应用(期间可能会使用移动数据网络),其中的部分应用可能会提供应用内购商品。</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN 码必须包含至少 1 个字符}other{PIN 码必须包含至少 # 个字符}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> 要求您立即连接到 Wi-Fi 并下载更新。您也可使用按流量计费的网络连接进行下载(可能需要支付相应费用)。</translation> -<translation id="5478520208448702555">网站可能会在您切换到另一标签页时打开画中画窗口</translation> <translation id="5481273127572794904">不允许自动下载多个文件</translation> <translation id="5481941284378890518">添加附近的打印机</translation> <translation id="5484181871714116891">当此选项处于开启状态时,通行密钥会在 iCloud 钥匙串中创建,并可在各部 Apple 设备上使用。当此选项处于关闭状态时,通行密钥会在该设备上您的 Chrome 个人资料中创建。</translation> @@ -5691,7 +5684,6 @@ <translation id="5600348067066185292">只需执行几个简单的步骤即可完成安装。在更改计算机之前,您还有一次机会进行确认。</translation> <translation id="5600706100022181951">下载更新需要使用 <ph name="UPDATE_SIZE_MB" /> MB 的移动数据流量。要继续吗?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">不允许连接到 MIDI 设备</translation> <translation id="5601833336918638013">不允许网站寻找蓝牙设备</translation> <translation id="5602586420788540146">在新标签页分组中打开</translation> <translation id="5605758115928394442">系统向您的手机发送了一条通知,以确认您的身份。</translation> @@ -5811,7 +5803,6 @@ <translation id="5707185214361380026">无法加载以下来源的扩展程序:</translation> <translation id="5708171344853220004">Microsoft 主体名称</translation> <translation id="5709557627224531708">将 Chrome 设为您的默认浏览器</translation> -<translation id="5710122160114032242">不得在您切换到另一标签页时打开画中画窗口</translation> <translation id="5711010025974903573">服务日志</translation> <translation id="5711983031544731014">无法解锁,请输入密码。</translation> <translation id="5712153969432126546">网站有时会发布 PDF 文件,例如文档、合同和表单</translation> @@ -6572,7 +6563,6 @@ <translation id="6326175484149238433">从Chrome中移除</translation> <translation id="6326855256003666642">正在使用相应扩展程序的活动数</translation> <translation id="6327785803543103246">网络代理自动发现</translation> -<translation id="6331818708794917058">网站可以请求连接到 MIDI 设备</translation> <translation id="6333064448949140209">文件将发送到 Google 进行调试</translation> <translation id="6333170995003625229">无法验证您的电子邮件地址或密码。请尝试重新登录。</translation> <translation id="6334267141726449402">复制此链接并将其发送给用户以收集日志。</translation> @@ -6722,7 +6712,6 @@ <translation id="6458701200018867744">上传失败(<ph name="WEBRTC_LOG_UPLOAD_TIME" />)。</translation> <translation id="6459488832681039634">使用所选内容查找</translation> <translation id="6459799433792303855">活动窗口已移至另一显示屏。</translation> -<translation id="6460566145397380451">允许连接到 MIDI 设备</translation> <translation id="6460601847208524483">查找下一个</translation> <translation id="6461170143930046705">正在搜索网络…</translation> <translation id="6463795194797719782">修改(&E)</translation> @@ -7048,7 +7037,6 @@ <translation id="6735304988756581115">显示 Cookie 和其他网站数据…</translation> <translation id="6736243959894955139">地址</translation> <translation id="6737663862851963468">移除 Kerberos 票据</translation> -<translation id="6737931010859480781">此应用已预安装在您的设备上</translation> <translation id="6738180164164974883">允许设置第三方 Cookie</translation> <translation id="6738430949033571771">正在验证账号…</translation> <translation id="6739923123728562974">显示桌面快捷方式</translation> @@ -8438,7 +8426,6 @@ <translation id="7853747251428735">更多工具(&L)</translation> <translation id="7853999103056713222">使用更安全的密码</translation> <translation id="7855678561139483478">将标签页移至新窗口</translation> -<translation id="7855729579456690716">网站可以在您切换到另一标签页时打开画中画窗口</translation> <translation id="7857004848504343806">您的计算机包含一个安全模块,该模块可用于在 ChromeOS Flex 中实现许多关键的安全功能。如需了解详情,请访问 Chromebook 帮助中心:https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">文字建议</translation> <translation id="7857949311770343000">这是您想要的新标签页吗?</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index e7c721a13..abedc8a3 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">「<ph name="BRAND" />」會記住您的登入方式,並盡可能自動登入。停用此功能後,系統每次都會詢問您是否要登入。</translation> <translation id="1008544602823861396">已被封鎖,無法使用你的資料 (位於</translation> <translation id="1008557486741366299">暫時不要</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{為保護您的資料,系統已移除您在過去 2 個月沒有瀏覽的網站權限}other{為保護您的資料,系統已移除您在過去 2 個月沒有瀏覽的網站權限}}</translation> <translation id="1009663062402466586">您現可使用遊戲控制項</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{網頁沒有回應}other{網頁沒有回應}}</translation> <translation id="1011003645819296594">已儲存的裝置</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">複製連結網址(&E)</translation> <translation id="1085064499066015002">一律在所有網站上執行</translation> <translation id="1085697365578766383">啟動虛擬機器時發生錯誤,請再試一次。</translation> -<translation id="1087965115100412394">不允許網站連接 MIDI 裝置</translation> <translation id="1088659085457112967">進入閱讀器模式</translation> <translation id="1090126737595388931">沒有執行中的背景應用程式</translation> <translation id="1090541560108055381">在進行配對前,請先確認兩部裝置所顯示的代碼相同</translation> @@ -3232,7 +3230,6 @@ <translation id="3551320343578183772">關閉分頁</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">退出時清除</translation> -<translation id="3553487194781590058">切換至其他分頁時,不允許網站開啟畫中畫視窗</translation> <translation id="3554493885489666172">您的裝置由 <ph name="PROFILE_NAME" /> 管理。管理員可以存取此裝置上任何設定檔中的資料。</translation> <translation id="3555812735919707620">移除擴充功能</translation> <translation id="3557101512409028104">透過 Family Link 設定網站限制和裝置使用時間限制</translation> @@ -3789,7 +3786,6 @@ <translation id="3975201861340929143">說明</translation> <translation id="3975565978598857337">無法連線至指定的伺服器領域</translation> <translation id="3976108569178263973">沒有可用的打印機。</translation> -<translation id="3976244126942806443">網站通常會連接 MIDI 裝置以創作或編輯音樂</translation> <translation id="397703832102027365">即將完成…</translation> <translation id="3977145907578671392">部分網站的功能可能無法在無痕模式中正常運作</translation> <translation id="3977886311744775419">此網絡類型無法下載自動更新,但您可以手動檢查更新。</translation> @@ -4688,7 +4684,6 @@ <translation id="4730492586225682674">在上鎖畫面上顯示最新觸控筆筆記</translation> <translation id="4730888769809690665">已允許 <ph name="SITE" /> 傳送通知</translation> <translation id="4731306954230393087">已允許使用與你相關的既有資料</translation> -<translation id="473140019006744096">裝置空間不足,無法完成此更新。請在裝置上騰出 <ph name="NECESSARY_SPACE" /> 的空間,然後再試一次。</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (左邊)</translation> <translation id="4733793249294335256">位置</translation> <translation id="473546211690256853">這個帳戶是由 <ph name="DOMAIN" /> 負責管理</translation> @@ -5390,7 +5385,6 @@ <translation id="5327912693242073631">需要傳送通知的功能將無法運作</translation> <translation id="532943162177641444">輕按 <ph name="PHONE_NAME" /> 上的通知,即可設定可供此裝置使用的流動熱點。</translation> <translation id="5329858601952122676">刪除(&D)</translation> -<translation id="5330592967519769658">切換至其他分頁時,允許開啟畫中畫視窗</translation> <translation id="5331069282670671859">您沒有此類別的憑證</translation> <translation id="5331568967879689647">Chrome OS 系統應用程式</translation> <translation id="5331975486040154427">USB-C 裝置 (左側後方連接埠)</translation> @@ -5568,7 +5562,6 @@ <translation id="5473099001878321374">如繼續操作,即表示您亦允許此裝置自動下載和安裝來自 Google、您子女的流動網絡供應商和裝置製造商的更新內容和應用程式,當中可能會使用流動數據,部分應用程式可能會提供應用程式內購買。</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN 必須包含至少 1 個字元}other{PIN 必須包含至少 # 個字元}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> 要求您立即連接 Wi-Fi 並下載更新,或使用按用量收費連線的下載更新 (可能需支付費用)。</translation> -<translation id="5478520208448702555">切換至其他分頁時,網站可開啟畫中畫視窗</translation> <translation id="5481273127572794904">不允許自動下載多個檔案</translation> <translation id="5481941284378890518">新增附近的打印機</translation> <translation id="5484181871714116891">開啟後,系統會在「iCloud 鑰匙圈」中建立密鑰,方便你在 Apple 裝置上使用。關閉後,系統會在此裝置的 Chrome 設定檔中建立密鑰。</translation> @@ -5726,7 +5719,6 @@ <translation id="5600348067066185292">只要簡單幾個步驟即可完成安裝。您亦可於系統變更電腦前,再次進行確認。</translation> <translation id="5600706100022181951">下載更新將會使用 <ph name="UPDATE_SIZE_MB" /> MB 流動數據。要繼續嗎?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">不允許連接 MIDI 裝置</translation> <translation id="5601833336918638013">不允許網站尋找藍牙裝置</translation> <translation id="5602586420788540146">在新分頁中開啟</translation> <translation id="5605758115928394442">已將通知傳送至您的手機,以確認您的身分。</translation> @@ -5846,7 +5838,6 @@ <translation id="5707185214361380026">無法載入下列來源的擴充功能:</translation> <translation id="5708171344853220004">Microsoft 主要名稱</translation> <translation id="5709557627224531708">將 Chrome 設為預設瀏覽器</translation> -<translation id="5710122160114032242">切換至其他分頁時,不允許開啟畫中畫視窗</translation> <translation id="5711010025974903573">服務紀錄</translation> <translation id="5711983031544731014">無法解鎖,請輸入您的密碼。</translation> <translation id="5712153969432126546">網站有時會發佈文件、合約和表格等 PDF</translation> @@ -6608,7 +6599,6 @@ <translation id="6326175484149238433">從 Chrome 中移除</translation> <translation id="6326855256003666642">Keepalive 數量</translation> <translation id="6327785803543103246">Web Proxy Autodiscovery</translation> -<translation id="6331818708794917058">網站可要求連接 MIDI 裝置</translation> <translation id="6333064448949140209">檔案將傳送至 Google 執行偵錯</translation> <translation id="6333170995003625229">無法驗證您的電郵地址或密碼,請再試一次。</translation> <translation id="6334267141726449402">複製此連結,並傳送給要收集記錄的使用者。</translation> @@ -6758,7 +6748,6 @@ <translation id="6458701200018867744">上載失敗 (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)。</translation> <translation id="6459488832681039634">使用所選範圍尋找</translation> <translation id="6459799433792303855">使用中的視窗已移至其他顯示屏。</translation> -<translation id="6460566145397380451">已允許連接 MIDI 裝置</translation> <translation id="6460601847208524483">尋找下一個項目</translation> <translation id="6461170143930046705">正在搜尋網絡...</translation> <translation id="6463795194797719782">編輯(&E)</translation> @@ -7084,7 +7073,6 @@ <translation id="6735304988756581115">顯示 Cookie 和其他網站數據…</translation> <translation id="6736243959894955139">位址</translation> <translation id="6737663862851963468">移除 Kerberos 票證</translation> -<translation id="6737931010859480781">此應用程式已預先安裝在裝置上</translation> <translation id="6738180164164974883">允許設定第三方 Cookie</translation> <translation id="6738430949033571771">正在驗證帳戶…</translation> <translation id="6739923123728562974">顯示桌面捷徑</translation> @@ -8478,7 +8466,6 @@ <translation id="7853747251428735">更多工具(&L)</translation> <translation id="7853999103056713222">使用更安全的密碼</translation> <translation id="7855678561139483478">把分頁移至新視窗</translation> -<translation id="7855729579456690716">切換至其他分頁時,網站可開啟畫中畫視窗</translation> <translation id="7857004848504343806">您的電腦具有安全模組,ChromeOS Flex 需要透過該模組來執行許多重要的安全防護功能。如要瞭解詳情,請瀏覽 Chromebook 說明中心:https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">文字建議</translation> <translation id="7857949311770343000">這是您想要的新分頁嗎?</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index 193ce5d..d122fb58 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035"><ph name="BRAND" />會記住你的登入資訊,並在情況允許時自動登入。如果關閉這項功能,系統每次都會詢問你是否要登入。</translation> <translation id="1008544602823861396">已遭封鎖,無法使用你的資訊 (位於</translation> <translation id="1008557486741366299">現在不要</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{為保護你的資料,系統已從你 2 個月以來未曾造訪的一個網站移除相關權限}other{為保護你的資料,系統已從你 2 個月以來未曾造訪的多個網站移除相關權限}}</translation> <translation id="1009663062402466586">現已提供遊戲控制項</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{一個網頁無回應}other{多個網頁無回應}}</translation> <translation id="1011003645819296594">已儲存的裝置</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">複製連結網址(&E)</translation> <translation id="1085064499066015002">一律在所有網站上執行</translation> <translation id="1085697365578766383">啟動虛擬機器時發生錯誤,請再試一次。</translation> -<translation id="1087965115100412394">禁止網站連線至 MIDI 裝置</translation> <translation id="1088659085457112967">進入閱讀器模式</translation> <translation id="1090126737595388931">沒有執行中的背景應用程式</translation> <translation id="1090541560108055381">配對前,請確認兩部裝置上均顯示這組代碼</translation> @@ -3217,7 +3215,6 @@ <translation id="3551320343578183772">關閉分頁</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">結束時將遭到清除</translation> -<translation id="3553487194781590058">切換到其他分頁時,不允許網站開啟子母畫面視窗</translation> <translation id="3554493885489666172">你的裝置是由 <ph name="PROFILE_NAME" /> 管理。管理員可以存取此裝置上任一設定檔中的資料。</translation> <translation id="3555812735919707620">移除擴充功能</translation> <translation id="3557101512409028104">透過 Family Link 設定網站限制和裝置使用時間限制</translation> @@ -3775,7 +3772,6 @@ <translation id="3975201861340929143">說明</translation> <translation id="3975565978598857337">無法連線至指定領域的伺服器</translation> <translation id="3976108569178263973">沒有可用的印表機。</translation> -<translation id="3976244126942806443">網站通常會連線至 MIDI 裝置來製作及編輯音樂</translation> <translation id="397703832102027365">即將完成...</translation> <translation id="3977145907578671392">在無痕模式下,某些網站的功能可能無法正常運作</translation> <translation id="3977886311744775419">這個網路類型無法下載自動更新,但你可以手動檢查更新。</translation> @@ -4675,7 +4671,6 @@ <translation id="4730492586225682674">在螢幕鎖定狀態下顯示以觸控筆記錄的最新筆記</translation> <translation id="4730888769809690665">你已允許 <ph name="SITE" /> 傳送通知</translation> <translation id="4731306954230393087">這個網站可使用與你相關的既有資訊</translation> -<translation id="473140019006744096">裝置空間不足,無法完成這項更新作業。請在裝置上釋出 <ph name="NECESSARY_SPACE" /> 的空間,然後再試一次。</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (左側)</translation> <translation id="4733793249294335256">位置</translation> <translation id="473546211690256853">這個帳戶是由 <ph name="DOMAIN" /> 負責管理。</translation> @@ -5377,7 +5372,6 @@ <translation id="5327912693242073631">需要傳送通知的功能將無法運作</translation> <translation id="532943162177641444">在 <ph name="PHONE_NAME" /> 上輕觸通知,即可設定可供這個裝置使用的可攜式無線基地台。</translation> <translation id="5329858601952122676">刪除(&D)</translation> -<translation id="5330592967519769658">切換到其他分頁時,允許開啟子母畫面視窗</translation> <translation id="5331069282670671859">你沒有這個類別的憑證</translation> <translation id="5331568967879689647">Chrome OS 系統應用程式</translation> <translation id="5331975486040154427">USB-C 裝置 (左後方連接埠)</translation> @@ -5555,7 +5549,6 @@ <translation id="5473099001878321374">如果選擇繼續,即表示您允許這部裝置自動下載及安裝來自 Google、貴子女的電信業者和裝置製造商的更新內容和應用程式,上述程序可能會使用行動數據。這類應用程式中,有些可能會提供應用程式內購。</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{PIN 碼必須包含至少一個字元}other{PIN 碼必須包含至少 # 個字元}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" /> 要求你立即連線到 Wi-Fi 下載更新,或使用計量付費連線下載更新 (可能要支付流量費用)。</translation> -<translation id="5478520208448702555">切換到其他分頁時,網站可以開啟子母畫面視窗</translation> <translation id="5481273127572794904">不得自動下載多個檔案</translation> <translation id="5481941284378890518">新增附近的印表機</translation> <translation id="5484181871714116891">開啟之後,系統會在 iCloud 鑰匙圈中建立密碼金鑰,方便你在 Apple 裝置上使用。如果關閉,系統會在這部裝置的 Chrome 設定檔中建立密碼金鑰。</translation> @@ -5713,7 +5706,6 @@ <translation id="5600348067066185292">只要簡單幾個步驟即可完成安裝。請放心,系統會先讓你再次確認,才對你的電腦做出變更。</translation> <translation id="5600706100022181951">下載更新將使用 <ph name="UPDATE_SIZE_MB" /> MB 的行動數據。要繼續嗎?</translation> <translation id="5601503069213153581">PIN</translation> -<translation id="5601823921345337195">不得連接 MIDI 裝置</translation> <translation id="5601833336918638013">不允許網站掃描藍牙裝置</translation> <translation id="5602586420788540146">在新分頁群組中開啟</translation> <translation id="5605758115928394442">為了確認你的身分,系統已傳送通知到你的手機。</translation> @@ -5833,7 +5825,6 @@ <translation id="5707185214361380026">無法載入下列來源的擴充功能:</translation> <translation id="5708171344853220004">Microsoft 主要名稱</translation> <translation id="5709557627224531708">將 Chrome 設為預設網路瀏覽器</translation> -<translation id="5710122160114032242">切換到其他分頁時,不允許開啟子母畫面視窗</translation> <translation id="5711010025974903573">服務記錄</translation> <translation id="5711983031544731014">無法解鎖,請輸入你的密碼。</translation> <translation id="5712153969432126546">網站有時會發布文件、合約和表單等 PDF 檔案</translation> @@ -6593,7 +6584,6 @@ <translation id="6326175484149238433">從 Chrome 中移除</translation> <translation id="6326855256003666642">Keepalive 數量</translation> <translation id="6327785803543103246">網路 Proxy 自動探索</translation> -<translation id="6331818708794917058">網站可以要求連線至 MIDI 裝置</translation> <translation id="6333064448949140209">檔案會傳送給 Google 進行偵錯</translation> <translation id="6333170995003625229">無法驗證你的電子郵件地址或密碼,請再試一次。</translation> <translation id="6334267141726449402">複製這個連結,並傳送給要收集記錄的使用者。</translation> @@ -6743,7 +6733,6 @@ <translation id="6458701200018867744">上傳失敗 (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)。</translation> <translation id="6459488832681039634">使用所選範圍尋找</translation> <translation id="6459799433792303855">使用中的視窗已移至其他畫面。</translation> -<translation id="6460566145397380451">可以連接 MIDI 裝置</translation> <translation id="6460601847208524483">尋找下一個項目</translation> <translation id="6461170143930046705">正在搜尋網路...</translation> <translation id="6463795194797719782">編輯(&E)</translation> @@ -7069,7 +7058,6 @@ <translation id="6735304988756581115">顯示 Cookie 和其他網站資料...</translation> <translation id="6736243959894955139">位址</translation> <translation id="6737663862851963468">移除 Kerberos 票證</translation> -<translation id="6737931010859480781">這個應用程式已預先安裝在裝置上</translation> <translation id="6738180164164974883">允許設定第三方 Cookie</translation> <translation id="6738430949033571771">正在驗證帳戶...</translation> <translation id="6739923123728562974">顯示桌面捷徑</translation> @@ -8464,7 +8452,6 @@ <translation id="7853747251428735">更多工具(&L)</translation> <translation id="7853999103056713222">使用更安全的密碼</translation> <translation id="7855678561139483478">將分頁移到新視窗</translation> -<translation id="7855729579456690716">切換到其他分頁時,網站可以開啟子母畫面視窗</translation> <translation id="7857004848504343806">你的電腦含有安全性模組,可用於實作 ChromeOS Flex 中許多重要的安全性功能。如需瞭解詳情,請造訪 Chromebook 說明中心:https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">文字建議</translation> <translation id="7857949311770343000">這是你想要的新分頁嗎?</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index 90fcc21..b0ae2a0 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -17,7 +17,6 @@ <translation id="1008261151167010035">I-<ph name="BRAND" /> ikhumbula ukuthi ungene kanjani ngemvume futhi ukungenise ngokuzenzekelayo uma kwenzeka. Uma uvaliwe, uzocelwa isiqinisekiso njalo.</translation> <translation id="1008544602823861396">ivinjelwe ekusebenziseni imininingwane yakho</translation> <translation id="1008557486741366299">Hhayi manje</translation> -<translation id="1009454959501038262">{NUM_SITES,plural, =1{Ukuze kuvikelwe idatha yakho, izimvume zisusiwe kuleli sayithi ongalivakashelanga ezinyangeni ezi-2}one{Ukuze kuvikelwe idatha yakho, izimvume zisusiwe kuleli sayithi ongalivakashelanga ezinyangeni ezi-2}other{Ukuze kuvikelwe idatha yakho, izimvume zisusiwe kuleli sayithi ongalivakashelanga ezinyangeni ezi-2}}</translation> <translation id="1009663062402466586">Izilawuli zegeyimu manje seziyatholakala</translation> <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Ikhasi aliphenduli}one{Amakhasi akaphenduli}other{Amakhasi akaphenduli}}</translation> <translation id="1011003645819296594">Amadivayisi alondoloziwe</translation> @@ -122,7 +121,6 @@ <translation id="1084824384139382525">Kopisha ikheli lesixhumanisi</translation> <translation id="1085064499066015002">Njalo kuwo wonke amasayithi</translation> <translation id="1085697365578766383">Iphutha ukuqalisa umshini wokubuka. Sicela uzame futhi.</translation> -<translation id="1087965115100412394">Ungavumeli amasayithi ukuba axhume kumadivayisi we-MIDI</translation> <translation id="1088659085457112967">Ngena Kumodi Yesifundi</translation> <translation id="1090126737595388931">Azikho izinhlelo zokusebenza ezingemuva ezisebenzayo</translation> <translation id="1090541560108055381">Ngaphambi kokubhanqa, qiniseka ukuthi le khodi iyafana kuwo womabili amadivayisi</translation> @@ -3233,7 +3231,6 @@ <translation id="3551320343578183772">Vala ithebhu</translation> <translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation> <translation id="3552780134252864554">Kusuliwe ku-Exit</translation> -<translation id="3553487194781590058">Ungavumeli amasayithi ukuba avule iwindi lesithombe-esithombeni lapho ushintshela kuthebhu ehlukile</translation> <translation id="3554493885489666172">Idivayisi yakho iphethwe yi-<ph name="PROFILE_NAME" />. Abalawuli bangafinyelela idatha kunoma iyiphi iphrofayela kule divayisi.</translation> <translation id="3555812735919707620">Susa isandiso</translation> <translation id="3557101512409028104">Setha imikhawulo yewebhusayithi nemikhawulo yesikhathi sesikrini nge-Family Link</translation> @@ -3791,7 +3788,6 @@ <translation id="3975201861340929143">Incazelo</translation> <translation id="3975565978598857337">Ukuxhumana neseva kwe-realm kuhlulekile</translation> <translation id="3976108569178263973">Awekho amaphethini atholakalayo.</translation> -<translation id="3976244126942806443">Amasayithi avamise ukuxhumeka kumadivayisi e-MIDI ngokusungula nokuhlela umculo</translation> <translation id="397703832102027365">Iyaphothula...</translation> <translation id="3977145907578671392">Izakhi kwamanye amasayithi zingase zingasebenzi ku-Incognito</translation> <translation id="3977886311744775419">Izibuyekezo zokuzenzakalela azifuni ukulandwa kulolu hlobo lwenethiwekhi, kodwa ungahlolela izibuyekezo ngesandla.</translation> @@ -4692,7 +4688,6 @@ <translation id="4730492586225682674">Inothi yakamuva ye-stylus ekukhiyeni isikrini</translation> <translation id="4730888769809690665">Izaziso ezivunyelwe ze-<ph name="SITE" /></translation> <translation id="4731306954230393087">Ivunyelwe ukusebenzisa imininingwane eyilondoloze ngawe</translation> -<translation id="473140019006744096">Asikho isikhala esanele kule divayisi ukuze kuqedelwe lesi sibuyekezo. Susa u-<ph name="NECESSARY_SPACE" /> kudivayisi yakho bese uzama futhi.</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Kwesobunxele)</translation> <translation id="4733793249294335256">Indawo</translation> <translation id="473546211690256853">Le akhawunti iphethwe yi-<ph name="DOMAIN" /></translation> @@ -5396,7 +5391,6 @@ <translation id="5327912693242073631">Izici ezidinga izaziso ngeke zisebenze</translation> <translation id="532943162177641444">Thepha isaziso ku-<ph name="PHONE_NAME" /> yakho ukuze usethe i-hotspot yeselula engasetshenziswa ile divayisi.</translation> <translation id="5329858601952122676">Susa</translation> -<translation id="5330592967519769658">Kuvunyelwe ukuvula iwindi lesithombe-esithombeni lapho ushintshela kuthebhu ehlukile</translation> <translation id="5331069282670671859">Awunazo izitifiketi kulesi sigaba</translation> <translation id="5331568967879689647">I-ChromeOS System App</translation> <translation id="5331975486040154427">Idivayisi ye-USB-C (imbobo yasemuva yohlangothi lwesinxele)</translation> @@ -5574,7 +5568,6 @@ <translation id="5473099001878321374">Ngokuqhubeka, uyavuma ukuthi le divayisi ingaphinda ilande ngokuzenzakalela iphinde ifake izibuyekezo nama-app avela ku-Google, inkampani yenethiwekhi yengane yakho, kanye nomkhiqizi wale divayisi, uma kungenzeka ngedatha yeselula. Amanye wala ma-app anganikeza ngokuthenga kwangaphakathi ne-app.</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{Iphinikhodi kufanele okungenani ibe nohlamvu olulodwa}one{Iphinikhodi kumele okungenani ibe izinhlamvu ezingu-#}other{Iphinikhodi kumele okungenani ibe izinhlamvu ezingu-#}}</translation> <translation id="5474859849784484111">I-<ph name="MANAGER" /> idinga ukuba uxhume ku-Wi-Fi manje futhi ulande isibuyekezi. Noma, ulande ngokuxhuma okwenziwe imitha (kungaba nezinkokhelo).</translation> -<translation id="5478520208448702555">Amasayithi angase avulwe ewindini lesithombe-esithombeni lapho ushintshela kuthebhu ehlukile</translation> <translation id="5481273127572794904">Ayivumelekile ukulanda amafayela amaningi ngokuzenzekelayo</translation> <translation id="5481941284378890518">Engza amaphrinta seduze</translation> <translation id="5484181871714116891">Uma ivuliwe, ukhiye wokudlula usungulwa ku-iCloud Keychain futhi utholakala kuwo wonke amadivayisi e-Apple. Uma ivaliwe, ukhiye wokudlula usungulwa kuphrofayela yakho ye-Chrome kule divayisi.</translation> @@ -5732,7 +5725,6 @@ <translation id="5600348067066185292">Ukufakwa kuthatha izinyathelo ezimbalwa ezilula. Uzoba nelinye ithuba lokuqinisekisa ngaphambi kokwenziwa kwezinguquko kwikhompyutha yakho.</translation> <translation id="5600706100022181951">Isibuyekezo sizolandwa kusetshenziswa u-<ph name="UPDATE_SIZE_MB" /> MB wedatha yeselula. Ungathanda ukuqhubeka?</translation> <translation id="5601503069213153581">Iphinikhodi</translation> -<translation id="5601823921345337195">Ayivumelekile ukuxhuma kumadivayisi e-MIDI</translation> <translation id="5601833336918638013">Ungavumeli amasayithi ukuthi abheke amadivayisi e-Bluetooth</translation> <translation id="5602586420788540146">Vula eqenjini lethebhu entsha</translation> <translation id="5605758115928394442">Isaziso siye sathunyelwa kufoni yakho ukuze kuqinisekiswe ukuthi unguwe.</translation> @@ -5855,7 +5847,6 @@ <translation id="5707185214361380026">Yehlulekile ukulayisha isandiso kusuka ku-:</translation> <translation id="5708171344853220004">Igama lothisha nhloko we-Microsoft</translation> <translation id="5709557627224531708">Setha i-Chrome njengesiphequluli sakho esizenzakalelayo</translation> -<translation id="5710122160114032242">Akuvunyelwe ukuvula iwindi lesithombe-esithombeni lapho ushintshela kuthebhu ehlukile</translation> <translation id="5711010025974903573">Amalogu wesevisi</translation> <translation id="5711983031544731014">Ayikwazi ukuvula. Faka phasiwedi yakho.</translation> <translation id="5712153969432126546">Amasayithi ngezinye izikhathi ashicilela ama-PDF, njengamadokhumenti, izinkontileka, namafomu</translation> @@ -6617,7 +6608,6 @@ <translation id="6326175484149238433">Susa kusuka ku-Chrome</translation> <translation id="6326855256003666642">Ukubala kwe-Keepalive</translation> <translation id="6327785803543103246">Ukuthola ngokuzenzakalela ummeleli wewebhu</translation> -<translation id="6331818708794917058">Amasayithi angacela ukuxhumeka kumadivayisi e-MIDI</translation> <translation id="6333064448949140209">Ifayela lizothunyelwa ku-Google ngokususa amaphutha</translation> <translation id="6333170995003625229">Ikheli le-imeyili yakho noma iphasiwedi ayiqinisekiswanga. Zama ukuphinda ungene ngemvume.</translation> <translation id="6334267141726449402">Kopisha futhi uthumele le linki kumsebenzisi ukuze aqoqe amalogu.</translation> @@ -6767,7 +6757,6 @@ <translation id="6458701200018867744">Ukulayishwa kuhlulekile (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Sebenzisa isikhombisi ukuze Uthole</translation> <translation id="6459799433792303855">Iwindi elisebenzayo liyiswe kwesinye isibonisi.</translation> -<translation id="6460566145397380451">Ivumelekile ukuxhuma kumadivayisi e-MIDI</translation> <translation id="6460601847208524483">Thola okulandelayo</translation> <translation id="6461170143930046705">Iseshela amanethiwekhi...</translation> <translation id="6463795194797719782">Hlela</translation> @@ -7095,7 +7084,6 @@ <translation id="6735304988756581115">Bonisa amakhukhi nenye idatha yesayithi...</translation> <translation id="6736243959894955139">Ikheli</translation> <translation id="6737663862851963468">Susa ithikithi le-Kerberos</translation> -<translation id="6737931010859480781">Le app yesistimu ifakwe ngaphambilini kudivayisi yakho</translation> <translation id="6738180164164974883">Vumela ukusetha amakhukhi ezinkampani zangaphandle</translation> <translation id="6738430949033571771">Qinisekisa i-akhawunti...</translation> <translation id="6739923123728562974">Bonisa isinqamuleli sedeskithophu</translation> @@ -8488,7 +8476,6 @@ <translation id="7853747251428735">Amathuluzi amaningi</translation> <translation id="7853999103056713222">Sebenzisa Iphasiwedi Ephephile</translation> <translation id="7855678561139483478">Hambisa ithebhu kuwindi elisha</translation> -<translation id="7855729579456690716">Amasayithi angavulwa ewindini lesithombe-esithombeni lapho ushintshela kuthebhu ehlukile</translation> <translation id="7857004848504343806">Ikhompyutha yakho iqukethe imojula yezokuvikela, esetshenziselwa ukufaka izakhi eziningi zokuvikeleka ezibucayi ku-ChromeOS Flex. Vakashela Isikhungo sosizo se-Chromebook ukuze ufunde kabanzi: https://support.google.com/chromebook/?p=sm</translation> <translation id="7857093393627376423">Iziphakamiso zombhalo</translation> <translation id="7857949311770343000">Ingabe leli yikhasi lethebhu entsha obowukade ulilindile?</translation>
diff --git a/chrome/browser/about_flags_browsertest.cc b/chrome/browser/about_flags_browsertest.cc index 97c2023..13a9249b 100644 --- a/chrome/browser/about_flags_browsertest.cc +++ b/chrome/browser/about_flags_browsertest.cc
@@ -62,15 +62,13 @@ const char* experiment_id, const char* text) { EXPECT_TRUE(content::ExecJs( - contents, - base::StringPrintf( - "var parent = " - "document.querySelector('flags-app').shadowRoot.getElementById('%s');" - "var textarea = parent.getElementsByTagName('textarea')[0];" - "textarea.focus();" - "textarea.value = `%s`;" - "textarea.dispatchEvent(new Event('change'));", - experiment_id, text))); + contents, base::StringPrintf( + "var parent = document.getElementById('%s');" + "var textarea = parent.getElementsByTagName('textarea')[0];" + "textarea.focus();" + "textarea.value = `%s`;" + "textarea.dispatchEvent(new Event('change'));", + experiment_id, text))); } void ToggleEnableDropdown(content::WebContents* contents, @@ -78,16 +76,14 @@ bool enable) { EXPECT_TRUE(content::ExecJs( contents, - base::StringPrintf( - "var k = " - "document.querySelector('flags-app').shadowRoot.getElementById('%s');" - "var s = " - "k.shadowRoot." - "querySelector('.experiment-enable-disable');" - "s.focus();" - "s.selectedIndex = %d;" - "s.dispatchEvent(new Event('change'));", - experiment_id, enable ? 1 : 0))); + base::StringPrintf("var k = document.getElementById('%s');" + "var s = " + "k.shadowRoot." + "querySelector('.experiment-enable-disable');" + "s.focus();" + "s.selectedIndex = %d;" + "s.dispatchEvent(new Event('change'));", + experiment_id, enable ? 1 : 0))); } std::string GetOriginListText(content::WebContents* contents, @@ -95,9 +91,7 @@ return content::EvalJs( contents, base::StringPrintf( - "var k = " - "document.querySelector('flags-app').shadowRoot." - "getElementById('%s');" + "var k = document.getElementById('%s');" "var s = " "k.getElementsByClassName('experiment-origin-list-value')[0];" "s.value;", @@ -110,9 +104,7 @@ return content::EvalJs( contents, base::StringPrintf( - "var k = " - "document.querySelector('flags-app').shadowRoot." - "getElementById('%s');" + "var k = document.getElementById('%s');" "var s = " "k.getElementsByClassName('experiment-enable-disable')[0];" "s.value == 'enabled';", @@ -121,12 +113,10 @@ } bool IsFlagPresent(content::WebContents* contents, const char* experiment_id) { - return content::EvalJs(contents, - base::StringPrintf("var k = " - "document.querySelector('flags-app'" - ").shadowRoot.getElementById('%s');" - "k != null;", - experiment_id)) + return content::EvalJs(contents, base::StringPrintf( + "var k = document.getElementById('%s');" + "k != null;", + experiment_id)) .ExtractBool(); } @@ -391,17 +381,15 @@ // See https://crbug.com/1038638 for more details. EXPECT_TRUE(content::ExecJs( contents, - base::StringPrintf( - "var k = " - "document.querySelector('flags-app').shadowRoot.getElementById('%s');" - "var s = " - "k.shadowRoot." - "querySelector('.experiment-enable-disable');" - "delete s.internal_name;" - "const e = document.createEvent('HTMLEvents');" - "e.initEvent('change', true, true);" - "s.dispatchEvent(e);", - kFlagWithOptionSelectorName), + base::StringPrintf("var k = document.getElementById('%s');" + "var s = " + "k.shadowRoot." + "querySelector('.experiment-enable-disable');" + "delete s.internal_name;" + "const e = document.createEvent('HTMLEvents');" + "e.initEvent('change', true, true);" + "s.dispatchEvent(e);", + kFlagWithOptionSelectorName), // Execute script in an isolated world to avoid causing a Trusted Types // violation due to eval. content::EXECUTE_SCRIPT_DEFAULT_OPTIONS, /*world_id=*/1));
diff --git a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing.cc b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing.cc index fa8b177b6..2c31951 100644 --- a/chrome/browser/ash/arc/tracing/arc_app_performance_tracing.cc +++ b/chrome/browser/ash/arc/tracing/arc_app_performance_tracing.cc
@@ -442,7 +442,7 @@ const syncer::SyncUserSettings* sync_user_settings = sync_service->GetUserSettings(); - const bool apps_sync_enabled = sync_service->CanSyncFeatureStart() && + const bool apps_sync_enabled = sync_service->IsSyncFeatureEnabled() && sync_user_settings->GetSelectedOsTypes().Has( syncer::UserSelectableOsType::kOsApps);
diff --git a/chrome/browser/ash/file_manager/copy_or_move_io_task_policy_impl.cc b/chrome/browser/ash/file_manager/copy_or_move_io_task_policy_impl.cc index a46955b..7779b5e 100644 --- a/chrome/browser/ash/file_manager/copy_or_move_io_task_policy_impl.cc +++ b/chrome/browser/ash/file_manager/copy_or_move_io_task_policy_impl.cc
@@ -218,20 +218,29 @@ } void CopyOrMoveIOTaskPolicyImpl::Complete(State state) { - if (blocked_files_ > 0 && + bool has_dlp_errors = !dlp_blocked_files_.empty(); + bool has_connector_errors = !connectors_blocked_files_.empty(); + if ((has_dlp_errors || has_connector_errors) && base::FeatureList::IsEnabled(features::kNewFilesPolicyUX)) { - bool has_dlp_errors = GetConnectorsBlockedFilesNum() < blocked_files_; - bool has_connector_errors = !connectors_blocked_files_.empty(); - - CHECK(has_dlp_errors || has_connector_errors); // TODO(b/293425493): Support combined error type (if both dlp and connector // errors exist). PolicyErrorType error_type = has_dlp_errors ? PolicyErrorType::kDlp : PolicyErrorType::kEnterpriseConnectors; + // Used for notifications. + base::FilePath blocked_file_path = + has_dlp_errors ? (*dlp_blocked_files_.begin()) + : connectors_blocked_files_.begin()->second[0]; + std::string blocked_file_name = + util::GetDisplayablePath(profile_, blocked_file_path) + .value_or(base::FilePath()) + .BaseName() + .value(); - progress_->policy_error.emplace(error_type, blocked_files_, - blocked_file_name_); + progress_->policy_error.emplace( + error_type, + (dlp_blocked_files_.size() + GetConnectorsBlockedFilesNum()), + blocked_file_name); state = State::kError; MaybeSendConnectorsBlockedFilesNotification(); @@ -271,7 +280,7 @@ // This function is called when the transfer starts and DLP restrictions are // applied before the transfer. If there's any file blocked by DLP, the error // behavior should be skip instead of abort. - if (report_only_scans_ && !blocked_files_) { + if (report_only_scans_ && dlp_blocked_files_.empty()) { return storage::FileSystemOperation::ERROR_BEHAVIOR_ABORT; } // For the enterprise connectors, we want files to be copied/moved if they are @@ -456,7 +465,11 @@ auto result = file_transfer_analysis_delegates_[idx]->GetAnalysisResultAfterScan( source_url); - if (result.IsAllowed()) { + // If a file is blocked by DLP, skip Enterprise Connectors scanning for it + // since Enterprise Connectors won't be able to scan it anyway. The file be + // blocked by the DLP daemon later. + if (result.IsAllowed() || + base::Contains(dlp_blocked_files_, source_url.path())) { std::move(callback).Run(base::File::FILE_OK); return; } @@ -464,17 +477,10 @@ if (base::FeatureList::IsEnabled( features::kFileTransferEnterpriseConnectorUI)) { - blocked_files_++; auto& paths = connectors_blocked_files_[policy::GetEnterpriseConnectorsBlockReason( result)]; paths.push_back(source_url.path()); - if (blocked_file_name_.empty()) { - blocked_file_name_ = util::GetDisplayablePath(profile_, source_url.path()) - .value_or(base::FilePath()) - .BaseName() - .value(); - } } std::move(callback).Run(base::File::FILE_ERROR_SECURITY); @@ -484,16 +490,9 @@ std::vector<storage::FileSystemURL> blocked_entries) { // This function won't be reached if the user cancelled the DLP warning or the // DLP warning timed out. - // TODO(b/279029167): If there's any file blocked by DLP, skip Enterprise - // Connectors scanning for them. - if (!blocked_entries.empty()) { - blocked_files_ = blocked_entries.size(); - blocked_file_name_ = - util::GetDisplayablePath(profile_, *blocked_entries.begin()) - .value_or(base::FilePath()) - .BaseName() - .value(); + for (const auto& entry : blocked_entries) { + dlp_blocked_files_.insert(entry.path()); } if (settings_.empty() || report_only_scans_) {
diff --git a/chrome/browser/ash/file_manager/copy_or_move_io_task_policy_impl.h b/chrome/browser/ash/file_manager/copy_or_move_io_task_policy_impl.h index 6a9d50cf..d17a05f 100644 --- a/chrome/browser/ash/file_manager/copy_or_move_io_task_policy_impl.h +++ b/chrome/browser/ash/file_manager/copy_or_move_io_task_policy_impl.h
@@ -146,17 +146,14 @@ // This is set to true if `block_until_verdict` is 0. bool report_only_scans_ = false; - // The number of files blocked by policies. - size_t blocked_files_ = 0; + // The list of files blocked by Data Leak Prevention policy. + std::set<base::FilePath> dlp_blocked_files_; // Maps block reasons to their associated enterprise connector blocked file // paths. std::map<policy::FilesPolicyDialog::BlockReason, std::vector<base::FilePath>> connectors_blocked_files_; - // The name of the first blocked file, if any. Used for notifications. - std::string blocked_file_name_; - base::WeakPtrFactory<CopyOrMoveIOTaskPolicyImpl> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/ash/file_manager/file_manager_policy_browsertest.cc b/chrome/browser/ash/file_manager/file_manager_policy_browsertest.cc index a535a1b..1093c9e 100644 --- a/chrome/browser/ash/file_manager/file_manager_policy_browsertest.cc +++ b/chrome/browser/ash/file_manager/file_manager_policy_browsertest.cc
@@ -1168,7 +1168,9 @@ WRAPPED_INSTANTIATE_TEST_SUITE_P( DlpEntrepriseConnectors, /* dlp_enterprise_connectors.js */ DlpAndEnterpriseConnectorsFilesAppBrowserTest, - ::testing::Values(FILE_TRANSFER_TEST_CASE_NEW_UX("twoWarningsProceeded"))); + ::testing::Values( + FILE_TRANSFER_TEST_CASE_NEW_UX("twoWarningsProceeded"), + FILE_TRANSFER_TEST_CASE_NEW_UX("differentBlockPolicies"))); #undef FILE_TRANSFER_TEST_CASE #undef FILE_TRANSFER_TEST_CASE_NEW_UX
diff --git a/chrome/browser/ash/login/screens/sync_consent_screen.cc b/chrome/browser/ash/login/screens/sync_consent_screen.cc index e1d53ab..0bfb47df 100644 --- a/chrome/browser/ash/login/screens/sync_consent_screen.cc +++ b/chrome/browser/ash/login/screens/sync_consent_screen.cc
@@ -198,7 +198,7 @@ base::UmaHistogramEnumeration("OOBE.SyncConsentScreen.Behavior", behavior_); // Record the final state of the sync service. syncer::SyncService* service = GetSyncService(profile_); - bool sync_enabled = service && service->CanSyncFeatureStart() && + bool sync_enabled = service && service->IsSyncFeatureEnabled() && service->GetUserSettings()->IsSyncEverythingEnabled(); base::UmaHistogramBoolean("OOBE.SyncConsentScreen.SyncEnabled", sync_enabled); if (test_exit_delegate_) {
diff --git a/chrome/browser/ash/net/OWNERS b/chrome/browser/ash/net/OWNERS index 940d23c..c473604 100644 --- a/chrome/browser/ash/net/OWNERS +++ b/chrome/browser/ash/net/OWNERS
@@ -6,4 +6,3 @@ per-file system_proxy_manager*=acostinas@google.com per-file ash_proxy_monitor*=pmarko@chromium.org per-file ash_proxy_monitor*=acostinas@google.com -per-file ash_proxy_monitor*=srad@google.com
diff --git a/chrome/browser/ash/policy/dlp/files_policy_notification_manager.cc b/chrome/browser/ash/policy/dlp/files_policy_notification_manager.cc index 8a458bb1..968ee55 100644 --- a/chrome/browser/ash/policy/dlp/files_policy_notification_manager.cc +++ b/chrome/browser/ash/policy/dlp/files_policy_notification_manager.cc
@@ -657,6 +657,11 @@ void FilesPolicyNotificationManager::FileTaskInfo::AddBlockedFile( DlpConfidentialFile file, FilesPolicyDialog::BlockReason reason) { + // If a file is already added as blocked, don't re-add it so we keep the first + // blocking reason. + if (base::Contains(blocked_files_, file)) { + return; + } blocked_files_.emplace(file, reason); }
diff --git a/chrome/browser/ash/policy/remote_commands/crd_admin_session_controller.cc b/chrome/browser/ash/policy/remote_commands/crd_admin_session_controller.cc index 4a078aaf..b209a6e1 100644 --- a/chrome/browser/ash/policy/remote_commands/crd_admin_session_controller.cc +++ b/chrome/browser/ash/policy/remote_commands/crd_admin_session_controller.cc
@@ -45,6 +45,7 @@ using CurtainSessionStartedCallback = base::OnceClosure; using HostSessionStartedCallback = base::OnceClosure; using remoting::features::kEnableCrdAdminRemoteAccessV2; +using remoting::protocol::ErrorCode; namespace { @@ -156,7 +157,7 @@ ReportSessionTermination(base::Time::Now() - session_connected_time_.value()); } - ReportError(ResultCode::FAILURE_CRD_HOST_ERROR, "host disconnected"); + ReportError(ResultCode::HOST_SESSION_DISCONNECTED, "host disconnected"); } void OnNatPolicyChanged( remoting::mojom::NatPolicyStatePtr nat_policy_state) override { @@ -165,23 +166,31 @@ void OnHostStateError(int64_t error_code) override { CRD_DVLOG(3) << __FUNCTION__ << " with error code: " << error_code; - if (error_code == remoting::protocol::ErrorCode::DISALLOWED_BY_POLICY) { + if (error_code == ErrorCode::DISALLOWED_BY_POLICY) { ReportError(ResultCode::FAILURE_DISABLED_BY_POLICY, "enterprise remote support disabled"); return; } - ReportError(ResultCode::FAILURE_CRD_HOST_ERROR, "host state error"); + const ResultCode result_code = + ConvertErrorCodeToResultCode(static_cast<ErrorCode>(error_code)); + + if (result_code == ResultCode::FAILURE_UNKNOWN_ERROR) { + CRD_DVLOG(3) << __FUNCTION__ + << " unexpected error code received : " << error_code; + } + ReportError(result_code, "host state error"); } void OnPolicyError() override { CRD_DVLOG(3) << __FUNCTION__; - ReportError(ResultCode::FAILURE_CRD_HOST_ERROR, "policy error"); + ReportError(ResultCode::FAILURE_HOST_POLICY_ERROR, "policy error"); } void OnInvalidDomainError() override { CRD_DVLOG(3) << __FUNCTION__; - ReportError(ResultCode::FAILURE_CRD_HOST_ERROR, "invalid domain error"); + ReportError(ResultCode::FAILURE_HOST_INVALID_DOMAIN_ERROR, + "invalid domain error"); } void ReportError(ResultCode error_code, const std::string& error_message) {
diff --git a/chrome/browser/ash/policy/remote_commands/crd_admin_session_controller_unittest.cc b/chrome/browser/ash/policy/remote_commands/crd_admin_session_controller_unittest.cc index a2c3075..9f1c07ca 100644 --- a/chrome/browser/ash/policy/remote_commands/crd_admin_session_controller_unittest.cc +++ b/chrome/browser/ash/policy/remote_commands/crd_admin_session_controller_unittest.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/ash/policy/remote_commands/crd_admin_session_controller.h" #include <string> +#include <tuple> #include "ash/public/cpp/shell_window_ids.h" #include "ash/shell.h" @@ -48,6 +49,7 @@ using remoting::mojom::StartSupportSessionResponsePtr; using remoting::mojom::SupportHostObserver; using remoting::mojom::SupportSessionParamsPtr; +using remoting::protocol::ErrorCode; constexpr char kTestUserName[] = "test-username"; @@ -287,6 +289,12 @@ ASSERT_TRUE(terminate_signal.GetCallback()); } + void SimulateLoginScreenIsVisible() { + // Notifies the observers that the login screen is visible and ensure the + // `RemoteActivityNotificationController::Init()` is called. + session_manager().NotifyLoginOrLockScreenVisible(); + } + const aura::Window& GetLockScreenContainersContainer() { return CHECK_DEREF(ash::Shell::Get()->GetPrimaryRootWindow()->GetChildById( ash::kShellWindowId_LockScreenContainersContainer)); @@ -310,6 +318,8 @@ return observer_.BindNewPipeAndPassReceiver(); } + void ResetObserver() { observer_.reset(); } + void DisableFeature(const base::Feature& feature) { feature_.Reset(); feature_.InitAndDisableFeature(feature); @@ -549,7 +559,7 @@ Response response = WaitForResponse(); ASSERT_TRUE(response.HasError()); EXPECT_EQ("host disconnected", response.error_message()); - EXPECT_EQ(ResultCode::FAILURE_CRD_HOST_ERROR, response.error_code()); + EXPECT_EQ(ResultCode::HOST_SESSION_DISCONNECTED, response.error_code()); } TEST_F(CrdAdminSessionControllerTest, @@ -561,7 +571,7 @@ Response response = WaitForResponse(); ASSERT_TRUE(response.HasError()); EXPECT_EQ("policy error", response.error_message()); - EXPECT_EQ(ResultCode::FAILURE_CRD_HOST_ERROR, response.error_code()); + EXPECT_EQ(ResultCode::FAILURE_HOST_POLICY_ERROR, response.error_code()); } TEST_F(CrdAdminSessionControllerTest, @@ -573,19 +583,8 @@ Response response = WaitForResponse(); ASSERT_TRUE(response.HasError()); EXPECT_EQ("invalid domain error", response.error_message()); - EXPECT_EQ(ResultCode::FAILURE_CRD_HOST_ERROR, response.error_code()); -} - -TEST_F(CrdAdminSessionControllerTest, - ShouldReportErrorWhenRemotingServiceReportsStateError) { - SupportHostObserver& observer = StartCrdHostAndBindObserver(); - - observer.OnHostStateError(123); - - Response response = WaitForResponse(); - ASSERT_TRUE(response.HasError()); - EXPECT_EQ("host state error", response.error_message()); - EXPECT_EQ(ResultCode::FAILURE_CRD_HOST_ERROR, response.error_code()); + EXPECT_EQ(ResultCode::FAILURE_HOST_INVALID_DOMAIN_ERROR, + response.error_code()); } TEST_F(CrdAdminSessionControllerTest, @@ -760,9 +759,7 @@ SetPref(prefs::kRemoteAdminWasPresent, true); InitControllerWithNoReconnectableSession(); - // Notifies the observers that the login screen is visible and ensure the - // `RemoteActivityNotificationController::Init()` is called. - session_manager().NotifyLoginOrLockScreenVisible(); + SimulateLoginScreenIsVisible(); EXPECT_TRUE(IsNotificationViewVisible()); } @@ -773,9 +770,7 @@ SetPref(prefs::kRemoteAdminWasPresent, false); InitControllerWithNoReconnectableSession(); - // Notifies the observers that the login screen is visible and ensure the - // `RemoteActivityNotificationController::Init()` is called. - session_manager().NotifyLoginOrLockScreenVisible(); + SimulateLoginScreenIsVisible(); EXPECT_FALSE(IsNotificationViewVisible()); } @@ -786,9 +781,7 @@ SetPref(prefs::kRemoteAdminWasPresent, true); InitControllerWithNoReconnectableSession(); - // Notifies the observers that the login screen is visible and ensure the - // `RemoteActivityNotificationController::Init()` is called. - session_manager().NotifyLoginOrLockScreenVisible(); + SimulateLoginScreenIsVisible(); EXPECT_TRUE(IsNotificationViewVisible()); @@ -811,9 +804,7 @@ observer.OnHostStateConnected(kTestUserName); FlushForTesting(); - // Notifies the observers that the login screen is visible and ensure the - // `RemoteActivityNotificationController::Init()` is called. - session_manager().NotifyLoginOrLockScreenVisible(); + SimulateLoginScreenIsVisible(); EXPECT_TRUE(GetPref(prefs::kRemoteAdminWasPresent)); @@ -822,8 +813,9 @@ EXPECT_FALSE(GetPref(prefs::kRemoteAdminWasPresent)); } -TEST_F(CrdAdminSessionControllerTest, - ShouldNotResetStatePrefWhenCurrentSessionIsCurtained) { +TEST_F( + CrdAdminSessionControllerTest, + ShouldNotResetStatePrefWhenDismissingNotificationWithinACurtainedSession) { EnableFeature(kEnableCrdAdminRemoteAccessV2); SetPref(prefs::kRemoteAdminWasPresent, true); InitControllerWithNoReconnectableSession(); @@ -836,9 +828,7 @@ observer.OnHostStateConnected(kTestUserName); FlushForTesting(); - // Notifies the observers that the login screen is visible and ensure the - // `RemoteActivityNotificationController::Init()` is called. - session_manager().NotifyLoginOrLockScreenVisible(); + SimulateLoginScreenIsVisible(); EXPECT_TRUE(GetPref(prefs::kRemoteAdminWasPresent)); @@ -847,6 +837,55 @@ EXPECT_TRUE(GetPref(prefs::kRemoteAdminWasPresent)); } +TEST_F(CrdAdminSessionControllerTest, + ShouldReportErrorWhenRemotingServiceReportsStateError) { + const std::tuple<ErrorCode, ResultCode> test_cases[] = { + {ErrorCode::OK, ResultCode::SUCCESS}, + {ErrorCode::PEER_IS_OFFLINE, ResultCode::FAILURE_PEER_IS_OFFLINE}, + {ErrorCode::SESSION_REJECTED, ResultCode::FAILURE_SESSION_REJECTED}, + {ErrorCode::INCOMPATIBLE_PROTOCOL, + ResultCode::FAILURE_INCOMPATIBLE_PROTOCOL}, + {ErrorCode::AUTHENTICATION_FAILED, + ResultCode::FAILURE_AUTHENTICATION_FAILED}, + {ErrorCode::INVALID_ACCOUNT, ResultCode::FAILURE_INVALID_ACCOUNT}, + {ErrorCode::CHANNEL_CONNECTION_ERROR, + ResultCode::FAILURE_CHANNEL_CONNECTION_ERROR}, + {ErrorCode::SIGNALING_ERROR, ResultCode::FAILURE_SIGNALING_ERROR}, + {ErrorCode::SIGNALING_TIMEOUT, ResultCode::FAILURE_SIGNALING_TIMEOUT}, + {ErrorCode::HOST_OVERLOAD, ResultCode::FAILURE_HOST_OVERLOAD}, + {ErrorCode::MAX_SESSION_LENGTH, ResultCode::FAILURE_MAX_SESSION_LENGTH}, + {ErrorCode::HOST_CONFIGURATION_ERROR, + ResultCode::FAILURE_HOST_CONFIGURATION_ERROR}, + {ErrorCode::UNKNOWN_ERROR, ResultCode::FAILURE_UNKNOWN_ERROR}, + {ErrorCode::ELEVATION_ERROR, ResultCode::FAILURE_UNKNOWN_ERROR}, + {ErrorCode::HOST_CERTIFICATE_ERROR, + ResultCode::FAILURE_HOST_CERTIFICATE_ERROR}, + {ErrorCode::HOST_REGISTRATION_ERROR, + ResultCode::FAILURE_HOST_REGISTRATION_ERROR}, + {ErrorCode::EXISTING_ADMIN_SESSION, + ResultCode::FAILURE_EXISTING_ADMIN_SESSION}, + {ErrorCode::AUTHZ_POLICY_CHECK_FAILED, + ResultCode::FAILURE_AUTHZ_POLICY_CHECK_FAILED}, + {ErrorCode::LOCATION_AUTHZ_POLICY_CHECK_FAILED, + ResultCode::FAILURE_LOCATION_AUTHZ_POLICY_CHECK_FAILED}, + {ErrorCode::UNAUTHORIZED_ACCOUNT, + ResultCode::FAILURE_UNAUTHORIZED_ACCOUNT}}; + + for (auto& [error_code, expected_result_code] : test_cases) { + SupportHostObserver& observer = StartCrdHostAndBindObserver(); + + observer.OnHostStateError(error_code); + + Response response = WaitForResponse(); + ASSERT_TRUE(response.HasError()); + EXPECT_EQ("host state error", response.error_message()); + EXPECT_EQ(expected_result_code, response.error_code()); + + ResetObserver(); + TerminateActiveSession(); + } +} + INSTANTIATE_TEST_SUITE_P(CrdAdminSessionControllerTestWithBoolParams, CrdAdminSessionControllerTestWithBoolParams, testing::Bool());
diff --git a/chrome/browser/ash/policy/remote_commands/crd_remote_command_utils.cc b/chrome/browser/ash/policy/remote_commands/crd_remote_command_utils.cc index f33169d6..e4224e3 100644 --- a/chrome/browser/ash/policy/remote_commands/crd_remote_command_utils.cc +++ b/chrome/browser/ash/policy/remote_commands/crd_remote_command_utils.cc
@@ -14,6 +14,7 @@ #include "chrome/browser/ash/policy/remote_commands/crd_logging.h" #include "chromeos/ash/services/network_config/in_process_instance.h" #include "components/user_manager/user_manager.h" +#include "remoting/protocol/errors.h" #include "ui/base/user_activity/user_activity_detector.h" namespace policy { @@ -27,6 +28,7 @@ using chromeos::network_config::mojom::NetworkStatePropertiesPtr; using chromeos::network_config::mojom::NetworkType; using chromeos::network_config::mojom::OncSource; +using remoting::protocol::ErrorCode; const ash::KioskAppManagerBase* GetKioskAppManager( const user_manager::UserManager& user_manager) { @@ -115,6 +117,54 @@ } // namespace +ResultCode ConvertErrorCodeToResultCode(ErrorCode error_code) { + switch (error_code) { + case ErrorCode::OK: + return ResultCode::SUCCESS; + case ErrorCode::PEER_IS_OFFLINE: + return ResultCode::FAILURE_PEER_IS_OFFLINE; + case ErrorCode::SESSION_REJECTED: + return ResultCode::FAILURE_SESSION_REJECTED; + case ErrorCode::INCOMPATIBLE_PROTOCOL: + return ResultCode::FAILURE_INCOMPATIBLE_PROTOCOL; + case ErrorCode::AUTHENTICATION_FAILED: + return ResultCode::FAILURE_AUTHENTICATION_FAILED; + case ErrorCode::INVALID_ACCOUNT: + return ResultCode::FAILURE_INVALID_ACCOUNT; + case ErrorCode::CHANNEL_CONNECTION_ERROR: + return ResultCode::FAILURE_CHANNEL_CONNECTION_ERROR; + case ErrorCode::SIGNALING_ERROR: + return ResultCode::FAILURE_SIGNALING_ERROR; + case ErrorCode::SIGNALING_TIMEOUT: + return ResultCode::FAILURE_SIGNALING_TIMEOUT; + case ErrorCode::HOST_OVERLOAD: + return ResultCode::FAILURE_HOST_OVERLOAD; + case ErrorCode::MAX_SESSION_LENGTH: + return ResultCode::FAILURE_MAX_SESSION_LENGTH; + case ErrorCode::HOST_CONFIGURATION_ERROR: + return ResultCode::FAILURE_HOST_CONFIGURATION_ERROR; + case ErrorCode::HOST_CERTIFICATE_ERROR: + return ResultCode::FAILURE_HOST_CERTIFICATE_ERROR; + case ErrorCode::HOST_REGISTRATION_ERROR: + return ResultCode::FAILURE_HOST_REGISTRATION_ERROR; + case ErrorCode::EXISTING_ADMIN_SESSION: + return ResultCode::FAILURE_EXISTING_ADMIN_SESSION; + case ErrorCode::AUTHZ_POLICY_CHECK_FAILED: + return ResultCode::FAILURE_AUTHZ_POLICY_CHECK_FAILED; + case ErrorCode::LOCATION_AUTHZ_POLICY_CHECK_FAILED: + return ResultCode::FAILURE_LOCATION_AUTHZ_POLICY_CHECK_FAILED; + case ErrorCode::DISALLOWED_BY_POLICY: + return ResultCode::FAILURE_DISABLED_BY_POLICY; + case ErrorCode::UNAUTHORIZED_ACCOUNT: + return ResultCode::FAILURE_UNAUTHORIZED_ACCOUNT; + case ErrorCode::UNKNOWN_ERROR: + // This error can only take place for windows builds which is not a part for + // commercial CRD. + case ErrorCode::ELEVATION_ERROR: + return ResultCode::FAILURE_UNKNOWN_ERROR; + } +} + base::TimeDelta GetDeviceIdleTime() { base::TimeTicks last_activity = CHECK_DEREF(ui::UserActivityDetector::Get()).last_activity_time();
diff --git a/chrome/browser/ash/policy/remote_commands/crd_remote_command_utils.h b/chrome/browser/ash/policy/remote_commands/crd_remote_command_utils.h index fbef1f0..ae78905 100644 --- a/chrome/browser/ash/policy/remote_commands/crd_remote_command_utils.h +++ b/chrome/browser/ash/policy/remote_commands/crd_remote_command_utils.h
@@ -12,6 +12,7 @@ #include "base/functional/callback_forward.h" #include "base/time/time.h" #include "components/policy/proto/device_management_backend.pb.h" +#include "remoting/protocol/errors.h" namespace policy { @@ -55,9 +56,89 @@ // policy is disabled. FAILURE_DISABLED_BY_POLICY = 8, - kMaxValue = FAILURE_DISABLED_BY_POLICY + // Failure to start because client device is unreachable. + FAILURE_PEER_IS_OFFLINE = 9, + + // Failure to start the session because the local user on the host device + // rejected the support session request. + FAILURE_SESSION_REJECTED = 10, + + // Failure to start because the protocol doesn't match between the host and + // the client device. + FAILURE_INCOMPATIBLE_PROTOCOL = 11, + + // Failure to start the session because authentication failed. + FAILURE_AUTHENTICATION_FAILED = 12, + + // Failure to start the session because the admin user's domain is blocked by + // policy or if the username is invalid. + FAILURE_INVALID_ACCOUNT = 13, + + // Failure when webrtc operations failed while establishing a channel + // connection. + FAILURE_CHANNEL_CONNECTION_ERROR = 14, + + // Failure when the register-support-host request is failed or disconnected + // before registration succeeds. + FAILURE_SIGNALING_ERROR = 15, + + // Failure when the register-support-host request timeout. + FAILURE_SIGNALING_TIMEOUT = 16, + + // Failure while starting the session as host was overloaded with failed login + // attempts. + FAILURE_HOST_OVERLOAD = 17, + + // Failure on the host device when the maximum session length is reached. + FAILURE_MAX_SESSION_LENGTH = 18, + + // Failure as the host could not create a desktop environment (for instance + // the curtain could not be initialized). + FAILURE_HOST_CONFIGURATION_ERROR = 19, + + // Failure as the certificate generation on the host device has failed. + FAILURE_HOST_CERTIFICATE_ERROR = 20, + + // Failure as the registration support host failed to parse the received + // response. + FAILURE_HOST_REGISTRATION_ERROR = 21, + + // Failure to start the session as there is an existing admin session ongoing + // on the host device. + FAILURE_EXISTING_ADMIN_SESSION = 22, + + // Failure because the client is authorized to connect to the host device due + // to a policy defined by third party auth service has failed. + FAILURE_AUTHZ_POLICY_CHECK_FAILED = 23, + + // Failure because the client is not authorized to connect to the host device + // based on their current location due to a policy defined by the third party + // auth service. + FAILURE_LOCATION_AUTHZ_POLICY_CHECK_FAILED = 24, + + // Failure to start the session as the admin user is not authorized for + // starting a remote desktop session. + FAILURE_UNAUTHORIZED_ACCOUNT = 25, + + // Failure as the host is unable to load the device policy. + FAILURE_HOST_POLICY_ERROR = 26, + + // Failure as Indicates the remote support host could not start as the user's + // domain is not included in the device policy allowlist. + FAILURE_HOST_INVALID_DOMAIN_ERROR = 27, + + // Host session was disconnected without any error. + HOST_SESSION_DISCONNECTED = 28, + + FAILURE_UNKNOWN_ERROR = 29, + + kMaxValue = FAILURE_UNKNOWN_ERROR }; +// Translates the `remoting::protocol::ErrorCode` to `ResultCode`. +ResultCode ConvertErrorCodeToResultCode( + remoting::protocol::ErrorCode error_code); + // Returns the time since the last user activity on this device. // Returns `TimeDelta::Max()` if there was no user activity since the last // reboot.
diff --git a/chrome/browser/ash/printing/history/OWNERS b/chrome/browser/ash/printing/history/OWNERS index cd76a71..016627d 100644 --- a/chrome/browser/ash/printing/history/OWNERS +++ b/chrome/browser/ash/printing/history/OWNERS
@@ -1,3 +1,3 @@ -srad@google.com +ust@google.com pmarko@chromium.org pawliczek@chromium.org
diff --git a/chrome/browser/autofill/android/personal_data_manager_android.cc b/chrome/browser/autofill/android/personal_data_manager_android.cc index 7befd943..5d9220a 100644 --- a/chrome/browser/autofill/android/personal_data_manager_android.cc +++ b/chrome/browser/autofill/android/personal_data_manager_android.cc
@@ -664,8 +664,10 @@ include_name_in_label ? UNKNOWN_TYPE : NAME_FULL; std::vector<std::u16string> labels; + // TODO(crbug.com/1487119): Replace by `profiles` when `GetProfilesToSuggest` + // starts returning a list of const AutofillProfile*. AutofillProfile::CreateInferredLabels( - profiles, + std::vector<const AutofillProfile*>(profiles.begin(), profiles.end()), address_only ? absl::make_optional(suggested_fields) : absl::nullopt, excluded_field, minimal_fields_shown, g_browser_process->GetApplicationLocale(), &labels);
diff --git a/chrome/browser/autofill/autofill_interactive_uitest.cc b/chrome/browser/autofill/autofill_interactive_uitest.cc index 5dcf7796..5fd5137d 100644 --- a/chrome/browser/autofill/autofill_interactive_uitest.cc +++ b/chrome/browser/autofill/autofill_interactive_uitest.cc
@@ -2085,7 +2085,7 @@ profile.SetRawInfo(ADDRESS_HOME_ZIP, u"95110"); profile.SetRawInfo(ADDRESS_HOME_COUNTRY, u"US"); profile.SetRawInfo(PHONE_HOME_WHOLE_NUMBER, u"1-408-555-4567"); - SetTestProfile(browser()->profile(), profile); + AddTestProfile(browser()->profile(), profile); GURL url = embedded_test_server()->GetURL("/autofill/form_phones.html"); ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -2138,7 +2138,7 @@ profile.SetRawInfo(ADDRESS_HOME_ZIP, u"95110"); profile.SetRawInfo(COMPANY_NAME, ASCIIToUTF16(company_name)); profile.SetRawInfo(PHONE_HOME_WHOLE_NUMBER, u"408-871-4567"); - SetTestProfile(browser()->profile(), profile); + AddTestProfile(browser()->profile(), profile); GURL url = embedded_test_server()->GetURL("/autofill/read_only_field_test.html"); @@ -2209,7 +2209,7 @@ profile.SetRawInfo(ADDRESS_HOME_ZIP, u"95110"); profile.SetRawInfo(COMPANY_NAME, u"Company X"); profile.SetRawInfo(PHONE_HOME_WHOLE_NUMBER, u"408-871-4567"); - SetTestProfile(browser()->profile(), profile); + AddTestProfile(browser()->profile(), profile); GURL url = embedded_test_server()->GetURL("/autofill/read_only_field_test.html"); @@ -2273,7 +2273,7 @@ profile.SetRawInfo(NAME_LAST, u"Smith"); profile.SetRawInfo(EMAIL_ADDRESS, ASCIIToUTF16(email)); profile.SetRawInfo(PHONE_HOME_WHOLE_NUMBER, u"4088714567"); - SetTestProfile(browser()->profile(), profile); + AddTestProfile(browser()->profile(), profile); GURL url = embedded_test_server()->GetURL( "/autofill/autofill_confirmemail_form.html"); @@ -2304,7 +2304,6 @@ streets.push_back("Ct"); constexpr int kNumProfiles = 1500; - std::vector<AutofillProfile> profiles; for (int i = 0; i < kNumProfiles; i++) { AutofillProfile profile; std::u16string name(base::NumberToString16(i)); @@ -2322,9 +2321,8 @@ profile.SetRawInfo(ADDRESS_HOME_STATE, u"CA"); profile.SetRawInfo(ADDRESS_HOME_ZIP, zip); profile.SetRawInfo(ADDRESS_HOME_COUNTRY, u"US"); - profiles.push_back(profile); + AddTestProfile(browser()->profile(), profile); } - SetTestProfiles(browser()->profile(), &profiles); GURL url = embedded_test_server()->GetURL( "/autofill/latency_after_submit_test.html");
diff --git a/chrome/browser/autofill/autofill_uitest_util.cc b/chrome/browser/autofill/autofill_uitest_util.cc index 764ef8b..ee4d370 100644 --- a/chrome/browser/autofill/autofill_uitest_util.cc +++ b/chrome/browser/autofill/autofill_uitest_util.cc
@@ -78,19 +78,6 @@ observer.Wait(); } -void SetTestProfile(Profile* base_profile, const AutofillProfile& profile) { - std::vector<AutofillProfile> profiles; - profiles.push_back(profile); - SetTestProfiles(base_profile, &profiles); -} - -void SetTestProfiles(Profile* base_profile, - std::vector<AutofillProfile>* profiles) { - PdmChangeWaiter observer(base_profile); - GetPersonalDataManager(base_profile)->SetProfilesForAllSources(profiles); - observer.Wait(); -} - void AddTestCreditCard(Profile* base_profile, const CreditCard& card) { PdmChangeWaiter observer(base_profile); GetPersonalDataManager(base_profile)->AddCreditCard(card);
diff --git a/chrome/browser/autofill/autofill_uitest_util.h b/chrome/browser/autofill/autofill_uitest_util.h index 03b0955..fdb345bb 100644 --- a/chrome/browser/autofill/autofill_uitest_util.h +++ b/chrome/browser/autofill/autofill_uitest_util.h
@@ -5,8 +5,6 @@ #ifndef CHROME_BROWSER_AUTOFILL_AUTOFILL_UITEST_UTIL_H_ #define CHROME_BROWSER_AUTOFILL_AUTOFILL_UITEST_UTIL_H_ -#include <vector> - #include "components/autofill/content/browser/content_autofill_driver.h" #include "ui/gfx/geometry/rect_f.h" @@ -18,9 +16,6 @@ class CreditCard; void AddTestProfile(Profile* base_profile, const AutofillProfile& profile); -void SetTestProfile(Profile* base_profile, const AutofillProfile& profile); -void SetTestProfiles(Profile* base_profile, - std::vector<AutofillProfile>* profiles); void AddTestCreditCard(Profile* base_profile, const CreditCard& card); void AddTestServerCreditCard(Profile* base_profile, const CreditCard& card); void AddTestAutofillData(Profile* base_profile,
diff --git a/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc b/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc index 30ed0c72..eda2e7f 100644 --- a/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc +++ b/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
@@ -40,7 +40,7 @@ #include "components/history/core/common/pref_names.h" #include "components/metrics/content/subprocess_metrics_provider.h" #include "components/password_manager/core/browser/features/password_features.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/prefs/pref_service.h" #include "components/signin/core/browser/account_reconcilor.h" #include "components/signin/public/identity_manager/identity_manager.h"
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc index d0c6acb7..345dd10 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -109,7 +109,7 @@ #include "components/omnibox/browser/omnibox_prefs.h" #include "components/open_from_clipboard/clipboard_recent_content.h" #include "components/password_manager/core/browser/features/password_features.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_store_interface.h" #include "components/password_manager/core/browser/smart_bubble_stats_store.h" #include "components/payments/content/payment_manifest_web_data_service.h"
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc index 50ce3a5..3255e88 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -975,7 +975,6 @@ // Add one profile and two credit cards to the database. One credit card has a // web origin and the other has a Chrome origin. void AddProfilesAndCards() { - std::vector<autofill::AutofillProfile> profiles; autofill::AutofillProfile profile; profile.set_guid(base::Uuid::GenerateRandomV4().AsLowercaseString()); profile.SetRawInfo(autofill::NAME_FIRST, u"Bob"); @@ -983,10 +982,7 @@ profile.SetRawInfo(autofill::ADDRESS_HOME_ZIP, u"94043"); profile.SetRawInfo(autofill::EMAIL_ADDRESS, u"sue@example.com"); profile.SetRawInfo(autofill::COMPANY_NAME, u"Company X"); - profiles.push_back(profile); - - personal_data_manager_->SetProfilesForAllSources(&profiles); - + personal_data_manager_->AddProfile(profile); WaitForOnPersonalDataFinishedProfileTasks(); std::vector<autofill::CreditCard> cards;
diff --git a/chrome/browser/chromeos/extensions/printing_metrics/OWNERS b/chrome/browser/chromeos/extensions/printing_metrics/OWNERS index 9dcc4431..8f2a1c0 100644 --- a/chrome/browser/chromeos/extensions/printing_metrics/OWNERS +++ b/chrome/browser/chromeos/extensions/printing_metrics/OWNERS
@@ -1,4 +1,4 @@ -srad@google.com +ust@google.com pmarko@chromium.org pawliczek@chromium.org greengrape@google.com
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_scoped_file_access_delegate_interactive_uitest.cc b/chrome/browser/chromeos/policy/dlp/dlp_scoped_file_access_delegate_interactive_uitest.cc index 021ef48..577eb3d 100644 --- a/chrome/browser/chromeos/policy/dlp/dlp_scoped_file_access_delegate_interactive_uitest.cc +++ b/chrome/browser/chromeos/policy/dlp/dlp_scoped_file_access_delegate_interactive_uitest.cc
@@ -145,6 +145,11 @@ active_drag_event_->set_location_f(event_location); active_drag_event_->set_root_location_f(event_root_location); delegate->OnDragUpdated(*active_drag_event_); + + content::WebContentsConsoleObserver console_observer(web_contents); + console_observer.SetPattern("dragover"); + EXPECT_TRUE(console_observer.Wait()); + auto drop_cb = delegate->GetDropCallback(*active_drag_event_); if (!drop_cb) { return false;
diff --git a/chrome/browser/enterprise/signals/context_info_fetcher.cc b/chrome/browser/enterprise/signals/context_info_fetcher.cc index 68713021..1f47727 100644 --- a/chrome/browser/enterprise/signals/context_info_fetcher.cc +++ b/chrome/browser/enterprise/signals/context_info_fetcher.cc
@@ -135,6 +135,12 @@ // status of the firewall (System Preferences> Security & Privacy> Firewall). // Reading globalstate from com.apple.alf is the closest way to get such an // API in Chrome without delegating to potentially unstable commands. + // Values of "globalstate": + // 0 = de-activated + // 1 = on for specific services + // 2 = on for essential services + // You can get 2 by, e.g., enabling the "Block all incoming connections" + // firewall functionality. Boolean key_exists_with_valid_format = false; CFIndex globalstate = CFPreferencesGetAppIntegerValue( @@ -148,6 +154,7 @@ case 0: return SettingValue::DISABLED; case 1: + case 2: return SettingValue::ENABLED; default: return SettingValue::UNKNOWN;
diff --git a/chrome/browser/extensions/api/autofill_private/autofill_util.cc b/chrome/browser/extensions/api/autofill_private/autofill_util.cc index ab44e33..c87c409 100644 --- a/chrome/browser/extensions/api/autofill_private/autofill_util.cc +++ b/chrome/browser/extensions/api/autofill_private/autofill_util.cc
@@ -276,8 +276,12 @@ const std::vector<autofill::AutofillProfile*>& profiles = personal_data.GetProfilesForSettings(); std::vector<std::u16string> labels; + // TODO(crbug.com/1487119): Replace by `profiles` when + // `GetProfilesForSettings` starts returning a list of const AutofillProfile*. autofill::AutofillProfile::CreateDifferentiatingLabels( - profiles, g_browser_process->GetApplicationLocale(), &labels); + std::vector<const autofill::AutofillProfile*>(profiles.begin(), + profiles.end()), + g_browser_process->GetApplicationLocale(), &labels); DCHECK_EQ(labels.size(), profiles.size()); AddressEntryList list;
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc index 362eebcb..e88f7f1 100644 --- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc +++ b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
@@ -48,9 +48,9 @@ #include "components/keyed_service/core/service_access_type.h" #include "components/password_manager/core/browser/affiliation/affiliation_utils.h" #include "components/password_manager/core/browser/features/password_features.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_access_authenticator.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_util.h" #include "components/password_manager/core/browser/password_sync_util.h" #include "components/password_manager/core/browser/sharing/password_sender_service.h" @@ -1049,7 +1049,7 @@ } void PasswordsPrivateDelegateImpl::OnWebAppInstalledWithOsHooks( - const web_app::AppId& app_id) { + const webapps::AppId& app_id) { if (app_id != web_app::kPasswordManagerAppId) { return; }
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h index 53007074..4816c4b 100644 --- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h +++ b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.h
@@ -165,7 +165,7 @@ const password_manager::PasswordStoreChangeList& changes) override; // web_app::WebAppInstallManagerObserver implementation. - void OnWebAppInstalledWithOsHooks(const web_app::AppId& app_id) override; + void OnWebAppInstalledWithOsHooks(const webapps::AppId& app_id) override; void OnWebAppInstallManagerDestroyed() override; // Called after the lists are fetched. Once both lists have been set, the
diff --git a/chrome/browser/extensions/api/printing/OWNERS b/chrome/browser/extensions/api/printing/OWNERS index cd76a71..016627d 100644 --- a/chrome/browser/extensions/api/printing/OWNERS +++ b/chrome/browser/extensions/api/printing/OWNERS
@@ -1,3 +1,3 @@ -srad@google.com +ust@google.com pmarko@chromium.org pawliczek@chromium.org
diff --git a/chrome/browser/extensions/external_pref_loader.cc b/chrome/browser/extensions/external_pref_loader.cc index b8eadeb..90894bb 100644 --- a/chrome/browser/extensions/external_pref_loader.cc +++ b/chrome/browser/extensions/external_pref_loader.cc
@@ -146,7 +146,7 @@ private: void MaybeObserveSyncStart() { syncer::SyncService* service = SyncServiceFactory::GetForProfile(profile_); - if (!service || !service->CanSyncFeatureStart()) { + if (!service || !service->IsSyncFeatureEnabled()) { Finish(); // Note: |this| is deleted. return; @@ -166,8 +166,9 @@ // syncer::SyncServiceObserver void OnStateChanged(syncer::SyncService* sync) override { - if (!sync->CanSyncFeatureStart()) + if (!sync->IsSyncFeatureEnabled()) { Finish(); + } } void OnSyncShutdown(syncer::SyncService* sync) override {
diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_browsertest.cc b/chrome/browser/first_party_sets/first_party_sets_policy_browsertest.cc index 23cd173..394495a 100644 --- a/chrome/browser/first_party_sets/first_party_sets_policy_browsertest.cc +++ b/chrome/browser/first_party_sets/first_party_sets_policy_browsertest.cc
@@ -3,8 +3,10 @@ // found in the LICENSE file. #include <cstdint> +#include <string> #include "base/json/json_reader.h" +#include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" #include "base/test/scoped_feature_list.h" #include "base/values.h" @@ -42,8 +44,11 @@ class EnabledPolicyBrowsertest : public PolicyTest, - public ::testing::WithParamInterface< - std::tuple<bool, PolicyTest::BooleanPolicy>> { + public ::testing::WithParamInterface<std::tuple< + bool, // Feature Enabled + PolicyTest::BooleanPolicy, // FirstPartySetsEnabled Policy State + PolicyTest::BooleanPolicy // RelatedWebsiteSetsEnabled Policy State + >> { public: EnabledPolicyBrowsertest() : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) { @@ -94,9 +99,17 @@ SetPolicyValue(policy::key::kFirstPartySetsOverrides, base::JSONReader::Read(policy.value())); } - if (GetInitialPolicyState() != PolicyTest::BooleanPolicy::kNotConfigured) { + + if (GetInitialFirstPartySetPolicyState() != + PolicyTest::BooleanPolicy::kNotConfigured) { SetPolicyValue(policy::key::kFirstPartySetsEnabled, - base::Value(GetInitialPolicyState() == + base::Value(GetInitialFirstPartySetPolicyState() == + PolicyTest::BooleanPolicy::kTrue)); + } + if (GetInitialRelatedWebsiteSetPolicyState() != + PolicyTest::BooleanPolicy::kNotConfigured) { + SetPolicyValue(policy::key::kRelatedWebsiteSetsEnabled, + base::Value(GetInitialRelatedWebsiteSetPolicyState() == PolicyTest::BooleanPolicy::kTrue)); } @@ -132,17 +145,24 @@ return absl::nullopt; } - // Sets the state of the FirstPartySetsEnabled policy. - void SetFirstPartySetsEnabledPolicyState(bool enabled) { - SetPolicyValue(policy::key::kFirstPartySetsEnabled, base::Value(enabled)); + // Sets the state of the RelatedWebsiteSetsEnabled Policy to + // `relatedWebsiteSetsEnabled`. Once the RelatedWebsiteSetsEnabled Policy's + // state is set, the FirstPartySetsEnabled Policy's state is not used anymore, + // so we're intentionally setting it's state to `!relatedWebsiteSetsEnabled`, + // and tests should still pass. + void SetEnabledPolicyStates(bool relatedWebsiteSetsEnabled) { + SetPolicyValue(policy::key::kRelatedWebsiteSetsEnabled, + base::Value(relatedWebsiteSetsEnabled)); + SetPolicyValue(policy::key::kFirstPartySetsEnabled, + base::Value(!relatedWebsiteSetsEnabled)); provider_.UpdateChromePolicy(policies_); } - // Returns whether or not First-Party Sets was enabled at the start of the - // test. This does not account for calls to - // `SetFirstPartySetsEnabledPolicyState`. - bool IsFirstPartySetsEnabledInitially() { + // Returns whether or not Related Website Sets (fka First-Party Sets) was + // enabled at the start of the test. This does not account for calls to + // `SetEnabledPolicyStates`. + bool IsRelatedWebsiteSetsEnabledInitially() { return IsFeatureEnabled() && IsPrefEnabledInitially(); } @@ -157,8 +177,8 @@ EXPECT_TRUE(NavigateIframeToURL(web_contents, "test", url)); } - bool AreSitesInSameFirstPartySet(const std::string& first_host, - const std::string& second_host) { + bool AreSitesInSameRelatedWebsiteSet(const std::string& first_host, + const std::string& second_host) { NavigateToPageWithFrame(first_host); NavigateFrameTo(https_server_.GetURL(second_host, "/empty.html")); @@ -166,13 +186,25 @@ } bool IsFeatureEnabled() { return std::get<0>(GetParam()); } - PolicyTest::BooleanPolicy GetInitialPolicyState() { + PolicyTest::BooleanPolicy GetInitialFirstPartySetPolicyState() { return std::get<1>(GetParam()); } + PolicyTest::BooleanPolicy GetInitialRelatedWebsiteSetPolicyState() { + return std::get<2>(GetParam()); + } - // We expect the Pref to be true if the Policy is unset or enabled. + // If the RelatedWebsiteSetEnabled policy is unset + // SimpleDeprecatingPolicyHandler falls back to the FirstPartySetEnabled + // policy so we infer the Pref's state accordingly. bool IsPrefEnabledInitially() { - return GetInitialPolicyState() != PolicyTest::BooleanPolicy::kFalse; + if (GetInitialRelatedWebsiteSetPolicyState() == + PolicyTest::BooleanPolicy::kNotConfigured) { + return GetInitialFirstPartySetPolicyState() != + PolicyTest::BooleanPolicy::kFalse; + } + + return GetInitialRelatedWebsiteSetPolicyState() != + PolicyTest::BooleanPolicy::kFalse; } private: @@ -190,35 +222,77 @@ PolicyMap policies_; }; +// Generates test names containing params for easier debugging. +std::string TestNameGenerator( + const testing::TestParamInfo<EnabledPolicyBrowsertest::ParamType>& info) { + std::string name = base::NumberToString(info.index); + + bool is_feature_enabled = std::get<0>(info.param); + if (is_feature_enabled) { + name += "_Enabled"; + } else { + name += "_Disabled"; + } + + auto policy_state_to_string = + [](PolicyTest::BooleanPolicy state) -> std::string { + switch (state) { + case PolicyTest::BooleanPolicy::kNotConfigured: + return "NotConfigured"; + case PolicyTest::BooleanPolicy::kFalse: + return "False"; + case PolicyTest::BooleanPolicy::kTrue: + return "True"; + } + }; + + PolicyTest::BooleanPolicy first_party_sets_policy_state = + std::get<1>(info.param); + name += "_" + policy_state_to_string(first_party_sets_policy_state); + + PolicyTest::BooleanPolicy related_website_sets_policy_state = + std::get<2>(info.param); + name += "_" + policy_state_to_string(related_website_sets_policy_state); + + return name; +} + IN_PROC_BROWSER_TEST_P(EnabledPolicyBrowsertest, ToggleFeature_Memberships) { EXPECT_EQ(IsFeatureEnabled() && IsPrefEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostC)); + AreSitesInSameRelatedWebsiteSet(kHostA, kHostC)); EXPECT_EQ(IsFeatureEnabled() && IsPrefEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostB)); + AreSitesInSameRelatedWebsiteSet(kHostA, kHostB)); - SetFirstPartySetsEnabledPolicyState(!IsPrefEnabledInitially()); + SetEnabledPolicyStates(!IsPrefEnabledInitially()); EXPECT_EQ(IsFeatureEnabled() && !IsPrefEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostC)); + AreSitesInSameRelatedWebsiteSet(kHostA, kHostC)); EXPECT_EQ(IsFeatureEnabled() && !IsPrefEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostB)); + AreSitesInSameRelatedWebsiteSet(kHostA, kHostB)); } IN_PROC_BROWSER_TEST_P(EnabledPolicyBrowsertest, ToggleFeature_NonMemberships) { - EXPECT_FALSE(AreSitesInSameFirstPartySet(kHostD, kHostA)); - SetFirstPartySetsEnabledPolicyState(!IsPrefEnabledInitially()); + EXPECT_FALSE(AreSitesInSameRelatedWebsiteSet(kHostD, kHostA)); + SetEnabledPolicyStates(!IsPrefEnabledInitially()); - EXPECT_FALSE(AreSitesInSameFirstPartySet(kHostD, kHostA)); + EXPECT_FALSE(AreSitesInSameRelatedWebsiteSet(kHostD, kHostA)); } INSTANTIATE_TEST_SUITE_P( FirstPartySets, EnabledPolicyBrowsertest, ::testing::Combine( - ::testing::Bool(), - ::testing::Values(PolicyTest::BooleanPolicy::kNotConfigured, - PolicyTest::BooleanPolicy::kFalse, - PolicyTest::BooleanPolicy::kTrue))); + ::testing::Bool(), // Feature Enabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue), // FirstPartySetsEnabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue) // RelatedWebsiteSetsEnabled + ), + TestNameGenerator); class OverridesPolicyEmptyBrowsertest : public EnabledPolicyBrowsertest { public: @@ -233,20 +307,27 @@ // // After the Overrides policy is applied, the expected First-Party Sets are: // {primary: A, associatedSites: [B, C]} (unchanged) - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostC, kHostA)); - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostB, kHostA)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostC, kHostA)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostB, kHostA)); } INSTANTIATE_TEST_SUITE_P( FirstPartySets, OverridesPolicyEmptyBrowsertest, ::testing::Combine( - ::testing::Bool(), - ::testing::Values(PolicyTest::BooleanPolicy::kNotConfigured, - PolicyTest::BooleanPolicy::kFalse, - PolicyTest::BooleanPolicy::kTrue))); + ::testing::Bool(), // Feature Enabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue), // FirstPartySetsEnabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue) // RelatedWebsiteSetsEnabled + ), + TestNameGenerator); class OverridesPolicyReplacementBrowsertest : public EnabledPolicyBrowsertest { public: @@ -272,21 +353,28 @@ // // After the Overrides policy is applied, the expected First-Party Sets are: // {primary: D, associatedSites: [A, B]} - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostB)); - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostD)); - EXPECT_FALSE(AreSitesInSameFirstPartySet(kHostA, kHostC)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostA, kHostB)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostA, kHostD)); + EXPECT_FALSE(AreSitesInSameRelatedWebsiteSet(kHostA, kHostC)); } INSTANTIATE_TEST_SUITE_P( FirstPartySets, OverridesPolicyReplacementBrowsertest, ::testing::Combine( - ::testing::Bool(), - ::testing::Values(PolicyTest::BooleanPolicy::kNotConfigured, - PolicyTest::BooleanPolicy::kFalse, - PolicyTest::BooleanPolicy::kTrue))); + ::testing::Bool(), // Feature Enabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue), // FirstPartySetsEnabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue) // RelatedWebsiteSetsEnabled + ), + TestNameGenerator); class OverridesPolicyAdditionBrowsertest : public EnabledPolicyBrowsertest { public: @@ -311,22 +399,29 @@ // // After the Overrides policy is applied, the expected First-Party Sets are: // {primary: A, associatedSites: [B, C, D]}} - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostD)); - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostB)); - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostA, kHostC)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostA, kHostD)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostA, kHostB)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostA, kHostC)); } INSTANTIATE_TEST_SUITE_P( FirstPartySets, OverridesPolicyAdditionBrowsertest, ::testing::Combine( - ::testing::Bool(), - ::testing::Values(PolicyTest::BooleanPolicy::kNotConfigured, - PolicyTest::BooleanPolicy::kFalse, - PolicyTest::BooleanPolicy::kTrue))); + ::testing::Bool(), // Feature Enabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue), // FirstPartySetsEnabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue) // RelatedWebsiteSetsEnabled + ), + TestNameGenerator); class OverridesPolicyReplacementAndAdditionBrowsertest : public EnabledPolicyBrowsertest { @@ -358,20 +453,27 @@ // // After the Overrides policy is applied, the expected First-Party Sets are: // {primary: A, associatedSites: [D]} and {primary: B, associatedSites: [C]}. - EXPECT_FALSE(AreSitesInSameFirstPartySet(kHostB, kHostA)); - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostD, kHostA)); - EXPECT_EQ(IsFirstPartySetsEnabledInitially(), - AreSitesInSameFirstPartySet(kHostC, kHostB)); + EXPECT_FALSE(AreSitesInSameRelatedWebsiteSet(kHostB, kHostA)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostD, kHostA)); + EXPECT_EQ(IsRelatedWebsiteSetsEnabledInitially(), + AreSitesInSameRelatedWebsiteSet(kHostC, kHostB)); } INSTANTIATE_TEST_SUITE_P( FirstPartySets, OverridesPolicyReplacementAndAdditionBrowsertest, ::testing::Combine( - ::testing::Bool(), - ::testing::Values(PolicyTest::BooleanPolicy::kNotConfigured, - PolicyTest::BooleanPolicy::kFalse, - PolicyTest::BooleanPolicy::kTrue))); + ::testing::Bool(), // Feature Enabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue), // FirstPartySetsEnabled + ::testing::Values( + PolicyTest::BooleanPolicy::kNotConfigured, + PolicyTest::BooleanPolicy::kFalse, + PolicyTest::BooleanPolicy::kTrue) // RelatedWebsiteSetsEnabled + ), + TestNameGenerator); } // namespace } // namespace policy
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 2e1f7bda..caf5c6e 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -3725,11 +3725,6 @@ "expiry_milestone": 120 }, { - "name": "enable-tailored-security-integration", - "owners": ["joemerramos", "ajuma", "bling-flags@google.com"], - "expiry_milestone": 120 - }, - { "name": "enable-tailored-security-retry-for-sync-users", "owners": ["jacastro", "chrome-counter-abuse-alerts@google.com"], "expiry_milestone": 120
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc index dc7d8e39..956f2da 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -276,7 +276,6 @@ &kOmniboxCacheSuggestionResources, &kOmniboxNoopEditUrlSuggestionClicks, &kOmniboxWarmRecycledViewPool, - &kOpaqueOriginForIncomingIntents, &kPartnerCustomizationsUma, &kProbabilisticCryptidRenderer, &kQuickDeleteForAndroid, @@ -891,10 +890,6 @@ "OmniboxWarmRecycledViewPool", base::FEATURE_ENABLED_BY_DEFAULT); -BASE_FEATURE(kOpaqueOriginForIncomingIntents, - "OpaqueOriginForIncomingIntents", - base::FEATURE_ENABLED_BY_DEFAULT); - BASE_FEATURE(kPartnerCustomizationsUma, "PartnerCustomizationsUma", base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h index 5f7cee6..5ebcb89 100644 --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -139,7 +139,6 @@ BASE_DECLARE_FEATURE(kPreconnectOnTabCreation); BASE_DECLARE_FEATURE(kBookmarksImprovedSaveFlow); BASE_DECLARE_FEATURE(kBookmarksRefresh); -BASE_DECLARE_FEATURE(kOpaqueOriginForIncomingIntents); BASE_DECLARE_FEATURE(kPartnerCustomizationsUma); BASE_DECLARE_FEATURE(kProbabilisticCryptidRenderer); BASE_DECLARE_FEATURE(kQuickDeleteForAndroid);
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java index 847c2114..951dd45 100644 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -349,8 +349,6 @@ public static final String OMNIBOX_UPDATED_CONNECTION_SECURITY_INDICATORS = "OmniboxUpdatedConnectionSecurityIndicators"; public static final String OMNIBOX_WARM_RECYCLED_VIEW_POOL = "OmniboxWarmRecycledViewPool"; - public static final String OPAQUE_ORIGIN_FOR_INCOMING_INTENTS = - "OpaqueOriginForIncomingIntents"; public static final String OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS = "OptimizationGuidePushNotifications"; public static final String PAGE_INFO_ABOUT_THIS_SITE_MORE_LANGS =
diff --git a/chrome/browser/media/webrtc/conditional_focus_browsertest.cc b/chrome/browser/media/webrtc/conditional_focus_browsertest.cc index 71f2776..5350399 100644 --- a/chrome/browser/media/webrtc/conditional_focus_browsertest.cc +++ b/chrome/browser/media/webrtc/conditional_focus_browsertest.cc
@@ -35,15 +35,18 @@ const char kCapturedPageTitle[] = "Conditional Focus Test - Captured Page"; enum class FocusEnumValue { - kNoValue, // "" - kFocusCapturedSurface, // "focus-captured-surface" - kNoFocusChange // "no-focus-change" + kNoValue, // "" + kFocusCapturingApplication, // "focus-capturing-application" + kFocusCapturedSurface, // "focus-captured-surface" + kNoFocusChange // "no-focus-change" }; const char* ToString(FocusEnumValue focus_enum_value) { switch (focus_enum_value) { case FocusEnumValue::kNoValue: return ""; + case FocusEnumValue::kFocusCapturingApplication: + return "focus-capturing-application"; case FocusEnumValue::kFocusCapturedSurface: return "focus-captured-surface"; case FocusEnumValue::kNoFocusChange: @@ -206,10 +209,40 @@ EXPECT_TRUE(WaitForFocusSwitchToCapturedTab()); } -IN_PROC_BROWSER_TEST_F(ConditionalFocusBrowserTest, - CapturedTabNotFocusedIfExplicitlyCallingNoFocus) { +// This class only uses the values of FocusEnumValue that lead to the capturing +// application keeping focus. +class ConditionalFocusBrowserTestWithFocusCapturingApplication + : public ConditionalFocusBrowserTest, + public testing::WithParamInterface<FocusEnumValue> { + public: + ConditionalFocusBrowserTestWithFocusCapturingApplication() + : focus_behavior_(GetParam()) {} + + ~ConditionalFocusBrowserTestWithFocusCapturingApplication() override = + default; + + protected: + const FocusEnumValue focus_behavior_; +}; + +INSTANTIATE_TEST_SUITE_P( + _, + ConditionalFocusBrowserTestWithFocusCapturingApplication, + testing::Values(FocusEnumValue::kFocusCapturingApplication, + FocusEnumValue::kNoFocusChange)); + +// TODO(crbug.com/1446884): Flaky on a TSan bot. +#if BUILDFLAG(IS_LINUX) && defined(THREAD_SANITIZER) +#define MAYBE_CapturedTabNotFocusedIfExplicitlyCallingNoFocus \ + DISABLED_CapturedTabNotFocusedIfExplicitlyCallingNoFocus +#else +#define MAYBE_CapturedTabNotFocusedIfExplicitlyCallingNoFocus \ + CapturedTabNotFocusedIfExplicitlyCallingNoFocus +#endif +IN_PROC_BROWSER_TEST_P(ConditionalFocusBrowserTestWithFocusCapturingApplication, + MAYBE_CapturedTabNotFocusedIfExplicitlyCallingNoFocus) { SetUpTestTabs(); - Capture(0, FocusEnumValue::kNoFocusChange); + Capture(0, focus_behavior_); // Whereas calls to Wait() in previous tests served to minimize flakiness, // this one is to prove no false-positives. Namely, we allow enough time // for the focus-change, yet it does not occur. @@ -217,10 +250,19 @@ EXPECT_EQ(ActiveTab(), Tab::kCapturingTab); } -IN_PROC_BROWSER_TEST_F(ConditionalFocusBrowserTest, - CapturedTabFocusedIfAppWaitsTooLongBeforeCallingFocus) { +// TODO(crbug.com/1446884): Flaky on a TSan bot. +#if BUILDFLAG(IS_LINUX) && defined(THREAD_SANITIZER) +#define MAYBE_CapturedTabFocusedIfAppWaitsTooLongBeforeCallingFocus \ + DISABLED_CapturedTabFocusedIfAppWaitsTooLongBeforeCallingFocus +#else +#define MAYBE_CapturedTabFocusedIfAppWaitsTooLongBeforeCallingFocus \ + CapturedTabFocusedIfAppWaitsTooLongBeforeCallingFocus +#endif +IN_PROC_BROWSER_TEST_P( + ConditionalFocusBrowserTestWithFocusCapturingApplication, + MAYBE_CapturedTabFocusedIfAppWaitsTooLongBeforeCallingFocus) { SetUpTestTabs(); - Capture(15000, FocusEnumValue::kNoFocusChange); + Capture(15000, focus_behavior_); EXPECT_TRUE(WaitForFocusSwitchToCapturedTab()); } @@ -277,10 +319,17 @@ EXPECT_TRUE(WaitForFocusSwitchToCapturedTab()); } -IN_PROC_BROWSER_TEST_F(ConditionalFocusBrowserTest, NoFocusBeforeCapture) { +// TODO(crbug.com/1446884): Flaky on a TSan bot. +#if BUILDFLAG(IS_LINUX) && defined(THREAD_SANITIZER) +#define MAYBE_NoFocusBeforeCapture DISABLED_NoFocusBeforeCapture +#else +#define MAYBE_NoFocusBeforeCapture NoFocusBeforeCapture +#endif +IN_PROC_BROWSER_TEST_P(ConditionalFocusBrowserTestWithFocusCapturingApplication, + MAYBE_NoFocusBeforeCapture) { // Setup. SetUpTestTabs(); - CallSetFocusBehaviorBeforeCapture(FocusEnumValue::kNoFocusChange); + CallSetFocusBehaviorBeforeCapture(focus_behavior_); // Whereas calls to Wait() in previous tests served to minimize flakiness, // this one is to prove no false-positives. Namely, we allow enough time // for the focus-change, yet it does not occur. @@ -296,12 +345,12 @@ #define MAYBE_NoFocusAfterCaptureOverrideFocusBeforeCapture \ NoFocusAfterCaptureOverrideFocusBeforeCapture #endif -IN_PROC_BROWSER_TEST_F(ConditionalFocusBrowserTest, +IN_PROC_BROWSER_TEST_P(ConditionalFocusBrowserTestWithFocusCapturingApplication, MAYBE_NoFocusAfterCaptureOverrideFocusBeforeCapture) { // Setup. SetUpTestTabs(); CallSetFocusBehaviorBeforeCapture(FocusEnumValue::kFocusCapturedSurface, - FocusEnumValue::kNoFocusChange); + focus_behavior_); // Whereas calls to Wait() in previous tests served to minimize flakiness, // this one is to prove no false-positives. Namely, we allow enough time // for the focus-change, yet it does not occur. @@ -309,11 +358,19 @@ EXPECT_EQ(ActiveTab(), Tab::kCapturingTab); } -IN_PROC_BROWSER_TEST_F(ConditionalFocusBrowserTest, - FocusAfterCaptureOverrideNoFocusBeforeCapture) { +// TODO(crbug.com/1446884): Flaky on a TSan bot. +#if BUILDFLAG(IS_LINUX) && defined(THREAD_SANITIZER) +#define MAYBE_FocusAfterCaptureOverrideNoFocusBeforeCapture \ + DISABLED_FocusAfterCaptureOverrideNoFocusBeforeCapture +#else +#define MAYBE_FocusAfterCaptureOverrideNoFocusBeforeCapture \ + FocusAfterCaptureOverrideNoFocusBeforeCapture +#endif +IN_PROC_BROWSER_TEST_P(ConditionalFocusBrowserTestWithFocusCapturingApplication, + MAYBE_FocusAfterCaptureOverrideNoFocusBeforeCapture) { // Setup. SetUpTestTabs(); - CallSetFocusBehaviorBeforeCapture(FocusEnumValue::kNoFocusChange, + CallSetFocusBehaviorBeforeCapture(focus_behavior_, FocusEnumValue::kFocusCapturedSurface); EXPECT_TRUE(WaitForFocusSwitchToCapturedTab()); }
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_css_background_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_css_background_images.html new file mode 100644 index 0000000..1c6bc65a --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_css_background_images.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> + +<head> + <title>LCP Breakdown Timings: Images Loaded As CSS Background</title> + <style> + div { + background-image: url("/images/lcp-256x256.png"); + height: 100px; + width: 80px; + } + </style> + <script src="resources/util.js"></script> +</head> + +<body> + <div></div> +</body> + +</html> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_document_written_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_document_written_images.html new file mode 100644 index 0000000..cfc7120 --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_document_written_images.html
@@ -0,0 +1,11 @@ +<!DOCTYPE html> +<head> + <title>LCP Breakdown Timings: Image Added By document.write()</title> + <script src="resources/util.js"></script> +</head> + +<body> + <script> + document.write('<img src="/images/lcp-256x256.png">'); + </script> +</body> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_empty.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_empty.html new file mode 100644 index 0000000..75d79b5 --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_empty.html
@@ -0,0 +1,3 @@ +<!DOCTYPE html> +<title>LCP Breakdown Timings: DOM Method Added Images</title> +<script src="resources/util.js"></script> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_manual_lazy_loading_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_manual_lazy_loading_images.html new file mode 100644 index 0000000..ab2fc50 --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_manual_lazy_loading_images.html
@@ -0,0 +1,39 @@ +<!DOCTYPE html> +<title>LCP Breakdown Timings: Images Lazily Loaded By Script</title> +<script src="resources/util.js"></script> + +<div> + <img style="width: 200px; height:200vh;"> + <img id="test_image" style="width: 200px; height:200px; left: 0px" data-src="/images/lcp-16x16.png"> +</div> + +<script> + + const loadImageOnIntersection = async (entries) => { + entries.forEach(async (entry) => { + if (entry.isIntersecting) { + await new Promise(resolve => { + entry.target.addEventListener('load', resolve); + entry.target.src = entry.target.dataset.src; + }) + entry.target.src = entry.target.dataset.src; + observer.unobserve(entry.target); + } + }); + } + + const observer = new IntersectionObserver(loadImageOnIntersection); + observer.observe(document.getElementById('test_image')); + + const scrollToLoadImage = async (resource) => { + await new Promise(resolve => { + // Do not use buffered=true so that it verifies the image is loaded lazily. + const observer = new PerformanceObserver((list) => { + if (list.getEntries().filter(e => e.name.includes(resource)).length > 0) { + resolve(); + } + }).observe({ type: "resource" }); + window.scroll(100, 1100); + }); + } +</script> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_memcache_served_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_memcache_served_images.html new file mode 100644 index 0000000..f2edf0bc --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_memcache_served_images.html
@@ -0,0 +1,5 @@ +<!DOCTYPE html> +<title>LCP Breakdown Timings: MemCache Served Images</title> +<script src="resources/util.js"></script> + +<img src="/green.png"> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_native_lazy_loading_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_native_lazy_loading_images.html new file mode 100644 index 0000000..f2be941 --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_native_lazy_loading_images.html
@@ -0,0 +1,5 @@ +<!DOCTYPE html> +<title>LCP Breakdown Timings: Images With Native Lazy Loading Tag</title> +<script src="resources/util.js"></script> + +<img src="/images/lcp-16x16.png" loading="lazy"> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_preloaded_cacheable_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_preloaded_cacheable_images.html new file mode 100644 index 0000000..00ea9d4c --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_preloaded_cacheable_images.html
@@ -0,0 +1,5 @@ +<!DOCTYPE html> +<title>LCP Breakdown Timings: Preloaded Cacheable Images</title> +<script src="resources/util.js"></script> + +<link rel="preload" as="image" href="/green.png">
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_preloaded_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_preloaded_images.html new file mode 100644 index 0000000..06fbf32 --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_preloaded_images.html
@@ -0,0 +1,5 @@ +<!DOCTYPE html> +<title>LCP Breakdown Timings: Preloaded Images</title> +<script src="resources/util.js"></script> + +<link rel="preload" as="image" href="/images/lcp-16x16.png"> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_srcset_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_srcset_images.html new file mode 100644 index 0000000..5a64f1c --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_srcset_images.html
@@ -0,0 +1,5 @@ +<!DOCTYPE html> +<title>LCP Breakdown Timings: Images With srcset Tag </title> +<script src="resources/util.js"></script> + +<img src="/images/lcp-16x16.png" srcset="/images/lcp-256x256.png, /images/lcp-100x50.png"> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_written_as_html_images.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_written_as_html_images.html new file mode 100644 index 0000000..0e82ac17 --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_breakdown_timings_written_as_html_images.html
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<title>LCP Breakdown Timings: Image Added As HTML Content</title> + +<head> + <script src="resources/util.js"></script> +</head> + +<body> + <div id="test"></div>div> + <script> + const WriteToDomAsInnerHtml = () => { + var el = document.getElementById("test"); + el.innerHTML = '<img src="/images/lcp-256x256.png">'; + } + const WriteToDomAsOuterHtml = () => { + var el = document.getElementById("test"); + el.outerHTML = '<img src="/images/lcp-256x256.png">'; + } + + const AddImageByScript = (fn) => { + if (document.readyState === 'ready' || document.readyState === 'complete') { + fn(); + } else { + document.onreadystatechange = function () { + if (document.readyState == "complete") { + fn(); + } + } + } + } + </script> +</body> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/lcp_broken_image_icon.html b/chrome/browser/page_load_metrics/integration_tests/data/lcp_broken_image_icon.html new file mode 100644 index 0000000..30de4dc --- /dev/null +++ b/chrome/browser/page_load_metrics/integration_tests/data/lcp_broken_image_icon.html
@@ -0,0 +1,22 @@ +<!DOCTYPE HTML> +<html> + +<head> + <title>Broken Image Icon Should Not Be LCP</title> +</head> + +<body> + <img src="../non-existent-image.jpg"> + <script> + const GetLCP = async () => { + return await new Promise(resolve => { + new PerformanceObserver((entryList, observer) => { + resolve(entryList.getEntries().length); + observer.disconnect(); + }).observe({ type: 'largest-contentful-paint', buffered: true }); + + setTimeout(() => { resolve(0); }, 100); + }); + }; + </script> +</body> \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/data/resources/util.js b/chrome/browser/page_load_metrics/integration_tests/data/resources/util.js index 0002386d..a5cb4ca 100644 --- a/chrome/browser/page_load_metrics/integration_tests/data/resources/util.js +++ b/chrome/browser/page_load_metrics/integration_tests/data/resources/util.js
@@ -46,3 +46,41 @@ hadRecentInput: entry.hadRecentInput, })); } + +const getLcp = async (resource) => { + return await new Promise(resolve => { + const observer = new PerformanceObserver((list) => { + const entries = list.getEntries().filter(e => e.url.includes(resource)); + if (entries.length > 0) { + resolve(entries[entries.length - 1].startTime) + } + }); + observer.observe({ type: "largest-contentful-paint", buffered: true }); + }) +} + +const getRequestStart = async (name) => { + let resource_timings = + performance.getEntriesByType('resource').filter(e => e.name.includes(name)); + return resource_timings[0].requestStart; +} + +const getResponseEnd = async (name) => { + let resource_timings = + performance.getEntriesByType('resource').filter(e => e.name.includes(name)); + return resource_timings[0].responseEnd; +} +const getStartTime = async (name) => { + let resource_timings = + performance.getEntriesByType('resource').filter(e => e.name.includes(name)); + return resource_timings[0].startTime; +} + +const addImageWithUrl = async (url) => { + await new Promise(resolve => { + const img = document.createElement('img'); + img.addEventListener('load', resolve); + img.src = url; + document.body.appendChild(img); + }); +} \ No newline at end of file
diff --git a/chrome/browser/page_load_metrics/integration_tests/largest_contentful_paint_browsertest.cc b/chrome/browser/page_load_metrics/integration_tests/largest_contentful_paint_browsertest.cc index aa95288..b28f316 100644 --- a/chrome/browser/page_load_metrics/integration_tests/largest_contentful_paint_browsertest.cc +++ b/chrome/browser/page_load_metrics/integration_tests/largest_contentful_paint_browsertest.cc
@@ -5,6 +5,7 @@ #include <algorithm> #include <memory> #include <string> +#include <vector> #include "base/command_line.h" #include "base/feature_list.h" @@ -23,6 +24,7 @@ #include "content/public/browser/render_widget_host_view.h" #include "content/public/common/content_switches.h" #include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" #include "content/public/test/hit_test_region_observer.h" #include "services/metrics/public/cpp/ukm_builders.h" #include "third_party/blink/public/common/features.h" @@ -974,6 +976,320 @@ web_exposed_lcp, epsilon); } +class LcpBreakdownTimingsTest : public MetricIntegrationTest { + protected: + void RunTest(std::string test_url, + std::string resource, + std::string script = "") { + Start(); + auto waiter0 = + std::make_unique<page_load_metrics::PageLoadMetricsTestWaiter>( + web_contents()); + + waiter0->AddMinimumLargestContentfulPaintImageExpectation(1); + + // Navigate to the test page. + Load(test_url); + + // Execute script if any. + if (!script.empty()) { + EXPECT_EQ(EvalJs(web_contents()->GetPrimaryMainFrame(), script).error, + ""); + } + + waiter0->Wait(); + + // Retrieve resource timing timings of initial load for validation. + request_start_list_[0] = + EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace("getRequestStart($1)", resource)) + .ExtractDouble(); + + response_end_list_[0] = + EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace("getResponseEnd($1)", resource)) + .ExtractDouble(); + + start_time_list_[0] = + EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace("getStartTime($1)", resource)) + .ExtractDouble(); + + timeline_lcp_list_[0] = EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace("getLcp($1)", resource)) + .ExtractDouble(); + + auto waiter1 = + std::make_unique<page_load_metrics::PageLoadMetricsTestWaiter>( + web_contents()); + + waiter1->AddMinimumLargestContentfulPaintImageExpectation(1); + + // Refresh + web_contents()->GetController().Reload(content::ReloadType::NORMAL, false); + + EXPECT_TRUE(content::WaitForLoadStop(web_contents())); + + // Execute script if any. + if (!script.empty()) { + EXPECT_EQ(EvalJs(web_contents()->GetPrimaryMainFrame(), script).error, + ""); + } + + waiter1->Wait(); + + // Retrieve resource timing timings after refresh for validation. + request_start_list_[1] = + EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace("getRequestStart($1)", resource)) + .ExtractDouble(); + + response_end_list_[1] = + EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace("getResponseEnd($1)", resource)) + .ExtractDouble(); + + start_time_list_[1] = + EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace("getStartTime($1)", resource)) + .ExtractDouble(); + + timeline_lcp_list_[1] = EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace("getLcp($1)", resource)) + .ExtractDouble(); + + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GURL("about:blank"))); + } + + void Validate() { + std::vector<double> ttfb_list = GetPageLoadMetricsAsList( + PageLoad::kMainFrameResource_NavigationStartToReceiveHeadersStartName); + + discovery_time_list_ = GetPageLoadMetricsAsList( + PageLoad::kPaintTiming_LargestContentfulPaintImageDiscoveryTimeName); + + load_start_list_ = GetPageLoadMetricsAsList( + PageLoad::kPaintTiming_LargestContentfulPaintImageLoadStartName); + + load_end_list_ = GetPageLoadMetricsAsList( + PageLoad::kPaintTiming_LargestContentfulPaintImageLoadEndName); + + lcp_list_ = GetPageLoadMetricsAsList( + PageLoad::kPaintTiming_NavigationToLargestContentfulPaint2Name); + + EXPECT_EQ(discovery_time_list_.size(), 2u); + + EXPECT_EQ(load_start_list_.size(), 2u); + + EXPECT_EQ(load_end_list_.size(), 2u); + + EXPECT_EQ(lcp_list_.size(), 2u); + + // Validate timings for initial load. + EXPECT_LT(ttfb_list[0], discovery_time_list_[0]); + + EXPECT_LT(discovery_time_list_[0], load_start_list_[0]); + + EXPECT_LT(load_start_list_[0], load_end_list_[0]); + + EXPECT_LT(load_end_list_[0], lcp_list_[0]); + + // LCP breadown timings should be the same as resource timings. + EXPECT_NEAR(discovery_time_list_[0], start_time_list_[0], epsilon_); + + EXPECT_NEAR(load_start_list_[0], request_start_list_[0], epsilon_); + + EXPECT_NEAR(load_end_list_[0], response_end_list_[0], epsilon_); + + EXPECT_NEAR(lcp_list_[0], timeline_lcp_list_[0], epsilon_); + + // Validate timings after refresh. LCP breakdown timings could be equal if + // the image is loaded from memory. Hence we use EXPECT_LE instead of + // EXPECT_LT. + EXPECT_LE(ttfb_list[1], discovery_time_list_[1]); + + EXPECT_LE(discovery_time_list_[1], load_start_list_[1]); + + EXPECT_LE(load_start_list_[1], load_end_list_[1]); + + EXPECT_LE(load_end_list_[1], lcp_list_[1]); + + // LCP breadown timings should be the same as resource timings. + EXPECT_NEAR(discovery_time_list_[1], start_time_list_[1], epsilon_); + + EXPECT_NEAR(load_start_list_[1], request_start_list_[1], epsilon_); + + EXPECT_NEAR(load_end_list_[1], response_end_list_[1], epsilon_); + + EXPECT_NEAR(lcp_list_[1], timeline_lcp_list_[1], epsilon_); + } + + void ValidateForMemCacheLoadedImages() { + EXPECT_EQ(discovery_time_list_[1], load_start_list_[1]); + + EXPECT_EQ(load_start_list_[1], load_end_list_[1]); + } + + private: + std::array<double, 2> start_time_list_; + std::array<double, 2> request_start_list_; + std::array<double, 2> response_end_list_; + std::array<double, 2> timeline_lcp_list_; + std::vector<double> discovery_time_list_; + std::vector<double> load_start_list_; + std::vector<double> load_end_list_; + std::vector<double> lcp_list_; + double epsilon_ = 1.5; +}; + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_MemCacheServedImage DISABLED_MemCacheServedImage +#else +#define MAYBE_MemCacheServedImage MemCacheServedImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_MemCacheServedImage) { + std::string test_url = "/lcp_breakdown_timings_memcache_served_images.html"; + std::string resource = "green.png"; + + RunTest(test_url, resource); + Validate(); + + // Since after refresh, the image is loaded from mem cache, the discovery_time + // load start and load end should be the same. + ValidateForMemCacheLoadedImages(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_PreloadedImage DISABLED_PreloadedImage +#else +#define MAYBE_PreloadedImage PreloadedImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_PreloadedImage) { + std::string test_url = "/lcp_breakdown_timings_preloaded_images.html"; + std::string resource = "/images/lcp-16x16.png"; + RunTest(test_url, resource, + content::JsReplace("addImageWithUrl($1)", resource)); + Validate(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_PreloadedCacheableImage DISABLED_PreloadedCacheableImage +#else +#define MAYBE_PreloadedCacheableImage PreloadedCacheableImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_PreloadedCacheableImage) { + std::string test_url = + "/lcp_breakdown_timings_preloaded_cacheable_images.html"; + std::string resource = "green.png"; + RunTest(test_url, resource, + content::JsReplace("addImageWithUrl($1)", resource)); + Validate(); + ValidateForMemCacheLoadedImages(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_NativeLazyLoadingImage DISABLED_NativeLazyLoadingImage +#else +#define MAYBE_NativeLazyLoadingImage NativeLazyLoadingImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_NativeLazyLoadingImage) { + std::string test_url = + "/lcp_breakdown_timings_native_lazy_loading_images.html"; + std::string resource = "lcp-16x16.png"; + RunTest(test_url, resource); + Validate(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_ManualLazyLoadingImage DISABLED_ManualLazyLoadingImage +#else +#define MAYBE_ManualLazyLoadingImage ManualLazyLoadingImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_ManualLazyLoadingImage) { + std::string test_url = + "/lcp_breakdown_timings_manual_lazy_loading_images.html"; + std::string resource = "lcp-16x16.png"; + RunTest(test_url, resource, + content::JsReplace("(async ()=>{await scrollToLoadImage($1);})()", + resource)); + Validate(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_CssBackgroundImage DISABLED_CssBackgroundImage +#else +#define MAYBE_CssBackgroundImage CssBackgroundImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_CssBackgroundImage) { + std::string test_url = "/lcp_breakdown_timings_css_background_images.html"; + std::string resource = "lcp-256x256.png"; + RunTest(test_url, resource); + Validate(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_WrittenAsInnerHtmlImage DISABLED_WrittenAsInnerHtmlImage +#else +#define MAYBE_WrittenAsInnerHtmlImage WrittenAsInnerHtmlImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_WrittenAsInnerHtmlImage) { + std::string test_url = "/lcp_breakdown_timings_written_as_html_images.html"; + std::string resource = "/images/lcp-256x256.png"; + RunTest(test_url, resource, "AddImageByScript(WriteToDomAsInnerHtml);"); + Validate(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_WrittenAsOuterHtmlImage DISABLED_WrittenAsOuterHtmlImage +#else +#define MAYBE_WrittenAsOuterHtmlImage WrittenAsOuterHtmlImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_WrittenAsOuterHtmlImage) { + std::string test_url = "/lcp_breakdown_timings_written_as_html_images.html"; + std::string resource = "/images/lcp-256x256.png"; + RunTest(test_url, resource, "AddImageByScript(WriteToDomAsOuterHtml);"); + Validate(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_DocumentWrittenImage DISABLED_DocumentWrittenImage +#else +#define MAYBE_DocumentWrittenImage DocumentWrittenImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_DocumentWrittenImage) { + std::string test_url = "/lcp_breakdown_timings_document_written_images.html"; + std::string resource = "/images/lcp-256x256.png"; + RunTest(test_url, resource); + Validate(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_SrcSetImage DISABLED_SrcSetImage +#else +#define MAYBE_SrcSetImage SrcSetImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_SrcSetImage) { + std::string test_url = "/lcp_breakdown_timings_srcset_images.html"; + std::string resource = "lcp-256x256.png"; + + RunTest(test_url, resource); + Validate(); +} + +#if BUILDFLAG(IS_CHROMEOS_LACROS) +#define MAYBE_DomMethodAddedImage DISABLED_DomMethodAddedImage +#else +#define MAYBE_DomMethodAddedImage DomMethodAddedImage +#endif +IN_PROC_BROWSER_TEST_F(LcpBreakdownTimingsTest, MAYBE_DomMethodAddedImage) { + std::string test_url = "/lcp_breakdown_timings_empty.html"; + std::string resource = "/images/lcp-256x256.png"; + + RunTest(test_url, resource, + content::JsReplace("addImageWithUrl($1)", resource)); + Validate(); +} + IN_PROC_BROWSER_TEST_F(MetricIntegrationTest, LCPBreakdownTimings_ImageAndLargerText) { Start(); @@ -1138,3 +1454,25 @@ ExpectUKMPageLoadMetricNonExistenceWithExpectedPageLoadMetricsNum( 2ul, PageLoad::kPaintTiming_LargestContentfulPaintImageLoadEndName); } + +IN_PROC_BROWSER_TEST_F(MetricIntegrationTest, + LCPBreakdownTimings_NoLcpForBrokenImage) { + Start(); + + auto waiter = std::make_unique<page_load_metrics::PageLoadMetricsTestWaiter>( + web_contents()); + waiter->AddPageExpectation(page_load_metrics::PageLoadMetricsTestWaiter:: + TimingField::kFirstContentfulPaint); + Load("/lcp_broken_image_icon.html"); + + waiter->Wait(); + + // Expect no LCP entry is emitted to performance timeline. + EXPECT_EQ(EvalJs(web_contents()->GetPrimaryMainFrame(), "GetLCP();"), 0); + + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GURL("about:blank"))); + + // No LCP is recorded. + ExpectUKMPageLoadMetricNonExistence( + PageLoad::kPaintTiming_NavigationToLargestContentfulPaint2Name); +}
diff --git a/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.cc b/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.cc index b79fed8..b91e6ce 100644 --- a/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.cc +++ b/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.cc
@@ -154,6 +154,18 @@ return std::move(kv->second); } +std::vector<double> MetricIntegrationTest::GetPageLoadMetricsAsList( + base::StringPiece metric_name) { + std::vector<double> metrics; + for (auto* entry : + ukm_recorder_->GetEntriesByName(ukm::builders::PageLoad::kEntryName)) { + if (auto* rs = ukm_recorder_->GetEntryMetric(entry, metric_name)) { + metrics.push_back(*rs); + } + } + return metrics; +} + void MetricIntegrationTest::ExpectUKMPageLoadMetric(StringPiece metric_name, int64_t expected_value) { ukm::mojom::UkmEntryPtr entry = GetEntry();
diff --git a/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h b/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h index c745988..7a9834c 100644 --- a/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h +++ b/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h
@@ -90,6 +90,8 @@ ukm::TestAutoSetUkmRecorder& ukm_recorder() { return *ukm_recorder_; } base::HistogramTester& histogram_tester() { return *histogram_tester_; } + std::vector<double> GetPageLoadMetricsAsList(base::StringPiece metric_name); + // Checks for a single UKM entry under the PageLoad event with the specified // metric name and value. void ExpectUKMPageLoadMetric(base::StringPiece metric_name,
diff --git a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.cc b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.cc index 7a513a7..b2fb2ea 100644 --- a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.cc +++ b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.cc
@@ -16,7 +16,7 @@ #include "base/sequence_checker.h" #include "base/time/time.h" #include "build/build_config.h" -#include "components/performance_manager/public/execution_context/execution_context.h" +#include "components/performance_manager/public/features.h" #include "components/performance_manager/public/graph/frame_node.h" #include "components/performance_manager/public/graph/graph.h" #include "components/performance_manager/public/graph/graph_operations.h" @@ -24,6 +24,8 @@ #include "components/performance_manager/public/graph/process_node.h" #include "components/performance_manager/public/graph/worker_node.h" #include "components/performance_manager/public/resource_attribution/attribution_helpers.h" +#include "components/performance_manager/public/resource_attribution/query_results.h" +#include "components/performance_manager/public/resource_attribution/resource_contexts.h" #include "content/public/browser/browser_child_process_host.h" #include "content/public/common/process_type.h" @@ -31,7 +33,8 @@ namespace { -using execution_context::ExecutionContext; +using resource_attribution::PageContext; +using resource_attribution::ResourceContext; class CPUMeasurementDelegateImpl final : public PageTimelineCPUMonitor::CPUMeasurementDelegate { @@ -81,6 +84,12 @@ void PageTimelineCPUMonitor::SetCPUMeasurementDelegateFactoryForTesting( CPUMeasurementDelegate::FactoryCallback factory) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (features::kUseResourceAttributionCPUMonitor.Get()) { + cpu_measurement_monitor_ + .SetCPUMeasurementDelegateFactoryForTesting( // IN_TEST + std::move(factory)); + return; + } // Ensure that all CPU measurements use the same delegate. CHECK(cpu_measurement_map_.empty()); if (factory.is_null()) { @@ -93,13 +102,20 @@ void PageTimelineCPUMonitor::StartMonitoring(Graph* graph) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - graph->AddProcessNodeObserver(this); CHECK(last_measurement_time_.is_null()); last_measurement_time_ = base::TimeTicks::Now(); - // Start monitoring CPU usage for all existing processes. Can't read their CPU - // usage until they have a pid assigned. + if (features::kUseResourceAttributionCPUMonitor.Get()) { + CHECK(cached_cpu_measurements_.empty()); + cpu_measurement_monitor_.StartMonitoring(graph); + return; + } + + graph->AddProcessNodeObserver(this); + + // Start monitoring CPU usage for all existing processes. Can't read their + // CPU usage until they have a pid assigned. for (const ProcessNode* process_node : graph->GetAllProcessNodes()) { if (process_node->GetProcessType() == content::PROCESS_TYPE_RENDERER && process_node->GetProcessId() != base::kNullProcessId) { @@ -110,10 +126,16 @@ void PageTimelineCPUMonitor::StopMonitoring(Graph* graph) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - cpu_measurement_map_.clear(); CHECK(!last_measurement_time_.is_null()); last_measurement_time_ = base::TimeTicks(); - graph->RemoveProcessNodeObserver(this); + + if (features::kUseResourceAttributionCPUMonitor.Get()) { + cpu_measurement_monitor_.StopMonitoring(); + cached_cpu_measurements_.clear(); + } else { + cpu_measurement_map_.clear(); + graph->RemoveProcessNodeObserver(this); + } } PageTimelineCPUMonitor::CPUUsageMap @@ -124,9 +146,14 @@ CHECK(!last_measurement_time_.is_null()); CPUUsageMap cpu_usage_map; const base::TimeTicks now = base::TimeTicks::Now(); - for (auto& [process_node, cpu_measurement] : cpu_measurement_map_) { - cpu_measurement.MeasureAndDistributeCPUUsage( - process_node, last_measurement_time_, now, cpu_usage_map); + if (features::kUseResourceAttributionCPUMonitor.Get()) { + cpu_usage_map = + UpdateResourceAttributionCPUMeasurements(now - last_measurement_time_); + } else { + for (auto& [process_node, cpu_measurement] : cpu_measurement_map_) { + cpu_measurement.MeasureAndDistributeCPUUsage( + process_node, last_measurement_time_, now, cpu_usage_map); + } } last_measurement_time_ = now; return cpu_usage_map; @@ -136,10 +163,16 @@ double PageTimelineCPUMonitor::EstimatePageCPUUsage( const PageNode* page_node, const CPUUsageMap& cpu_usage_map) { + if (features::kUseResourceAttributionCPUMonitor.Get()) { + // Page estimates are stored directly in `cpu_usage_map`. + const auto it = cpu_usage_map.find(page_node->GetResourceContext()); + return it == cpu_usage_map.end() ? 0.0 : it->second; + } + double page_cpu_usage = 0.0; auto accumulate_cpu_usage = [&page_cpu_usage, - &cpu_usage_map](const ExecutionContext* ec) { - const auto it = cpu_usage_map.find(ec); + &cpu_usage_map](const ResourceContext& context) { + const auto it = cpu_usage_map.find(context); // A context might be missing from the map if there was an error measuring // the CPU usage of its process. if (it != cpu_usage_map.end()) { @@ -148,11 +181,11 @@ }; GraphOperations::VisitFrameTreePreOrder(page_node, [&accumulate_cpu_usage]( const FrameNode* f) { - accumulate_cpu_usage(ExecutionContext::From(f)); + accumulate_cpu_usage(f->GetResourceContext()); // TODO(crbug.com/1410503): Handle non-dedicated workers, which could appear // as children of multiple frames. f->VisitChildDedicatedWorkers([&accumulate_cpu_usage](const WorkerNode* w) { - accumulate_cpu_usage(ExecutionContext::From(w)); + accumulate_cpu_usage(w->GetResourceContext()); return true; }); return true; @@ -163,6 +196,7 @@ void PageTimelineCPUMonitor::OnProcessLifetimeChange( const ProcessNode* process_node) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + CHECK(!features::kUseResourceAttributionCPUMonitor.Get()); if (last_measurement_time_.is_null()) { // Not monitoring CPU usage yet. CHECK(cpu_measurement_map_.empty()); @@ -188,11 +222,13 @@ void PageTimelineCPUMonitor::OnBeforeProcessNodeRemoved( const ProcessNode* process_node) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + CHECK(!features::kUseResourceAttributionCPUMonitor.Get()); cpu_measurement_map_.erase(process_node); } void PageTimelineCPUMonitor::MonitorCPUUsage(const ProcessNode* process_node) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + CHECK(!features::kUseResourceAttributionCPUMonitor.Get()); // Only measure renderers. CHECK_EQ(process_node->GetProcessType(), content::PROCESS_TYPE_RENDERER); const auto& [it, was_inserted] = cpu_measurement_map_.emplace( @@ -201,6 +237,107 @@ CHECK(was_inserted); } +PageTimelineCPUMonitor::CPUUsageMap +PageTimelineCPUMonitor::UpdateResourceAttributionCPUMeasurements( + base::TimeDelta measurement_interval) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + CHECK(features::kUseResourceAttributionCPUMonitor.Get()); + if (measurement_interval.is_zero()) { + // No time passed to measure. + return CPUUsageMap(); + } + CHECK(measurement_interval.is_positive()); + + // Swap a new measurement into `cached_cpu_measurements_`, storing the + // previous contents in `previous_measurements`. + std::map<ResourceContext, resource_attribution::CPUTimeResult> + previous_measurements = + std::exchange(cached_cpu_measurements_, + cpu_measurement_monitor_.UpdateAndGetCPUMeasurements()); + + CPUUsageMap cpu_usage_map; + for (const auto& [context, result] : cached_cpu_measurements_) { + if (!resource_attribution::ContextIs<PageContext>(context)) { + continue; + } + + // Let time A be the last time UpdateCPUMeasurements() was called (with the + // results saved in `previous_measurements`), or the time when + // StartMonitoring() was called if this is the first one + // (`previous_measurements` will be empty). + // + // Let time B be current time. (`measurement_interval` is A..B.) + // + // There are 4 cases: + // + // 1. The context was created at time C, between A and B. (It will not be + // found in `previous_measurements`). + // + // This snapshot should include 0% CPU for time A..C, and the measured % of + // CPU for time C..B. + // + // A C B + // |----+---------| + // | 0% | X% | + // + // CPU(C..B) is `result.cumulative_cpu`. + // `result.start_time` is C. + // `result.metadata.measurement_time` is B. + // + // 2. The context existed for the entire duration A..B. + // + // This snapshot should include the measured % of CPU for the whole time + // A..B. + // + // A B + // |--------------| + // | X% | + // + // CPU(A..B) is `result.cumulative_cpu - + // previous_measurements[context].cumulative_cpu`. + // `result.start_time` <= A. + // `result.metadata.measurement_time` is B. + // + // 3. Context created before time A, exited at time D, between A and B. + // + // The snapshot should include the measured % of CPU for time A..D, and 0% + // CPU for time D..B. + // + // A D B + // |---------+----| + // | X% | 0% | + // + // CPU(A..D) is `result.cumulative_cpu - + // previous_measurements[context].cumulative_cpu`. + // `result.start_time` <= A. + // `result.metadata.measurement_time` is D. + // + // 4. Context created at time C and exited at time D, both between A and B. + // (context is not found in `previous_measurements`. + // `result.cumulative_cpu` ends at time D, which is + // `result.metadata.measurement_time`.) + // + // The snapshot should include the measured % of CPU for time C..D, and 0% + // CPU for the rest. + // + // A C D B + // |----+----+----| + // | 0% | X% | 0% | + // + // CPU(C..D) is `result.cumulative_cpu`. + // `result.start_time` is C. + // `result.metadata.measurement_time` is D. + base::TimeDelta current_cpu = result.cumulative_cpu; + const auto it = previous_measurements.find(context); + if (it != previous_measurements.end()) { + current_cpu -= it->second.cumulative_cpu; + } + CHECK(!current_cpu.is_negative()); + cpu_usage_map.emplace(context, current_cpu / measurement_interval); + } + return cpu_usage_map; +} + PageTimelineCPUMonitor::CPUMeasurement::CPUMeasurement( std::unique_ptr<CPUMeasurementDelegate> delegate) : delegate_(std::move(delegate)), @@ -351,10 +488,10 @@ resource_attribution::SplitResourceAmongFramesAndWorkers( current_cpu_proportion, process_node, [&cpu_usage_map](const FrameNode* f, double cpu) { - cpu_usage_map.emplace(ExecutionContext::From(f), cpu); + cpu_usage_map.emplace(f->GetResourceContext(), cpu); }, [&cpu_usage_map](const WorkerNode* w, double cpu) { - cpu_usage_map.emplace(ExecutionContext::From(w), cpu); + cpu_usage_map.emplace(w->GetResourceContext(), cpu); }); }
diff --git a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.h b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.h index 87a5488..c52ce20 100644 --- a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.h +++ b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.h
@@ -8,20 +8,18 @@ #include <map> #include <memory> -#include "base/functional/callback_forward.h" #include "base/sequence_checker.h" #include "base/time/time.h" #include "components/performance_manager/public/graph/process_node.h" +#include "components/performance_manager/public/resource_attribution/cpu_measurement_monitor.h" +#include "components/performance_manager/public/resource_attribution/query_results.h" +#include "components/performance_manager/public/resource_attribution/resource_contexts.h" namespace performance_manager { class Graph; class PageNode; -namespace execution_context { -class ExecutionContext; -} - namespace metrics { // Periodically collect CPU usage from process nodes, for the UKM logged in @@ -32,26 +30,21 @@ // CPUMeasurementDelegate object will be created for each ProcessNode to be // measured. Can be overridden for testing by passing a factory callback to // SetCPUMeasurementDelegateFactoryForTesting(). - class CPUMeasurementDelegate { - public: - using FactoryCallback = - base::RepeatingCallback<std::unique_ptr<CPUMeasurementDelegate>( - const ProcessNode*)>; - - CPUMeasurementDelegate() = default; - virtual ~CPUMeasurementDelegate() = default; - - // Requests CPU usage for the process. This is [[nodiscard]] to match the - // semantics of ProcessMetrics::GetCumulativeCPUUsage(). - [[nodiscard]] virtual base::TimeDelta GetCumulativeCPUUsage() = 0; - }; + using CPUMeasurementDelegate = + resource_attribution::CPUMeasurementMonitor::CPUMeasurementDelegate; // A map from FrameNode's or WorkerNode's to the estimated CPU usage of each. // The estimate is a fraction in the range 0% to 100% * // SysInfo::NumberOfProcessors(), the same as the return value of // ProcessMetrics::GetPlatformIndependentCPUUsage(). - using CPUUsageMap = - std::map<const execution_context::ExecutionContext*, double>; + // + // If the kUseResourceAttributionCPUMonitor feature parameter is enabled, the + // map is keyed by PageNode instead since `cpu_measurement_monitor_` returns + // page estimates. In production the FrameNode and WorkerNode values are only + // ever used as inputs to EstimatePageCPUUsage() to get page estimates, so + // it's more efficient to only store the final page estimates when they're + // available. + using CPUUsageMap = std::map<resource_attribution::ResourceContext, double>; PageTimelineCPUMonitor(); ~PageTimelineCPUMonitor() override; @@ -72,11 +65,13 @@ // Updates the CPU measurements for each ProcessNode being tracked and returns // the estimated CPU usage of each frame and worker in those processes since - // the last time UpdateCPUMeasurements() was called. + // the last time UpdateCPUMeasurements() was called . CPUUsageMap UpdateCPUMeasurements(); // Helper to estimate the CPU usage of a PageNode given the estimates for all - // frames and workers. + // frames and workers. If the kUseResourceAttributionCPUMonitor feature + // parameter is enabled, this simply looks up `page_node` in `cpu_usage_map` + // which already includes page estimates. static double EstimatePageCPUUsage(const PageNode* page_node, const CPUUsageMap& cpu_usage_map); @@ -126,6 +121,12 @@ // `cpu_measurement_map_`. void MonitorCPUUsage(const ProcessNode* process_node); + // Uses `cpu_measurement_monitor_` to update CPU measurements. Called from + // UpdateCPUMeasurements() if the kUseResourceAttributionCPUMonitor feature + // parameter is enabled. + CPUUsageMap UpdateResourceAttributionCPUMeasurements( + base::TimeDelta measurement_interval); + SEQUENCE_CHECKER(sequence_checker_); // Map of process nodes to ProcessMetrics used to measure CPU usage. @@ -140,6 +141,19 @@ // each ProcessNode being measured. CPUMeasurementDelegate::FactoryCallback cpu_measurement_delegate_factory_ GUARDED_BY_CONTEXT(sequence_checker_); + + // If the kUseResourceAttributionCPUMonitor feature parameter is enabled, + // PageTimelineCPUMonitor will get CPU measurements from this, otherwise it + // will perform its own measurements. + resource_attribution::CPUMeasurementMonitor cpu_measurement_monitor_ + GUARDED_BY_CONTEXT(sequence_checker_); + + // If the kUseResourceAttributionCPUMonitor feature parameter is enabled, this + // will cache the measurements of each page when UpdateCPUMeasurements is + // called. Otherwise it's unused. + std::map<resource_attribution::ResourceContext, + resource_attribution::CPUTimeResult> + cached_cpu_measurements_ GUARDED_BY_CONTEXT(sequence_checker_); }; } // namespace metrics
diff --git a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor_unittest.cc b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor_unittest.cc index b5d749c..9f1b935 100644 --- a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor_unittest.cc +++ b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor_unittest.cc
@@ -19,6 +19,7 @@ #include "base/process/process_handle.h" #include "base/run_loop.h" #include "base/test/bind.h" +#include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" #include "base/test/test_timeouts.h" #include "base/test/test_waitable_event.h" @@ -29,9 +30,10 @@ #include "components/performance_manager/graph/page_node_impl.h" #include "components/performance_manager/graph/process_node_impl.h" #include "components/performance_manager/graph/worker_node_impl.h" -#include "components/performance_manager/public/execution_context/execution_context.h" +#include "components/performance_manager/public/features.h" #include "components/performance_manager/public/graph/process_node.h" #include "components/performance_manager/public/performance_manager.h" +#include "components/performance_manager/public/resource_attribution/resource_contexts.h" #include "components/performance_manager/test_support/graph_test_harness.h" #include "components/performance_manager/test_support/mock_graphs.h" #include "components/performance_manager/test_support/test_harness_helper.h" @@ -49,12 +51,13 @@ namespace { using ::testing::_; +using ::testing::AnyOf; using ::testing::DoubleEq; using ::testing::Eq; using ::testing::IsEmpty; using ::testing::Optional; -using execution_context::ExecutionContext; +using resource_attribution::ResourceContext; constexpr base::TimeDelta kTimeBetweenMeasurements = base::Minutes(5); @@ -64,6 +67,10 @@ TestNodeWrapper<ProcessNodeImpl> process_node; TestNodeWrapper<PageNodeImpl> page_node; TestNodeWrapper<FrameNodeImpl> frame_node; + + // The resource context of `frame_node`, or `page_node` if the + // kUseResourceAttributionCPUMonitor feature param is enabled. + ResourceContext resource_context; }; // State of a simulated process for CPU measurements. @@ -121,8 +128,8 @@ absl::optional<double> GetMeasurementResult( const PageTimelineCPUMonitor::CPUUsageMap& cpu_usage_map, - const ExecutionContext* ec) { - const auto it = cpu_usage_map.find(ec); + const ResourceContext& context) { + const auto it = cpu_usage_map.find(context); if (it == cpu_usage_map.end()) { return absl::nullopt; } @@ -132,15 +139,14 @@ absl::optional<double> GetMeasurementResult( const PageTimelineCPUMonitor::CPUUsageMap& cpu_usage_map, const TestNodeWrapper<FrameNodeImpl>& frame_wrapper) { - return GetMeasurementResult(cpu_usage_map, - ExecutionContext::From(frame_wrapper.get())); + return GetMeasurementResult(cpu_usage_map, frame_wrapper->resource_context()); } absl::optional<double> GetMeasurementResult( const PageTimelineCPUMonitor::CPUUsageMap& cpu_usage_map, const TestNodeWrapper<WorkerNodeImpl>& worker_wrapper) { return GetMeasurementResult(cpu_usage_map, - ExecutionContext::From(worker_wrapper.get())); + worker_wrapper->resource_context()); } void RunOnPMSequence(base::OnceClosure closure) { @@ -164,15 +170,39 @@ run_loop.Run(); } +// A GMock matcher that will match 0.0 if the kUseResourceAttributionCPUMonitor +// feature param is enabled, or absl::nullopt if not. +// +// On error conditions, UpdateCPUMeasurements() will not include an entry for +// any frame or worker in the process with the error, so GetMeasurementResult() +// will return nullopt. But with kUseResourceAttributionCPUMonitor, +// UpdateCPUMeasurements() returns estimates for PageNodes, which will be 0% +// since each page still exists but the affected frames and workers don't +// contribute any CPU. So GetMeasurementResult() returns optional<double>(0.0). +auto ExpectedErrorResult() { + return ::testing::Conditional( + features::kUseResourceAttributionCPUMonitor.Get(), + Optional(DoubleEq(0.0)), Eq(absl::nullopt)); +} + } // namespace -class PageTimelineCPUMonitorTest : public GraphTestHarness { +class PageTimelineCPUMonitorTest : public GraphTestHarness, + public ::testing::WithParamInterface<bool> { protected: using Super = GraphTestHarness; - void SetUp() override { - GetGraphFeatures().EnableExecutionContextRegistry(); + PageTimelineCPUMonitorTest() { + scoped_feature_list_.InitAndEnableFeatureWithParameters( + features::kPageTimelineMonitor, + {{"use_resource_attribution_cpu_monitor", + GetParam() ? "true" : "false"}}); + } + void SetUp() override { + if (features::kUseResourceAttributionCPUMonitor.Get()) { + GetGraphFeatures().EnableResourceAttributionRegistries(); + } Super::SetUp(); mock_graph_ = @@ -197,6 +227,12 @@ auto frame_node = CreateFrameNodeAutoId(process_node.get(), page_node.get()); + // Resource Attribution stores page estimates directly in CPUUsageMap. + auto resource_context = + features::kUseResourceAttributionCPUMonitor.Get() + ? ResourceContext(page_node->resource_context()) + : ResourceContext(frame_node->resource_context()); + // By default simulate 100% CPU usage in the renderer. To override this call // SetProcessCPUUsage again before advancing the clock. SetProcessCPUUsage(process_node.get(), 1.0); @@ -205,6 +241,7 @@ .process_node = std::move(process_node), .page_node = std::move(page_node), .frame_node = std::move(frame_node), + .resource_context = std::move(resource_context), }; } @@ -274,6 +311,8 @@ return *delegate_ptr; } + base::test::ScopedFeatureList scoped_feature_list_; + PageTimelineCPUMonitor cpu_monitor_; TestNodeWrapper<ProcessNodeImpl> mock_utility_process_; @@ -292,7 +331,9 @@ mock_graph_; }; -TEST_F(PageTimelineCPUMonitorTest, CPUMeasurement) { +INSTANTIATE_TEST_SUITE_P(All, PageTimelineCPUMonitorTest, ::testing::Bool()); + +TEST_P(PageTimelineCPUMonitorTest, CPUMeasurement) { // Create several renderer processes to measure. Put one page and one frame in // each renderer, so CPU measurements for the renderer are all assigned to // that frame for easy validation. @@ -338,22 +379,22 @@ // after its pid became available. // `renderer3` only existed for the last half. // `renderer4` existed for the measurement but no time passed so it had 0% CPU - // usage. + // usage. (As an optimization the monitor may not include it in the results.) // `renderer5` is not measured yet. { auto measurements = cpu_monitor_.UpdateCPUMeasurements(); - EXPECT_THAT( - GetMeasurementResult(measurements, early_exit_renderer.frame_node), - Eq(absl::nullopt)); - EXPECT_THAT(GetMeasurementResult(measurements, renderer1.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, + early_exit_renderer.resource_context), + Eq(absl::nullopt)); + EXPECT_THAT(GetMeasurementResult(measurements, renderer1.resource_context), Optional(DoubleEq(1.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer2.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer2.resource_context), Optional(DoubleEq(0.5))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer3.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer3.resource_context), Optional(DoubleEq(0.5))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer4.frame_node), - Optional(DoubleEq(0.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer5.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer4.resource_context), + AnyOf(Optional(DoubleEq(0.0)), Eq(absl::nullopt))); + EXPECT_THAT(GetMeasurementResult(measurements, renderer5.resource_context), Eq(absl::nullopt)); } @@ -365,15 +406,15 @@ // All nodes existed for entire measurement interval. { auto measurements = cpu_monitor_.UpdateCPUMeasurements(); - EXPECT_THAT(GetMeasurementResult(measurements, renderer1.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer1.resource_context), Optional(DoubleEq(1.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer2.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer2.resource_context), Optional(DoubleEq(1.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer3.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer3.resource_context), Optional(DoubleEq(1.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer4.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer4.resource_context), Optional(DoubleEq(1.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer5.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer5.resource_context), Optional(DoubleEq(1.0))); } @@ -398,15 +439,15 @@ { auto measurements = cpu_monitor_.UpdateCPUMeasurements(); - EXPECT_THAT(GetMeasurementResult(measurements, renderer1.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer1.resource_context), Optional(DoubleEq(0.5))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer2.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer2.resource_context), Optional(DoubleEq(0.75))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer3.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer3.resource_context), Optional(DoubleEq(0.25))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer4.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer4.resource_context), Optional(DoubleEq(1.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer5.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer5.resource_context), Optional(DoubleEq(1.0))); } @@ -427,16 +468,16 @@ // that the renderers that have exited return their CPU usage for the time // they were alive and 0% for the rest of the measurement interval. auto measurements = cpu_monitor_.UpdateCPUMeasurements(); - EXPECT_THAT(GetMeasurementResult(measurements, renderer1.frame_node), - Eq(absl::nullopt)); - EXPECT_THAT(GetMeasurementResult(measurements, renderer2.frame_node), - Eq(absl::nullopt)); - EXPECT_THAT(GetMeasurementResult(measurements, renderer3.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer1.resource_context), + ExpectedErrorResult()); + EXPECT_THAT(GetMeasurementResult(measurements, renderer2.resource_context), + ExpectedErrorResult()); + EXPECT_THAT(GetMeasurementResult(measurements, renderer3.resource_context), Optional(DoubleEq(0.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer4.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer4.resource_context), Optional(DoubleEq(0.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer5.frame_node), - Eq(absl::nullopt)); + EXPECT_THAT(GetMeasurementResult(measurements, renderer5.resource_context), + ExpectedErrorResult()); } // `renderer3` exits just before the StopMonitoring call and `renderer4` @@ -446,7 +487,7 @@ SetProcessExited(renderer4.process_node.get()); } -TEST_F(PageTimelineCPUMonitorTest, CPUDistribution) { +TEST_P(PageTimelineCPUMonitorTest, CPUDistribution) { // Track CPU usage of the mock utility process to make sure that measuring it // doesn't crash. Currently only measurements of renderer processes are // stored anywhere, so there are no other expectations to verify. @@ -463,6 +504,13 @@ EXPECT_THAT(measurements, IsEmpty()); } + // If the kUseResourceAttributionCPUMonitor feature param is enabled, + // UpdateCPUMeasurements() only returns page estimates, so the frame and + // worker breakdowns can't be tested. The underlying CPUMeasurementMonitor + // unit tests validates the frame and worker breakdowns in more detail, and + // this test validates that the overall page estimates match the expected + // percentage. + task_env().FastForwardBy(kTimeBetweenMeasurements); { @@ -472,16 +520,18 @@ // and `worker`. `other_process` splits its 50% CPU usage evenly between // `child_frame` and `other_worker`. See the chart in // MockMultiplePagesAndWorkersWithMultipleProcessesGraph. - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->frame), - Optional(DoubleEq(0.2))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_frame), - Optional(DoubleEq(0.2))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->worker), - Optional(DoubleEq(0.2))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->child_frame), - Optional(DoubleEq(0.25))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_worker), - Optional(DoubleEq(0.25))); + if (!features::kUseResourceAttributionCPUMonitor.Get()) { + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->frame), + Optional(DoubleEq(0.2))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_frame), + Optional(DoubleEq(0.2))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->worker), + Optional(DoubleEq(0.2))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->child_frame), + Optional(DoubleEq(0.25))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_worker), + Optional(DoubleEq(0.25))); + } // `page` gets its CPU usage from the sum of `frame` and `worker`. // `other_page` gets the sum of `other_frame`, `child_frame` and @@ -507,16 +557,18 @@ // `process` splits its 30% CPU usage evenly between `frame`, `other_frame` // and `worker`. `other_process` splits its 80% CPU usage evenly between // `child_frame` and `other_worker`. - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->frame), - Optional(DoubleEq(0.1))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_frame), - Optional(DoubleEq(0.1))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->worker), - Optional(DoubleEq(0.1))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->child_frame), - Optional(DoubleEq(0.4))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_worker), - Optional(DoubleEq(0.4))); + if (!features::kUseResourceAttributionCPUMonitor.Get()) { + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->frame), + Optional(DoubleEq(0.1))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_frame), + Optional(DoubleEq(0.1))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->worker), + Optional(DoubleEq(0.1))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->child_frame), + Optional(DoubleEq(0.4))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_worker), + Optional(DoubleEq(0.4))); + } // `page` gets its CPU usage from the sum of `frame` and `worker`. // `other_page` gets the sum of `other_frame`, `child_frame` and @@ -541,16 +593,18 @@ // `process` splits its 30% CPU usage evenly between `frame`, `other_frame` // and `worker`. `other_process` splits its 0% CPU usage evenly between // `child_frame` and `other_worker`. - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->frame), - Optional(DoubleEq(0.1))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_frame), - Optional(DoubleEq(0.1))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->worker), - Optional(DoubleEq(0.1))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->child_frame), - Optional(DoubleEq(0.0))); - EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_worker), - Optional(DoubleEq(0.0))); + if (!features::kUseResourceAttributionCPUMonitor.Get()) { + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->frame), + Optional(DoubleEq(0.1))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_frame), + Optional(DoubleEq(0.1))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->worker), + Optional(DoubleEq(0.1))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->child_frame), + Optional(DoubleEq(0.0))); + EXPECT_THAT(GetMeasurementResult(measurements, mock_graph_->other_worker), + Optional(DoubleEq(0.0))); + } // `page` gets its CPU usage from the sum of `frame` and `worker`. // `other_page` gets the sum of `other_frame`, `child_frame` and @@ -566,7 +620,7 @@ cpu_monitor_.StopMonitoring(graph()); } -TEST_F(PageTimelineCPUMonitorTest, CPUMeasurementError) { +TEST_P(PageTimelineCPUMonitorTest, CPUMeasurementError) { const SinglePageRendererNodes renderer1 = CreateSimpleCPUTrackingRenderer(); SetProcessId(renderer1.process_node.get()); const SinglePageRendererNodes renderer2 = CreateSimpleCPUTrackingRenderer(); @@ -580,11 +634,11 @@ { auto measurements = cpu_monitor_.UpdateCPUMeasurements(); - EXPECT_THAT(GetMeasurementResult(measurements, renderer1.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer1.resource_context), Optional(DoubleEq(1.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer2.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer2.resource_context), Optional(DoubleEq(1.0))); - EXPECT_THAT(GetMeasurementResult(measurements, renderer3.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer3.resource_context), Optional(DoubleEq(1.0))); } @@ -601,11 +655,11 @@ { auto measurements = cpu_monitor_.UpdateCPUMeasurements(); - EXPECT_THAT(GetMeasurementResult(measurements, renderer1.frame_node), - Eq(absl::nullopt)); - EXPECT_THAT(GetMeasurementResult(measurements, renderer2.frame_node), - Eq(absl::nullopt)); - EXPECT_THAT(GetMeasurementResult(measurements, renderer3.frame_node), + EXPECT_THAT(GetMeasurementResult(measurements, renderer1.resource_context), + ExpectedErrorResult()); + EXPECT_THAT(GetMeasurementResult(measurements, renderer2.resource_context), + ExpectedErrorResult()); + EXPECT_THAT(GetMeasurementResult(measurements, renderer3.resource_context), Optional(DoubleEq(0.5))); } @@ -613,13 +667,23 @@ } class PageTimelineCPUMonitorTimingTest - : public ChromeRenderViewHostTestHarness { + : public ChromeRenderViewHostTestHarness, + public ::testing::WithParamInterface<bool> { protected: using Super = ChromeRenderViewHostTestHarness; + PageTimelineCPUMonitorTimingTest() { + scoped_feature_list_.InitAndEnableFeatureWithParameters( + features::kPageTimelineMonitor, + {{"use_resource_attribution_cpu_monitor", + GetParam() ? "true" : "false"}}); + } + void SetUp() override { Super::SetUp(); - pm_helper_.GetGraphFeatures().EnableExecutionContextRegistry(); + if (features::kUseResourceAttributionCPUMonitor.Get()) { + pm_helper_.GetGraphFeatures().EnableResourceAttributionRegistries(); + } pm_helper_.SetUp(); RunOnPMSequence(base::BindLambdaForTesting([&](Graph* graph) { cpu_monitor_ = std::make_unique<PageTimelineCPUMonitor>(); @@ -641,11 +705,16 @@ base::TestWaitableEvent().TimedWait(TestTimeouts::tiny_timeout()); } + base::test::ScopedFeatureList scoped_feature_list_; PerformanceManagerTestHarnessHelper pm_helper_; std::unique_ptr<PageTimelineCPUMonitor> cpu_monitor_; }; -TEST_F(PageTimelineCPUMonitorTimingTest, ProcessLifetime) { +INSTANTIATE_TEST_SUITE_P(All, + PageTimelineCPUMonitorTimingTest, + ::testing::Bool()); + +TEST_P(PageTimelineCPUMonitorTimingTest, ProcessLifetime) { SetContents(CreateTestWebContents()); content::NavigationSimulator::NavigateAndCommitFromBrowser( web_contents(), GURL("https://www.example.com/")); @@ -655,6 +724,19 @@ base::WeakPtr<ProcessNode> process_node = PerformanceManager::GetProcessNodeForRenderProcessHost(process()); + auto get_measurement_result = [this](base::WeakPtr<FrameNode> frame_node) { + CHECK(frame_node); + if (features::kUseResourceAttributionCPUMonitor.Get()) { + // Resource Attribution stores page estimates directly in CPUUsageMap. + CHECK(frame_node->GetPageNode()); + return GetMeasurementResult( + cpu_monitor_->UpdateCPUMeasurements(), + frame_node->GetPageNode()->GetResourceContext()); + } + return GetMeasurementResult(cpu_monitor_->UpdateCPUMeasurements(), + frame_node->GetResourceContext()); + }; + // Since process() returns a MockRenderProcessHost, ProcessNode is created // but has no pid. (Equivalent to the time between OnProcessNodeAdded and // OnProcessLifetimeChange.) @@ -664,10 +746,7 @@ EXPECT_EQ(process_node->GetProcessId(), base::kNullProcessId); // Process can't be measured yet. - ASSERT_TRUE(frame_node); - EXPECT_THAT(GetMeasurementResult(cpu_monitor_->UpdateCPUMeasurements(), - ExecutionContext::From(frame_node.get())), - Eq(absl::nullopt)); + EXPECT_THAT(get_measurement_result(frame_node), Eq(absl::nullopt)); })); // Assign a real process to the ProcessNode. (Will call @@ -681,9 +760,7 @@ // Process can be measured now. ASSERT_TRUE(frame_node); - EXPECT_THAT(GetMeasurementResult(cpu_monitor_->UpdateCPUMeasurements(), - ExecutionContext::From(frame_node.get())), - Optional(_)); + EXPECT_THAT(get_measurement_result(frame_node), Optional(_)); })); // Simulate that the process died. @@ -700,9 +777,7 @@ // doesn't crash. const auto measurements = cpu_monitor_->UpdateCPUMeasurements(); if (frame_node) { - EXPECT_THAT(GetMeasurementResult( - measurements, ExecutionContext::From(frame_node.get())), - Eq(absl::nullopt)); + EXPECT_THAT(get_measurement_result(frame_node), Eq(absl::nullopt)); } })); }
diff --git a/chrome/browser/performance_manager/metrics/page_timeline_monitor.cc b/chrome/browser/performance_manager/metrics/page_timeline_monitor.cc index 83233be8..df6d79f8d 100644 --- a/chrome/browser/performance_manager/metrics/page_timeline_monitor.cc +++ b/chrome/browser/performance_manager/metrics/page_timeline_monitor.cc
@@ -22,8 +22,6 @@ #include "components/performance_manager/public/decorators/page_live_state_decorator.h" #include "components/performance_manager/public/features.h" #include "components/performance_manager/public/graph/page_node.h" -#include "components/performance_manager/public/resource_attribution/query_results.h" -#include "components/performance_manager/public/resource_attribution/resource_contexts.h" #include "services/metrics/public/cpp/metrics_utils.h" #include "services/metrics/public/cpp/ukm_builders.h" #include "services/metrics/public/cpp/ukm_recorder.h" @@ -109,79 +107,36 @@ } void PageTimelineMonitor::CollectPageResourceUsage() { - if (performance_manager::features::kUseResourceAttributionCPUMonitor.Get()) { - const std::map<resource_attribution::ResourceContext, - resource_attribution::CPUTimeResult> - cpu_usage_map = cpu_measurement_monitor_.UpdateAndGetCPUMeasurements(); + const PageTimelineCPUMonitor::CPUUsageMap cpu_usage_map = + cpu_monitor_.UpdateCPUMeasurements(); - auto get_cpu_usage = [&cpu_usage_map](const PageNode* page_node) -> double { - // CPUMeasurementMonitor collects results for all pages, but any with no - // CPU use won't appear in the map. - const auto it = cpu_usage_map.find(page_node->GetResourceContext()); - if (it == cpu_usage_map.end()) { - return 0; - } - const resource_attribution::CPUTimeResult& result = it->second; - return result.cumulative_cpu / - (result.metadata.measurement_time - result.start_time); - }; - // Calculate the overall CPU usage. - double total_cpu_usage = 0; - for (const auto& [tab_handle, info_ptr] : page_node_info_map_) { - const PageNode* page_node = tab_handle->page_node(); - CheckPageState(page_node, *info_ptr); - total_cpu_usage += get_cpu_usage(page_node); - } - - const auto now = base::TimeTicks::Now(); - for (const auto& [tab_handle, _] : page_node_info_map_) { - const PageNode* page_node = tab_handle->page_node(); - const ukm::SourceId source_id = page_node->GetUkmSourceID(); - ukm::builders::PerformanceManager_PageResourceUsage2(source_id) - .SetResidentSetSizeEstimate(page_node->EstimateResidentSetSize()) - .SetPrivateFootprintEstimate( - page_node->EstimatePrivateFootprintSize()) - .SetRecentCPUUsage(kCPUUsageFactor * get_cpu_usage(page_node)) - .SetTotalRecentCPUUsageAllPages(kCPUUsageFactor * total_cpu_usage) - .SetBackgroundState( - static_cast<int64_t>(GetBackgroundStateForMeasurementPeriod( - page_node, now - time_of_last_resource_usage_))) - .Record(ukm::UkmRecorder::Get()); - } - time_of_last_resource_usage_ = now; - } else { - const PageTimelineCPUMonitor::CPUUsageMap cpu_usage_map = - cpu_monitor_.UpdateCPUMeasurements(); - - // Calculate the overall CPU usage. - double total_cpu_usage = 0; - std::vector<std::pair<const PageNode*, double>> page_cpu_usage; - page_cpu_usage.reserve(page_node_info_map_.size()); - for (const auto& [tab_handle, info_ptr] : page_node_info_map_) { - const PageNode* page_node = tab_handle->page_node(); - CheckPageState(page_node, *info_ptr); - double cpu_usage = PageTimelineCPUMonitor::EstimatePageCPUUsage( - page_node, cpu_usage_map); - page_cpu_usage.emplace_back(page_node, cpu_usage); - total_cpu_usage += cpu_usage; - } - - const auto now = base::TimeTicks::Now(); - for (const auto& [page_node, cpu_usage] : page_cpu_usage) { - const ukm::SourceId source_id = page_node->GetUkmSourceID(); - ukm::builders::PerformanceManager_PageResourceUsage2(source_id) - .SetResidentSetSizeEstimate(page_node->EstimateResidentSetSize()) - .SetPrivateFootprintEstimate( - page_node->EstimatePrivateFootprintSize()) - .SetRecentCPUUsage(kCPUUsageFactor * cpu_usage) - .SetTotalRecentCPUUsageAllPages(kCPUUsageFactor * total_cpu_usage) - .SetBackgroundState( - static_cast<int64_t>(GetBackgroundStateForMeasurementPeriod( - page_node, now - time_of_last_resource_usage_))) - .Record(ukm::UkmRecorder::Get()); - } - time_of_last_resource_usage_ = now; + // Calculate the overall CPU usage. + double total_cpu_usage = 0; + std::vector<std::pair<const PageNode*, double>> page_cpu_usage; + page_cpu_usage.reserve(page_node_info_map_.size()); + for (const auto& [tab_handle, info_ptr] : page_node_info_map_) { + const PageNode* page_node = tab_handle->page_node(); + CheckPageState(page_node, *info_ptr); + double cpu_usage = + PageTimelineCPUMonitor::EstimatePageCPUUsage(page_node, cpu_usage_map); + page_cpu_usage.emplace_back(page_node, cpu_usage); + total_cpu_usage += cpu_usage; } + + const auto now = base::TimeTicks::Now(); + for (const auto& [page_node, cpu_usage] : page_cpu_usage) { + const ukm::SourceId source_id = page_node->GetUkmSourceID(); + ukm::builders::PerformanceManager_PageResourceUsage2(source_id) + .SetResidentSetSizeEstimate(page_node->EstimateResidentSetSize()) + .SetPrivateFootprintEstimate(page_node->EstimatePrivateFootprintSize()) + .SetRecentCPUUsage(kCPUUsageFactor * cpu_usage) + .SetTotalRecentCPUUsageAllPages(kCPUUsageFactor * total_cpu_usage) + .SetBackgroundState( + static_cast<int64_t>(GetBackgroundStateForMeasurementPeriod( + page_node, now - time_of_last_resource_usage_))) + .Record(ukm::UkmRecorder::Get()); + } + time_of_last_resource_usage_ = now; } void PageTimelineMonitor::CollectSlice() { @@ -307,20 +262,11 @@ graph_->AddPageNodeObserver(this); graph_->RegisterObject(this); graph->GetRegisteredObjectAs<TabPageDecorator>()->AddObserver(this); - - if (performance_manager::features::kUseResourceAttributionCPUMonitor.Get()) { - cpu_measurement_monitor_.StartMonitoring(graph_); - } else { - cpu_monitor_.StartMonitoring(graph_); - } + cpu_monitor_.StartMonitoring(graph_); } void PageTimelineMonitor::OnTakenFromGraph(Graph* graph) { - if (performance_manager::features::kUseResourceAttributionCPUMonitor.Get()) { - cpu_measurement_monitor_.StopMonitoring(); - } else { - cpu_monitor_.StopMonitoring(graph_); - } + cpu_monitor_.StopMonitoring(graph_); // GraphOwned object destruction order is undefined, so only remove ourselves // as observers if the decorator still exists.
diff --git a/chrome/browser/performance_manager/metrics/page_timeline_monitor.h b/chrome/browser/performance_manager/metrics/page_timeline_monitor.h index cd18f038..cbcee21 100644 --- a/chrome/browser/performance_manager/metrics/page_timeline_monitor.h +++ b/chrome/browser/performance_manager/metrics/page_timeline_monitor.h
@@ -18,7 +18,6 @@ #include "components/performance_manager/public/graph/graph.h" #include "components/performance_manager/public/graph/graph_registered.h" #include "components/performance_manager/public/graph/page_node.h" -#include "components/performance_manager/public/resource_attribution/cpu_measurement_monitor.h" namespace performance_manager::metrics { @@ -166,8 +165,7 @@ bool battery_saver_enabled_ = false; - // Helpers to take CPU measurements for the UKM. - resource_attribution::CPUMeasurementMonitor cpu_measurement_monitor_; + // Helper to take CPU measurements for the UKM. PageTimelineCPUMonitor cpu_monitor_; // WeakPtrFactory for the RepeatingTimer to call a method on this object.
diff --git a/chrome/browser/performance_manager/metrics/page_timeline_monitor_unittest.cc b/chrome/browser/performance_manager/metrics/page_timeline_monitor_unittest.cc index cc65d67..f3d90fb 100644 --- a/chrome/browser/performance_manager/metrics/page_timeline_monitor_unittest.cc +++ b/chrome/browser/performance_manager/metrics/page_timeline_monitor_unittest.cc
@@ -6,10 +6,12 @@ #include <map> #include <memory> +#include <utility> #include "base/containers/fixed_flat_map.h" #include "base/functional/bind.h" #include "base/memory/raw_ptr.h" +#include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" #include "base/time/time.h" #include "build/build_config.h" @@ -17,6 +19,7 @@ #include "components/performance_manager/embedder/graph_features.h" #include "components/performance_manager/public/decorators/page_live_state_decorator.h" #include "components/performance_manager/public/decorators/tab_page_decorator.h" +#include "components/performance_manager/public/features.h" #include "components/performance_manager/public/mojom/lifecycle.mojom-shared.h" #include "components/performance_manager/public/user_tuning/prefs.h" #include "components/performance_manager/test_support/graph_test_harness.h" @@ -70,8 +73,6 @@ delete; void SetUp() override { - GetGraphFeatures().EnableExecutionContextRegistry(); - GraphTestHarness::SetUp(); graph()->PassToGraph( @@ -136,6 +137,41 @@ ResetUkmRecorder(); } +// A test that runs with various values of the kUseResourceAttributionCPUMonitor +// feature flag. +class PageTimelineMonitorWithFeatureTest + : public PageTimelineMonitorUnitTest, + public ::testing::WithParamInterface<bool> { + public: + PageTimelineMonitorWithFeatureTest() { + scoped_feature_list_.InitAndEnableFeatureWithParameters( + features::kPageTimelineMonitor, + {{"use_resource_attribution_cpu_monitor", + GetParam() ? "true" : "false"}}); + } + + void SetUp() override { + if (features::kUseResourceAttributionCPUMonitor.Get()) { + GetGraphFeatures().EnableResourceAttributionRegistries(); + } + PageTimelineMonitorUnitTest::SetUp(); + } + + void TearDown() override { + // Destroy `monitor_` before `scoped_feature_list_` so that the feature flag + // doesn't change during its destructor. + graph()->TakeFromGraph(monitor_.ExtractAsDangling()); + PageTimelineMonitorUnitTest::TearDown(); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +INSTANTIATE_TEST_SUITE_P(All, + PageTimelineMonitorWithFeatureTest, + ::testing::Bool()); + TEST_F(PageTimelineMonitorUnitTest, TestPageTimeline) { MockSinglePageInSingleProcessGraph mock_graph(graph()); ukm::SourceId mock_source_id = ukm::NoURLSourceId(); @@ -535,7 +571,7 @@ TriggerCollectSlice(); } -TEST_F(PageTimelineMonitorUnitTest, TestResourceUsage) { +TEST_P(PageTimelineMonitorWithFeatureTest, TestResourceUsage) { MockMultiplePagesWithMultipleProcessesGraph mock_graph(graph()); const ukm::SourceId mock_source_id = ukm::AssignNewSourceId(); mock_graph.page->SetType(performance_manager::PageType::kTab);
diff --git a/chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.cc b/chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.cc index c3efdd1..0e539f1 100644 --- a/chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.cc +++ b/chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.h" #include "chrome/browser/ui/color/chrome_color_id.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/compositor/layer.h" #include "ui/gfx/animation/tween.h" #include "ui/views/animation/animation_builder.h" @@ -75,3 +76,6 @@ background_ = nullptr; auto_pip_setting_view_.reset(); } + +BEGIN_METADATA(AutoPipSettingOverlayView, views::View) +END_METADATA
diff --git a/chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.h b/chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.h index 5f9cec30..640dc33 100644 --- a/chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.h +++ b/chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.h
@@ -8,6 +8,7 @@ #include "base/check_is_test.h" #include "base/functional/callback.h" #include "chrome/browser/picture_in_picture/auto_pip_setting_view.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/views/view.h" #include "ui/views/view_targeter_delegate.h" @@ -16,6 +17,7 @@ class AutoPipSettingOverlayView : public views::View, public views::ViewTargeterDelegate { public: + METADATA_HEADER(AutoPipSettingOverlayView); using ResultCb = base::OnceCallback<void(AutoPipSettingView::UiResult result)>;
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc index 6ff9325..7c9ea752 100644 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -1923,9 +1923,6 @@ ash::prefs::kLoginScreenWebUILazyLoading, base::Value::Type::BOOLEAN }, #endif // BUILDFLAG(IS_CHROMEOS_ASH) - { key::kFirstPartySetsEnabled, - prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, - base::Value::Type::BOOLEAN}, { key::kWebSQLAccess, storage::kWebSQLAccess, base::Value::Type::BOOLEAN }, @@ -2040,8 +2037,9 @@ // Future policies are not supported on Stable and Beta by default. bool AreFuturePoliciesEnabledByDefault() { // Enable future policies for branded browser tests. - if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) + if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; + } version_info::Channel channel = chrome::GetChannel(); return channel != version_info::Channel::STABLE && channel != version_info::Channel::BETA; @@ -2054,8 +2052,9 @@ if (user_manager::UserManager::IsInitialized()) { const user_manager::User* user = user_manager::UserManager::Get()->GetActiveUser(); - if (user) + if (user) { parameters->user_id_hash = user->username_hash(); + } } #endif // BUILDFLAG(IS_CHROMEOS_ASH) } @@ -2825,6 +2824,16 @@ chrome_schema)); #endif // BUILDFLAG(ENTERPRISE_DATA_CONTROLS) + handlers->AddHandler(std::make_unique<SimpleDeprecatingPolicyHandler>( + std::make_unique<SimplePolicyHandler>( + key::kFirstPartySetsEnabled, // Legacy Policy + prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, + base::Value::Type::BOOLEAN), + std::make_unique<SimplePolicyHandler>( + key::kRelatedWebsiteSetsEnabled, // New Policy + prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, + base::Value::Type::BOOLEAN))); + return handlers; }
diff --git a/chrome/browser/prefs/README.md b/chrome/browser/prefs/README.md index 71cd644..e3a7bb8 100644 --- a/chrome/browser/prefs/README.md +++ b/chrome/browser/prefs/README.md
@@ -30,7 +30,7 @@ `RegisterProfilePrefs()` as appropriate. 1. If your pref should be synced (only an option for profile prefs), add one of the `SYNCABLE_PREF` flags when registering it and add it to the syncable - prefs database: + prefs database (see components/sync_preferences/README.md for details): * iOS-specific syncable prefs should be added to ios/chrome/browser/sync/prefs/ios_chrome_syncable_prefs_database.cc. * Syncable prefs which are not valid for iOS should be added to
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java index a801d36..201847c8 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java
@@ -8,6 +8,7 @@ import org.chromium.chrome.browser.profiles.Profile; import org.chromium.components.privacy_sandbox.TrackingProtectionDelegate; import org.chromium.components.user_prefs.UserPrefs; +import org.chromium.content_public.browser.BrowserContextHandle; public class ChromeTrackingProtectionDelegate implements TrackingProtectionDelegate { private final Profile mProfile; @@ -35,4 +36,9 @@ public void setDoNotTrack(boolean enabled) { UserPrefs.get(mProfile).setBoolean(Pref.ENABLE_DO_NOT_TRACK, enabled); } + + @Override + public BrowserContextHandle getBrowserContext() { + return mProfile; + } }
diff --git a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java index 44c6d586..27cb43dc 100644 --- a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java +++ b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogTest.java
@@ -44,7 +44,6 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.JniMocker; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.privacy_sandbox.v4.AdMeasurementFragmentV4; import org.chromium.chrome.browser.privacy_sandbox.v4.PrivacySandboxDialogConsentEEAV4; @@ -56,8 +55,6 @@ import org.chromium.chrome.test.ChromeTabbedActivityTestRule; import org.chromium.chrome.test.batch.BlankCTATabInitialStateRule; import org.chromium.chrome.test.util.ChromeRenderTestRule; -import org.chromium.chrome.test.util.browser.Features.DisableFeatures; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.content_public.browser.test.util.TestThreadUtils; @@ -203,7 +200,6 @@ @SmallTest @Feature({"RenderTest"}) public void testRenderNotice() throws IOException { - PrivacySandboxDialogNotice notice = null; TestThreadUtils.runOnUiThreadBlocking(() -> { mDialog = new PrivacySandboxDialogNotice( sActivityTestRule.getActivity(), mSettingsLauncher); @@ -228,7 +224,6 @@ @SmallTest @Feature({"RenderTest"}) public void testRenderEEANotice() throws IOException { - PrivacySandboxDialogNotice notice = null; TestThreadUtils.runOnUiThreadBlocking(() -> { mDialog = new PrivacySandboxDialogNoticeEEAV4( sActivityTestRule.getActivity(), mSettingsLauncher); @@ -241,7 +236,6 @@ @SmallTest @Feature({"RenderTest"}) public void testRenderROWNotice() throws IOException { - PrivacySandboxDialogNotice notice = null; TestThreadUtils.runOnUiThreadBlocking(() -> { mDialog = new PrivacySandboxDialogNoticeROWV4( sActivityTestRule.getActivity(), mSettingsLauncher); @@ -254,7 +248,6 @@ @SmallTest @Feature({"RenderTest"}) public void testRenderRestrictedNotice() throws IOException { - PrivacySandboxDialogNotice notice = null; TestThreadUtils.runOnUiThreadBlocking(() -> { mDialog = new PrivacySandboxDialogNoticeRestrictedV4( sActivityTestRule.getActivity(), mSettingsLauncher); @@ -321,38 +314,6 @@ @Test @SmallTest - @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) - public void testControllerShowsBottomSheet() { - PrivacySandboxDialogController.setShowNewNoticeForTesting(true); - mFakePrivacySandboxBridge.setRequiredPromptType(PromptType.NOTICE); - launchDialog(); - // Verify that the notice is shown and the action is recorded. - onViewWaiting(withId(R.id.privacy_sandbox_notice_sheet_title)); - onViewWaiting(withId(R.id.ack_button)); - assertEquals("Last dialog action", PromptAction.NOTICE_SHOWN, - (int) mFakePrivacySandboxBridge.getLastPromptAction()); - // Acknowledge the notice and verify it worked correctly. - onView(withText(R.string.privacy_sandbox_dialog_acknowledge_button)).perform(click()); - assertEquals("Last dialog action", PromptAction.NOTICE_ACKNOWLEDGE, - (int) mFakePrivacySandboxBridge.getLastPromptAction()); - onView(withId(R.id.privacy_sandbox_notice_sheet_title)).check(doesNotExist()); - - launchDialog(); - // Click on the settings button and verify it worked correctly. - onViewWaiting(withId(R.id.privacy_sandbox_notice_sheet_title)); - onViewWaiting(withId(R.id.settings_button)); - onView(withText(R.string.privacy_sandbox_dialog_settings_button)).perform(click()); - assertEquals("Last dialog action", PromptAction.NOTICE_OPEN_SETTINGS, - (int) mFakePrivacySandboxBridge.getLastPromptAction()); - onView(withId(R.id.privacy_sandbox_notice_sheet_title)).check(doesNotExist()); - Context ctx = (Context) sActivityTestRule.getActivity(); - Mockito.verify(mSettingsLauncher) - .launchSettingsActivity( - eq(ctx), eq(PrivacySandboxSettingsFragmentV3.class), any(Bundle.class)); - } - - @Test - @SmallTest public void testControllerWontShowNoticeWhenNewNoticeIsDisabled() { PrivacySandboxDialogController.setShowNewNoticeForTesting(false); mFakePrivacySandboxBridge.setRequiredPromptType(PromptType.NOTICE); @@ -449,7 +410,6 @@ @Test @SmallTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testControllerShowsEEANotice() throws IOException { mFakePrivacySandboxBridge.setRequiredPromptType(PromptType.M1_NOTICE_EEA); launchDialog(); @@ -489,7 +449,6 @@ @Test @SmallTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testControllerShowsROWNotice() throws IOException { mFakePrivacySandboxBridge.setRequiredPromptType(PromptType.M1_NOTICE_ROW); launchDialog(); @@ -528,7 +487,6 @@ @Test @SmallTest - @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public void testControllerShowsRestrictedNotice() throws IOException { mFakePrivacySandboxBridge.setRequiredPromptType(PromptType.M1_NOTICE_RESTRICTED); launchDialog();
diff --git a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/AdMeasurementFragmentV4Test.java b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/AdMeasurementFragmentV4Test.java index 822fb4c..487332bf 100644 --- a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/AdMeasurementFragmentV4Test.java +++ b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/AdMeasurementFragmentV4Test.java
@@ -36,7 +36,6 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.UserActionTester; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.privacy_sandbox.R; @@ -45,7 +44,6 @@ import org.chromium.chrome.test.ChromeBrowserTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.ChromeRenderTestRule; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.components.policy.test.annotations.Policies; import org.chromium.components.prefs.PrefService; import org.chromium.components.user_prefs.UserPrefs; @@ -59,7 +57,6 @@ @RunWith(ChromeJUnit4ClassRunner.class) @Batch(Batch.PER_CLASS) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -@EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public final class AdMeasurementFragmentV4Test { @Rule public ChromeBrowserTestRule mChromeBrowserTestRule = new ChromeBrowserTestRule();
diff --git a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/FledgeFragmentV4Test.java b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/FledgeFragmentV4Test.java index b2a397c..c4470b8 100644 --- a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/FledgeFragmentV4Test.java +++ b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/FledgeFragmentV4Test.java
@@ -46,7 +46,6 @@ import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.JniMocker; import org.chromium.base.test.util.UserActionTester; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.privacy_sandbox.FakePrivacySandboxBridge; @@ -57,7 +56,6 @@ import org.chromium.chrome.test.ChromeBrowserTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.ChromeRenderTestRule; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.components.policy.test.annotations.Policies; import org.chromium.components.prefs.PrefService; import org.chromium.components.user_prefs.UserPrefs; @@ -73,7 +71,6 @@ @RunWith(ChromeJUnit4ClassRunner.class) @Batch(Batch.PER_CLASS) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -@EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public final class FledgeFragmentV4Test { private static final String SITE_NAME_1 = "first.com"; private static final String SITE_NAME_2 = "second.com";
diff --git a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxSettingsFragmentV4Test.java b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxSettingsFragmentV4Test.java index 97962d6..ddff000 100644 --- a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxSettingsFragmentV4Test.java +++ b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxSettingsFragmentV4Test.java
@@ -33,7 +33,6 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.UserActionTester; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxReferrer; @@ -43,7 +42,6 @@ import org.chromium.chrome.test.ChromeBrowserTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.ChromeRenderTestRule; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.components.prefs.PrefService; import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.test.util.RenderTestRule; @@ -56,7 +54,6 @@ @RunWith(ChromeJUnit4ClassRunner.class) @Batch(Batch.PER_CLASS) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -@EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public final class PrivacySandboxSettingsFragmentV4Test { @Rule public ChromeBrowserTestRule mChromeBrowserTestRule = new ChromeBrowserTestRule();
diff --git a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/TopicsFragmentV4Test.java b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/TopicsFragmentV4Test.java index e541de3..e4bb0ba5 100644 --- a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/TopicsFragmentV4Test.java +++ b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/v4/TopicsFragmentV4Test.java
@@ -45,7 +45,6 @@ import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.JniMocker; import org.chromium.base.test.util.UserActionTester; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.privacy_sandbox.FakePrivacySandboxBridge; @@ -56,7 +55,6 @@ import org.chromium.chrome.test.ChromeBrowserTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.ChromeRenderTestRule; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.components.policy.test.annotations.Policies; import org.chromium.components.prefs.PrefService; import org.chromium.components.user_prefs.UserPrefs; @@ -71,7 +69,6 @@ @RunWith(ChromeJUnit4ClassRunner.class) @Batch(Batch.PER_CLASS) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -@EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) public final class TopicsFragmentV4Test { private static final String TOPIC_NAME_1 = "Topic 1"; private static final String TOPIC_NAME_2 = "Topic 2";
diff --git a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_heading.html b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_heading.html index 4e22314..6b882b5 100644 --- a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_heading.html +++ b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_heading.html
@@ -16,8 +16,11 @@ </div> </template> <template is="dom-if" if="[[isSubApp_]]"> - <div class="permission-text-row secondary-text" id="subAppPermissionExplanation"> - [[getSubAppPermissionExplanationString_(app)]] + <div class="permission-text-row secondary-text"> + <localized-link id="subAppPermissionExplanation" + localized-string="[[getSubAppPermissionExplanationString_(app)]]" + on-link-clicked="onManagePermissionsClicked_"> + </localized-link> </div> </template> </div> \ No newline at end of file
diff --git a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_heading.ts b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_heading.ts index 8d64dd0..30e0d1b 100644 --- a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_heading.ts +++ b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_heading.ts
@@ -7,10 +7,12 @@ import {App} from 'chrome://resources/cr_components/app_management/app_management.mojom-webui.js'; import {getParentApp, getSubAppsOfSelectedApp} from 'chrome://resources/cr_components/app_management/util.js'; import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; +import {assert} from 'chrome://resources/js/assert_ts.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {getTemplate} from './permission_heading.html.js'; import {AppManagementStoreMixin} from './store_mixin.js'; +import {openAppDetailPage} from './util.js'; const AppManagementPermissionHeadingElementBase = AppManagementStoreMixin(I18nMixin(PolymerElement)); @@ -58,18 +60,27 @@ if (this.hasSubApps_) { return this.i18n( 'appManagementParentAppPermissionExplanation', - this.app.title ? this.app.title : ''); + String(this.app.title)); } return ''; } - private getSubAppPermissionExplanationString_(): string { + private getSubAppPermissionExplanationString_(): TrustedHTML { if (this.parentApp_) { - return this.i18n( + return this.i18nAdvanced( 'appManagementSubAppPermissionExplanation', - this.parentApp_.title ? this.parentApp_.title : ''); + {substitutions: [String(this.parentApp_.title)]}); } - return ''; + assert(window.trustedTypes); + return window.trustedTypes.emptyHTML; + } + + private onManagePermissionsClicked_(event: CustomEvent<{event: Event}>): + void { + event.detail.event.preventDefault(); + if (this.parentApp_) { + openAppDetailPage(this.parentApp_.id); + } } }
diff --git a/chrome/browser/resources/chromeos/login/components/oobe_vars/oobe_custom_vars.css b/chrome/browser/resources/chromeos/login/components/oobe_vars/oobe_custom_vars.css index a4e773f..b912bd3 100644 --- a/chrome/browser/resources/chromeos/login/components/oobe_vars/oobe_custom_vars.css +++ b/chrome/browser/resources/chromeos/login/components/oobe_vars/oobe_custom_vars.css
@@ -321,8 +321,10 @@ } html.simon-enabled { - /* TODO(b/289375621): Move to variables when jelly enabled by default. */ - --oobe-welcome-header-font-size: 52px; - --oobe-welcome-header-font-weight: 400; /* regular */ - --oobe-welcome-header-line-height: 60px; + --oobe-welcome-header-font-size: + var(--cros-display-0_regular-font-size); + --oobe-welcome-header-font-weight: + var(--cros-display-0_regular-font-weight); + --oobe-welcome-header-line-height: + var(--cros-display-0_regular-line-height); }
diff --git a/chrome/browser/resources/new_tab_page_incognito_guest/incognito_tab.html b/chrome/browser/resources/new_tab_page_incognito_guest/incognito_tab.html index 22c47ba9..bda7eff 100644 --- a/chrome/browser/resources/new_tab_page_incognito_guest/incognito_tab.html +++ b/chrome/browser/resources/new_tab_page_incognito_guest/incognito_tab.html
@@ -37,12 +37,14 @@ <em>$i18n{cookieControlsTitle}</em> <span>$i18nRaw{cookieControlsDescription}</span> </div> - <cr-tooltip-icon id="cookie-controls-tooltip-icon" - icon-aria-label="$i18n{cookieControlsTitle}" - icon-class="$i18n{cookieControlsToolTipIcon}" - tooltip-text="$i18n{cookieControlsTooltipText}" - role="link" style="cursor: pointer;" $i18n{hideTooltipIcon}> - </cr-tooltip-icon> + <div $i18n{hideTooltipIcon}> + <cr-tooltip-icon id="cookie-controls-tooltip-icon" + icon-aria-label="$i18n{cookieControlsTitle}" + icon-class="$i18n{cookieControlsToolTipIcon}" + tooltip-text="$i18n{cookieControlsTooltipText}" + role="link" style="cursor: pointer;"> + </cr-tooltip-icon> + </div> <cr-toggle id="cookie-controls-toggle" aria-label="$i18n{cookieControlsTitle}" $i18n{hideBlockCookiesToggle}
diff --git a/chrome/browser/resources/new_tab_page_incognito_guest/revamped_incognito_tab.html b/chrome/browser/resources/new_tab_page_incognito_guest/revamped_incognito_tab.html index de50bb4..bda84f3 100644 --- a/chrome/browser/resources/new_tab_page_incognito_guest/revamped_incognito_tab.html +++ b/chrome/browser/resources/new_tab_page_incognito_guest/revamped_incognito_tab.html
@@ -38,12 +38,14 @@ <em>$i18n{cookieControlsTitle}</em> <span>$i18nRaw{cookieControlsDescription}</span> </div> - <cr-tooltip-icon id="cookie-controls-tooltip-icon" - icon-aria-label="$i18n{cookieControlsTitle}" - icon-class="$i18n{cookieControlsToolTipIcon}" - tooltip-text="$i18n{cookieControlsTooltipText}" - role="link" style="cursor: pointer;" $i18n{hideTooltipIcon}> - </cr-tooltip-icon> + <div $i18n{hideTooltipIcon}> + <cr-tooltip-icon id="cookie-controls-tooltip-icon" + icon-aria-label="$i18n{cookieControlsTitle}" + icon-class="$i18n{cookieControlsToolTipIcon}" + tooltip-text="$i18n{cookieControlsTooltipText}" + role="link" style="cursor: pointer;"> + </cr-tooltip-icon> + </div> <cr-toggle id="cookie-controls-toggle" aria-label="$i18n{cookieControlsTitle}" $i18n{hideBlockCookiesToggle}
diff --git a/chrome/browser/resources/support_tool/OWNERS b/chrome/browser/resources/support_tool/OWNERS index 63381752..f57c5d31 100644 --- a/chrome/browser/resources/support_tool/OWNERS +++ b/chrome/browser/resources/support_tool/OWNERS
@@ -1,3 +1,2 @@ iremuguz@google.com -pmarko@chromium.org -srad@google.com \ No newline at end of file +pmarko@chromium.org \ No newline at end of file
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn index 611a0e0..19c1eac7 100644 --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn
@@ -52,6 +52,7 @@ "//components/safe_browsing/core/browser:safe_browsing_metrics_collector", "//components/safe_browsing/core/browser/db:database_manager", "//components/safe_browsing/core/browser/db:v4_local_database_manager", + "//components/safe_browsing/core/browser/password_protection:password_protection_metrics_util", "//components/safe_browsing/core/browser/sync", "//components/safe_browsing/core/common", "//components/safe_browsing/core/common:interfaces",
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.cc b/chrome/browser/safe_browsing/chrome_password_protection_service.cc index 134f611..cf9e91c 100644 --- a/chrome/browser/safe_browsing/chrome_password_protection_service.cc +++ b/chrome/browser/safe_browsing/chrome_password_protection_service.cc
@@ -109,6 +109,8 @@ #include "ui/android/window_android.h" #else #include "chrome/browser/ui/browser_list.h" +#include "chrome/browser/ui/hats/trust_safety_sentiment_service.h" +#include "chrome/browser/ui/hats/trust_safety_sentiment_service_factory.h" #endif using base::RecordAction; @@ -560,6 +562,26 @@ NOTREACHED(); break; } + +#if !BUILDFLAG(IS_ANDROID) + if (safe_browsing::IsSafeBrowsingSurveysEnabled(*profile_->GetPrefs())) { + TrustSafetySentimentService* trust_safety_sentiment_service = + TrustSafetySentimentServiceFactory::GetForProfile(profile_); + if (trust_safety_sentiment_service) { + // Use trigger that delays survey when user changes password so we don't + // interrupt their password change. + if (action == WarningAction::CHANGE_PASSWORD) { + trust_safety_sentiment_service->ProtectResetOrCheckPasswordClicked( + ui_type); + } else if (action == WarningAction::IGNORE_WARNING || + action == WarningAction::CLOSE || + action == WarningAction::MARK_AS_LEGITIMATE) { + trust_safety_sentiment_service->PhishedPasswordUpdateNotClicked(ui_type, + action); + } + } + } +#endif } void ChromePasswordProtectionService::AddObserver(Observer* observer) {
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service_browsertest.cc b/chrome/browser/safe_browsing/chrome_password_protection_service_browsertest.cc index f792ea6..ba310f2 100644 --- a/chrome/browser/safe_browsing/chrome_password_protection_service_browsertest.cc +++ b/chrome/browser/safe_browsing/chrome_password_protection_service_browsertest.cc
@@ -16,6 +16,9 @@ #include "chrome/browser/ssl/security_state_tab_helper.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/chrome_pages.h" +#include "chrome/browser/ui/hats/mock_trust_safety_sentiment_service.h" +#include "chrome/browser/ui/hats/trust_safety_sentiment_service.h" +#include "chrome/browser/ui/hats/trust_safety_sentiment_service_factory.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" @@ -1389,4 +1392,90 @@ ASSERT_TRUE(prerender_manager.was_activated()); } +#if !BUILDFLAG(IS_ANDROID) +class ChromePasswordProtectionServiceTrustSafetySentimentServiceBrowserTest + : public ChromePasswordProtectionServiceBrowserTest { + public: + void SetUpMockServiceExpectations() { + mock_sentiment_service_ = static_cast<MockTrustSafetySentimentService*>( + TrustSafetySentimentServiceFactory::GetInstance() + ->SetTestingFactoryAndUse( + browser()->profile(), + base::BindRepeating(&BuildMockTrustSafetySentimentService))); + } + + void ExpectPhishedPasswordUpdateNotClickedCall( + PasswordProtectionUIType ui_type, + PasswordProtectionUIAction action) { + EXPECT_CALL(*mock_sentiment_service_, + PhishedPasswordUpdateNotClicked(ui_type, action)); + } + + void ExpectProtectResetOrCheckPasswordClickedCall( + PasswordProtectionUIType ui_type) { + EXPECT_CALL(*mock_sentiment_service_, + ProtectResetOrCheckPasswordClicked(ui_type)); + } + + private: + raw_ptr<MockTrustSafetySentimentService, DanglingUntriaged> + mock_sentiment_service_; +}; + +IN_PROC_BROWSER_TEST_F( + ChromePasswordProtectionServiceTrustSafetySentimentServiceBrowserTest, + NonPasswordChangeTrigger) { + browser()->profile()->GetPrefs()->SetBoolean( + prefs::kSafeBrowsingSurveysEnabled, true); + // Expect Trust and Safety Sentiment Service to call + // PhishedPasswordUpdateNotClicked. + SetUpMockServiceExpectations(); + ExpectPhishedPasswordUpdateNotClickedCall( + PasswordProtectionUIType::MODAL_DIALOG, + PasswordProtectionUIAction::CLOSE); + + ChromePasswordProtectionService* service = GetService(/*is_incognito=*/false); + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + ASSERT_TRUE(ui_test_utils::NavigateToURL( + browser(), embedded_test_server()->GetURL(kLoginPageUrl))); + + ReusedPasswordAccountType account_type; + account_type.set_account_type(ReusedPasswordAccountType::GSUITE); + account_type.set_is_account_syncing(true); + service->OnUserAction(web_contents, account_type, RequestOutcome::UNKNOWN, + LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED, + "unused_token", WarningUIType::MODAL_DIALOG, + WarningAction::CLOSE); + base::RunLoop().RunUntilIdle(); +} + +IN_PROC_BROWSER_TEST_F( + ChromePasswordProtectionServiceTrustSafetySentimentServiceBrowserTest, + PasswordChangeTrigger) { + browser()->profile()->GetPrefs()->SetBoolean( + prefs::kSafeBrowsingSurveysEnabled, true); + // Expect Trust and Safety Sentiment Service to call + // ProtectResetOrCheckPasswordClicked. + SetUpMockServiceExpectations(); + ExpectProtectResetOrCheckPasswordClickedCall( + PasswordProtectionUIType::MODAL_DIALOG); + + ChromePasswordProtectionService* service = GetService(/*is_incognito=*/false); + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + ASSERT_TRUE(ui_test_utils::NavigateToURL( + browser(), embedded_test_server()->GetURL(kLoginPageUrl))); + + ReusedPasswordAccountType account_type; + account_type.set_account_type(ReusedPasswordAccountType::GSUITE); + account_type.set_is_account_syncing(true); + service->OnUserAction(web_contents, account_type, RequestOutcome::UNKNOWN, + LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED, + "unused_token", WarningUIType::MODAL_DIALOG, + WarningAction::CHANGE_PASSWORD); + base::RunLoop().RunUntilIdle(); +} +#endif + } // namespace safe_browsing
diff --git a/chrome/browser/selection/android/java/src/org/chromium/chrome/browser/selection/SelectionPopupBackPressHandler.java b/chrome/browser/selection/android/java/src/org/chromium/chrome/browser/selection/SelectionPopupBackPressHandler.java index ccb88aa..0674eac 100644 --- a/chrome/browser/selection/android/java/src/org/chromium/chrome/browser/selection/SelectionPopupBackPressHandler.java +++ b/chrome/browser/selection/android/java/src/org/chromium/chrome/browser/selection/SelectionPopupBackPressHandler.java
@@ -14,7 +14,6 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; import org.chromium.content_public.browser.SelectionPopupController; -import org.chromium.content_public.browser.WebContents; /** * {@link BackPressHandler} of {@link SelectionPopupController}. This listens to the change of tab @@ -29,7 +28,6 @@ private SelectionPopupController mPopupController; private Tab mTab; - private WebContents mWebContents; /** * @param tabModelSelector A {@link TabModelSelector} which can provide @@ -81,16 +79,12 @@ mPopupController = null; } if (mTab != null) mTab.removeObserver(this); - if (tab == null) { - mWebContents = null; - mTab = null; - return; - } - mWebContents = tab.getWebContents(); - if (tab.getWebContents() == null) return; - tab.addObserver(this); mTab = tab; - mPopupController = SelectionPopupController.fromWebContents(tab.getWebContents()); + if (tab == null) return; + var webContents = tab.getWebContents(); + if (webContents == null) return; + tab.addObserver(this); + mPopupController = SelectionPopupController.fromWebContents(webContents); mPopupController.isSelectActionBarShowingSupplier().addObserver(mCallback); }
diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/browser/sessions/session_restore_browsertest.cc index d603dc7..e63c3e85 100644 --- a/chrome/browser/sessions/session_restore_browsertest.cc +++ b/chrome/browser/sessions/session_restore_browsertest.cc
@@ -3380,7 +3380,7 @@ SessionServiceFactory::GetForProfileForSessionRestore(profile); } - web_app::AppId InstallPWA(Profile* profile, const GURL& start_url) { + webapps::AppId InstallPWA(Profile* profile, const GURL& start_url) { auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); web_app_info->start_url = start_url; web_app_info->scope = start_url.GetWithoutFilename(); @@ -3390,7 +3390,7 @@ return web_app::test::InstallWebApp(profile, std::move(web_app_info)); } - web_app::AppId InstallTabbedPWA(Profile* profile, const GURL& start_url) { + webapps::AppId InstallTabbedPWA(Profile* profile, const GURL& start_url) { blink::Manifest::TabStrip tab_strip; tab_strip.home_tab = blink::Manifest::HomeTabParams(); @@ -3425,7 +3425,7 @@ browser(), example_url2, WindowOpenDisposition::NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); - web_app::AppId app_id = InstallPWA(profile, example_url); + webapps::AppId app_id = InstallPWA(profile, example_url); Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile, app_id); EXPECT_TRUE(app_browser->is_type_app()); @@ -3508,7 +3508,7 @@ ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); // Open a PWA. - web_app::AppId app_id = InstallPWA(profile, example_url); + webapps::AppId app_id = InstallPWA(profile, example_url); // App #1 web_app::LaunchWebAppBrowserAndWait(profile, app_id); @@ -3581,7 +3581,7 @@ profile, ProfileKeepAliveOrigin::kBrowserWindow); // Open a PWA. - web_app::AppId app_id = InstallPWA(profile, example_url); + webapps::AppId app_id = InstallPWA(profile, example_url); Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile, app_id); app_browser->window()->Minimize(); @@ -3646,7 +3646,7 @@ auto example_url = GURL("http://www.example.com"); // Open a PWA. - web_app::AppId app_id = InstallPWA(profile, example_url); + webapps::AppId app_id = InstallPWA(profile, example_url); Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile, app_id); // Maximize. @@ -3744,7 +3744,7 @@ ASSERT_EQ(0u, BrowserList::GetInstance()->size()); // Open a PWA. - web_app::AppId app_id = InstallPWA(profile, example_url); + webapps::AppId app_id = InstallPWA(profile, example_url); Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile, app_id); CloseBrowserSynchronously(app_browser); @@ -3793,7 +3793,7 @@ Profile* profile = browser()->profile(); // Open a PWA. - web_app::AppId app_id = InstallPWA(profile, app_url); + webapps::AppId app_id = InstallPWA(profile, app_url); Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile, app_id); // App and 3 tab browser. @@ -3851,9 +3851,9 @@ auto example_url3 = GURL("http://www.example3.com"); // Install 3 PWAs. - web_app::AppId app_id = InstallPWA(profile, example_url); - web_app::AppId app_id2 = InstallPWA(profile, example_url2); - web_app::AppId app_id3 = InstallPWA(profile, example_url3); + webapps::AppId app_id = InstallPWA(profile, example_url); + webapps::AppId app_id2 = InstallPWA(profile, example_url2); + webapps::AppId app_id3 = InstallPWA(profile, example_url3); // Open all 3, browser 2 is app_popup. Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile, app_id); @@ -3913,7 +3913,7 @@ browser(), example_url2, WindowOpenDisposition::NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); - web_app::AppId app_id = InstallPWA(profile, app_url); + webapps::AppId app_id = InstallPWA(profile, app_url); Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile, app_id); ASSERT_EQ(2u, BrowserList::GetInstance()->size()); @@ -3972,8 +3972,8 @@ auto profile_keep_alive = std::make_unique<ScopedProfileKeepAlive>( profile, ProfileKeepAliveOrigin::kBrowserWindow); - web_app::AppId app_id = InstallPWA(profile, app_url); - web_app::AppId app_id2 = InstallPWA(profile, app_url2); + webapps::AppId app_id = InstallPWA(profile, app_url); + webapps::AppId app_id2 = InstallPWA(profile, app_url2); CloseBrowserSynchronously(browser()); @@ -4081,7 +4081,7 @@ IN_PROC_BROWSER_TEST_F(TabbedAppSessionRestoreTest, RestorePinnedAppTab) { Profile* profile = browser()->profile(); GURL app_url = GURL("http://www.example.com"); - web_app::AppId app_id = InstallTabbedPWA(profile, app_url); + webapps::AppId app_id = InstallTabbedPWA(profile, app_url); Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile, app_id); TabStripModel* tab_strip = app_browser->tab_strip_model();
diff --git a/chrome/browser/support_tool/OWNERS b/chrome/browser/support_tool/OWNERS index 63381752..f57c5d31 100644 --- a/chrome/browser/support_tool/OWNERS +++ b/chrome/browser/support_tool/OWNERS
@@ -1,3 +1,2 @@ iremuguz@google.com -pmarko@chromium.org -srad@google.com \ No newline at end of file +pmarko@chromium.org \ No newline at end of file
diff --git a/chrome/browser/sync/sync_ui_util.cc b/chrome/browser/sync/sync_ui_util.cc index edd6c92c..4efe982f 100644 --- a/chrome/browser/sync/sync_ui_util.cc +++ b/chrome/browser/sync/sync_ui_util.cc
@@ -20,7 +20,7 @@ #include "chrome/browser/ui/singleton_tabs.h" #include "chrome/grit/branded_strings.h" #include "chrome/grit/generated_resources.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/prefs/pref_service.h" #include "components/signin/public/identity_manager/identity_manager.h" #include "components/strings/grit/components_strings.h"
diff --git a/chrome/browser/sync/test/integration/password_manager_sync_test.cc b/chrome/browser/sync/test/integration/password_manager_sync_test.cc index 98d4d7a..a45dd17 100644 --- a/chrome/browser/sync/test/integration/password_manager_sync_test.cc +++ b/chrome/browser/sync/test/integration/password_manager_sync_test.cc
@@ -38,8 +38,8 @@ #include "chrome/common/pref_names.h" #include "chrome/test/base/ui_test_utils.h" #include "components/password_manager/core/browser/features/password_features.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_test_utils.h" #include "components/password_manager/core/browser/password_manager_util.h" #include "components/password_manager/core/browser/password_store_interface.h"
diff --git a/chrome/browser/sync/test/integration/single_client_incoming_password_sharing_invitation_test.cc b/chrome/browser/sync/test/integration/single_client_incoming_password_sharing_invitation_test.cc index f9d5ff5..23365d3 100644 --- a/chrome/browser/sync/test/integration/single_client_incoming_password_sharing_invitation_test.cc +++ b/chrome/browser/sync/test/integration/single_client_incoming_password_sharing_invitation_test.cc
@@ -19,8 +19,8 @@ #include "chrome/browser/sync/test/integration/sync_service_impl_harness.h" #include "chrome/browser/sync/test/integration/sync_test.h" #include "components/password_manager/core/browser/features/password_features.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/sync/base/features.h" #include "components/sync/engine/cycle/entity_change_metric_recording.h" #include "components/sync/engine/nigori/cross_user_sharing_public_key.h"
diff --git a/chrome/browser/sync/test/integration/single_client_nigori_sync_test.cc b/chrome/browser/sync/test/integration/single_client_nigori_sync_test.cc index db42aae..a15f02ec 100644 --- a/chrome/browser/sync/test/integration/single_client_nigori_sync_test.cc +++ b/chrome/browser/sync/test/integration/single_client_nigori_sync_test.cc
@@ -35,7 +35,7 @@ #include "chrome/browser/ui/browser_tabstrip.h" #include "chrome/grit/generated_resources.h" #include "components/password_manager/core/browser/features/password_features.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_store_interface.h" #include "components/signin/public/identity_manager/identity_test_utils.h" #include "components/sync/base/features.h"
diff --git a/chrome/browser/sync/test/integration/single_client_passwords_sync_test.cc b/chrome/browser/sync/test/integration/single_client_passwords_sync_test.cc index 36e8071..69583ec 100644 --- a/chrome/browser/sync/test/integration/single_client_passwords_sync_test.cc +++ b/chrome/browser/sync/test/integration/single_client_passwords_sync_test.cc
@@ -16,8 +16,8 @@ #include "chrome/browser/sync/test/integration/sync_test.h" #include "chrome/browser/sync/test/integration/updated_progress_marker_checker.h" #include "components/password_manager/core/browser/features/password_features.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_test_utils.h" #include "components/password_manager/core/browser/password_store_interface.h" #include "components/password_manager/core/browser/sync/password_sync_bridge.h"
diff --git a/chrome/browser/sync/test/integration/single_client_secondary_account_sync_test.cc b/chrome/browser/sync/test/integration/single_client_secondary_account_sync_test.cc index e3a093a..a126810 100644 --- a/chrome/browser/sync/test/integration/single_client_secondary_account_sync_test.cc +++ b/chrome/browser/sync/test/integration/single_client_secondary_account_sync_test.cc
@@ -21,27 +21,6 @@ namespace { #if !BUILDFLAG(IS_CHROMEOS_ASH) -syncer::ModelTypeSet AllowedTypesInStandaloneTransportMode() { - static_assert(49 == syncer::GetNumModelTypes(), - "Add new types below if they can run in transport mode"); - // Only some types will run by default in transport mode (i.e. without their - // own separate opt-in). - syncer::ModelTypeSet allowed_types = {syncer::AUTOFILL_WALLET_CREDENTIAL, - syncer::AUTOFILL_WALLET_DATA, - syncer::AUTOFILL_WALLET_METADATA, - syncer::AUTOFILL_WALLET_OFFER, - syncer::AUTOFILL_WALLET_USAGE, - syncer::CONTACT_INFO, - syncer::DEVICE_INFO, - syncer::READING_LIST, - syncer::SECURITY_EVENTS, - syncer::SEND_TAB_TO_SELF, - syncer::SHARING_MESSAGE, - syncer::USER_CONSENTS}; - allowed_types.PutAll(syncer::ControlTypes()); - return allowed_types; -} - base::FilePath GetTestFilePathForCacheGuid() { base::FilePath user_data_path; base::PathService::Get(chrome::DIR_USER_DATA, &user_data_path);
diff --git a/chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc b/chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc index 50596c9..aa891ab 100644 --- a/chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc +++ b/chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
@@ -30,39 +30,6 @@ namespace { -syncer::ModelTypeSet AllowedTypesInStandaloneTransportMode() { - static_assert(49 == syncer::GetNumModelTypes(), - "Add new types below if they can run in transport mode"); - // Only some types will run by default in transport mode (i.e. without their - // own separate opt-in). - syncer::ModelTypeSet allowed_types = {syncer::AUTOFILL_WALLET_CREDENTIAL, - syncer::AUTOFILL_WALLET_DATA, - syncer::AUTOFILL_WALLET_METADATA, - syncer::AUTOFILL_WALLET_OFFER, - syncer::AUTOFILL_WALLET_USAGE, - syncer::CONTACT_INFO, - syncer::DEVICE_INFO, - syncer::READING_LIST, - syncer::SECURITY_EVENTS, - syncer::SEND_TAB_TO_SELF, - syncer::SHARING_MESSAGE, - syncer::USER_CONSENTS}; - allowed_types.PutAll(syncer::ControlTypes()); -#if BUILDFLAG(IS_CHROMEOS_LACROS) - // On Lacros, Apps-related types may run in transport mode. - allowed_types.PutAll({syncer::APPS, syncer::APP_SETTINGS, syncer::WEB_APPS}); -#endif // BUILDFLAG(IS_CHROMEOS_LACROS) -#if BUILDFLAG(IS_CHROMEOS_ASH) - // OS sync types run in transport mode. - allowed_types.PutAll({syncer::APP_LIST, syncer::ARC_PACKAGE, - syncer::OS_PREFERENCES, syncer::OS_PRIORITY_PREFERENCES, - syncer::PRINTERS, - syncer::PRINTERS_AUTHORIZATION_SERVERS, - syncer::WIFI_CONFIGURATIONS, syncer::WORKSPACE_DESK}); -#endif // BUILDFLAG(IS_CHROMEOS_ASH) - return allowed_types; -} - base::FilePath GetTestFilePathForCacheGuid() { base::FilePath user_data_path; base::PathService::Get(chrome::DIR_USER_DATA, &user_data_path);
diff --git a/chrome/browser/sync/test/integration/single_client_webauthn_credentials_sync_test.cc b/chrome/browser/sync/test/integration/single_client_webauthn_credentials_sync_test.cc index ee595f3..ec76d28 100644 --- a/chrome/browser/sync/test/integration/single_client_webauthn_credentials_sync_test.cc +++ b/chrome/browser/sync/test/integration/single_client_webauthn_credentials_sync_test.cc
@@ -12,7 +12,7 @@ #include "chrome/browser/sync/test/integration/sync_test.h" #include "chrome/browser/sync/test/integration/webauthn_credentials_helper.h" #include "chrome/browser/ui/browser.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/sync/base/client_tag_hash.h" #include "components/sync/base/features.h" #include "components/sync/base/model_type.h"
diff --git a/chrome/browser/sync/test/integration/sync_test.cc b/chrome/browser/sync/test/integration/sync_test.cc index dab8eeb4..60ef75fc 100644 --- a/chrome/browser/sync/test/integration/sync_test.cc +++ b/chrome/browser/sync/test/integration/sync_test.cc
@@ -62,9 +62,11 @@ #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/keyed_service/core/keyed_service.h" #include "components/os_crypt/sync/os_crypt_mocker.h" +#include "components/password_manager/core/browser/features/password_features.h" #include "components/prefs/scoped_user_pref_update.h" #include "components/signin/public/base/consent_level.h" #include "components/sync/base/command_line_switches.h" +#include "components/sync/base/features.h" #include "components/sync/base/model_type.h" #include "components/sync/engine/sync_scheduler_impl.h" #include "components/sync/invalidations/sync_invalidations_service_impl.h" @@ -1115,3 +1117,61 @@ syncer::ModelTypeSet types) { excluded_types_from_check_for_data_type_failures_ = types; } + +syncer::ModelTypeSet AllowedTypesInStandaloneTransportMode() { + static_assert(49 == syncer::GetNumModelTypes(), + "Add new types below if they can run in transport mode"); + // Only some types will run by default in transport mode (i.e. without their + // own separate opt-in). + syncer::ModelTypeSet allowed_types = {syncer::AUTOFILL_WALLET_CREDENTIAL, + syncer::AUTOFILL_WALLET_DATA, + syncer::AUTOFILL_WALLET_USAGE, + syncer::CONTACT_INFO, + syncer::DEVICE_INFO, + syncer::SECURITY_EVENTS, + syncer::SEND_TAB_TO_SELF, + syncer::SHARING_MESSAGE, + syncer::USER_CONSENTS}; + allowed_types.PutAll(syncer::ControlTypes()); + + if (base::FeatureList::IsEnabled( + syncer::kSyncEnableWalletMetadataInTransportMode)) { + allowed_types.Put(syncer::AUTOFILL_WALLET_METADATA); + } + if (base::FeatureList::IsEnabled( + syncer::kSyncEnableWalletOfferInTransportMode)) { + allowed_types.Put(syncer::AUTOFILL_WALLET_OFFER); + } + if (base::FeatureList::IsEnabled(syncer::kEnableBookmarksAccountStorage)) { + allowed_types.Put(syncer::BOOKMARKS); + } + if (base::FeatureList::IsEnabled( + password_manager::features::kEnablePasswordsAccountStorage)) { + allowed_types.Put(syncer::PASSWORDS); + } + if (base::FeatureList::IsEnabled(syncer::kEnablePreferencesAccountStorage) && + base::FeatureList::IsEnabled( + syncer::kReplaceSyncPromosWithSignInPromos)) { + allowed_types.Put(syncer::PREFERENCES); + allowed_types.Put(syncer::PRIORITY_PREFERENCES); + } + if (base::FeatureList::IsEnabled( + syncer::kReadingListEnableDualReadingListModel) && + base::FeatureList::IsEnabled( + syncer::kReadingListEnableSyncTransportModeUponSignIn)) { + allowed_types.Put(syncer::READING_LIST); + } +#if BUILDFLAG(IS_CHROMEOS_LACROS) + // On Lacros, Apps-related types may run in transport mode. + allowed_types.PutAll({syncer::APPS, syncer::APP_SETTINGS, syncer::WEB_APPS}); +#endif // BUILDFLAG(IS_CHROMEOS_LACROS) +#if BUILDFLAG(IS_CHROMEOS_ASH) + // OS sync types run in transport mode. + allowed_types.PutAll({syncer::APP_LIST, syncer::ARC_PACKAGE, + syncer::OS_PREFERENCES, syncer::OS_PRIORITY_PREFERENCES, + syncer::PRINTERS, + syncer::PRINTERS_AUTHORIZATION_SERVERS, + syncer::WIFI_CONFIGURATIONS, syncer::WORKSPACE_DESK}); +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + return allowed_types; +}
diff --git a/chrome/browser/sync/test/integration/sync_test.h b/chrome/browser/sync/test/integration/sync_test.h index eca3c26..7fe15e0 100644 --- a/chrome/browser/sync/test/integration/sync_test.h +++ b/chrome/browser/sync/test/integration/sync_test.h
@@ -460,4 +460,6 @@ fake_server_sync_invalidation_sender_; }; +syncer::ModelTypeSet AllowedTypesInStandaloneTransportMode(); + #endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_SYNC_TEST_H_
diff --git a/chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc b/chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc index ad07e50..298df1a 100644 --- a/chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc +++ b/chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc
@@ -18,8 +18,8 @@ #include "chrome/browser/sync/test/integration/sync_service_impl_harness.h" #include "chrome/browser/sync/test/integration/sync_test.h" #include "chrome/browser/sync/test/integration/updated_progress_marker_checker.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_store_interface.h" #include "components/password_manager/core/common/password_manager_features.h" #include "components/sync/base/features.h"
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 82a1f14..0c6546c 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -4766,14 +4766,14 @@ "views/autofill/payments/virtual_card_manual_fallback_bubble_views.h", "views/autofill/payments/virtual_card_manual_fallback_icon_view.cc", "views/autofill/payments/virtual_card_manual_fallback_icon_view.h", - "views/autofill/popup/popup_autocomplete_cell_view.cc", - "views/autofill/popup/popup_autocomplete_cell_view.h", "views/autofill/popup/popup_base_view.cc", "views/autofill/popup/popup_base_view.h", "views/autofill/popup/popup_cell_utils.cc", "views/autofill/popup/popup_cell_utils.h", "views/autofill/popup/popup_cell_view.cc", "views/autofill/popup/popup_cell_view.h", + "views/autofill/popup/popup_cell_with_button_view.cc", + "views/autofill/popup/popup_cell_with_button_view.h", "views/autofill/popup/popup_row_strategy.cc", "views/autofill/popup/popup_row_strategy.h", "views/autofill/popup/popup_row_view.cc",
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 fccce8b..9ad4f54f 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
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">Huidig</translation> <translation id="2472163211318554013">Meld aan om Chrome ten beste te benut</translation> <translation id="247737702124049222">Prentbeskrywings is aan</translation> +<translation id="2479148705183875116">Gaan na Instellings</translation> <translation id="2482878487686419369">Kennisgewings</translation> <translation id="2496180316473517155">Blaaigeskiedenis</translation> <translation id="2497852260688568942">Jou administrateur het sinkronisering gedeaktiveer</translation>
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 1292f292..c13f82f 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
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">የአሁኑ ጊዜ</translation> <translation id="2472163211318554013">ከChrome የሚችሉትን ሁሉ ለማግኘት በመለያ ይግቡ</translation> <translation id="247737702124049222">የምስል መግለጫዎች በርተዋል</translation> +<translation id="2479148705183875116">ወደ ቅንብሮች ሂድ</translation> <translation id="2482878487686419369">ማስታወቂያዎች</translation> <translation id="2496180316473517155">ታሪክ አሰሳ</translation> <translation id="2497852260688568942">ስምረት በእርስዎ አስተዳዳሪ ተሰናክሏል</translation>
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 f304c57..0e8101ce 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">حاليًا</translation> <translation id="2472163211318554013">تسجيل الدخول للاستفادة إلى أقصى حدّ من Chrome</translation> <translation id="247737702124049222">ميزة أوصاف الصور مفعَّلة.</translation> +<translation id="2479148705183875116">الانتقال إلى الإعدادات</translation> <translation id="2482878487686419369">الإشعارات</translation> <translation id="2496180316473517155">سجلّ التصفّح</translation> <translation id="2497852260688568942">تم إيقاف المزامنة من قِبل المشرف</translation>
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 d05e168..42db1e3 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">বৰ্তমান</translation> <translation id="2472163211318554013">Chromeৰ পৰা পাৰ্যমানে উপকৃত হ’বলৈ ছাইন ইন কৰক</translation> <translation id="247737702124049222">প্ৰতিচ্ছবিৰ বিৱৰণ অন আছে</translation> +<translation id="2479148705183875116">ছেটিংসমূহলৈ যাওক</translation> <translation id="2482878487686419369">জাননী</translation> <translation id="2496180316473517155">ব্ৰাউজিঙৰ ইতিহাস</translation> <translation id="2497852260688568942">আপোনাৰ প্ৰশাসকে ছিংক অক্ষম কৰিছে</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb index fcd50ffb..7409f83 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Cari</translation> <translation id="2472163211318554013">Chrome'dan maksimum yararlanmaq üçün daxil olun</translation> <translation id="247737702124049222">Şəkil təsvirləri aktivdir</translation> +<translation id="2479148705183875116">Ayarlara keçin</translation> <translation id="2482878487686419369">Bildirişlər</translation> <translation id="2496180316473517155">Brauzer tarixçəsi</translation> <translation id="2497852260688568942">Sinxronizasiya administratorunuz tərəfindən deaktiv edilib</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb index d41d0e2..922fd28 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Цяпер</translation> <translation id="2472163211318554013">Увайдзіце ва ўліковы запіс, каб карыстацца ўсімі магчымасцямі Chrome</translation> <translation id="247737702124049222">Апісанні відарысаў уключаны</translation> +<translation id="2479148705183875116">Перайсці ў Налады</translation> <translation id="2482878487686419369">Апавяшчэнні</translation> <translation id="2496180316473517155">Гісторыя прагляду сайтаў</translation> <translation id="2497852260688568942">Сінхранізацыя выключана вашым адміністратарам</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb index c2fa6d5c..d941e5d9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Ток</translation> <translation id="2472163211318554013">Влезте в профила си, за да се възползвате максимално от Chrome</translation> <translation id="247737702124049222">Функцията за описания на изображенията е включена</translation> +<translation id="2479148705183875116">Към настройките</translation> <translation id="2482878487686419369">Известия</translation> <translation id="2496180316473517155">История на сърфирането</translation> <translation id="2497852260688568942">Синхронизирането е деактивирано от администратора ви</translation>
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 1de8b78..e610cc6e 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">বর্তমান</translation> <translation id="2472163211318554013">Chrome থেকে সবচেয়ে বেশি সুবিধা পেতে সাইন-ইন করুন</translation> <translation id="247737702124049222">ছবির বিবরণ চালু করা আছে</translation> +<translation id="2479148705183875116">সেটিংসে যান</translation> <translation id="2482878487686419369">বিজ্ঞপ্তিগুলি</translation> <translation id="2496180316473517155">ব্রাউজিং ইতিহাস</translation> <translation id="2497852260688568942">আপনার প্রশাসকের দ্বারা সিঙ্ক অক্ষম করা হয়েছে</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb index 1bdbf7da..ccfc2160 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Trenutno</translation> <translation id="2472163211318554013">Prijavite se da iskoristite prednosti Chromea</translation> <translation id="247737702124049222">Opisi slika su uključeni</translation> +<translation id="2479148705183875116">Idi u postavke</translation> <translation id="2482878487686419369">Obavještenja</translation> <translation id="2496180316473517155">Historija pregledanja</translation> <translation id="2497852260688568942">Sinhronizaciju je onemogućio vaš administrator</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb index 4c49c99..1be8dfe3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Actual</translation> <translation id="2472163211318554013">Inicia la sessió per treure el màxim profit de Chrome</translation> <translation id="247737702124049222">Les descripcions de les imatges estan activades</translation> +<translation id="2479148705183875116">Ves a Configuració</translation> <translation id="2482878487686419369">Notificacions</translation> <translation id="2496180316473517155">Historial de navegació</translation> <translation id="2497852260688568942">L'administrador ha desactivat la sincronització</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb index 4b79b4b5..f497115c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Aktuální</translation> <translation id="2472163211318554013">Pokud z Chromu chcete získat maximum, přihlaste se</translation> <translation id="247737702124049222">Popisy obrázků jsou zapnuté</translation> +<translation id="2479148705183875116">Přejít do nastavení</translation> <translation id="2482878487686419369">Oznámení</translation> <translation id="2496180316473517155">Historie procházení</translation> <translation id="2497852260688568942">Synchronizace je administrátorem zakázána.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb index cbc3f69..e25a95a9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Presennol</translation> <translation id="2472163211318554013">Mewngofnodwch i gael y gorau o Chrome</translation> <translation id="247737702124049222">Mae disgrifiadau lluniau wedi'u troi ymlaen</translation> +<translation id="2479148705183875116">Mynd i'r Gosodiadau</translation> <translation id="2482878487686419369">Hysbysiadau</translation> <translation id="2496180316473517155">Hanes pori</translation> <translation id="2497852260688568942">Mae Cysoni wedi'i analluogi gan eich gweinyddwr</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb index 49ad1d0..702cd7ca 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Aktuel</translation> <translation id="2472163211318554013">Log ind for at få mest muligt ud af Chrome</translation> <translation id="247737702124049222">Billedbeskrivelser er slået til</translation> +<translation id="2479148705183875116">Gå til Indstillinger</translation> <translation id="2482878487686419369">Notifikationer</translation> <translation id="2496180316473517155">Browserhistorik</translation> <translation id="2497852260688568942">Synkronisering er deaktiveret af din administrator.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb index acac28aa..64931c7 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Aktuell</translation> <translation id="2472163211318554013">Wenn du Chrome optimal nutzen möchtest, melde dich an</translation> <translation id="247737702124049222">Bildbeschreibungen sind aktiviert</translation> +<translation id="2479148705183875116">Zu den Einstellungen</translation> <translation id="2482878487686419369">Benachrichtigungen</translation> <translation id="2496180316473517155">Browserverlauf</translation> <translation id="2497852260688568942">Die Synchronisierung wurde von deinem Administrator deaktiviert</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb index a3e14d0..a64a666b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Τρέχουσα</translation> <translation id="2472163211318554013">Συνδεθείτε για να αξιοποιήσετε πλήρως το Chrome</translation> <translation id="247737702124049222">Οι περιγραφές εικόνων είναι ενεργοποιημένες</translation> +<translation id="2479148705183875116">Μετάβαση στις Ρυθμίσεις</translation> <translation id="2482878487686419369">Ειδοποιήσεις</translation> <translation id="2496180316473517155">Ιστορικό περιήγησης</translation> <translation id="2497852260688568942">Ο συγχρονισμός έχει απενεργοποιηθεί από τον διαχειριστή σας</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb index a08ce0f..b1f9832e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">Current</translation> <translation id="2472163211318554013">Sign in to get the most out of Chrome</translation> <translation id="247737702124049222">Image descriptions are on</translation> +<translation id="2479148705183875116">Go to Settings</translation> <translation id="2482878487686419369">Notifications</translation> <translation id="2496180316473517155">Browsing history</translation> <translation id="2497852260688568942">Sync is disabled by your administrator</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb index 6da6be3..2956002 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Actual</translation> <translation id="2472163211318554013">Para aprovechar Chrome al máximo, accede a tu cuenta.</translation> <translation id="247737702124049222">Las descripciones de imágenes están activadas.</translation> +<translation id="2479148705183875116">Ir a Configuración</translation> <translation id="2482878487686419369">Notificaciones</translation> <translation id="2496180316473517155">Historial de navegación</translation> <translation id="2497852260688568942">Tu administrador inhabilitó la sincronización</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb index a4cdb1c..b240500 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Actual</translation> <translation id="2472163211318554013">Inicia sesión para sacarle el máximo partido a Chrome</translation> <translation id="247737702124049222">Las descripciones de imágenes están activadas</translation> +<translation id="2479148705183875116">Ve a Ajustes</translation> <translation id="2482878487686419369">Notificaciones</translation> <translation id="2496180316473517155">Historial de navegación</translation> <translation id="2497852260688568942">El administrador ha inhabilitado la sincronización</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb index 52c60bfb..f3b7e87 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Praegune</translation> <translation id="2472163211318554013">Chrome'i parimal moel kasutamiseks logige sisse</translation> <translation id="247737702124049222">Pildikirjeldused on sisse lülitatud</translation> +<translation id="2479148705183875116">Ava seaded</translation> <translation id="2482878487686419369">Märguanded</translation> <translation id="2496180316473517155">Sirvimise ajalugu</translation> <translation id="2497852260688568942">Administraator on sünkroonimise keelanud</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb index a40d1d8c..2e27305f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Oraingoa</translation> <translation id="2472163211318554013">Hasi saioa Chrome-ri etekinik handiena ateratzeko</translation> <translation id="247737702124049222">Aktibatu dira irudien azalpenak</translation> +<translation id="2479148705183875116">Joan "Ezarpenak" atalera</translation> <translation id="2482878487686419369">Jakinarazpenak</translation> <translation id="2496180316473517155">Arakatze-historia</translation> <translation id="2497852260688568942">Administratzaileak sinkronizazioa desgaitu du</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb index df61ae91..34ea2112 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">فعلی</translation> <translation id="2472163211318554013">برای بردن بیشترین بهره از Chrome، به سیستم وارد شوید</translation> <translation id="247737702124049222">توضیحات تصویر روشن است</translation> +<translation id="2479148705183875116">رفتن به تنظیمات</translation> <translation id="2482878487686419369">اعلانها</translation> <translation id="2496180316473517155">سابقه مرور</translation> <translation id="2497852260688568942">سرپرستتان همگامسازی را غیرفعال کرده است</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb index 184fd2b..b4411eb 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Nykyinen</translation> <translation id="2472163211318554013">Saat eniten irti Chromesta kirjautumalla sisään</translation> <translation id="247737702124049222">Kuvaselitykset ovat päällä</translation> +<translation id="2479148705183875116">Avaa Asetukset</translation> <translation id="2482878487686419369">Ilmoitukset</translation> <translation id="2496180316473517155">Selaushistoria</translation> <translation id="2497852260688568942">Järjestelmänvalvoja on poistanut synkronoinnin käytöstä.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb index b239406..fad9a5b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Kasalukuyan</translation> <translation id="2472163211318554013">Mag-sign in para masulit ang Chrome</translation> <translation id="247737702124049222">Naka-on ang mga paglalarawan ng larawan</translation> +<translation id="2479148705183875116">Pumunta sa Mga Setting</translation> <translation id="2482878487686419369">Mga Abiso</translation> <translation id="2496180316473517155">History ng Pag-browse</translation> <translation id="2497852260688568942">Na-disable ng iyong administrator ang pag-sync</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb index a0605fb..3ae12e5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Actuelle</translation> <translation id="2472163211318554013">Connectez-vous pour profiter pleinement de Chrome</translation> <translation id="247737702124049222">Les descriptions d'images sont activées</translation> +<translation id="2479148705183875116">Accéder aux paramètres</translation> <translation id="2482878487686419369">Notifications</translation> <translation id="2496180316473517155">Historique de navigation</translation> <translation id="2497852260688568942">La synchronisation est désactivée par votre administrateur</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb index d13c810..3cff861 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Actuelle</translation> <translation id="2472163211318554013">Connectez-vous pour profiter pleinement de Chrome</translation> <translation id="247737702124049222">Les descriptions d'images sont activées</translation> +<translation id="2479148705183875116">Accéder aux paramètres</translation> <translation id="2482878487686419369">Notifications</translation> <translation id="2496180316473517155">Historique de navigation</translation> <translation id="2497852260688568942">Votre administrateur a désactivé la synchronisation</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb index c47453b..6565554 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Actual</translation> <translation id="2472163211318554013">Inicia sesión para sacarlle o máximo partido a Chrome</translation> <translation id="247737702124049222">As descricións das imaxes están activadas</translation> +<translation id="2479148705183875116">Ir a Configuración</translation> <translation id="2482878487686419369">Notificacións</translation> <translation id="2496180316473517155">Historial de navegación</translation> <translation id="2497852260688568942">O administrador desactivou a sincronización</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb index 53399a86..db40120 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">વર્તમાન</translation> <translation id="2472163211318554013">Chromeનો સૌથી વધુ લાભ મેળવવા માટે સાઇન ઇન કરો</translation> <translation id="247737702124049222">છબીના વર્ણનોની સુવિધા ચાલુ છે</translation> +<translation id="2479148705183875116">સેટિંગ પર જાઓ</translation> <translation id="2482878487686419369">નોટિફિકેશનો</translation> <translation id="2496180316473517155">બ્રાઉઝિંગ ઇતિહાસ</translation> <translation id="2497852260688568942">સમન્વયન, તમારા વ્યવસ્થાપક દ્વારા અક્ષમ કરવામાં આવ્યું છે</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb index 669f36a6..ac9bcdda 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
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">मौजूदा</translation> <translation id="2472163211318554013">Chrome का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, साइन इन करें</translation> <translation id="247737702124049222">इमेज की जानकारी जोड़ने की सुविधा चालू कर दी गई है</translation> +<translation id="2479148705183875116">सेटिंग पर जाएं</translation> <translation id="2482878487686419369">सूचनाएं</translation> <translation id="2496180316473517155">ब्राउज़िंग इतिहास</translation> <translation id="2497852260688568942">सिंक को आपके व्यवस्थापक ने अक्षम कर दिया है</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb index a63f0c5e..e83ea1b 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Trenutačno</translation> <translation id="2472163211318554013">Prijavite se da biste iskoristili sve prednosti Chromea</translation> <translation id="247737702124049222">Uključeni su opisi slika</translation> +<translation id="2479148705183875116">Otvori Postavke</translation> <translation id="2482878487686419369">Obavijesti</translation> <translation id="2496180316473517155">Povijest pregledavanja</translation> <translation id="2497852260688568942">Administrator je onemogućio sinkronizaciju</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb index b90f30d..dc055a4 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">Jelenlegi</translation> <translation id="2472163211318554013">Jelentkezzen be, hogy a legtöbbet hozhassa ki a Chrome-ból</translation> <translation id="247737702124049222">A képleírások be vannak kapcsolva</translation> +<translation id="2479148705183875116">Beállítások</translation> <translation id="2482878487686419369">Értesítések</translation> <translation id="2496180316473517155">Böngészés előzményei</translation> <translation id="2497852260688568942">A szinkronizálást letiltotta a rendszergazda</translation>
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 35ee519..cab16683 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Ընթացիկ</translation> <translation id="2472163211318554013">Մտեք հաշիվ՝ Chromе-ի բոլոր գործառույթներից օգտվելու համար</translation> <translation id="247737702124049222">Պատկերների նկարագրությունները միացված են</translation> +<translation id="2479148705183875116">Անցնել կարգավորումներ</translation> <translation id="2482878487686419369">Ծանուցումներ</translation> <translation id="2496180316473517155">Դիտարկումների պատմություն</translation> <translation id="2497852260688568942">Ձեր ադմինիստրատորն անջատել է համաժամացումը</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb index c573782..2b86c23e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Arus</translation> <translation id="2472163211318554013">Login untuk mengoptimalkan penggunaan Chrome</translation> <translation id="247737702124049222">Deskripsi gambar aktif</translation> +<translation id="2479148705183875116">Buka Setelan</translation> <translation id="2482878487686419369">Notifikasi</translation> <translation id="2496180316473517155">Histori penjelajahan</translation> <translation id="2497852260688568942">Sinkronisasi dinonaktifkan oleh administrator</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb index 0007584e..d7fac6a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Núna</translation> <translation id="2472163211318554013">Skráðu þig inn til að fá sem mest út úr Chrome</translation> <translation id="247737702124049222">Kveikt er á lýsingum mynda</translation> +<translation id="2479148705183875116">Opna stillingar</translation> <translation id="2482878487686419369">Tilkynningar</translation> <translation id="2496180316473517155">Vafraferill</translation> <translation id="2497852260688568942">Kerfisstjóri hefur gert samstillingu óvirka</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb index 7c9c548..f65e9d38 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Attuale</translation> <translation id="2472163211318554013">Accedi per usare al meglio Chrome</translation> <translation id="247737702124049222">Le descrizioni delle immagini sono attive</translation> +<translation id="2479148705183875116">Vai a Impostazioni</translation> <translation id="2482878487686419369">Notifiche</translation> <translation id="2496180316473517155">Cronologia di navigazione</translation> <translation id="2497852260688568942">La sincronizzazione è stata disattivata dall'amministratore</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb index 1cfb6bc1..5f783854 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">כרגע</translation> <translation id="2472163211318554013">כדי להפיק את המרב מ-Chrome, עליך להיכנס לחשבון</translation> <translation id="247737702124049222">התכונה 'תיאורי תמונות' מופעלת</translation> +<translation id="2479148705183875116">למעבר אל ההגדרות</translation> <translation id="2482878487686419369">התראות</translation> <translation id="2496180316473517155">היסטוריית גלישה</translation> <translation id="2497852260688568942">מנהל המערכת שלך השבית את הסנכרון</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb index 3a49adb..7698f03 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">現在</translation> <translation id="2472163211318554013">Chrome を最大限に活用するにはログインしてください</translation> <translation id="247737702124049222">画像の説明をオンにしました</translation> +<translation id="2479148705183875116">設定に移動</translation> <translation id="2482878487686419369">通知</translation> <translation id="2496180316473517155">閲覧履歴</translation> <translation id="2497852260688568942">同期は管理者により無効にされています</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb index bb7b8ce..7ce3b5b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">ამჟამინდელი</translation> <translation id="2472163211318554013">Chrome-ის შესაძლებლობები მაქსიმალურად რომ გამოიყენოთ, შედით სისტემაში</translation> <translation id="247737702124049222">სურათების აღწერილობები ჩართულია</translation> +<translation id="2479148705183875116">პარამეტრებზე გადასვლა</translation> <translation id="2482878487686419369">შეტყობინებები</translation> <translation id="2496180316473517155">ნახვის ისტორია</translation> <translation id="2497852260688568942">სინქრონიზაცია გათიშულია თქვენი ადმინისტრატორის მიერ</translation>
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 bf4a4095..ee64742 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Қазіргі</translation> <translation id="2472163211318554013">Chrome-ды толық қолдану үшін аккаунтқа кіріңіз.</translation> <translation id="247737702124049222">Кескін сипаттамалары қосулы.</translation> +<translation id="2479148705183875116">Параметрлерге өту</translation> <translation id="2482878487686419369">Хабарландырулар</translation> <translation id="2496180316473517155">Шолу журналы</translation> <translation id="2497852260688568942">Синхрондау мүмкіндігін әкімші өшіріп қойған</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb index c05656c2..22dfa33 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">បច្ចុប្បន្ន</translation> <translation id="2472163211318554013">ចូលគណនី ដើម្បីទទួលបានអត្ថប្រយោជន៍ច្រើនបំផុតពី Chrome</translation> <translation id="247737702124049222">ការពណ៌នាអំពីរូបភាពត្រូវបានបើក</translation> +<translation id="2479148705183875116">ចូលទៅកាន់ការកំណត់</translation> <translation id="2482878487686419369">ការជូនដំណឹង</translation> <translation id="2496180316473517155">ប្រវត្តិរុករក</translation> <translation id="2497852260688568942">សមកាលកម្មបានបិទដោយអ្នកគ្រប់គ្រងរបស់អ្នក</translation>
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 afd0e11..9799de75 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
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">ಪ್ರಸ್ತುತ</translation> <translation id="2472163211318554013">Chrome ನಿಂದ ಹೆಚ್ಚಿನದನ್ನು ಪಡೆಯಲು ಸೈನ್ ಇನ್ ಮಾಡಿ</translation> <translation id="247737702124049222">ಚಿತ್ರ ವಿವರಣೆಗಳು ಆನ್ ಆಗಿವೆ</translation> +<translation id="2479148705183875116">ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಹೋಗಿ</translation> <translation id="2482878487686419369">ಸೂಚನೆಗಳು</translation> <translation id="2496180316473517155">ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸ</translation> <translation id="2497852260688568942">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸಿಂಕ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb index 29cfd72..3c82571 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">현재</translation> <translation id="2472163211318554013">로그인하여 Chrome의 모든 기능을 이용하세요</translation> <translation id="247737702124049222">이미지 설명 사용 설정됨</translation> +<translation id="2479148705183875116">설정으로 이동</translation> <translation id="2482878487686419369">알림</translation> <translation id="2496180316473517155">인터넷 사용 기록</translation> <translation id="2497852260688568942">관리자가 동기화를 사용 중지했습니다.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb index fef57c7..db177e7ed 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Учурда</translation> <translation id="2472163211318554013">Chrome'дун бардык мүмкүнчүлүктөрүн пайдалуу үчүн аккаунтуңузга кириңиз</translation> <translation id="247737702124049222">Сүрөттөмөлөр күйүк</translation> +<translation id="2479148705183875116">Параметрлерге өтүү</translation> <translation id="2482878487686419369">Билдирмелер</translation> <translation id="2496180316473517155">Серептөө таржымалы</translation> <translation id="2497852260688568942">Шайкештирүү функциясын администраторуңуз өчүрүп койгон</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb index c5981cd..c7c42bd8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">ປັດຈຸບັນ</translation> <translation id="2472163211318554013">ເຂົ້າສູ່ລະບົບເພື່ອໃຊ້ປະໂຫຍດສູງສຸດຈາກ Chrome</translation> <translation id="247737702124049222">ຄຳອະທິບາຍຮູບພາບເປີດຢູ່</translation> +<translation id="2479148705183875116">ໄປທີ່ການຕັ້ງຄ່າ</translation> <translation id="2482878487686419369">ການແຈ້ງເຕືອນ</translation> <translation id="2496180316473517155">ປະຫວັດການທ່ອງເວັບ</translation> <translation id="2497852260688568942">ການຊິ້ງຂໍ້ມູນຖືກປິດນຳໃຊ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb index 3bd5707..22559f0e9 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Dabartinė</translation> <translation id="2472163211318554013">Prisijunkite, kad išnaudotumėte visas „Chrome“ galimybes</translation> <translation id="247737702124049222">Vaizdų aprašai įjungti</translation> +<translation id="2479148705183875116">Eiti į nustatymus</translation> <translation id="2482878487686419369">Pranešimai</translation> <translation id="2496180316473517155">Naršymo istorija</translation> <translation id="2497852260688568942">Sinchronizavimą išjungė jūsų administratorius</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb index aad8588..61a46e86 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Šobrīd</translation> <translation id="2472163211318554013">Pierakstieties, lai pilnvērtīgi izmantotu pārlūku Chrome</translation> <translation id="247737702124049222">Attēlu aprakstu pievienošana ir ieslēgta</translation> +<translation id="2479148705183875116">Atvērt iestatījumus</translation> <translation id="2482878487686419369">Paziņojumi</translation> <translation id="2496180316473517155">Pārlūkošanas vēsture</translation> <translation id="2497852260688568942">Administrators ir atspējojis sinhronizēšanu.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb index 95ec0f6..abbd1e5 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Моментално</translation> <translation id="2472163211318554013">Најавете се за да извадите максимум од Chrome</translation> <translation id="247737702124049222">Описите за слики се вклучени.</translation> +<translation id="2479148705183875116">Отворете „Поставки“</translation> <translation id="2482878487686419369">Известувања</translation> <translation id="2496180316473517155">Историја на прелистување</translation> <translation id="2497852260688568942">Администраторот ја оневозможил синхронизацијата</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb index 442bacf5..63d32a5 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
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">നിലവിൽ</translation> <translation id="2472163211318554013">Chrome പരമാവധി പ്രയോജനപ്പെടുത്താൻ സൈൻ ഇൻ ചെയ്യുക</translation> <translation id="247737702124049222">ചിത്രത്തിന്റെ വിവരണങ്ങൾ ഓണാണ്</translation> +<translation id="2479148705183875116">ക്രമീകരണത്തിലേക്ക് പോകുക</translation> <translation id="2482878487686419369">അറിയിപ്പുകൾ</translation> <translation id="2496180316473517155">ബ്രൗസിംഗ് ചരിത്രം</translation> <translation id="2497852260688568942">നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർ സമന്വയിപ്പിക്കൽ പ്രവർത്തനരഹിതമാക്കി</translation>
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 7734610..911c36c 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Одоогийн</translation> <translation id="2472163211318554013">Chrome-г бүрэн ашиглахын тулд нэвтэрнэ үү</translation> <translation id="247737702124049222">Зургийн тайлбар асаалттай байна</translation> +<translation id="2479148705183875116">Тохиргоо руу очих</translation> <translation id="2482878487686419369">Мэдэгдэл</translation> <translation id="2496180316473517155">Хайлтын түүх</translation> <translation id="2497852260688568942">Таны админ синкийг идэвхгүй болгосон байна.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb index 4d46eb8..ff92700 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">सद्य</translation> <translation id="2472163211318554013">Chrome चा पुरेपूर वापर करण्यासाठी साइन इन करा</translation> <translation id="247737702124049222">इमेजची वर्णने सुरू आहेत</translation> +<translation id="2479148705183875116">सेटिंग्ज वर जा</translation> <translation id="2482878487686419369">सूचना</translation> <translation id="2496180316473517155">ब्राउझिंग इतिहास</translation> <translation id="2497852260688568942">तुमच्या ॲडमिनिस्ट्रेटरने सिंक अक्षम केले आहे</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb index 2946ea71..ebb0d87 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">Semasa</translation> <translation id="2472163211318554013">Log masuk untuk memanfaatkan Chrome sepenuhnya</translation> <translation id="247737702124049222">Perihalan imej dihidupkan</translation> +<translation id="2479148705183875116">Pergi ke Tetapan</translation> <translation id="2482878487686419369">Pemberitahuan</translation> <translation id="2496180316473517155">Sejarah penyemakan imbas</translation> <translation id="2497852260688568942">Penyegerakan dilumpuhkan oleh pentadbir anda</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb index 77a471a..b50af09 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">လက်ရှိ</translation> <translation id="2472163211318554013">Chrome ကို အကောင်းဆုံးသုံးနိုင်ရန် လက်မှတ်ထိုးဝင်ပါ</translation> <translation id="247737702124049222">ပုံအကြောင်းအရာများကို ဖွင့်ထားသည်</translation> +<translation id="2479148705183875116">'ဆက်တင်များ' သို့ သွားရန်</translation> <translation id="2482878487686419369">အကြောင်းကြားစာ</translation> <translation id="2496180316473517155">အသုံးပြုခြင်း မှတ်တမ်း</translation> <translation id="2497852260688568942">စင့်ခ်ပြုလုပ်ခြင်းကို သင့်စီမံခန့်ခွဲသူက ပိတ်ဆို့ထားပါသည်</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb index fc9db74..7792561b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">हालको</translation> <translation id="2472163211318554013">तपाईं Chrome बाट बढीभन्दा बढी फाइदा लिन चाहनुहुन्छ भने साइन इन गर्नुहोस्</translation> <translation id="247737702124049222">'फोटोको वर्णन गर्ने' सुविधा अन छ</translation> +<translation id="2479148705183875116">सेटिङमा जानुहोस्</translation> <translation id="2482878487686419369">सूचनाहरू</translation> <translation id="2496180316473517155">ब्राउजिङ इतिहास</translation> <translation id="2497852260688568942">तपाईंको प्रशासकले सिंंक असक्षम पार्नुभएको छ।</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb index b520c85..30e3e3b8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">Huidig</translation> <translation id="2472163211318554013">Log in om het maximale uit Chrome te halen</translation> <translation id="247737702124049222">Afbeeldingsbeschrijvingen staan aan</translation> +<translation id="2479148705183875116">Naar Instellingen</translation> <translation id="2482878487686419369">Meldingen</translation> <translation id="2496180316473517155">Browsegeschiedenis</translation> <translation id="2497852260688568942">Synchronisatie is uitgezet door je beheerder</translation>
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 e2d4219..3f840b42 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Nåværende</translation> <translation id="2472163211318554013">Logg på for å få mest mulig ut av Chrome</translation> <translation id="247737702124049222">Bildebeskrivelser er på</translation> +<translation id="2479148705183875116">Gå til Innstillinger</translation> <translation id="2482878487686419369">Varsler</translation> <translation id="2496180316473517155">Nettleserlogg</translation> <translation id="2497852260688568942">Administratoren din har slått av synkronisering</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb index 6c6c8f21..26d7a18 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">ବର୍ତ୍ତମାନର</translation> <translation id="2472163211318554013">Chromeରୁ ସବୁଠାରୁ ଅଧିକ ସୁବିଧା ପାଇବା ପାଇଁ ସାଇନ ଇନ କରନ୍ତୁ</translation> <translation id="247737702124049222">ଛବିର ବର୍ଣ୍ଣନା ଚାଲୁ ଅଛି</translation> +<translation id="2479148705183875116">ସେଟିଂସକୁ ଯାଆନ୍ତୁ</translation> <translation id="2482878487686419369">ବିଜ୍ଞପ୍ତି</translation> <translation id="2496180316473517155">ବ୍ରାଉଜିଂ ଇତିବୃତ୍ତି</translation> <translation id="2497852260688568942">ଆପଣଙ୍କର ବ୍ୟବସ୍ଥାପକଙ୍କ ଦ୍ୱାରା ସିଙ୍କ ଅକ୍ଷମ କରାଯାଇଛି</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb index 6dde357..7f9da5c9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">ਮੌਜੂਦਾ</translation> <translation id="2472163211318554013">Chrome ਦਾ ਵੱਧ ਤੋਂ ਵੱਧ ਲਾਹਾ ਲੈਣ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ</translation> <translation id="247737702124049222">ਚਿੱਤਰ ਦੇ ਵਰਣਨ ਚਾਲੂ ਹਨ</translation> +<translation id="2479148705183875116">ਸੈਟਿੰਗਾਂ 'ਤੇ ਜਾਓ</translation> <translation id="2482878487686419369">ਸੂਚਨਾਵਾਂ</translation> <translation id="2496180316473517155">ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ</translation> <translation id="2497852260688568942">ਸਿੰਕ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਦੁਆਰਾ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb index 129c80eb..d4fe5b8 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
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">Aktualnie</translation> <translation id="2472163211318554013">Zaloguj się, aby w pełni wykorzystać możliwości Chrome</translation> <translation id="247737702124049222">Opisy do obrazów są włączone</translation> +<translation id="2479148705183875116">Otwórz Ustawienia</translation> <translation id="2482878487686419369">Powiadomienia</translation> <translation id="2496180316473517155">Historia przeglądania</translation> <translation id="2497852260688568942">Synchronizację wyłączył administrator</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb index 49e8b63..a649492 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">Atual</translation> <translation id="2472163211318554013">Faça login para aproveitar o Chrome ao máximo</translation> <translation id="247737702124049222">As descrições de imagens estão ativadas</translation> +<translation id="2479148705183875116">Acessar as configurações</translation> <translation id="2482878487686419369">Notificações</translation> <translation id="2496180316473517155">Histórico de navegação</translation> <translation id="2497852260688568942">A sincronização foi desativada pelo administrador</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb index 8eada7ca..f7b44a0 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">Atual</translation> <translation id="2472163211318554013">Inicie sessão para tirar o máximo partido do Chrome</translation> <translation id="247737702124049222">As descrições de imagens estão ativadas.</translation> +<translation id="2479148705183875116">Aceder às Definições</translation> <translation id="2482878487686419369">Notificações</translation> <translation id="2496180316473517155">Histórico de navegação</translation> <translation id="2497852260688568942">A sincronização foi desativada pelo gestor</translation>
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 2d5e4f00..9675e51 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Actual</translation> <translation id="2472163211318554013">Conectează-te pentru a profita din plin de Chrome</translation> <translation id="247737702124049222">Descrierile imaginilor sunt activate</translation> +<translation id="2479148705183875116">Accesează Setările</translation> <translation id="2482878487686419369">Notificări</translation> <translation id="2496180316473517155">Istoricul de navigare</translation> <translation id="2497852260688568942">Sincronizarea este dezactivată de administrator</translation>
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 986a7d8..e52ea3a6 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Сейчас</translation> <translation id="2472163211318554013">Чтобы пользоваться всеми возможностями Chrome, войдите в аккаунт.</translation> <translation id="247737702124049222">Описания изображений включены.</translation> +<translation id="2479148705183875116">Открыть настройки</translation> <translation id="2482878487686419369">Уведомления</translation> <translation id="2496180316473517155">История браузера</translation> <translation id="2497852260688568942">Ваш администратор отключил синхронизацию</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb index d70e7d8..d5880ed 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">වත්මන්</translation> <translation id="2472163211318554013">Chrome වෙතින් උපරිම ප්රයෝජන ලබා ගැනීමට පුරන්න</translation> <translation id="247737702124049222">රූප විස්තර ක්රියාත්මකයි</translation> +<translation id="2479148705183875116">සැකසීම් වෙත යන්න</translation> <translation id="2482878487686419369">දැනුම්දීම්</translation> <translation id="2496180316473517155">බ්රවුස් ඉතිහාසය</translation> <translation id="2497852260688568942">සමමුහුර්ත කිරීම ඔබේ පරිපාලක විසින් අබල කර ඇත</translation>
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 868fbfe..92d1662 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Aktuálna</translation> <translation id="2472163211318554013">Prihláste sa, aby ste mohli Chrome využívať naplno</translation> <translation id="247737702124049222">Popisy obrázkov sú zapnuté</translation> +<translation id="2479148705183875116">Prejsť do Nastavení</translation> <translation id="2482878487686419369">Upozornenia</translation> <translation id="2496180316473517155">História prehliadania</translation> <translation id="2497852260688568942">Synchronizácia je zakázaná správcom</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb index dd1e508..e59caa9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Trenutno</translation> <translation id="2472163211318554013">Prijavite se, če želite čim bolje izkoristiti Chrome</translation> <translation id="247737702124049222">Opisi slik so vklopljeni</translation> +<translation id="2479148705183875116">V nastavitve</translation> <translation id="2482878487686419369">Obvestila</translation> <translation id="2496180316473517155">Zgodovina brskanja</translation> <translation id="2497852260688568942">Sinhronizacijo je onemogočil skrbnik</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb index be2f3d5..498432e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Rryma</translation> <translation id="2472163211318554013">Identifikohu për të përfituar sa më shumë nga Chrome</translation> <translation id="247737702124049222">Përshkrimet e imazheve janë aktive</translation> +<translation id="2479148705183875116">Shko te "Cilësimet"</translation> <translation id="2482878487686419369">Njoftimet</translation> <translation id="2496180316473517155">Historiku i shfletimit</translation> <translation id="2497852260688568942">Sinkronizimi është çaktivizuar nga administratori</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb index aff5960..15c2a75 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Aktuelno</translation> <translation id="2472163211318554013">Prijavite se da biste iskoristili Chrome na najbolji način</translation> <translation id="247737702124049222">Opisi slika su uključeni</translation> +<translation id="2479148705183875116">Idi u Podešavanja</translation> <translation id="2482878487686419369">Obaveštenja</translation> <translation id="2496180316473517155">Istorija pregledanja</translation> <translation id="2497852260688568942">Administrator je onemogućio sinhronizaciju</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb index bde123c..d208d482 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Актуелно</translation> <translation id="2472163211318554013">Пријавите се да бисте искористили Chrome на најбољи начин</translation> <translation id="247737702124049222">Описи слика су укључени</translation> +<translation id="2479148705183875116">Иди у Подешавања</translation> <translation id="2482878487686419369">Обавештења</translation> <translation id="2496180316473517155">Историја прегледања</translation> <translation id="2497852260688568942">Администратор је онемогућио синхронизацију</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb index 71a5e95..0aeb1c85 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Nuvarande</translation> <translation id="2472163211318554013">Logga in så att du får ut mesta möjliga av Chrome</translation> <translation id="247737702124049222">Bildbeskrivningar har aktiverats</translation> +<translation id="2479148705183875116">Öppna inställningarna</translation> <translation id="2482878487686419369">Aviseringar</translation> <translation id="2496180316473517155">Webbhistorik</translation> <translation id="2497852260688568942">Synkronisering har inaktiverats av administratören</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb index df3d6346..858e83e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Ya sasa</translation> <translation id="2472163211318554013">Ingia katika akaunti ili unufaike zaidi kutokana na Chrome</translation> <translation id="247737702124049222">Kipengele cha maelezo ya picha kimewashwa</translation> +<translation id="2479148705183875116">Nenda kwenye Mipangilio</translation> <translation id="2482878487686419369">Arifa</translation> <translation id="2496180316473517155">Historia ya kuvinjari</translation> <translation id="2497852260688568942">Usawazishaji umezimwa na msimamizi wako</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb index 536f5ff4..b2c194f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">தற்போது</translation> <translation id="2472163211318554013">Chromeமில் அதிகப் பலன்களைப் பெற, உள்நுழையவும்</translation> <translation id="247737702124049222">'பட விளக்கங்கள்' இயக்கப்பட்டது</translation> +<translation id="2479148705183875116">அமைப்புகளுக்குச் செல்லவும்</translation> <translation id="2482878487686419369">அறிவிப்புகள்</translation> <translation id="2496180316473517155">உலாவல் வரலாறு</translation> <translation id="2497852260688568942">உங்கள் நிர்வாகி ஒத்திசைவை முடக்கியுள்ளார்</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb index d41f3b5..f667d99 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
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">ప్రస్తుత</translation> <translation id="2472163211318554013">Chrome నుండి మరిన్ని ప్రయోజనాలను పొందడానికి సైన్ ఇన్ చేయండి</translation> <translation id="247737702124049222">ఇమేజ్ వివరణలు ఆన్ చేయబడ్డాయి</translation> +<translation id="2479148705183875116">సెట్టింగ్లకు వెళ్లు</translation> <translation id="2482878487686419369">నోటిఫికేషన్లు</translation> <translation id="2496180316473517155">బ్రౌజింగ్ హిస్టరీ</translation> <translation id="2497852260688568942">సింక్ను మీ నిర్వాహకులు నిలిపివేశారు</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb index cf24d9d..f002060 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">ปัจจุบัน</translation> <translation id="2472163211318554013">ลงชื่อเข้าใช้เพื่อรับประโยชน์สูงสุดจาก Chrome</translation> <translation id="247737702124049222">คำอธิบายรูปภาพเปิดอยู่</translation> +<translation id="2479148705183875116">ไปที่การตั้งค่า</translation> <translation id="2482878487686419369">การแจ้งเตือน</translation> <translation id="2496180316473517155">ประวัติการเข้าชมที่เรียกดู</translation> <translation id="2497852260688568942">ผู้ดูแลระบบปิดใช้การซิงค์</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb index ea5f2b1d..478ea55 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Şu an</translation> <translation id="2472163211318554013">Chrome'dan en iyi şekilde yararlanmak için oturum açın</translation> <translation id="247737702124049222">Resim açıklamaları açık</translation> +<translation id="2479148705183875116">Ayarlar'a git</translation> <translation id="2482878487686419369">Bildirimler</translation> <translation id="2496180316473517155">Tarama geçmişi</translation> <translation id="2497852260688568942">Yöneticiniz senkronizasyonu devre dışı bıraktı</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb index be7c7f66..4551acd4 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Зараз</translation> <translation id="2472163211318554013">Увійдіть, щоб користуватися всіма можливостями Chrome</translation> <translation id="247737702124049222">Описи зображень увімкнено</translation> +<translation id="2479148705183875116">Перейти в налаштування</translation> <translation id="2482878487686419369">Сповіщення</translation> <translation id="2496180316473517155">Історія веб-перегляду</translation> <translation id="2497852260688568942">Ваш адміністратор вимкнув синхронізацію</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb index 766574d..806202b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">حالیہ</translation> <translation id="2472163211318554013">Chrome سے زیادہ سے زیادہ فائدہ اٹھانے کے لیے سائن ان کریں</translation> <translation id="247737702124049222">تصویر کی تفصیلات آن ہیں</translation> +<translation id="2479148705183875116">ترتیبات پر جائیں</translation> <translation id="2482878487686419369">اطلاعات</translation> <translation id="2496180316473517155">براؤزنگ سرگزشت</translation> <translation id="2497852260688568942">مطابقت پذیری کو آپ کے منتظم نے غیر فعال کر دیا ہے</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb index 5281902..f9409c31 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Ayni vaqtda</translation> <translation id="2472163211318554013">Chromening barcha imkoniyatlaridan foydalanish uchun hisobga kiring</translation> <translation id="247737702124049222">Rasmlar tavsifi yoniq</translation> +<translation id="2479148705183875116">Sozlamalarni ochish</translation> <translation id="2482878487686419369">Bildirishnomalar</translation> <translation id="2496180316473517155">Kezish tarixi</translation> <translation id="2497852260688568942">Sinxronizatsiyani administrator o‘chirib qo‘ygan</translation>
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 e06514b..7bf1cd6 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
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Hiện tại</translation> <translation id="2472163211318554013">Đăng nhập để khai thác tối đa Chrome</translation> <translation id="247737702124049222">Tính năng mô tả hình ảnh đang bật</translation> +<translation id="2479148705183875116">Chuyển đến phần Cài đặt</translation> <translation id="2482878487686419369">Thông báo</translation> <translation id="2496180316473517155">Lịch sử duyệt web</translation> <translation id="2497852260688568942">Quản trị viên của bạn đã tắt tính năng đồng bộ hóa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb index 3bb3d8c..a1d5432d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">当前</translation> <translation id="2472163211318554013">登录即可充分利用 Chrome</translation> <translation id="247737702124049222">“图片说明”功能已开启</translation> +<translation id="2479148705183875116">转到“设置”</translation> <translation id="2482878487686419369">通知</translation> <translation id="2496180316473517155">浏览记录</translation> <translation id="2497852260688568942">您的管理员已停用同步</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb index 705625d7..8508ace 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">電流</translation> <translation id="2472163211318554013">登入以充分運用 Chrome 的所有功能</translation> <translation id="247737702124049222">圖片描述功能已開啟</translation> +<translation id="2479148705183875116">前往「設定」</translation> <translation id="2482878487686419369">通知</translation> <translation id="2496180316473517155">瀏覽記錄</translation> <translation id="2497852260688568942">您的管理員已停用同步功能</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb index 8a37464..79305919 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -265,6 +265,7 @@ <translation id="2461822463642141190">電流</translation> <translation id="2472163211318554013">登入以充分運用 Chrome 的各項功能</translation> <translation id="247737702124049222">圖片說明功能已開啟</translation> +<translation id="2479148705183875116">前往「設定」</translation> <translation id="2482878487686419369">通知</translation> <translation id="2496180316473517155">瀏覽記錄</translation> <translation id="2497852260688568942">你的管理員停用了同步功能</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb index b67ea231..a5a5d2f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -264,6 +264,7 @@ <translation id="2461822463642141190">Okwamanje</translation> <translation id="2472163211318554013">Ngena ngemvume ukuze uthole okuningi ku-Chrome</translation> <translation id="247737702124049222">Izincazelo zezithombe zivuliwe</translation> +<translation id="2479148705183875116">Iya kumasethingi</translation> <translation id="2482878487686419369">Izaziso</translation> <translation id="2496180316473517155">Umlando wokuphequlula</translation> <translation id="2497852260688568942">Ukuvumelanisa kukhutshazwe umlawuli wakho.</translation>
diff --git a/chrome/browser/ui/browser_tabrestore.cc b/chrome/browser/ui/browser_tabrestore.cc index 7ab4e82c..adc34c5 100644 --- a/chrome/browser/ui/browser_tabrestore.cc +++ b/chrome/browser/ui/browser_tabrestore.cc
@@ -171,23 +171,25 @@ tab_strip_model->AddToGroupForRestore({actual_index}, group.value()); } + // We set the size of the view here, before Blink does its initial layout. + // If we don't, the initial layout of background tabs will be performed + // with a view width of 0, which may cause script outputs and anchor link + // location calculations to be incorrect even after a new layout with + // proper view dimensions. TabStripModel::AddWebContents() contains similar + // logic. + // + // TODO(https://crbug.com/1040221): There should be a way to ask the browser + // to perform a layout so that size of the WebContents is right. + gfx::Size size = browser->window()->GetContentsSize(); + // Fallback to the restore bounds if it's empty as the window is not shown + // yet and the bounds may not be available on all platforms. + if (size.IsEmpty()) { + size = browser->window()->GetRestoredBounds().size(); + } + raw_web_contents->Resize(gfx::Rect(size)); + const bool initially_hidden = !select || browser->window()->IsMinimized(); if (initially_hidden) { - // We set the size of the view here, before Blink does its initial layout. - // If we don't, the initial layout of background tabs will be performed - // with a view width of 0, which may cause script outputs and anchor link - // location calculations to be incorrect even after a new layout with - // proper view dimensions. TabStripModel::AddWebContents() contains similar - // logic. - // - // TODO(https://crbug.com/1040221): There should be a way to ask the browser - // to perform a layout so that size of the hidden WebContents is right. - gfx::Size size = browser->window()->GetContentsSize(); - // Fallback to the restore bounds if it's empty as the window is not shown - // yet and the bounds may not be available on all platforms. - if (size.IsEmpty()) - size = browser->window()->GetRestoredBounds().size(); - raw_web_contents->Resize(gfx::Rect(size)); raw_web_contents->WasHidden(); } else { const bool should_activate = @@ -212,7 +214,7 @@ // On OS_MAC, app restorations take longer than the normal browser window to // be restored and that will cause LoadRestoredTabIfVisible() to fail. -// Skip LoadRestoreTabIfVisible if OS_MAC && the browser is an app browser. +// Skip LoadRestoredTabIfVisible if OS_MAC && the browser is an app browser. #if BUILDFLAG(IS_MAC) if (browser->type() != Browser::Type::TYPE_APP) #endif // BUILDFLAG(IS_MAC)
diff --git a/chrome/browser/ui/hats/mock_trust_safety_sentiment_service.h b/chrome/browser/ui/hats/mock_trust_safety_sentiment_service.h index 54ee3633..0d5eba8 100644 --- a/chrome/browser/ui/hats/mock_trust_safety_sentiment_service.h +++ b/chrome/browser/ui/hats/mock_trust_safety_sentiment_service.h
@@ -60,6 +60,15 @@ (DownloadItemWarningData::WarningSurface, DownloadItemWarningData::WarningAction), (override)); + MOCK_METHOD(void, + ProtectResetOrCheckPasswordClicked, + (PasswordProtectionUIType), + (override)); + MOCK_METHOD(void, + PhishedPasswordUpdateNotClicked, + (PasswordProtectionUIType, PasswordProtectionUIAction), + (override)); + MOCK_METHOD(void, PhishedPasswordUpdateFinished, (), (override)); }; std::unique_ptr<KeyedService> BuildMockTrustSafetySentimentService(
diff --git a/chrome/browser/ui/hats/survey_config.cc b/chrome/browser/ui/hats/survey_config.cc index ec6687e..f5ebce79 100644 --- a/chrome/browser/ui/hats/survey_config.cc +++ b/chrome/browser/ui/hats/survey_config.cc
@@ -81,6 +81,8 @@ "ts-v2-download-warning-ui"; constexpr char kHatsSurveyTriggerTrustSafetyV2PasswordCheck[] = "ts-v2-password-check"; +constexpr char kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI[] = + "ts-v2-password-protection-ui"; constexpr char kHatsSurveyTriggerTrustSafetyV2SafetyCheck[] = "ts-v2-safety-check"; constexpr char kHatsSurveyTriggerTrustSafetyV2TrustedSurface[] = @@ -299,8 +301,9 @@ &features::kTrustSafetySentimentSurveyV2, kHatsSurveyTriggerTrustSafetyV2DownloadWarningUI, features::kTrustSafetySentimentSurveyV2DownloadWarningUITriggerId.Get(), - std::vector<std::string>{"Is mainpage UI", "Is subpage UI", - "Is downloads page UI", "Is download prompt UI", + std::vector<std::string>{"Enhanced protection enabled", "Is mainpage UI", + "Is subpage UI", "Is downloads page UI", + "Is download prompt UI", "User proceeded past warning"}); survey_configs.emplace_back( &features::kTrustSafetySentimentSurveyV2, @@ -308,6 +311,16 @@ features::kTrustSafetySentimentSurveyV2PasswordCheckTriggerId.Get()); survey_configs.emplace_back( &features::kTrustSafetySentimentSurveyV2, + kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI, + features::kTrustSafetySentimentSurveyV2PasswordProtectionUITriggerId + .Get(), + std::vector<std::string>{ + "Enhanced protection enabled", "Is page info UI", + "Is modal dialog UI", "Is interstitial UI", + "User completed password change", "User clicked change password", + "User ignored warning", "User marked as legitimate"}); + survey_configs.emplace_back( + &features::kTrustSafetySentimentSurveyV2, kHatsSurveyTriggerTrustSafetyV2SafetyCheck, features::kTrustSafetySentimentSurveyV2SafetyCheckTriggerId.Get()); survey_configs.emplace_back(
diff --git a/chrome/browser/ui/hats/survey_config.h b/chrome/browser/ui/hats/survey_config.h index ad374d2..7564ff6 100644 --- a/chrome/browser/ui/hats/survey_config.h +++ b/chrome/browser/ui/hats/survey_config.h
@@ -53,6 +53,7 @@ extern const char kHatsSurveyTriggerTrustSafetyV2ControlGroup[]; extern const char kHatsSurveyTriggerTrustSafetyV2DownloadWarningUI[]; extern const char kHatsSurveyTriggerTrustSafetyV2PasswordCheck[]; +extern const char kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI[]; extern const char kHatsSurveyTriggerTrustSafetyV2SafetyCheck[]; extern const char kHatsSurveyTriggerTrustSafetyV2TrustedSurface[]; extern const char kHatsSurveyTriggerTrustSafetyV2PrivacyGuide[];
diff --git a/chrome/browser/ui/hats/trust_safety_sentiment_service.cc b/chrome/browser/ui/hats/trust_safety_sentiment_service.cc index 34f259f..b1bb326 100644 --- a/chrome/browser/ui/hats/trust_safety_sentiment_service.cc +++ b/chrome/browser/ui/hats/trust_safety_sentiment_service.cc
@@ -166,6 +166,52 @@ } } +// Generates the Product Specific Data which accompanies survey results for the +// Password Protection UI product area. +std::map<std::string, bool> BuildProductSpecificDataForPasswordProtection( + Profile* profile, + PasswordProtectionUIType ui_type, + PasswordProtectionUIAction action) { + std::map<std::string, bool> product_specific_data; + product_specific_data["Enhanced protection enabled"] = + safe_browsing::IsEnhancedProtectionEnabled(*profile->GetPrefs()); + product_specific_data["Is page info UI"] = false; + product_specific_data["Is modal dialog UI"] = false; + product_specific_data["Is interstitial UI"] = false; + switch (ui_type) { + case PasswordProtectionUIType::PAGE_INFO: + product_specific_data["Is page info UI"] = true; + break; + case PasswordProtectionUIType::MODAL_DIALOG: + product_specific_data["Is modal dialog UI"] = true; + break; + case PasswordProtectionUIType::INTERSTITIAL: + product_specific_data["Is interstitial UI"] = true; + break; + default: + NOTREACHED(); + } + product_specific_data["User completed password change"] = false; + product_specific_data["User clicked change password"] = false; + product_specific_data["User ignored warning"] = false; + product_specific_data["User marked as legitimate"] = false; + switch (action) { + case PasswordProtectionUIAction::CHANGE_PASSWORD: + product_specific_data["User clicked change password"] = true; + break; + case PasswordProtectionUIAction::IGNORE_WARNING: + case PasswordProtectionUIAction::CLOSE: + product_specific_data["User ignored warning"] = true; + break; + case PasswordProtectionUIAction::MARK_AS_LEGITIMATE: + product_specific_data["User marked as legitimate"] = true; + break; + default: + NOTREACHED(); + } + return product_specific_data; +} + } // namespace TrustSafetySentimentService::TrustSafetySentimentService(Profile* profile) @@ -429,6 +475,8 @@ DownloadItemWarningData::WarningSurface surface, DownloadItemWarningData::WarningAction action) { std::map<std::string, bool> product_specific_data; + product_specific_data["Enhanced protection enabled"] = + safe_browsing::IsEnhancedProtectionEnabled(*profile_->GetPrefs()); product_specific_data["Is mainpage UI"] = false; product_specific_data["Is downloads page UI"] = false; product_specific_data["Is download prompt UI"] = false; @@ -462,6 +510,39 @@ TriggerOccurred(FeatureArea::kDownloadWarningUI, product_specific_data); } +void TrustSafetySentimentService::ProtectResetOrCheckPasswordClicked( + PasswordProtectionUIType ui_type) { + // Only one Phished Password Change should ever be open. + DCHECK(!phished_password_change_state_); + phished_password_change_state_ = + std::make_unique<PhishedPasswordChangeState>(); + phished_password_change_state_->ui_type_ = ui_type; + base::SequencedTaskRunner::GetCurrentDefault()->PostDelayedTask( + FROM_HERE, + base::BindOnce( + &TrustSafetySentimentService::MaybeTriggerPasswordProtectionSurvey, + weak_ptr_factory_.GetWeakPtr(), ui_type, + PasswordProtectionUIAction::CHANGE_PASSWORD), + kPasswordChangeInactivity); +} + +void TrustSafetySentimentService::PhishedPasswordUpdateNotClicked( + PasswordProtectionUIType ui_type, + PasswordProtectionUIAction action) { + DCHECK(action != PasswordProtectionUIAction::CHANGE_PASSWORD); + MaybeTriggerPasswordProtectionSurvey(ui_type, action); +} + +void TrustSafetySentimentService::PhishedPasswordUpdateFinished() { + if (!phished_password_change_state_) { + return; + } + phished_password_change_state_->finished_action = true; + MaybeTriggerPasswordProtectionSurvey( + phished_password_change_state_->ui_type_, + PasswordProtectionUIAction::CHANGE_PASSWORD); +} + void TrustSafetySentimentService::OnOffTheRecordProfileCreated( Profile* off_the_record) { // Only interested in the primary OTR profile i.e. the one used for incognito @@ -547,6 +628,11 @@ TrustSafetySentimentService::PageInfoState::PageInfoState() : opened_time(base::Time::Now()) {} +TrustSafetySentimentService::PhishedPasswordChangeState:: + PhishedPasswordChangeState() + : password_change_click_ts_(base::Time::Now()), + ui_type_(PasswordProtectionUIType::NOT_USED) {} + void TrustSafetySentimentService::SettingsWatcherComplete() { settings_watcher_.reset(); } @@ -583,6 +669,31 @@ trigger.remaining_ntps_to_open > 0; } +// Checks inactivity delay and finished_action (change psd field to true) +void TrustSafetySentimentService::MaybeTriggerPasswordProtectionSurvey( + PasswordProtectionUIType ui_type, + PasswordProtectionUIAction action) { + DCHECK(ui_type != PasswordProtectionUIType::NOT_USED); + std::map<std::string, bool> product_specific_data = + BuildProductSpecificDataForPasswordProtection(profile_, ui_type, action); + if (action == PasswordProtectionUIAction::CHANGE_PASSWORD) { + if (!phished_password_change_state_) { + return; + } + if (!phished_password_change_state_->finished_action && + base::Time::Now() - + phished_password_change_state_->password_change_click_ts_ < + kPasswordChangeInactivity) { + return; + } + if (phished_password_change_state_->finished_action) { + product_specific_data["User completed password change"] = true; + } + phished_password_change_state_.reset(); + } + TriggerOccurred(FeatureArea::kPasswordProtectionUI, product_specific_data); +} + // static bool TrustSafetySentimentService::VersionCheck(FeatureArea feature_area) { bool isV2 = @@ -606,6 +717,7 @@ case (FeatureArea::kControlGroup): case (FeatureArea::kSafeBrowsingInterstitial): case (FeatureArea::kDownloadWarningUI): + case (FeatureArea::kPasswordProtectionUI): return isV2 == true; // Both Versions case (FeatureArea::kTrustedSurface): @@ -652,6 +764,8 @@ return kHatsSurveyTriggerTrustSafetyV2SafeBrowsingInterstitial; case (FeatureArea::kDownloadWarningUI): return kHatsSurveyTriggerTrustSafetyV2DownloadWarningUI; + case (FeatureArea::kPasswordProtectionUI): + return kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI; default: NOTREACHED(); return ""; @@ -752,6 +866,11 @@ features:: kTrustSafetySentimentSurveyV2DownloadWarningUIProbability .Get(); + case (FeatureArea::kPasswordProtectionUI): + return base::RandDouble() < + features:: + kTrustSafetySentimentSurveyV2PasswordProtectionUIProbability + .Get(); default: NOTREACHED(); return false;
diff --git a/chrome/browser/ui/hats/trust_safety_sentiment_service.h b/chrome/browser/ui/hats/trust_safety_sentiment_service.h index 759fd42..b778784 100644 --- a/chrome/browser/ui/hats/trust_safety_sentiment_service.h +++ b/chrome/browser/ui/hats/trust_safety_sentiment_service.h
@@ -18,9 +18,15 @@ #include "components/download/public/common/download_danger_type.h" #include "components/keyed_service/core/keyed_service.h" #include "components/safe_browsing/core/browser/db/v4_protocol_manager_util.h" +#include "components/safe_browsing/core/browser/password_protection/metrics_util.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_observer.h" +using PasswordProtectionUIType = safe_browsing::WarningUIType; +using PasswordProtectionUIAction = safe_browsing::WarningAction; + +const base::TimeDelta kPasswordChangeInactivity = base::Minutes(30); + // Service which receives events from Trust & Safety features and determines // whether or not to launch a HaTS survey on the NTP for the user. class TrustSafetySentimentService @@ -125,7 +131,8 @@ kPrivacySandbox4NoticeSettings = 18, kSafeBrowsingInterstitial = 19, kDownloadWarningUI = 20, - kMaxValue = kDownloadWarningUI, + kPasswordProtectionUI = 21, + kMaxValue = kPasswordProtectionUI, }; // Called when the user interacts with Privacy Sandbox 3, |feature_area| @@ -145,6 +152,22 @@ DownloadItemWarningData::WarningSurface surface, DownloadItemWarningData::WarningAction action); + // Called when user clicks to protect/reset/check their password on a password + // protection UI. This triggers a survey if the user has not finished changing + // their password after a certain period of time. + virtual void ProtectResetOrCheckPasswordClicked( + PasswordProtectionUIType ui_type); + + // Called when a user sees a password protection warning and decides to ignore + // the warning, close the warning, or mark the warning as legitimate. + virtual void PhishedPasswordUpdateNotClicked( + PasswordProtectionUIType ui_type, + PasswordProtectionUIAction action); + + // Called when a user finishes updating their phished password after seeing a + // warning. + virtual void PhishedPasswordUpdateFinished(); + // Checks that this feature area is valid for the current version. static bool VersionCheck(FeatureArea feature_area); @@ -231,6 +254,16 @@ bool interacted = false; }; + // Struct which represents the PhishedPasswordChange state. When a user clicks + // to change their password, we want to wait to trigger a survey until after + // they change their password or the user has been inactive for some time. + struct PhishedPasswordChangeState { + PhishedPasswordChangeState(); + base::Time password_change_click_ts_; + PasswordProtectionUIType ui_type_; + bool finished_action = false; + }; + void SettingsWatcherComplete(); // Record that a trigger occurred, placing it in the set of pending triggers. @@ -248,10 +281,17 @@ static bool ShouldBlockSurvey(const PendingTrigger& trigger); + // Called by |ProtectResetOrCheckPasswordClicked| and + // |PhishedPasswordUpdateNotClicked|. Triggers a survey if one has not already + // been triggered for the user journey. + void MaybeTriggerPasswordProtectionSurvey(PasswordProtectionUIType ui_type, + PasswordProtectionUIAction action); + const raw_ptr<Profile> profile_; std::map<FeatureArea, PendingTrigger> pending_triggers_; std::unique_ptr<SettingsWatcher> settings_watcher_; std::unique_ptr<PageInfoState> page_info_state_; + std::unique_ptr<PhishedPasswordChangeState> phished_password_change_state_; base::ScopedMultiSourceObservation<Profile, ProfileObserver> observed_profiles_{this}; bool performed_control_group_dice_roll_;
diff --git a/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc b/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc index 336a680c..61a4605 100644 --- a/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc +++ b/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc
@@ -169,6 +169,7 @@ std::string control_group_probability = "0.4"; std::string download_warning_ui_probability = "0.0"; std::string password_check_probability = "0.4"; + std::string password_protection_ui_probability = "0.0"; std::string safety_check_probability = "0.4"; std::string trusted_surface_probability = "0.4"; std::string privacy_guide_probability = "0.4"; @@ -181,6 +182,8 @@ std::string control_group_trigger_id = "control-group-test"; std::string download_warning_ui_trigger_id = "download-warning-ui-test"; std::string password_check_trigger_id = "password-check-test"; + std::string password_protection_ui_trigger_id = + "password-protection-ui-test"; std::string safety_check_trigger_id = "safety-check-test"; std::string trusted_surface_trigger_id = "trusted-surface-test"; std::string privacy_guide_trigger_id = "privacy-guide-test"; @@ -211,6 +214,8 @@ {"download-warning-ui-probability", params.download_warning_ui_probability}, {"password-check-probability", params.password_check_probability}, + {"password-protection-ui-probability", + params.password_protection_ui_probability}, {"safety-check-probability", params.safety_check_probability}, {"trusted-surface-probability", params.trusted_surface_probability}, {"privacy-guide-probability", params.privacy_guide_probability}, @@ -229,6 +234,8 @@ {"download-warning-ui-trigger-id", params.download_warning_ui_trigger_id}, {"password-check-trigger-id", params.password_check_trigger_id}, + {"password-protection-ui-trigger-id", + params.password_protection_ui_trigger_id}, {"safety-check-trigger-id", params.safety_check_trigger_id}, {"trusted-surface-trigger-id", params.trusted_surface_trigger_id}, {"privacy-guide-trigger-id", params.privacy_guide_trigger_id}, @@ -1082,6 +1089,7 @@ params.control_group_probability = "1.0"; params.download_warning_ui_probability = "1.0"; params.password_check_probability = "1.0"; + params.password_protection_ui_probability = "1.0"; params.safety_check_probability = "1.0"; params.trusted_surface_probability = "1.0"; params.privacy_guide_probability = "1.0"; @@ -1471,7 +1479,7 @@ } TEST_F(TrustSafetySentimentServiceTest, V2_DownloadWarningUI) { - // Making a final decision on a safe browsing interstitial is considered a + // Making a final decision on a download warning is considered a // trigger, and should make a user eligible to receive a survey. FeatureParamsV2 params; params.download_warning_ui_probability = "1.0"; @@ -1494,3 +1502,133 @@ CheckCallTriggerOccurredHistogram( {{TrustSafetySentimentService::FeatureArea::kDownloadWarningUI, 1}}); } + +TEST_F(TrustSafetySentimentServiceTest, PasswordProtectionUINonPasswordChange) { + // Making a final decision on a password protection UI is considered a + // trigger, and should make a user eligible to receive a survey. + FeatureParamsV2 params; + params.password_protection_ui_probability = "1.0"; + params.min_time_to_prompt = "0s"; + params.ntp_visits_min_range = "0"; + params.ntp_visits_max_range = "0"; + SetupFeatureParametersV2(params); + + // The correct survey should be launched. + EXPECT_CALL(*mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI, + _, _, _, _)); + service()->PhishedPasswordUpdateNotClicked( + PasswordProtectionUIType::PAGE_INFO, + PasswordProtectionUIAction::IGNORE_WARNING); + service()->OpenedNewTabPage(); + CheckHistograms( + {TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI}, + {TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI}); + CheckCallTriggerOccurredHistogram( + {{TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI, 1}}); +} + +TEST_F(TrustSafetySentimentServiceTest, + PasswordProtectionUIPasswordChangeClickedNotCompleted) { + // Making a final decision on a password protection UI is considered a + // trigger, and should make a user eligible to receive a survey. + FeatureParamsV2 params; + params.password_protection_ui_probability = "1.0"; + params.min_time_to_prompt = "0s"; + params.ntp_visits_min_range = "0"; + params.ntp_visits_max_range = "0"; + SetupFeatureParametersV2(params); + + // The correct survey should be launched. + EXPECT_CALL(*mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI, + _, _, _, _)); + service()->ProtectResetOrCheckPasswordClicked( + PasswordProtectionUIType::PAGE_INFO); + task_environment()->AdvanceClock(kPasswordChangeInactivity); + task_environment()->RunUntilIdle(); + service()->OpenedNewTabPage(); + + CheckHistograms( + {TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI}, + {TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI}); + CheckCallTriggerOccurredHistogram( + {{TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI, 1}}); +} + +TEST_F(TrustSafetySentimentServiceTest, + PasswordProtectionUIPasswordChangeClickedAndCompleted) { + // Making a final decision on a password protection UI is considered a + // trigger, and should make a user eligible to receive a survey. + FeatureParamsV2 params; + params.password_protection_ui_probability = "1.0"; + params.min_time_to_prompt = "0s"; + params.ntp_visits_min_range = "0"; + params.ntp_visits_max_range = "0"; + SetupFeatureParametersV2(params); + + // The correct survey should be launched. + EXPECT_CALL(*mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI, + _, _, _, _)); + service()->ProtectResetOrCheckPasswordClicked( + PasswordProtectionUIType::PAGE_INFO); + service()->PhishedPasswordUpdateFinished(); + service()->OpenedNewTabPage(); + CheckHistograms( + {TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI}, + {TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI}); + CheckCallTriggerOccurredHistogram( + {{TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI, 1}}); +} + +TEST_F(TrustSafetySentimentServiceTest, + PasswordProtectionUIPasswordChangeThenNonPasswordChange) { + // Making a final decision on a password protection UI is considered a + // trigger, and should make a user eligible to receive a survey. + FeatureParamsV2 params; + params.password_protection_ui_probability = "1.0"; + params.min_time_to_prompt = "0s"; + params.ntp_visits_min_range = "0"; + params.ntp_visits_max_range = "0"; + SetupFeatureParametersV2(params); + + // The correct survey should be launched. + EXPECT_CALL(*mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI, + _, _, _, _)); + service()->ProtectResetOrCheckPasswordClicked( + PasswordProtectionUIType::PAGE_INFO); + service()->PhishedPasswordUpdateNotClicked( + PasswordProtectionUIType::PAGE_INFO, PasswordProtectionUIAction::CLOSE); + service()->PhishedPasswordUpdateFinished(); + service()->OpenedNewTabPage(); + CheckCallTriggerOccurredHistogram( + {{TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI, 2}}); +} + +TEST_F(TrustSafetySentimentServiceTest, + PasswordProtectionUIPasswordChangeThenNonPasswordChange2) { + // Making a final decision on a password protection UI is considered a + // trigger, and should make a user eligible to receive a survey. + FeatureParamsV2 params; + params.password_protection_ui_probability = "1.0"; + params.min_time_to_prompt = "0s"; + params.ntp_visits_min_range = "0"; + params.ntp_visits_max_range = "0"; + SetupFeatureParametersV2(params); + + // The correct survey should be launched. + EXPECT_CALL(*mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyV2PasswordProtectionUI, + _, _, _, _)); + service()->ProtectResetOrCheckPasswordClicked( + PasswordProtectionUIType::PAGE_INFO); + service()->PhishedPasswordUpdateNotClicked( + PasswordProtectionUIType::PAGE_INFO, PasswordProtectionUIAction::CLOSE); + service()->PhishedPasswordUpdateFinished(); + task_environment()->AdvanceClock(kPasswordChangeInactivity); + service()->OpenedNewTabPage(); + CheckCallTriggerOccurredHistogram( + {{TrustSafetySentimentService::FeatureArea::kPasswordProtectionUI, 2}}); +}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/common_saved_account_manager_bubble_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/common_saved_account_manager_bubble_controller.cc index a0ab6ca..e8c77d4 100644 --- a/chrome/browser/ui/passwords/bubble_controllers/common_saved_account_manager_bubble_controller.cc +++ b/chrome/browser/ui/passwords/bubble_controllers/common_saved_account_manager_bubble_controller.cc
@@ -9,8 +9,8 @@ #include "chrome/browser/profiles/profile_avatar_icon_util.h" #include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/sync/sync_service_factory.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_form_metrics_recorder.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_metrics_util.h" #include "components/password_manager/core/browser/smart_bubble_stats_store.h" #include "components/signin/public/identity_manager/identity_manager.h"
diff --git a/chrome/browser/ui/passwords/bubble_controllers/move_to_account_store_bubble_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/move_to_account_store_bubble_controller.cc index 7273591..a7eae37 100644 --- a/chrome/browser/ui/passwords/bubble_controllers/move_to_account_store_bubble_controller.cc +++ b/chrome/browser/ui/passwords/bubble_controllers/move_to_account_store_bubble_controller.cc
@@ -11,8 +11,8 @@ #include "chrome/browser/ui/passwords/passwords_model_delegate.h" #include "chrome/grit/generated_resources.h" #include "components/favicon/core/favicon_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_feature_manager.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/common/password_manager_ui.h" #include "components/signin/public/base/consent_level.h" #include "components/signin/public/identity_manager/identity_manager.h"
diff --git a/chrome/browser/ui/passwords/bubble_controllers/save_update_bubble_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/save_update_bubble_controller.cc index 9cdf2ef..73f3e777 100644 --- a/chrome/browser/ui/passwords/bubble_controllers/save_update_bubble_controller.cc +++ b/chrome/browser/ui/passwords/bubble_controllers/save_update_bubble_controller.cc
@@ -17,10 +17,10 @@ #include "chrome/grit/branded_strings.h" #include "chrome/grit/generated_resources.h" #include "chrome/grit/theme_resources.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/manage_passwords_referrer.h" #include "components/password_manager/core/browser/password_feature_manager.h" #include "components/password_manager/core/browser/password_form_metrics_recorder.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_util.h" #include "components/password_manager/core/browser/password_store_interface.h" #include "components/password_manager/core/browser/reauth_purpose.h" @@ -40,6 +40,7 @@ using Store = password_manager::PasswordForm::Store; namespace metrics_util = password_manager::metrics_util; +namespace features_util = password_manager::features_util; metrics_util::UIDisplayDisposition ComputeDisplayDisposition( PasswordBubbleControllerBase::DisplayReason display_reason, @@ -337,7 +338,7 @@ metrics_util::LogUpdateUIDismissalReason( GetDismissalReason(), GetPendingPassword().submission_event); } else if (GetState() == password_manager::ui::PENDING_PASSWORD_STATE) { - absl::optional<metrics_util::PasswordAccountStorageUserState> user_state = + absl::optional<features_util::PasswordAccountStorageUserState> user_state = absl::nullopt; Profile* profile = GetProfile(); if (profile) {
diff --git a/chrome/browser/ui/safety_hub/menu_notification_service_unittest.cc b/chrome/browser/ui/safety_hub/menu_notification_service_unittest.cc index 850381c..307f8f1 100644 --- a/chrome/browser/ui/safety_hub/menu_notification_service_unittest.cc +++ b/chrome/browser/ui/safety_hub/menu_notification_service_unittest.cc
@@ -27,7 +27,7 @@ hcsm_ = base::MakeRefCounted<HostContentSettingsMap>(&prefs_, false, true, false, false); unused_site_permissions_service_ = - std::make_unique<UnusedSitePermissionsService>(hcsm_.get()); + std::make_unique<UnusedSitePermissionsService>(hcsm_.get(), &prefs_); menu_notification_service_ = std::make_unique<SafetyHubMenuNotificationService>( unused_site_permissions_service_.get());
diff --git a/chrome/browser/ui/safety_hub/menu_notification_unittest.cc b/chrome/browser/ui/safety_hub/menu_notification_unittest.cc index 2a86828..c2b04d5 100644 --- a/chrome/browser/ui/safety_hub/menu_notification_unittest.cc +++ b/chrome/browser/ui/safety_hub/menu_notification_unittest.cc
@@ -58,7 +58,8 @@ registry->ResetForTest(); HostContentSettingsMap* hcsm = HostContentSettingsMapFactory::GetForProfile(profile()); - service_ = std::make_unique<UnusedSitePermissionsService>(hcsm); + service_ = std::make_unique<UnusedSitePermissionsService>( + hcsm, profile()->GetPrefs()); } protected:
diff --git a/chrome/browser/ui/safety_hub/safety_hub_service.cc b/chrome/browser/ui/safety_hub/safety_hub_service.cc index 219b96d6..f81a0c0 100644 --- a/chrome/browser/ui/safety_hub/safety_hub_service.cc +++ b/chrome/browser/ui/safety_hub/safety_hub_service.cc
@@ -38,6 +38,10 @@ update_timer_.Stop(); } +void SafetyHubService::StopTimer() { + update_timer_.Stop(); +} + void SafetyHubService::StartRepeatedUpdates() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); UpdateAsync(); @@ -101,3 +105,7 @@ void SafetyHubService::InitializeLatestResult() { latest_result_ = InitializeLatestResultImpl(); } + +bool SafetyHubService::IsTimerRunningForTesting() { + return update_timer_.IsRunning(); +}
diff --git a/chrome/browser/ui/safety_hub/safety_hub_service.h b/chrome/browser/ui/safety_hub/safety_hub_service.h index cbff5ef..6201df6 100644 --- a/chrome/browser/ui/safety_hub/safety_hub_service.h +++ b/chrome/browser/ui/safety_hub/safety_hub_service.h
@@ -112,11 +112,17 @@ // KeyedService implementation. void Shutdown() override; + // Checks if the repeating timer is running. + bool IsTimerRunningForTesting(); + protected: // Triggers the repeated update task that updates the state of the Safety Hub // service. void StartRepeatedUpdates(); + // Stops the repeating timer to stop recurring tasks. + void StopTimer(); + // SafetyHubService overrides. // Initializes the latest result such that it is available in memory. It needs
diff --git a/chrome/browser/ui/safety_hub/unused_site_permissions_service.cc b/chrome/browser/ui/safety_hub/unused_site_permissions_service.cc index 421c9009..6c2aee9 100644 --- a/chrome/browser/ui/safety_hub/unused_site_permissions_service.cc +++ b/chrome/browser/ui/safety_hub/unused_site_permissions_service.cc
@@ -24,6 +24,7 @@ #include "base/values.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/ui/safety_hub/safety_hub_service.h" +#include "chrome/common/chrome_features.h" #include "chrome/grit/generated_resources.h" #include "components/content_settings/core/browser/content_settings_info.h" #include "components/content_settings/core/browser/content_settings_registry.h" @@ -36,6 +37,9 @@ #include "components/content_settings/core/common/content_settings_utils.h" #include "components/content_settings/core/common/features.h" #include "components/permissions/constants.h" +#include "components/permissions/pref_names.h" +#include "components/prefs/pref_change_registrar.h" +#include "components/prefs/pref_service.h" #include "content/public/browser/browser_thread.h" #include "ui/base/l10n/l10n_util.h" #include "url/gurl.h" @@ -251,12 +255,31 @@ WEB_CONTENTS_USER_DATA_KEY_IMPL(UnusedSitePermissionsService::TabHelper); UnusedSitePermissionsService::UnusedSitePermissionsService( - HostContentSettingsMap* hcsm) + HostContentSettingsMap* hcsm, + PrefService* prefs) : hcsm_(hcsm), clock_(base::DefaultClock::GetInstance()) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); content_settings_observation_.Observe(hcsm); - StartRepeatedUpdates(); + + DCHECK(prefs); + if (base::FeatureList::IsEnabled(features::kSafetyHub)) { + pref_change_registrar_ = std::make_unique<PrefChangeRegistrar>(); + pref_change_registrar_->Init(prefs); + + pref_change_registrar_->Add( + permissions::prefs::kUnusedSitePermissionsRevocationEnabled, + base::BindRepeating(&UnusedSitePermissionsService:: + OnPermissionsAutorevocationControlChanged, + base::Unretained(this))); + } + InitializeLatestResult(); + + if (!IsAutoRevocationEnabled()) { + return; + } + + StartRepeatedUpdates(); } UnusedSitePermissionsService::~UnusedSitePermissionsService() = default; @@ -292,7 +315,6 @@ } void UnusedSitePermissionsService::Shutdown() { - update_timer_.Stop(); content_settings_observation_.Reset(); } @@ -506,8 +528,7 @@ } void UnusedSitePermissionsService::RevokeUnusedPermissions() { - if (!base::FeatureList::IsEnabled( - content_settings::features::kSafetyCheckUnusedSitePermissions)) { + if (!IsAutoRevocationEnabled()) { return; } @@ -638,6 +659,14 @@ constraint.has_value() ? constraint.value() : default_constraint); } +void UnusedSitePermissionsService::OnPermissionsAutorevocationControlChanged() { + if (IsAutoRevocationEnabled()) { + StartRepeatedUpdates(); + } else { + StopTimer(); + } +} + std::vector<UnusedSitePermissionsService::ContentSettingEntry> UnusedSitePermissionsService::GetTrackedUnusedPermissionsForTesting() { std::vector<ContentSettingEntry> result; @@ -662,3 +691,14 @@ const base::Value::Dict& dict) { return std::make_unique<UnusedSitePermissionsResult>(dict); } + +bool UnusedSitePermissionsService::IsAutoRevocationEnabled() { + // If kSafetyHub is disabled, then the auto-revocation directly depends on + // kSafetyCheckUnusedSitePermissions. + if (!base::FeatureList::IsEnabled(features::kSafetyHub)) { + return base::FeatureList::IsEnabled( + content_settings::features::kSafetyCheckUnusedSitePermissions); + } + return pref_change_registrar_->prefs()->GetBoolean( + permissions::prefs::kUnusedSitePermissionsRevocationEnabled); +}
diff --git a/chrome/browser/ui/safety_hub/unused_site_permissions_service.h b/chrome/browser/ui/safety_hub/unused_site_permissions_service.h index 7aa7b95c..20a61b9d 100644 --- a/chrome/browser/ui/safety_hub/unused_site_permissions_service.h +++ b/chrome/browser/ui/safety_hub/unused_site_permissions_service.h
@@ -28,6 +28,9 @@ #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" +class PrefChangeRegistrar; +class PrefService; + constexpr char kUnusedSitePermissionsResultKey[] = "permissions"; constexpr char kUnusedSitePermissionsResultPermissionTypesKey[] = "permissionTypes"; @@ -141,7 +144,8 @@ WEB_CONTENTS_USER_DATA_KEY_DECL(); }; - explicit UnusedSitePermissionsService(HostContentSettingsMap* hcsm); + explicit UnusedSitePermissionsService(HostContentSettingsMap* hcsm, + PrefService* prefs); UnusedSitePermissionsService(const UnusedSitePermissionsService&) = delete; UnusedSitePermissionsService& operator=(const UnusedSitePermissionsService&) = @@ -188,6 +192,9 @@ // Returns the list of all permissions that have been revoked. std::unique_ptr<Result> GetRevokedPermissions(); + // Stops or restarts permissions autorevocation upon the pref change. + void OnPermissionsAutorevocationControlChanged(); + // Does most of the heavy lifting of the update process: for each permission, // it determines whether it should be considered as recently unused (i.e. one // week). This list will be further filtered in the UI task to determine which @@ -251,10 +258,11 @@ std::unique_ptr<Result> UpdateOnUIThread( std::unique_ptr<Result> result) override; + // Returns if the permissions auto-revocation is enabled for unused sites. + bool IsAutoRevocationEnabled(); + // Set of permissions that haven't been used for at least a week. UnusedPermissionMap recently_unused_permissions_; - // Repeating timer that updates the recently_unused_permissions_ map. - base::RepeatingTimer update_timer_; const scoped_refptr<HostContentSettingsMap> hcsm_; @@ -262,6 +270,9 @@ base::ScopedObservation<HostContentSettingsMap, content_settings::Observer> content_settings_observation_{this}; + // Observes user profile prefs. + std::unique_ptr<PrefChangeRegistrar> pref_change_registrar_; + raw_ptr<base::Clock> clock_; base::WeakPtrFactory<UnusedSitePermissionsService> weak_factory_{this};
diff --git a/chrome/browser/ui/safety_hub/unused_site_permissions_service_factory.cc b/chrome/browser/ui/safety_hub/unused_site_permissions_service_factory.cc index 1ce3f3f..79f74d7 100644 --- a/chrome/browser/ui/safety_hub/unused_site_permissions_service_factory.cc +++ b/chrome/browser/ui/safety_hub/unused_site_permissions_service_factory.cc
@@ -8,6 +8,7 @@ #include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/safety_hub/unused_site_permissions_service.h" +#include "components/prefs/pref_service.h" // static UnusedSitePermissionsServiceFactory* @@ -37,7 +38,9 @@ KeyedService* UnusedSitePermissionsServiceFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { + Profile* profile = Profile::FromBrowserContext(context); auto* service = new UnusedSitePermissionsService( - HostContentSettingsMapFactory::GetForProfile(context)); + HostContentSettingsMapFactory::GetForProfile(context), + profile->GetPrefs()); return service; }
diff --git a/chrome/browser/ui/safety_hub/unused_site_permissions_service_unittest.cc b/chrome/browser/ui/safety_hub/unused_site_permissions_service_unittest.cc index 6121c76..5329d3a 100644 --- a/chrome/browser/ui/safety_hub/unused_site_permissions_service_unittest.cc +++ b/chrome/browser/ui/safety_hub/unused_site_permissions_service_unittest.cc
@@ -23,6 +23,7 @@ #include "base/values.h" #include "chrome/browser/ui/safety_hub/safety_hub_service.h" #include "chrome/browser/ui/safety_hub/safety_hub_test_util.h" +#include "chrome/common/chrome_features.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "components/content_settings/core/browser/content_settings_utils.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -33,22 +34,34 @@ #include "components/content_settings/core/common/content_settings_types.h" #include "components/content_settings/core/common/features.h" #include "components/permissions/constants.h" +#include "components/permissions/pref_names.h" #include "components/sync_preferences/testing_pref_service_syncable.h" #include "testing/gtest/include/gtest/gtest.h" class UnusedSitePermissionsServiceTest : public ChromeRenderViewHostTestHarness { public: + UnusedSitePermissionsServiceTest() { + feature_list_.InitWithFeatures( + /*enabled_features=*/ + {content_settings::features::kSafetyCheckUnusedSitePermissions, + features::kSafetyHub}, + /*disabled_features=*/{}); + } void SetUp() override { ChromeRenderViewHostTestHarness::SetUp(); base::Time time; ASSERT_TRUE(base::Time::FromString("2022-09-07 13:00", &time)); clock_.SetNow(time); HostContentSettingsMap::RegisterProfilePrefs(prefs_.registry()); + permissions::RegisterProfilePrefs(prefs_.registry()); + prefs_.SetBoolean( + permissions::prefs::kUnusedSitePermissionsRevocationEnabled, true); hcsm_ = base::MakeRefCounted<HostContentSettingsMap>(&prefs_, false, true, false, false); hcsm_->SetClockForTesting(&clock_); - service_ = std::make_unique<UnusedSitePermissionsService>(hcsm_.get()); + service_ = + std::make_unique<UnusedSitePermissionsService>(hcsm_.get(), &prefs_); service_->SetClockForTesting(&clock_); callback_count_ = 0; } @@ -62,12 +75,19 @@ ChromeRenderViewHostTestHarness::TearDown(); } + void ResetService() { + service_ = + std::make_unique<UnusedSitePermissionsService>(hcsm_.get(), &prefs_); + } + base::SimpleTestClock* clock() { return &clock_; } UnusedSitePermissionsService* service() { return service_.get(); } HostContentSettingsMap* hcsm() { return hcsm_.get(); } + sync_preferences::TestingPrefServiceSyncable* prefs() { return &prefs_; } + uint8_t callback_count() { return callback_count_; } base::Time GetLastVisitedDate(GURL url, ContentSettingsType type) { @@ -107,6 +127,7 @@ scoped_refptr<HostContentSettingsMap> hcsm_; base::SimpleTestClock clock_; uint8_t callback_count_; + base::test::ScopedFeatureList feature_list_; }; TEST_F(UnusedSitePermissionsServiceTest, UnusedSitePermissionsServiceTest) { @@ -658,7 +679,8 @@ // When we start up a new service instance, the latest result (i.e. the list // of revoked permissions) should be immediately available. - auto new_service = std::make_unique<UnusedSitePermissionsService>(hcsm()); + auto new_service = + std::make_unique<UnusedSitePermissionsService>(hcsm(), prefs()); absl::optional<std::unique_ptr<SafetyHubService::Result>> opt_result = new_service->GetCachedResult(); EXPECT_TRUE(opt_result.has_value()); @@ -771,3 +793,100 @@ old_result->AddRevokedPermission(origin2, permission_types, expiration); EXPECT_FALSE(new_result->WarrantsNewMenuNotification(*old_result.get())); } + +TEST_F(UnusedSitePermissionsServiceTest, AutoRevocationSetting) { + base::test::ScopedFeatureList scoped_feature; + scoped_feature.InitWithFeatureStates( + {{content_settings::features::kSafetyCheckUnusedSitePermissions, false}}); + + // When auto-revocation is on, the timer is started by + // StartRepeatedUpdates() on start-up. + ResetService(); + EXPECT_TRUE(service()->IsTimerRunningForTesting()); + + // Disable auto-revocation by setting kUnusedSitePermissionsRevocationEnabled + // pref to false. This should stop the repeated timer. + prefs()->SetBoolean( + permissions::prefs::kUnusedSitePermissionsRevocationEnabled, false); + EXPECT_FALSE(service()->IsTimerRunningForTesting()); + + // Reset the service so auto-revocation is off on the service creation. The + // repeated timer is not started on service creation in this case. + ResetService(); + EXPECT_FALSE(service()->IsTimerRunningForTesting()); + + // Enable auto-revocation by setting kUnusedSitePermissionsRevocationEnabled + // pref to true. This should restart the repeated timer. + prefs()->SetBoolean( + permissions::prefs::kUnusedSitePermissionsRevocationEnabled, true); + EXPECT_TRUE(service()->IsTimerRunningForTesting()); +} + +class UnusedSitePermissionsServiceSafetyHubDisabledTest + : public ChromeRenderViewHostTestHarness { + public: + UnusedSitePermissionsServiceSafetyHubDisabledTest() { + feature_list_.InitWithFeatures( + /*enabled_features=*/{}, + /*disabled_features=*/ + {features::kSafetyHub}); + } + void SetUp() override { + ChromeRenderViewHostTestHarness::SetUp(); + HostContentSettingsMap::RegisterProfilePrefs(prefs_.registry()); + permissions::RegisterProfilePrefs(prefs_.registry()); + hcsm_ = base::MakeRefCounted<HostContentSettingsMap>(&prefs_, false, true, + false, false); + service_ = + std::make_unique<UnusedSitePermissionsService>(hcsm_.get(), &prefs_); + callback_count_ = 0; + } + + void TearDown() override { + service_->Shutdown(); + hcsm_->ShutdownOnUIThread(); + base::RunLoop().RunUntilIdle(); + ChromeRenderViewHostTestHarness::TearDown(); + } + + void ResetService() { + service_ = + std::make_unique<UnusedSitePermissionsService>(hcsm_.get(), &prefs_); + } + + UnusedSitePermissionsService* service() { return service_.get(); } + + sync_preferences::TestingPrefServiceSyncable* prefs() { return &prefs_; } + + uint8_t callback_count() { return callback_count_; } + + private: + sync_preferences::TestingPrefServiceSyncable prefs_; + std::unique_ptr<UnusedSitePermissionsService> service_; + scoped_refptr<HostContentSettingsMap> hcsm_; + uint8_t callback_count_; + base::test::ScopedFeatureList feature_list_; +}; + +TEST_F(UnusedSitePermissionsServiceSafetyHubDisabledTest, + UnusedSitePermissionsRevocationEnabled) { + base::test::ScopedFeatureList scoped_feature; + scoped_feature.InitWithFeatureStates( + {{content_settings::features::kSafetyCheckUnusedSitePermissions, true}}); + // If Safety Hub is disabled but kSafetyCheckUnusedSitePermissions is on, + // auto-revocation still happens (i.e. the timer is started on start-up). + ResetService(); + EXPECT_TRUE(service()->IsTimerRunningForTesting()); +} + +TEST_F(UnusedSitePermissionsServiceSafetyHubDisabledTest, + UnusedSitePermissionsRevocationDisabled) { + base::test::ScopedFeatureList scoped_feature; + scoped_feature.InitWithFeatureStates( + {{content_settings::features::kSafetyCheckUnusedSitePermissions, false}}); + + // If both kSafetyHub and kSafetyCheckUnusedSitePermissions are disabled, then + // no auto-revocation should happen (i.e. no repeated timers should start). + ResetService(); + EXPECT_FALSE(service()->IsTimerRunningForTesting()); +}
diff --git a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc index 7386f612a..7ec18af9 100644 --- a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc +++ b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
@@ -132,7 +132,7 @@ } // namespace -void HandleOnPerformDrop( +void HandleOnPerformingDrop( content::WebContents* web_contents, content::DropData drop_data, content::WebContentsViewDelegate::DropCompletionCallback callback) { @@ -145,6 +145,15 @@ : enterprise_connectors::AnalysisConnector::FILE_ATTACHED; if (!enterprise_connectors::ContentAnalysisDelegate::IsEnabled( profile, web_contents->GetLastCommittedURL(), &data, connector)) { + // If the enterprise policy is not enabled, make sure that the renderer + // never forces a default action. + drop_data.document_is_handling_drag = true; + std::move(callback).Run(std::move(drop_data)); + return; + } + + // If the page will not handle the drop, no need to perform content analysis. + if (!drop_data.document_is_handling_drag) { std::move(callback).Run(std::move(drop_data)); return; }
diff --git a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.h b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.h index 71646c2b77..0b065d3 100644 --- a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.h +++ b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.h
@@ -13,8 +13,8 @@ } // namespace content // Common code to be called from the implementation of -// WebContentsViewDelegate::OnPerformDrop() for each platform. -void HandleOnPerformDrop( +// WebContentsViewDelegate::OnPerformingDrop() for each platform. +void HandleOnPerformingDrop( content::WebContents* web_contents, content::DropData drop_data, content::WebContentsViewDelegate::DropCompletionCallback callback);
diff --git a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop_unittest.cc b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop_unittest.cc index f059aadc..408b29d 100644 --- a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop_unittest.cc +++ b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop_unittest.cc
@@ -36,14 +36,13 @@ class DragDropTestContentAnalysisDelegate : public enterprise_connectors::test::FakeContentAnalysisDelegate { public: - DragDropTestContentAnalysisDelegate(base::RepeatingClosure delete_closure, - StatusCallback status_callback, + DragDropTestContentAnalysisDelegate(StatusCallback status_callback, std::string dm_token, content::WebContents* web_contents, Data data, CompletionCallback callback) : enterprise_connectors::test::FakeContentAnalysisDelegate( - delete_closure, + base::DoNothing(), std::move(status_callback), std::move(dm_token), web_contents, @@ -51,15 +50,14 @@ std::move(callback)) {} static std::unique_ptr<ContentAnalysisDelegate> Create( - base::RepeatingClosure delete_closure, StatusCallback status_callback, std::string dm_token, content::WebContents* web_contents, Data data, CompletionCallback callback) { auto ret = std::make_unique<DragDropTestContentAnalysisDelegate>( - delete_closure, std::move(status_callback), std::move(dm_token), - web_contents, std::move(data), std::move(callback)); + std::move(status_callback), std::move(dm_token), web_contents, + std::move(data), std::move(callback)); enterprise_connectors::FilesRequestHandler::SetFactoryForTesting( base::BindRepeating( &enterprise_connectors::test::FakeFilesRequestHandler::Create, @@ -105,15 +103,14 @@ } }; -class ChromeWebContentsViewDelegateHandleOnPerformDrop : public testing::Test { +class ChromeWebContentsViewDelegateHandleOnPerformingDrop + : public testing::Test { public: - ChromeWebContentsViewDelegateHandleOnPerformDrop() { + ChromeWebContentsViewDelegateHandleOnPerformingDrop() { EXPECT_TRUE(profile_manager_.SetUp()); profile_ = profile_manager_.CreateTestingProfile("test-user"); } - void RunUntilDone() { run_loop_->Run(); } - content::WebContents* contents() { if (!web_contents_) { content::WebContents::CreateParams params(profile_); @@ -147,8 +144,6 @@ profile_->GetPrefs(), enterprise_connectors::BULK_DATA_ENTRY); } - run_loop_ = std::make_unique<base::RunLoop>(); - using FakeDelegate = enterprise_connectors::test::FakeContentAnalysisDelegate; @@ -191,11 +186,12 @@ }); enterprise_connectors::ContentAnalysisDelegate::SetFactoryForTesting( base::BindRepeating(&DragDropTestContentAnalysisDelegate::Create, - run_loop_->QuitClosure(), callback, "dm_token")); + callback, "dm_token")); enterprise_connectors::ContentAnalysisDelegate::DisableUIForTesting(); enterprise_connectors::ContentAnalysisDelegate:: SetOnAckAllRequestsCallbackForTesting(base::BindOnce( - &ChromeWebContentsViewDelegateHandleOnPerformDrop::OnAckAllActions, + &ChromeWebContentsViewDelegateHandleOnPerformingDrop:: + OnAckAllActions, base::Unretained(this))); } @@ -209,12 +205,14 @@ EnableDeepScanning(enable); SetTextScanSucceeds(successful_text_scan); - bool called = false; - HandleOnPerformDrop( + base::RunLoop run_loop; + + auto quit_closure = run_loop.QuitClosure(); + HandleOnPerformingDrop( contents(), data, base::BindLambdaForTesting( [&data, &successful_text_scan, &successful_file_paths, - &called](absl::optional<content::DropData> result_data) { + quit_closure](absl::optional<content::DropData> result_data) { if (successful_text_scan || !successful_file_paths.empty()) { EXPECT_TRUE(result_data.has_value()); EXPECT_EQ(result_data->filenames.size(), @@ -230,12 +228,10 @@ } else { EXPECT_FALSE(result_data.has_value()); } - called = true; + quit_closure.Run(); })); - if (enable) - RunUntilDone(); + run_loop.Run(); - EXPECT_TRUE(called); ASSERT_EQ(expected_requests_count_, current_requests_count_); } @@ -282,12 +278,29 @@ expected_final_actions_; }; -// When no drop data is specified, HandleOnPerformDrop() should indicate +// When no drop data is specified, HandleOnPerformingDrop() should indicate // the caller can proceed, whether scanning is enabled or not. -TEST_F(ChromeWebContentsViewDelegateHandleOnPerformDrop, NoData) { +TEST_F(ChromeWebContentsViewDelegateHandleOnPerformingDrop, NoData) { content::DropData data; SetExpectedRequestsCount(0); + data.document_is_handling_drag = true; + RunTest(data, /*enable=*/false, /*successful_text_scan=*/true, + /*successful_file_paths*/ {}); + RunTest(data, /*enable=*/true, /*successful_text_scan=*/true, + /*successful_file_paths*/ {}); +} + +// When drop data is specified, but document_is_handling_drag is false, +// HandleOnPerformingDrop() should indicate the caller can proceed +// and no scanning is done. +TEST_F(ChromeWebContentsViewDelegateHandleOnPerformingDrop, + WithData_NoneDocOp) { + content::DropData data; + data.text = base::UTF8ToUTF16(large_text()); + + SetExpectedRequestsCount(0); + data.document_is_handling_drag = false; RunTest(data, /*enable=*/false, /*successful_text_scan=*/true, /*successful_file_paths*/ {}); RunTest(data, /*enable=*/true, /*successful_text_scan=*/true, @@ -295,8 +308,9 @@ } // Make sure DropData::url_title is handled correctly. -TEST_F(ChromeWebContentsViewDelegateHandleOnPerformDrop, UrlTitle) { +TEST_F(ChromeWebContentsViewDelegateHandleOnPerformingDrop, UrlTitle) { content::DropData data; + data.document_is_handling_drag = true; data.url_title = base::UTF8ToUTF16(large_text()); SetExpectedRequestsCount(0); @@ -316,8 +330,9 @@ } // Make sure DropData::text is handled correctly. -TEST_F(ChromeWebContentsViewDelegateHandleOnPerformDrop, Text) { +TEST_F(ChromeWebContentsViewDelegateHandleOnPerformingDrop, Text) { content::DropData data; + data.document_is_handling_drag = true; data.text = base::UTF8ToUTF16(large_text()); SetExpectedRequestsCount(0); @@ -337,8 +352,9 @@ } // Make sure DropData::html is handled correctly. -TEST_F(ChromeWebContentsViewDelegateHandleOnPerformDrop, Html) { +TEST_F(ChromeWebContentsViewDelegateHandleOnPerformingDrop, Html) { content::DropData data; + data.document_is_handling_drag = true; data.html = base::UTF8ToUTF16(large_text()); SetExpectedRequestsCount(0); @@ -358,7 +374,7 @@ } // Make sure DropData::filenames is handled correctly. -TEST_F(ChromeWebContentsViewDelegateHandleOnPerformDrop, Files) { +TEST_F(ChromeWebContentsViewDelegateHandleOnPerformingDrop, Files) { base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -375,6 +391,7 @@ file_2.WriteAtCurrentPos("bar content", 11); content::DropData data; + data.document_is_handling_drag = true; data.filenames.emplace_back(path_1, path_1); data.filenames.emplace_back(path_2, path_2); @@ -400,7 +417,7 @@ } // Make sure DropData::filenames directories are handled correctly. -TEST_F(ChromeWebContentsViewDelegateHandleOnPerformDrop, Directories) { +TEST_F(ChromeWebContentsViewDelegateHandleOnPerformingDrop, Directories) { base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -422,6 +439,7 @@ } content::DropData data; + data.document_is_handling_drag = true; data.filenames.emplace_back(folder_1, folder_1); data.filenames.emplace_back(path_4, path_4); data.filenames.emplace_back(path_5, path_5);
diff --git a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view_unittest.cc b/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view_unittest.cc deleted file mode 100644 index 7a3b291b..0000000 --- a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view_unittest.cc +++ /dev/null
@@ -1,275 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h" - -#include <memory> -#include <utility> - -#include "base/functional/callback.h" -#include "base/memory/raw_ptr.h" -#include "base/test/metrics/histogram_tester.h" -#include "base/test/mock_callback.h" -#include "build/build_config.h" -#include "chrome/browser/autofill/mock_autofill_popup_controller.h" -#include "chrome/browser/ui/views/autofill/popup/test_popup_row_strategy.h" -#include "chrome/test/views/chrome_views_test_base.h" -#include "components/autofill/core/browser/metrics/autofill_metrics.h" -#include "components/autofill/core/browser/ui/popup_item_ids.h" -#include "components/autofill/core/browser/ui/suggestion.h" -#include "components/strings/grit/components_strings.h" -#include "content/public/common/input/native_web_keyboard_event.h" -#include "testing/gmock/include/gmock/gmock.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/public/common/input/web_input_event.h" -#include "third_party/blink/public/common/input/web_keyboard_event.h" -#include "ui/base/l10n/l10n_util.h" -#include "ui/compositor/canvas_painter.h" -#include "ui/events/base_event_utils.h" -#include "ui/events/test/event_generator.h" -#include "ui/gfx/geometry/point.h" -#include "ui/views/controls/button/image_button.h" -#include "ui/views/controls/label.h" -#include "ui/views/layout/box_layout.h" -#include "ui/views/widget/widget.h" -#include "ui/views/widget/widget_utils.h" - -using ::testing::Return; -using testing::StrictMock; - -namespace autofill { - -class PopupAutocompleteCellViewTest : public ChromeViewsTestBase { - public: - // views::ViewsTestBase: - void SetUp() override { - ChromeViewsTestBase::SetUp(); - widget_ = CreateTestWidget(); - generator_ = std::make_unique<ui::test::EventGenerator>( - GetRootWindow(widget_.get())); - } - - void ShowView(std::unique_ptr<PopupAutocompleteCellView> cell_view) { - view_ = widget_->SetContentsView(std::move(cell_view)); - widget_->Show(); - } - - void TearDown() override { - view_ = nullptr; - generator_.reset(); - widget_.reset(); - ChromeViewsTestBase::TearDown(); - } - - void SimulateKeyPress(int windows_key_code, - bool shift_modifier_pressed = false, - bool non_shift_modifier_pressed = false) { - int modifiers = blink::WebInputEvent::kNoModifiers; - if (shift_modifier_pressed) { - modifiers |= blink::WebInputEvent::Modifiers::kShiftKey; - } - if (non_shift_modifier_pressed) { - modifiers |= blink::WebInputEvent::Modifiers::kAltKey; - } - - content::NativeWebKeyboardEvent event( - blink::WebKeyboardEvent::Type::kRawKeyDown, modifiers, - ui::EventTimeForNow()); - event.windows_key_code = windows_key_code; - view().HandleKeyPressEvent(event); - } - - views::ImageButton* CreateRowAndGetDeleteButton() { - controller().set_suggestions( - {Suggestion("Jane Doe", "", "", "", PopupItemId::kAutocompleteEntry)}); - std::unique_ptr<PopupAutocompleteCellView> cell = - std::make_unique<PopupAutocompleteCellView>(controller().GetWeakPtr(), - /*line_number=*/0); - cell->SetAccessibilityDelegate( - std::make_unique<TestAccessibilityDelegate>()); - views::ImageButton* button = cell->GetCellButtonForTest(); - ShowView(std::move(cell)); - return button; - } - - MockAutofillPopupController& controller() { return controller_; } - - private: - MockAutofillPopupController controller_; - - protected: - ui::test::EventGenerator& generator() { return *generator_; } - PopupAutocompleteCellView& view() { return *view_; } - views::Widget& widget() { return *widget_; } - - private: - std::unique_ptr<views::Widget> widget_; - std::unique_ptr<ui::test::EventGenerator> generator_; - raw_ptr<PopupAutocompleteCellView> view_ = nullptr; -}; - -TEST_F(PopupAutocompleteCellViewTest, ShowsOrHideDeleteIconOnSelected) { - views::ImageButton* button = CreateRowAndGetDeleteButton(); - - // Show delete button if row is selected. - ASSERT_FALSE(button->GetVisible()); - view().SetSelected(true); - ASSERT_TRUE(button->GetVisible()); - - // Hide delete button if row is not selected. - view().SetSelected(false); - ASSERT_FALSE(button->GetVisible()); -} - -TEST_F(PopupAutocompleteCellViewTest, - UpdateSelectedAndRunCallbacksOnButtonHovered) { - views::ImageButton* button = CreateRowAndGetDeleteButton(); - views::View* table = view().children()[0]; - - StrictMock<base::MockCallback<base::RepeatingClosure>> selected_callback; - StrictMock<base::MockCallback<base::RepeatingClosure>> unselected_callback; - view().SetOnSelectedCallback(selected_callback.Get()); - view().SetOnUnselectedCallback(unselected_callback.Get()); - EXPECT_CALL(selected_callback, Run); - view().SetSelected(true); - ASSERT_TRUE(view().GetSelected()); - // In test env we have to manually set the bounds when a view becomes visible. - button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); - - // Selected is false if hovering button. - EXPECT_CALL(unselected_callback, Run); - generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); - ASSERT_FALSE(view().GetSelected()); - - // Selected is true if hovering label when button state changes - EXPECT_CALL(selected_callback, Run); - generator().MoveMouseTo(table->GetBoundsInScreen().CenterPoint()); - ASSERT_TRUE(view().GetSelected()); -} - -TEST_F(PopupAutocompleteCellViewTest, AutocompleteDeleteButtonRemovesEntry) { - views::ImageButton* button = CreateRowAndGetDeleteButton(); - view().SetSelected(true); - // In test env we have to manually set the bounds when a view becomes visible. - button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); - EXPECT_CALL(controller(), RemoveSuggestion(0)); - - generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); - generator().ClickLeftButton(); -} - -TEST_F(PopupAutocompleteCellViewTest, - AutocompleteDeleteRecordsMetricOnDeletion) { - views::ImageButton* button = CreateRowAndGetDeleteButton(); - base::HistogramTester histogram_tester; - - view().SetSelected(true); - // In test env we have to manually set the bounds when a view becomes visible. - button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); - // In test env we have to manually set the bounds when a view becomes visible. - button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); - - EXPECT_CALL(controller(), RemoveSuggestion(0)).WillOnce(Return(true)); - - generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); - generator().ClickLeftButton(); - - // Deletion does not happen immediately to avoid that an object deletes - // itself. This ensures that the deletion task is processed. - task_environment()->RunUntilIdle(); - - histogram_tester.ExpectUniqueSample( - "Autofill.Autocomplete.SingleEntryRemovalMethod", - AutofillMetrics::AutocompleteSingleEntryRemovalMethod:: - kDeleteButtonClicked, - 1); - histogram_tester.ExpectUniqueSample( - "Autocomplete.Events", - AutofillMetrics::AutocompleteEvent::AUTOCOMPLETE_SUGGESTION_DELETED, 1); -} - -TEST_F(PopupAutocompleteCellViewTest, - AutocompleteDeleteRecordsNoMetricOnFailedDeletion) { - base::HistogramTester histogram_tester; - views::ImageButton* button = CreateRowAndGetDeleteButton(); - view().SetSelected(true); - // In test env we have to manually set the bounds when a view becomes visible. - button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); - - EXPECT_CALL(controller(), RemoveSuggestion(0)).WillOnce(Return(false)); - - generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); - generator().ClickLeftButton(); - - histogram_tester.ExpectUniqueSample( - "Autofill.Autocomplete.SingleEntryRemovalMethod", - AutofillMetrics::AutocompleteSingleEntryRemovalMethod:: - kDeleteButtonClicked, - 0); - histogram_tester.ExpectUniqueSample( - "Autocomplete.Events", - AutofillMetrics::AutocompleteEvent::AUTOCOMPLETE_SUGGESTION_DELETED, 0); -} - -TEST_F(PopupAutocompleteCellViewTest, KeyPressLeftRightEnter) { - CreateRowAndGetDeleteButton(); - view().SetSelected(true); - - // Pressing left does nothing. - SimulateKeyPress(ui::VKEY_LEFT); - ASSERT_TRUE(view().GetSelected()); - - // Pressing right unselects and highlights the button. - SimulateKeyPress(ui::VKEY_RIGHT); - ASSERT_FALSE(view().GetSelected()); - - // Pressing enter when the button is focused deletes the entry. - EXPECT_CALL(controller(), RemoveSuggestion(0)); - SimulateKeyPress(ui::VKEY_RETURN); -} - -TEST_F(PopupAutocompleteCellViewTest, - CursorVerticalNavigationAlwaysHidesButton) { - views::ImageButton* button = CreateRowAndGetDeleteButton(); - view().SetSelected(true); - // In test env we have to manually set the bounds when a view becomes visible. - button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); - generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); - ASSERT_TRUE(button->GetVisible()); - - // Pressing down to indicate vertical navigation. - SimulateKeyPress(ui::VKEY_DOWN); - // Set selected as false to simulate another row was selected. - view().SetSelected(false); - - ASSERT_FALSE(button->GetVisible()); -} - -TEST_F(PopupAutocompleteCellViewTest, AutocompleteDeleteButtonHasTooltip) { - views::ImageButton* button = CreateRowAndGetDeleteButton(); - - EXPECT_EQ(button->GetTooltipText(), - l10n_util::GetStringUTF16( - IDS_AUTOFILL_DELETE_AUTOCOMPLETE_SUGGESTION_TOOLTIP)); -} - -TEST_F(PopupAutocompleteCellViewTest, - AutocompleteDeleteButtonSetsAccessibility) { - views::ImageButton* button = CreateRowAndGetDeleteButton(); - // We only set the accessible name once user navigates to the button. - // TODO(crbug.com/1417187): Delete this once we find out why calling - // NotifyAccessibilityEvent in the content is including the button's - // accessible name attribute value. - SimulateKeyPress(ui::VKEY_RIGHT); - ui::AXNodeData node_data; - button->GetAccessibleNodeData(&node_data); - - EXPECT_EQ(node_data.role, ax::mojom::Role::kMenuItem); - EXPECT_EQ( - l10n_util::GetStringFUTF16( - IDS_AUTOFILL_DELETE_AUTOCOMPLETE_SUGGESTION_A11Y_HINT, u"Jane Doe"), - node_data.GetString16Attribute(ax::mojom::StringAttribute::kName)); -} - -} // namespace autofill
diff --git a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.cc b/chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.cc similarity index 62% rename from chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.cc rename to chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.cc index f99f400..74dad2e 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.cc +++ b/chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.cc
@@ -2,17 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h" +#include "chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.h" #include <memory> #include <utility> #include "base/functional/bind.h" #include "base/functional/callback.h" -#include "base/task/sequenced_task_runner.h" -#include "chrome/browser/ui/autofill/autofill_popup_controller.h" -#include "chrome/browser/ui/views/autofill/popup/popup_cell_utils.h" -#include "components/autofill/core/browser/metrics/autofill_metrics.h" #include "components/strings/grit/components_strings.h" #include "content/public/common/input/native_web_keyboard_event.h" #include "ui/accessibility/ax_enums.mojom.h" @@ -23,10 +19,7 @@ #include "ui/views/animation/ink_drop.h" #include "ui/views/controls/button/button_controller.h" #include "ui/views/controls/button/image_button.h" -#include "ui/views/controls/button/image_button_factory.h" -#include "ui/views/controls/highlight_path_generator.h" #include "ui/views/layout/box_layout.h" -#include "ui/views/vector_icons.h" #include "ui/views/view.h" #include "ui/views/widget/widget.h" @@ -34,10 +27,8 @@ namespace { -constexpr int kCloseIconSize = 16; - // Overrides `OnMouseEntered` and `OnMouseExited` from -// `views::ButtonController`. Used by `PopupAutocompleteCellView` to know when +// `views::ButtonController`. Used by `PopupCellWithButtonView` to know when // the mouse cursor has entered or left the delete button in order to run the // selection callbacks. class CellButtonController : public views::ButtonController { @@ -124,52 +115,53 @@ } } // namespace -PopupAutocompleteCellView::PopupAutocompleteCellView( - base::WeakPtr<AutofillPopupController> controller, - int line_number) - : PopupCellView( - controller->ShouldIgnoreMouseObservedOutsideItemBoundsCheck()), - controller_(controller), - line_number_(line_number) { - const Suggestion& kSuggestion = controller->GetSuggestionAt(line_number_); +PopupCellWithButtonView::PopupCellWithButtonView( + bool should_ignore_mouse_observed_outside_item_bounds_check) + : PopupCellView(should_ignore_mouse_observed_outside_item_bounds_check) {} - // Add the label views. - std::unique_ptr<views::Label> main_text_label = - popup_cell_utils::CreateMainTextLabel( - kSuggestion.main_text, views::style::TextStyle::STYLE_PRIMARY); - popup_cell_utils::FormatLabel(*main_text_label, kSuggestion.main_text, - controller); - popup_cell_utils::AddSuggestionContentToView( - kSuggestion, std::move(main_text_label), - popup_cell_utils::CreateMinorTextLabel(kSuggestion.minor_text), - /*description_label=*/nullptr, - popup_cell_utils::CreateAndTrackSubtextViews(*this, controller, - line_number_), - *this); +PopupCellWithButtonView::~PopupCellWithButtonView() = default; - // Prepare the callbacks to the controller. - popup_cell_utils::AddCallbacksToContentView(controller, line_number_, *this); - CreateDeleteButton(); +void PopupCellWithButtonView::SetCellButton( + std::unique_ptr<views::ImageButton> cell_button) { + if (button_placeholder_) { + button_ = nullptr; + RemoveChildView(std::exchange(button_placeholder_, nullptr).get()); + } + + if (!cell_button) { + return; + } + + button_accessible_name_ = cell_button->GetAccessibleName(); + button_placeholder_ = AddChildView(std::make_unique<ButtonPlaceholder>(this)); + button_placeholder_->SetLayoutManager(std::make_unique<views::BoxLayout>()); + button_placeholder_->SetPreferredSize(cell_button->GetPreferredSize()); + button_ = button_placeholder_->AddChildView(std::move(cell_button)); + button_->SetVisible(selected_); + button_->SetButtonController(std::make_unique<CellButtonController>( + button_, this, + std::make_unique<views::Button::DefaultButtonControllerDelegate>( + button_.get()))); } -PopupAutocompleteCellView::~PopupAutocompleteCellView() = default; - -void PopupAutocompleteCellView::HandleKeyPressEventFocusOnButton() { - CHECK(button_); +void PopupCellWithButtonView::HandleKeyPressEventFocusOnButton() { + if (!button_) { + return; + } button_focused_ = true; - button_->SetAccessibleName(l10n_util::GetStringFUTF16( - IDS_AUTOFILL_DELETE_AUTOCOMPLETE_SUGGESTION_A11Y_HINT, - popup_cell_utils::GetVoiceOverStringFromSuggestion( - controller_->GetSuggestionAt(line_number_)))); + button_->SetAccessibleName(button_accessible_name_); button_->GetViewAccessibility().SetPopupFocusOverride(); button_->NotifyAccessibilityEvent(ax::mojom::Event::kSelection, true); views::InkDrop::Get(button_->ink_drop_view())->GetInkDrop()->SetHovered(true); UpdateSelectedAndRunCallback(false); } -void PopupAutocompleteCellView::HandleKeyPressEventFocusOnContent() { +void PopupCellWithButtonView::HandleKeyPressEventFocusOnContent() { button_focused_ = false; + if (!button_) { + return; + } // TODO(crbug.com/1417187): Find out the root cause for the necessity of this // workaround. Without explicitly removing the accessible name for the button, @@ -177,6 +169,7 @@ // MAC). For example, if the content is "jondoe@gmail.com", the screen reader // announces "delete jon". This does not happen if the button has no // accessible name. + button_accessible_name_ = button_->GetAccessibleName(); button_->SetAccessibleName(u""); UpdateSelectedAndRunCallback(true); GetViewAccessibility().SetPopupFocusOverride(); @@ -186,7 +179,7 @@ ->SetHovered(false); } -bool PopupAutocompleteCellView::HandleKeyPressEvent( +bool PopupCellWithButtonView::HandleKeyPressEvent( const content::NativeWebKeyboardEvent& event) { switch (event.windows_key_code) { // When pressing left arrow key (LTR): @@ -214,8 +207,7 @@ } return true; case ui::VKEY_RETURN: - CHECK(button_); - if (button_focused_) { + if (button_ && button_focused_) { button_->button_controller()->NotifyClick(); return true; } @@ -226,17 +218,17 @@ return PopupCellView::HandleKeyPressEvent(event); } -void PopupAutocompleteCellView::SetSelected(bool selected) { - CHECK(button_); - +void PopupCellWithButtonView::SetSelected(bool selected) { // TODO(crbug.com/1417187): Find out the root cause for the necessity of this // workaround. Without explicitly removing the accessible name for the button // the screen reader is announcing both the content and the delete button (on // MAC). For example, if the content is "jondoe@gmail.com", the screen reader // announces "delete jon". This does not happen if the button has no // accessible name. - button_->SetVisible(selected); - button_->SetAccessibleName(u""); + if (button_) { + button_->SetVisible(selected); + button_->SetAccessibleName(u""); + } autofill::PopupCellView::SetSelected(selected); @@ -256,84 +248,22 @@ } // We also always reset `button_focused_` when selected is updated due to - // mouse navigation. - // This prevents the case where the delete button is focused but the cursor is - // moved to the content. + // mouse navigation. This prevents the case where the delete button is focused + // but the cursor is moved to the content. button_focused_ = false; } -void PopupAutocompleteCellView::CreateDeleteButton() { - // The closure that actually attempts to delete an entry and record metrics - // for it. - base::RepeatingClosure deletion_action = base::BindRepeating( - [](base::WeakPtr<AutofillPopupController> controller, int line_number) { - if (controller && controller->RemoveSuggestion(line_number)) { - AutofillMetrics::OnAutocompleteSuggestionDeleted( - AutofillMetrics::AutocompleteSingleEntryRemovalMethod:: - kDeleteButtonClicked); - } - }, - controller_, line_number_); - - // The closure that delays makes sure this is called only via direct entry - // from the task queue to avoid that the caller suicides. - base::RepeatingClosure button_action = base::BindRepeating( - [](base::RepeatingClosure delayed_task) { - base::SequencedTaskRunner::GetCurrentDefault()->PostTask( - FROM_HERE, std::move(delayed_task)); - }, - std::move(deletion_action)); - - std::unique_ptr<views::ImageButton> button = - views::CreateVectorImageButtonWithNativeTheme( - std::move(button_action), views::kIcCloseIcon, kCloseIconSize); - - CHECK(GetLayoutManager()); - views::BoxLayout* layout = static_cast<views::BoxLayout*>(GetLayoutManager()); - // We are making sure that the vertical distance from the delete button edges - // to the cell border is the same as the horizontal distance. - // 1. Take the current horizontal distance. - int horizontal_margin = layout->inside_border_insets().right(); - // 2. Take the height of the cell. - int cell_height = layout->minimum_cross_axis_size(); - // 3. The diameter needs to be the height - 2 * the desired margin. - int radius = (cell_height - horizontal_margin * 2) / 2; - InstallFixedSizeCircleHighlightPathGenerator(button.get(), radius); - button->SetPreferredSize(gfx::Size(radius * 2, radius * 2)); - button->SetTooltipText(l10n_util::GetStringUTF16( - IDS_AUTOFILL_DELETE_AUTOCOMPLETE_SUGGESTION_TOOLTIP)); - button->SetAccessibleRole(ax::mojom::Role::kMenuItem); - button->SetVisible(false); - - // Make child view grow to fill the space and align the button to the right. - for (views::View* child : children()) { - layout->SetFlexForView(child, 1); - } - - button_placeholder_ = AddChildView(std::make_unique<ButtonPlaceholder>(this)); - button_placeholder_->SetLayoutManager(std::make_unique<views::BoxLayout>()); - button_placeholder_->SetPreferredSize(button->GetPreferredSize()); - - button_ = button_placeholder_->AddChildView(std::move(button)); - layout->SetFlexForView(button_placeholder_, 0); - - button_->SetButtonController(std::make_unique<CellButtonController>( - button_, this, - std::make_unique<views::Button::DefaultButtonControllerDelegate>( - button_.get()))); -} - -void PopupAutocompleteCellView::OnMouseEnteredCellButton() { +void PopupCellWithButtonView::OnMouseEnteredCellButton() { UpdateSelectedAndRunCallback(/*selected=*/false); } -void PopupAutocompleteCellView::OnMouseExitedCellButton() { +void PopupCellWithButtonView::OnMouseExitedCellButton() { // We check for IsMouseHovered() because moving too fast outside the button // could place the mouse cursor outside the whole cell. UpdateSelectedAndRunCallback(/*selected=*/IsMouseHovered()); } -void PopupAutocompleteCellView::UpdateSelectedAndRunCallback(bool selected) { +void PopupCellWithButtonView::UpdateSelectedAndRunCallback(bool selected) { if (selected_ == selected) { return; }
diff --git a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h b/chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.h similarity index 65% rename from chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h rename to chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.h index 4cd0b01..9ba42a6b 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h +++ b/chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.h
@@ -2,8 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_VIEWS_AUTOFILL_POPUP_POPUP_AUTOCOMPLETE_CELL_VIEW_H_ -#define CHROME_BROWSER_UI_VIEWS_AUTOFILL_POPUP_POPUP_AUTOCOMPLETE_CELL_VIEW_H_ +#ifndef CHROME_BROWSER_UI_VIEWS_AUTOFILL_POPUP_POPUP_CELL_WITH_BUTTON_VIEW_H_ +#define CHROME_BROWSER_UI_VIEWS_AUTOFILL_POPUP_POPUP_CELL_WITH_BUTTON_VIEW_H_ + +#include <memory> +#include <string> #include "base/scoped_observation.h" #include "chrome/browser/ui/views/autofill/popup/popup_cell_view.h" @@ -17,10 +20,6 @@ class ImageButton; } // namespace views -namespace autofill { -class AutofillPopupController; -} - namespace gfx { class canvas; } // namespace gfx @@ -61,33 +60,37 @@ } // namespace -// `PopupAutocompleteCellView` represents a single, selectable cell. However, It -// contains the autocomplete value AND a button to delete the entry. -class PopupAutocompleteCellView : public autofill::PopupCellView, - public CellButtonDelegate { +// A class for a single selectable popup cell that also has a button. +class PopupCellWithButtonView : public PopupCellView, + public CellButtonDelegate { public: - PopupAutocompleteCellView(base::WeakPtr<AutofillPopupController> controller, - int line_number); - PopupAutocompleteCellView(const PopupAutocompleteCellView&) = delete; - PopupAutocompleteCellView& operator=(const PopupAutocompleteCellView&) = - delete; - ~PopupAutocompleteCellView() override; + explicit PopupCellWithButtonView( + bool should_ignore_mouse_observed_outside_item_bounds_check = false); + PopupCellWithButtonView(const PopupCellWithButtonView&) = delete; + PopupCellWithButtonView& operator=(const PopupCellWithButtonView&) = delete; + ~PopupCellWithButtonView() override; - // autofill::PopupCellView; + // Removes the current button (if there is any) and adds `cell_button` to the + // view. Note that `cell_button` is appended to the current children of `this` + // and its controller is overwritten. + void SetCellButton(std::unique_ptr<views::ImageButton> cell_button); + views::ImageButton* GetCellButtonForTest() { return button_; } + + // Returns the view that contains the button or `nullptr` if no button is set. + views::View* GetButtonContainer() { return button_placeholder_; } + + // PopupCellView: void SetSelected(bool selected) override; // Handles key press events coming from the parent class. Returns false if // the parent should handle it. bool HandleKeyPressEvent( const content::NativeWebKeyboardEvent& event) override; - views::ImageButton* GetCellButtonForTest() { return button_; } - private: // CellButtonDelegate: void OnMouseEnteredCellButton() override; void OnMouseExitedCellButton() override; - void CreateDeleteButton(); void UpdateSelectedAndRunCallback(bool selected); void HandleKeyPressEventFocusOnButton(); void HandleKeyPressEventFocusOnContent(); @@ -95,15 +98,13 @@ raw_ptr<views::ImageButton> button_ = nullptr; raw_ptr<ButtonPlaceholder> button_placeholder_ = nullptr; - // The controller for the parent view. - const base::WeakPtr<AutofillPopupController> controller_; - // The line number in the popup. - const int line_number_; // Whether the button has been focused. Used for accessibility and arrow // navigation purposes. bool button_focused_ = false; + // TODO(crbug.com/1417187): Remove once the work-around is fixed. + std::u16string button_accessible_name_; }; } // namespace autofill -#endif // CHROME_BROWSER_UI_VIEWS_AUTOFILL_POPUP_POPUP_AUTOCOMPLETE_CELL_VIEW_H_ +#endif // CHROME_BROWSER_UI_VIEWS_AUTOFILL_POPUP_POPUP_CELL_WITH_BUTTON_VIEW_H_
diff --git a/chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view_unittest.cc b/chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view_unittest.cc new file mode 100644 index 0000000..2b0653f --- /dev/null +++ b/chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view_unittest.cc
@@ -0,0 +1,186 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.h" + +#include <memory> +#include <utility> + +#include "base/functional/callback.h" +#include "base/memory/raw_ptr.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/test/mock_callback.h" +#include "build/build_config.h" +#include "chrome/browser/autofill/mock_autofill_popup_controller.h" +#include "chrome/browser/ui/views/autofill/popup/test_popup_row_strategy.h" +#include "chrome/test/views/chrome_views_test_base.h" +#include "components/autofill/core/browser/metrics/autofill_metrics.h" +#include "components/autofill/core/browser/ui/popup_item_ids.h" +#include "components/autofill/core/browser/ui/suggestion.h" +#include "components/strings/grit/components_strings.h" +#include "content/public/common/input/native_web_keyboard_event.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/input/web_input_event.h" +#include "third_party/blink/public/common/input/web_keyboard_event.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/compositor/canvas_painter.h" +#include "ui/events/base_event_utils.h" +#include "ui/events/test/event_generator.h" +#include "ui/gfx/geometry/point.h" +#include "ui/views/controls/button/image_button.h" +#include "ui/views/controls/label.h" +#include "ui/views/layout/box_layout.h" +#include "ui/views/widget/widget.h" +#include "ui/views/widget/widget_utils.h" + +using ::testing::Return; +using ::testing::StrictMock; + +namespace autofill { + +class PopupCellWithButtonViewTest : public ChromeViewsTestBase { + public: + // views::ViewsTestBase: + void SetUp() override { + ChromeViewsTestBase::SetUp(); + widget_ = CreateTestWidget(); + generator_ = std::make_unique<ui::test::EventGenerator>( + GetRootWindow(widget_.get())); + } + + void ShowView(std::unique_ptr<PopupCellWithButtonView> cell_view) { + view_ = widget_->SetContentsView(std::move(cell_view)); + widget_->Show(); + } + + void TearDown() override { + view_ = nullptr; + generator_.reset(); + widget_.reset(); + ChromeViewsTestBase::TearDown(); + } + + void SimulateKeyPress(int windows_key_code) { + content::NativeWebKeyboardEvent event( + blink::WebKeyboardEvent::Type::kRawKeyDown, + blink::WebInputEvent::kNoModifiers, ui::EventTimeForNow()); + event.windows_key_code = windows_key_code; + view().HandleKeyPressEvent(event); + } + + views::ImageButton* CreateRowAndGetButton( + base::RepeatingClosure button_callback = base::DoNothing()) { + auto cell = std::make_unique<PopupCellWithButtonView>( + /*should_ignore_mouse_observed_outside_item_bounds_check=*/true); + cell->SetLayoutManager(std::make_unique<views::BoxLayout>( + views::BoxLayout::Orientation::kHorizontal)); + cell->AddChildView(std::make_unique<views::Label>(u"Some label")); + cell->SetAccessibilityDelegate( + std::make_unique<TestAccessibilityDelegate>()); + cell->SetCellButton( + std::make_unique<views::ImageButton>(std::move(button_callback))); + views::ImageButton* button = cell->GetCellButtonForTest(); + ShowView(std::move(cell)); + return button; + } + + protected: + ui::test::EventGenerator& generator() { return *generator_; } + PopupCellWithButtonView& view() { return *view_; } + views::Widget& widget() { return *widget_; } + + private: + std::unique_ptr<views::Widget> widget_; + std::unique_ptr<ui::test::EventGenerator> generator_; + raw_ptr<PopupCellWithButtonView> view_ = nullptr; +}; + +TEST_F(PopupCellWithButtonViewTest, ShowsOrHideButtonOnSelected) { + views::ImageButton* button = CreateRowAndGetButton(); + + // Show delete button if row is selected. + ASSERT_FALSE(button->GetVisible()); + view().SetSelected(true); + ASSERT_TRUE(button->GetVisible()); + + // Hide delete button if row is not selected. + view().SetSelected(false); + ASSERT_FALSE(button->GetVisible()); +} + +TEST_F(PopupCellWithButtonViewTest, + UpdateSelectedAndRunCallbacksOnButtonHovered) { + views::ImageButton* button = CreateRowAndGetButton(); + views::View* label = view().children()[0]; + + StrictMock<base::MockCallback<base::RepeatingClosure>> selected_callback; + StrictMock<base::MockCallback<base::RepeatingClosure>> unselected_callback; + view().SetOnSelectedCallback(selected_callback.Get()); + view().SetOnUnselectedCallback(unselected_callback.Get()); + EXPECT_CALL(selected_callback, Run); + view().SetSelected(true); + ASSERT_TRUE(view().GetSelected()); + // In test env we have to manually set the bounds when a view becomes visible. + button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); + + // Selected is false if hovering button. + EXPECT_CALL(unselected_callback, Run); + generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); + ASSERT_FALSE(view().GetSelected()); + + // Selected is true if hovering the label when the button state changes. + EXPECT_CALL(selected_callback, Run); + generator().MoveMouseTo(label->GetBoundsInScreen().CenterPoint()); + ASSERT_TRUE(view().GetSelected()); +} + +TEST_F(PopupCellWithButtonViewTest, ButtonClickTriggersCallback) { + base::MockCallback<base::RepeatingClosure> callback; + views::ImageButton* button = CreateRowAndGetButton(callback.Get()); + + view().SetSelected(true); + // In test env we have to manually set the bounds when a view becomes visible. + button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); + EXPECT_CALL(callback, Run); + + generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); + generator().ClickLeftButton(); +} + +TEST_F(PopupCellWithButtonViewTest, KeyPressLeftRightEnter) { + base::MockCallback<base::RepeatingClosure> callback; + CreateRowAndGetButton(callback.Get()); + + view().SetSelected(true); + // Pressing left does nothing. + SimulateKeyPress(ui::VKEY_LEFT); + EXPECT_TRUE(view().GetSelected()); + + // Pressing right unselects and highlights the button. + SimulateKeyPress(ui::VKEY_RIGHT); + EXPECT_FALSE(view().GetSelected()); + + // Pressing enter when the button is focused triggers the callback. + EXPECT_CALL(callback, Run); + SimulateKeyPress(ui::VKEY_RETURN); +} + +TEST_F(PopupCellWithButtonViewTest, CursorVerticalNavigationAlwaysHidesButton) { + views::ImageButton* button = CreateRowAndGetButton(); + view().SetSelected(true); + // In test env we have to manually set the bounds when a view becomes visible. + button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); + generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); + ASSERT_TRUE(button->GetVisible()); + + // Pressing down to indicate vertical navigation. + SimulateKeyPress(ui::VKEY_DOWN); + // Set selected as false to simulate another row was selected. + view().SetSelected(false); + + ASSERT_FALSE(button->GetVisible()); +} + +} // namespace autofill
diff --git a/chrome/browser/ui/views/autofill/popup/popup_row_strategy.cc b/chrome/browser/ui/views/autofill/popup/popup_row_strategy.cc index 242d429..727f37657 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_row_strategy.cc +++ b/chrome/browser/ui/views/autofill/popup/popup_row_strategy.cc
@@ -9,9 +9,9 @@ #include "base/feature_list.h" #include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/ui/autofill/autofill_popup_controller.h" -#include "chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h" #include "chrome/browser/ui/views/autofill/popup/popup_base_view.h" #include "chrome/browser/ui/views/autofill/popup/popup_cell_utils.h" +#include "chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.h" #include "chrome/browser/ui/views/autofill/popup/popup_view_utils.h" #include "components/autofill/core/browser/metrics/autofill_metrics.h" #include "components/autofill/core/browser/ui/suggestion.h" @@ -19,11 +19,15 @@ #include "components/strings/grit/components_strings.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/views/controls/button/image_button.h" +#include "ui/views/controls/button/image_button_factory.h" +#include "ui/views/controls/highlight_path_generator.h" #include "ui/views/controls/image_view.h" #include "ui/views/controls/label.h" #include "ui/views/controls/menu/menu_config.h" #include "ui/views/controls/throbber.h" #include "ui/views/layout/box_layout_view.h" +#include "ui/views/vector_icons.h" namespace autofill { @@ -50,6 +54,9 @@ constexpr int kExpandableControlCellInsetPadding = 16; constexpr int kExpandableControlCellIconSize = 6; +// The size of a close or delete icon. +constexpr int kCloseIconSize = 16; + // ********************* AccessibilityDelegate implementations ***************** // ********************* ContentItemAccessibilityDelegate ********************* @@ -171,59 +178,16 @@ return nullptr; } - PopupItemId popup_up_item_id = - GetController()->GetSuggestionAt(GetLineNumber()).popup_item_id; - if (base::FeatureList::IsEnabled( - features::kAutofillShowAutocompleteDeleteButton) && - popup_up_item_id == PopupItemId::kAutocompleteEntry) { - return CreateAutocompleteRow(); + if (GetController()->GetSuggestionAt(GetLineNumber()).popup_item_id == + PopupItemId::kAutocompleteEntry && + base::FeatureList::IsEnabled( + features::kAutofillShowAutocompleteDeleteButton)) { + return CreateAutocompleteWithDeleteButtonCell(); } - const Suggestion& kSuggestion = - GetController()->GetSuggestionAt(GetLineNumber()); - std::unique_ptr<PopupCellView> view = - views::Builder<PopupCellView>( - std::make_unique<PopupCellView>( - GetController() - ->ShouldIgnoreMouseObservedOutsideItemBoundsCheck())) - .SetAccessibilityDelegate( - std::make_unique<ContentItemAccessibilityDelegate>( - GetController(), GetLineNumber())) - .Build(); - // Add the actual views. - int text_style = IsGroupFillingPopupItemId(popup_up_item_id) - ? views::style::TextStyle::STYLE_SECONDARY - : views::style::TextStyle::STYLE_PRIMARY; - std::unique_ptr<views::Label> main_text_label = - popup_cell_utils::CreateMainTextLabel(kSuggestion.main_text, text_style); - popup_cell_utils::FormatLabel(*main_text_label, kSuggestion.main_text, - GetController()); - popup_cell_utils::AddSuggestionContentToView( - kSuggestion, std::move(main_text_label), - popup_cell_utils::CreateMinorTextLabel(kSuggestion.minor_text), - /*description_label=*/nullptr, - popup_cell_utils::CreateAndTrackSubtextViews(*view, GetController(), - GetLineNumber()), - *view); - - // Prepare the callbacks to the controller. - popup_cell_utils::AddCallbacksToContentView(GetController(), GetLineNumber(), - *view); - - return view; -} - -std::unique_ptr<PopupCellView> -PopupSuggestionStrategy::CreateAutocompleteRow() { - if (!GetController()) { - return nullptr; - } - std::unique_ptr<PopupAutocompleteCellView> view = - std::make_unique<PopupAutocompleteCellView>(GetController(), - GetLineNumber()); - view->SetAccessibilityDelegate( - std::make_unique<ContentItemAccessibilityDelegate>(GetController(), - GetLineNumber())); + auto view = std::make_unique<PopupCellView>( + GetController()->ShouldIgnoreMouseObservedOutsideItemBoundsCheck()); + AddContentLabelsAndCallbacks(*view); return view; } @@ -250,6 +214,97 @@ return view; } +std::unique_ptr<PopupCellView> +PopupSuggestionStrategy::CreateAutocompleteWithDeleteButtonCell() { + auto view = std::make_unique<PopupCellWithButtonView>( + GetController()->ShouldIgnoreMouseObservedOutsideItemBoundsCheck()); + AddContentLabelsAndCallbacks(*view); + + // Add a delete button for Autocomplete entries. + views::BoxLayout* layout = + static_cast<views::BoxLayout*>(view->GetLayoutManager()); + for (views::View* child : view->children()) { + layout->SetFlexForView(child, 1); + } + + // The closure that actually attempts to delete an entry and record metrics + // for it. + base::RepeatingClosure deletion_action = base::BindRepeating( + [](base::WeakPtr<AutofillPopupController> controller, int line_number) { + if (controller && controller->RemoveSuggestion(line_number)) { + AutofillMetrics::OnAutocompleteSuggestionDeleted( + AutofillMetrics::AutocompleteSingleEntryRemovalMethod:: + kDeleteButtonClicked); + } + }, + GetController(), GetLineNumber()); + + // The closure that delays makes sure this is called only via direct entry + // from the task queue to avoid that the caller suicides. + base::RepeatingClosure button_action = base::BindRepeating( + [](base::RepeatingClosure delayed_task) { + base::SequencedTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, std::move(delayed_task)); + }, + std::move(deletion_action)); + + std::unique_ptr<views::ImageButton> button = + views::CreateVectorImageButtonWithNativeTheme( + std::move(button_action), views::kIcCloseIcon, kCloseIconSize); + + // We are making sure that the vertical distance from the delete button edges + // to the cell border is the same as the horizontal distance. + // 1. Take the current horizontal distance. + int horizontal_margin = layout->inside_border_insets().right(); + // 2. Take the height of the cell. + int cell_height = layout->minimum_cross_axis_size(); + // 3. The diameter needs to be the height - 2 * the desired margin. + int radius = (cell_height - horizontal_margin * 2) / 2; + InstallFixedSizeCircleHighlightPathGenerator(button.get(), radius); + button->SetPreferredSize(gfx::Size(radius * 2, radius * 2)); + button->SetTooltipText(l10n_util::GetStringUTF16( + IDS_AUTOFILL_DELETE_AUTOCOMPLETE_SUGGESTION_TOOLTIP)); + button->SetAccessibleRole(ax::mojom::Role::kMenuItem); + button->SetAccessibleName(l10n_util::GetStringFUTF16( + IDS_AUTOFILL_DELETE_AUTOCOMPLETE_SUGGESTION_A11Y_HINT, + popup_cell_utils::GetVoiceOverStringFromSuggestion( + GetController()->GetSuggestionAt(GetLineNumber())))); + button->SetVisible(false); + view->SetCellButton(std::move(button)); + static_cast<views::BoxLayout*>(view->GetLayoutManager()) + ->SetFlexForView(view->GetButtonContainer(), 0); + return view; +} + +void PopupSuggestionStrategy::AddContentLabelsAndCallbacks( + PopupCellView& view) { + view.SetAccessibilityDelegate( + std::make_unique<ContentItemAccessibilityDelegate>(GetController(), + GetLineNumber())); + + // Add the actual views. + const Suggestion& kSuggestion = + GetController()->GetSuggestionAt(GetLineNumber()); + const int kTextStyle = IsGroupFillingPopupItemId(kSuggestion.popup_item_id) + ? views::style::TextStyle::STYLE_SECONDARY + : views::style::TextStyle::STYLE_PRIMARY; + std::unique_ptr<views::Label> main_text_label = + popup_cell_utils::CreateMainTextLabel(kSuggestion.main_text, kTextStyle); + popup_cell_utils::FormatLabel(*main_text_label, kSuggestion.main_text, + GetController()); + popup_cell_utils::AddSuggestionContentToView( + kSuggestion, std::move(main_text_label), + popup_cell_utils::CreateMinorTextLabel(kSuggestion.minor_text), + /*description_label=*/nullptr, + popup_cell_utils::CreateAndTrackSubtextViews(view, GetController(), + GetLineNumber()), + view); + + // Prepare the callbacks to the controller. + popup_cell_utils::AddCallbacksToContentView(GetController(), GetLineNumber(), + view); +} + /************************ PopupPasswordSuggestionStrategy *******************/ PopupPasswordSuggestionStrategy::PopupPasswordSuggestionStrategy(
diff --git a/chrome/browser/ui/views/autofill/popup/popup_row_strategy.h b/chrome/browser/ui/views/autofill/popup/popup_row_strategy.h index 4663788..66c9f2df8 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_row_strategy.h +++ b/chrome/browser/ui/views/autofill/popup/popup_row_strategy.h
@@ -82,21 +82,17 @@ // PopupRowStrategy: std::unique_ptr<PopupCellView> CreateContent() override; std::unique_ptr<PopupCellView> CreateControl() override; - std::unique_ptr<PopupCellView> CreateAutocompleteRow(); private: // Returns the type of the popup that this row belongs to. PopupType GetPopupType() const { return popup_type_; } - // Applies additional formatting to the `label` based on the popup's type and - // the parameters in `text`. - void FormatLabel(views::Label& label, const Suggestion::Text& text) const; + // Creates the cell for an Autocomplete entry with a delete button. + std::unique_ptr<PopupCellView> CreateAutocompleteWithDeleteButtonCell(); - // Creates the subtext views for this suggestion. Since it registers the - // labels inside them for tracking with `content_view`, it assumes that the - // returned views are added to `content_view` afterwards. - std::vector<std::unique_ptr<views::View>> CreateAndTrackSubtextViews( - PopupCellView& content_view) const; + // Adds content and labels for a suggestion. A helper method used by all + // suggestion types. + void AddContentLabelsAndCallbacks(PopupCellView& view); const PopupType popup_type_; };
diff --git a/chrome/browser/ui/views/autofill/popup/popup_row_strategy_unittest.cc b/chrome/browser/ui/views/autofill/popup/popup_row_strategy_unittest.cc index 8cabc7ee..786d1a2 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_row_strategy_unittest.cc +++ b/chrome/browser/ui/views/autofill/popup/popup_row_strategy_unittest.cc
@@ -14,6 +14,7 @@ #include "base/time/time.h" #include "chrome/browser/autofill/mock_autofill_popup_controller.h" #include "chrome/browser/ui/views/autofill/popup/popup_cell_view.h" +#include "chrome/browser/ui/views/autofill/popup/popup_cell_with_button_view.h" #include "chrome/test/views/chrome_views_test_base.h" #include "components/autofill/core/browser/metrics/autofill_metrics.h" #include "components/autofill/core/browser/ui/popup_item_ids.h" @@ -25,6 +26,10 @@ #include "ui/accessibility/ax_enums.mojom.h" #include "ui/accessibility/ax_node_data.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/events/base_event_utils.h" +#include "ui/events/test/event_generator.h" +#include "ui/views/controls/button/image_button.h" +#include "ui/views/widget/widget_utils.h" using ::testing::IsNull; using ::testing::NotNull; @@ -235,4 +240,137 @@ PopupRowStrategyParametrizedTest, ::testing::ValuesIn(kTestcases)); +class PopupSuggestionStrategyTest : public ChromeViewsTestBase { + public: + void SetUp() override { + ChromeViewsTestBase::SetUp(); + widget_ = CreateTestWidget(); + generator_ = std::make_unique<ui::test::EventGenerator>( + GetRootWindow(widget_.get())); + } + + void TearDown() override { + view_ = nullptr; + generator_.reset(); + widget_.reset(); + ChromeViewsTestBase::TearDown(); + } + + void SimulateKeyPress(int windows_key_code) { + content::NativeWebKeyboardEvent event( + blink::WebKeyboardEvent::Type::kRawKeyDown, + blink::WebInputEvent::kNoModifiers, ui::EventTimeForNow()); + event.windows_key_code = windows_key_code; + view().HandleKeyPressEvent(event); + } + + void ShowSuggestion(Suggestion suggestion) { + // Show the button. + controller().set_suggestions({std::move(suggestion)}); + strategy_ = std::make_unique<PopupSuggestionStrategy>( + controller().GetWeakPtr(), /*line_number=*/0); + view_ = widget_->SetContentsView(strategy_->CreateContent()); + widget_->Show(); + } + + void ShowAutocompleteSuggestion() { + ShowSuggestion(Suggestion(u"Some entry", PopupItemId::kAutocompleteEntry)); + } + + protected: + MockAutofillPopupController& controller() { return controller_; } + ui::test::EventGenerator& generator() { return *generator_; } + PopupCellView& view() { return *view_; } + PopupCellWithButtonView& cell_with_button_view() { + return static_cast<PopupCellWithButtonView&>(*view_); + } + views::Widget& widget() { return *widget_; } + + private: + std::unique_ptr<views::Widget> widget_; + std::unique_ptr<ui::test::EventGenerator> generator_; + raw_ptr<PopupCellView> view_ = nullptr; + MockAutofillPopupController controller_; + std::unique_ptr<PopupSuggestionStrategy> strategy_; + // All current Autocomplete tests assume that the deletion button feature is + // enabled. + base::test::ScopedFeatureList feature_list{ + features::kAutofillShowAutocompleteDeleteButton}; +}; + +TEST_F(PopupSuggestionStrategyTest, AutocompleteDeleteRecordsMetricOnDeletion) { + ShowAutocompleteSuggestion(); + views::ImageButton* button = cell_with_button_view().GetCellButtonForTest(); + base::HistogramTester histogram_tester; + view().SetSelected(true); + // In test env we have to manually set the bounds when a view becomes visible. + button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); + + EXPECT_CALL(controller(), RemoveSuggestion(0)).WillOnce(Return(true)); + + generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); + generator().ClickLeftButton(); + task_environment()->RunUntilIdle(); + + histogram_tester.ExpectUniqueSample( + "Autofill.Autocomplete.SingleEntryRemovalMethod", + AutofillMetrics::AutocompleteSingleEntryRemovalMethod:: + kDeleteButtonClicked, + 1); + histogram_tester.ExpectUniqueSample( + "Autocomplete.Events", + AutofillMetrics::AutocompleteEvent::AUTOCOMPLETE_SUGGESTION_DELETED, 1); +} + +TEST_F(PopupSuggestionStrategyTest, + AutocompleteDeleteRecordsNoMetricOnFailedDeletion) { + ShowAutocompleteSuggestion(); + views::ImageButton* button = cell_with_button_view().GetCellButtonForTest(); + base::HistogramTester histogram_tester; + view().SetSelected(true); + // In test env we have to manually set the bounds when a view becomes visible. + button->parent()->SetBoundsRect(gfx::Rect(0, 0, 30, 30)); + + EXPECT_CALL(controller(), RemoveSuggestion(0)).WillOnce(Return(false)); + + generator().MoveMouseTo(button->GetBoundsInScreen().CenterPoint()); + generator().ClickLeftButton(); + task_environment()->RunUntilIdle(); + + histogram_tester.ExpectUniqueSample( + "Autofill.Autocomplete.SingleEntryRemovalMethod", + AutofillMetrics::AutocompleteSingleEntryRemovalMethod:: + kDeleteButtonClicked, + 0); + histogram_tester.ExpectUniqueSample( + "Autocomplete.Events", + AutofillMetrics::AutocompleteEvent::AUTOCOMPLETE_SUGGESTION_DELETED, 0); +} + +TEST_F(PopupSuggestionStrategyTest, AutocompleteDeleteButtonHasTooltip) { + ShowAutocompleteSuggestion(); + views::ImageButton* button = cell_with_button_view().GetCellButtonForTest(); + EXPECT_EQ(button->GetTooltipText(), + l10n_util::GetStringUTF16( + IDS_AUTOFILL_DELETE_AUTOCOMPLETE_SUGGESTION_TOOLTIP)); +} + +TEST_F(PopupSuggestionStrategyTest, AutocompleteDeleteButtonSetsAccessibility) { + ShowAutocompleteSuggestion(); + views::ImageButton* button = cell_with_button_view().GetCellButtonForTest(); + // We only set the accessible name once the user navigates to the button. + // TODO(crbug.com/1417187): Delete this once we find out why calling + // NotifyAccessibilityEvent in the content is including the button's + // accessible name attribute value. + SimulateKeyPress(ui::VKEY_RIGHT); + ui::AXNodeData node_data; + button->GetAccessibleNodeData(&node_data); + + EXPECT_EQ(node_data.role, ax::mojom::Role::kMenuItem); + EXPECT_EQ( + l10n_util::GetStringFUTF16( + IDS_AUTOFILL_DELETE_AUTOCOMPLETE_SUGGESTION_A11Y_HINT, u"Some entry"), + node_data.GetString16Attribute(ax::mojom::StringAttribute::kName)); +} + } // namespace autofill
diff --git a/chrome/browser/ui/views/desktop_capture/share_this_tab_source_view.cc b/chrome/browser/ui/views/desktop_capture/share_this_tab_source_view.cc index 05812d3..90489ae 100644 --- a/chrome/browser/ui/views/desktop_capture/share_this_tab_source_view.cc +++ b/chrome/browser/ui/views/desktop_capture/share_this_tab_source_view.cc
@@ -13,6 +13,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_widget_host_view.h" #include "media/base/video_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/gfx/canvas.h" #include "ui/gfx/geometry/skia_conversions.h" #include "ui/gfx/image/image_skia_operations.h" @@ -185,3 +186,6 @@ weak_factory_.GetWeakPtr()), kUpdatePeriodMs); } + +BEGIN_METADATA(ShareThisTabSourceView, views::View) +END_METADATA
diff --git a/chrome/browser/ui/views/desktop_capture/share_this_tab_source_view.h b/chrome/browser/ui/views/desktop_capture/share_this_tab_source_view.h index d580e33..aeb179b 100644 --- a/chrome/browser/ui/views/desktop_capture/share_this_tab_source_view.h +++ b/chrome/browser/ui/views/desktop_capture/share_this_tab_source_view.h
@@ -8,6 +8,7 @@ #include "base/memory/raw_ptr.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_media_capture_id.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/controls/image_view.h" #include "ui/views/controls/label.h" #include "ui/views/controls/throbber.h" @@ -17,6 +18,7 @@ // throbber while the dialog is not yet activated. class ShareThisTabSourceView : public views::View { public: + METADATA_HEADER(ShareThisTabSourceView); explicit ShareThisTabSourceView( base::WeakPtr<content::WebContents> web_contents); ShareThisTabSourceView(const ShareThisTabSourceView&) = delete;
diff --git a/chrome/browser/ui/views/drag_and_drop_interactive_uitest.cc b/chrome/browser/ui/views/drag_and_drop_interactive_uitest.cc index f72aca9..ced630b3 100644 --- a/chrome/browser/ui/views/drag_and_drop_interactive_uitest.cc +++ b/chrome/browser/ui/views/drag_and_drop_interactive_uitest.cc
@@ -1011,6 +1011,12 @@ EXPECT_THAT(dragover_event, expected_dom_event_data.Matches()); } + // Allow the dragenter and dragover events to update the current drag + // operations on the WebContentsView before proceeding to the drop, since + // the latter needs that information to determine whether to force a + // default action in the renderer process. + base::RunLoop().RunUntilIdle(); + // Drop into the right frame. { DOMDragEventWaiter drop_waiter("drop", GetRightFrame());
diff --git a/chrome/browser/ui/views/editor_menu/editor_menu_browsertest.cc b/chrome/browser/ui/views/editor_menu/editor_menu_browsertest.cc index b96faec..2afe6ae 100644 --- a/chrome/browser/ui/views/editor_menu/editor_menu_browsertest.cc +++ b/chrome/browser/ui/views/editor_menu/editor_menu_browsertest.cc
@@ -4,9 +4,6 @@ #include "chrome/browser/ui/views/editor_menu/editor_menu_controller_impl.h" -#include <string_view> - -#include "base/check.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/quick_answers/read_write_cards_manager_impl.h" @@ -16,32 +13,16 @@ #include "chromeos/constants/chromeos_features.h" #include "chromeos/crosapi/mojom/editor_panel.mojom.h" #include "content/public/test/browser_test.h" -#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/display/screen.h" #include "ui/events/event_constants.h" -#include "ui/views/controls/label.h" #include "ui/views/view.h" #include "ui/views/view_utils.h" namespace { -using ::testing::ElementsAre; using ::testing::IsNull; using ::testing::Not; -using ::testing::Property; -using ::testing::SizeIs; - -crosapi::mojom::EditorPanelPresetTextQueryPtr CreateTestPresetTextQuery( - const std::string& text_query_id, - const std::string& name, - crosapi::mojom::EditorPanelPresetQueryCategory category) { - auto query = crosapi::mojom::EditorPanelPresetTextQuery::New(); - query->text_query_id = text_query_id; - query->name = name; - query->category = category; - return query; -} crosapi::mojom::EditorPanelContextPtr CreateTestEditorPanelContext( crosapi::mojom::EditorPanelMode editor_panel_mode) { @@ -51,35 +32,11 @@ return context; } -crosapi::mojom::EditorPanelContextPtr -CreateTestEditorPanelContextWithQueries() { - auto context = - CreateTestEditorPanelContext(crosapi::mojom::EditorPanelMode::kRewrite); - context->preset_text_queries.push_back(CreateTestPresetTextQuery( - "ID1", "Rephrase", - crosapi::mojom::EditorPanelPresetQueryCategory::kRephrase)); - context->preset_text_queries.push_back(CreateTestPresetTextQuery( - "ID2", "Emojify", - crosapi::mojom::EditorPanelPresetQueryCategory::kEmojify)); - context->preset_text_queries.push_back(CreateTestPresetTextQuery( - "ID3", "Shorten", - crosapi::mojom::EditorPanelPresetQueryCategory::kShorten)); - context->preset_text_queries.push_back(CreateTestPresetTextQuery( - "ID4", "Elaborate", - crosapi::mojom::EditorPanelPresetQueryCategory::kElaborate)); - context->preset_text_queries.push_back(CreateTestPresetTextQuery( - "ID5", "Formalize", - crosapi::mojom::EditorPanelPresetQueryCategory::kFormalize)); - return context; -} - -auto ChildrenSizeIs(int n) { - return Property(&views::View::children, SizeIs(n)); -} - constexpr int kMarginDip = 8; -constexpr gfx::Rect kAnchorBounds(500, 300, 80, 160); -constexpr gfx::Rect kAnchorBoundsTop(500, 10, 80, 160); +constexpr gfx::Rect kAnchorBounds = + gfx::Rect(gfx::Point(500, 250), gfx::Size(80, 160)); +constexpr gfx::Rect kAnchorBoundsTop = + gfx::Rect(gfx::Point(500, 0), gfx::Size(80, 160)); } // namespace @@ -155,38 +112,6 @@ GetEditorMenuView()->GetWidget()->Close(); } -IN_PROC_BROWSER_TEST_F(EditorMenuBrowserFeatureEnabledTest, - ShowsRewriteUIWithChips) { - ASSERT_THAT(GetControllerImpl(), Not(IsNull())); - - GetControllerImpl()->OnGetEditorPanelContextResultForTesting( - gfx::Rect(200, 300, 400, 200), CreateTestEditorPanelContextWithQueries()); - - // Editor menu should be showing with two rows of chips. - ASSERT_TRUE(views::IsViewClass<EditorMenuView>(GetEditorMenuView())); - const auto* chips_container = - views::AsViewClass<EditorMenuView>(GetEditorMenuView()) - ->chips_container_for_testing(); - EXPECT_THAT(chips_container->children(), - ElementsAre(ChildrenSizeIs(3), ChildrenSizeIs(2))); -} - -IN_PROC_BROWSER_TEST_F(EditorMenuBrowserFeatureEnabledTest, - ShowsWideRewriteUIWithChips) { - ASSERT_THAT(GetControllerImpl(), Not(IsNull())); - - // Show editor menu with a wide anchor. - GetControllerImpl()->OnGetEditorPanelContextResultForTesting( - gfx::Rect(200, 300, 600, 200), CreateTestEditorPanelContextWithQueries()); - - // Editor menu should be wide enough to fit all chips in one row. - ASSERT_TRUE(views::IsViewClass<EditorMenuView>(GetEditorMenuView())); - const auto* chips_container = - views::AsViewClass<EditorMenuView>(GetEditorMenuView()) - ->chips_container_for_testing(); - EXPECT_THAT(chips_container->children(), ElementsAre(ChildrenSizeIs(5))); -} - IN_PROC_BROWSER_TEST_F(EditorMenuBrowserFeatureEnabledTest, CanShowPromoCard) { ASSERT_THAT(GetControllerImpl(), Not(IsNull()));
diff --git a/chrome/browser/ui/views/editor_menu/editor_menu_view.cc b/chrome/browser/ui/views/editor_menu/editor_menu_view.cc index b2e9e7e5..96543577 100644 --- a/chrome/browser/ui/views/editor_menu/editor_menu_view.cc +++ b/chrome/browser/ui/views/editor_menu/editor_menu_view.cc
@@ -6,7 +6,6 @@ #include <array> #include <string_view> -#include <utility> #include <vector> #include "base/functional/bind.h" @@ -45,7 +44,6 @@ #include "ui/views/layout/layout_manager.h" #include "ui/views/style/typography.h" #include "ui/views/view.h" -#include "ui/views/view_utils.h" #include "ui/views/widget/widget.h" namespace chromeos::editor_menu { @@ -55,6 +53,9 @@ constexpr char kWidgetName[] = "EditorMenuViewWidget"; constexpr char16_t kContainerTitle[] = u"Editor Menu"; +// TODO(b/302043981): Dynamically size the editor menu view according to the +// anchor view bounds, instead of always using this min width. +constexpr int kContainerMinWidthDip = 320; constexpr int kRadiusDip = 4; constexpr gfx::Insets kTitleContainerInsets = gfx::Insets::TLBR(10, 16, 10, 10); @@ -73,7 +74,7 @@ constexpr int kChipsContainerVerticalSpacingDip = 16; constexpr gfx::Insets kChipsMargin = gfx::Insets::TLBR(0, 8, kChipsContainerVerticalSpacingDip, 0); -constexpr gfx::Insets kChipsContainerInsets = gfx::Insets::VH(0, 16); +constexpr gfx::Insets kChipsContainerInsets = gfx::Insets::TLBR(0, 8, 0, 8); constexpr gfx::Insets kTextfieldContainerInsets = gfx::Insets::TLBR(0, 16, 10, 16); @@ -206,7 +207,8 @@ void EditorMenuView::UpdateBounds(const gfx::Rect& anchor_view_bounds) { const int editor_menu_width = GetEditorMenuWidth(anchor_view_bounds.width()); - UpdateChipsContainer(editor_menu_width); + // TODO(b/302241013): Adjust chips container layout according to the updated + // editor menu width. GetWidget()->SetBounds(GetEditorMenuBounds( anchor_view_bounds, @@ -290,18 +292,42 @@ const PresetTextQueries& preset_text_queries) { chips_container_ = AddChildView(std::make_unique<views::FlexLayoutView>()); chips_container_->SetOrientation(views::LayoutOrientation::kVertical); - chips_container_->SetProperty(views::kMarginsKey, kChipsContainerInsets); - // Put all the chips in a single row while we are initially creating the - // editor menu. This layout will be adjusted once the editor menu bounds are - // set. - auto* row = AddChipsRow(); + // Add a new row if the chip cannot fit the rest space in the current row. + // A simple calculation of the running width, considering the margins and + // paddings. + int running_width = 0; + views::View* row = nullptr; for (const auto& preset_text_query : preset_text_queries) { - row->AddChildView(std::make_unique<EditorMenuChipView>( + auto chip = std::make_unique<EditorMenuChipView>( base::BindRepeating(&EditorMenuView::OnChipButtonPressed, weak_factory_.GetWeakPtr(), preset_text_query.text_query_id), - preset_text_query)); + preset_text_query); + + int chip_width = chip->GetPreferredSize().width(); + if (running_width == 0) { + // Add the container's left insets. + running_width += kChipsContainerInsets.left(); + running_width += chip_width; + } else { + // Add the chip's left margin. + running_width += kChipsMargin.left(); + running_width += chip_width; + } + // Add the containers's right insets when decide if wrap the row. + const bool should_wrap_row = + running_width + kChipsContainerInsets.right() > kContainerMinWidthDip; + if (row == nullptr || should_wrap_row) { + running_width = should_wrap_row ? 0 : running_width; + row = chips_container_->AddChildView(std::make_unique<views::View>()); + auto* layout = + row->SetLayoutManager(std::make_unique<views::FlexLayout>()); + layout->SetOrientation(views::LayoutOrientation::kHorizontal) + .SetInteriorMargin(kChipsContainerInsets) + .SetDefault(views::kMarginsKey, kChipsMargin); + } + chips_.emplace_back(row->AddChildView(std::move(chip))); } } @@ -311,51 +337,6 @@ textfield_->SetProperty(views::kMarginsKey, kTextfieldContainerInsets); } -void EditorMenuView::UpdateChipsContainer(int editor_menu_width) { - // Remove chips from their current rows. - std::vector<std::unique_ptr<EditorMenuChipView>> chips; - while (!chips_container_->children().empty()) { - auto* row = chips_container_->children()[0]; - while (!row->children().empty()) { - chips.push_back(row->RemoveChildViewT( - views::AsViewClass<EditorMenuChipView>(row->children()[0]))); - } - chips_container_->RemoveChildView(row); - } - - // Re-add the chips into new rows in the chips container, adjusting the layout - // according to the updated editor menu width. We keep track of the running - // width of the current chip row and start a new row of chips whenever the - // chip being added can't fit into the current row. - const int chip_container_width = - editor_menu_width - kChipsContainerInsets.width(); - int running_width = 0; - views::View* row = nullptr; - for (auto& chip : chips) { - const int chip_width = chip->GetPreferredSize().width(); - if (row != nullptr && running_width + chip_width + kChipsMargin.left() <= - chip_container_width) { - // Add the chip to the current row if it can fit (including space for - // padding between chips). - running_width += chip_width + kChipsMargin.left(); - } else { - // Otherwise, create a new row for the chip. - row = AddChipsRow(); - running_width = chip_width; - } - row->AddChildView(std::move(chip)); - } -} - -views::View* EditorMenuView::AddChipsRow() { - auto* row = - chips_container_->AddChildView(std::make_unique<views::FlexLayoutView>()); - row->SetCollapseMargins(true); - row->SetIgnoreDefaultMainAxisMargins(true); - row->SetDefault(views::kMarginsKey, kChipsMargin); - return row; -} - void EditorMenuView::OnSettingsButtonPressed() { CHECK(delegate_); delegate_->OnSettingsButtonPressed();
diff --git a/chrome/browser/ui/views/editor_menu/editor_menu_view.h b/chrome/browser/ui/views/editor_menu/editor_menu_view.h index 901e797..9492ac7 100644 --- a/chrome/browser/ui/views/editor_menu/editor_menu_view.h +++ b/chrome/browser/ui/views/editor_menu/editor_menu_view.h
@@ -19,11 +19,11 @@ namespace views { class ImageButton; class FlexLayoutView; -class View; } // namespace views namespace chromeos::editor_menu { +class EditorMenuChipView; class EditorMenuTextfieldView; class EditorMenuViewDelegate; class PreTargetHandler; @@ -60,8 +60,8 @@ void UpdateBounds(const gfx::Rect& anchor_view_bounds); - const views::View* chips_container_for_testing() const { - return chips_container_; + const std::vector<raw_ptr<EditorMenuChipView>>& chips_for_testing() const { + return chips_; } private: @@ -70,10 +70,6 @@ void AddChipsContainer(const PresetTextQueries& preset_text_queries); void AddTextfield(); - void UpdateChipsContainer(int editor_menu_width); - - views::View* AddChipsRow(); - void OnSettingsButtonPressed(); void OnChipButtonPressed(const std::string& text_query_id); @@ -90,6 +86,7 @@ // Containing chips. raw_ptr<views::FlexLayoutView> chips_container_ = nullptr; + std::vector<raw_ptr<EditorMenuChipView>> chips_; raw_ptr<EditorMenuTextfieldView> textfield_ = nullptr;
diff --git a/chrome/browser/ui/views/editor_menu/editor_menu_view_unittest.cc b/chrome/browser/ui/views/editor_menu/editor_menu_view_unittest.cc index 43a032f..3f8ef8a 100644 --- a/chrome/browser/ui/views/editor_menu/editor_menu_view_unittest.cc +++ b/chrome/browser/ui/views/editor_menu/editor_menu_view_unittest.cc
@@ -20,8 +20,6 @@ namespace { -using ::testing::SizeIs; - class MockEditorMenuViewDelegate : public EditorMenuViewDelegate { public: MockEditorMenuViewDelegate() = default; @@ -40,30 +38,21 @@ void OnEditorMenuVisibilityChanged(bool visible) override {} }; -std::u16string_view GetChipLabel(const views::View* chip) { - CHECK(views::IsViewClass<EditorMenuChipView>(chip)); - return views::AsViewClass<EditorMenuChipView>(chip)->GetText(); -} - using EditorMenuViewTest = views::ViewsTestBase; TEST_F(EditorMenuViewTest, CreatesChips) { MockEditorMenuViewDelegate delegate; const PresetTextQueries queries = { - PresetTextQuery("ID1", u"Shorten", PresetQueryCategory::kShorten), - PresetTextQuery("ID2", u"Elaborate", PresetQueryCategory::kElaborate)}; + PresetTextQuery("Query ID 1", u"Label 1", PresetQueryCategory::kUnknown), + PresetTextQuery("Query ID 2", u"Label 2", PresetQueryCategory::kUnknown)}; EditorMenuView editor_menu_view = - EditorMenuView(queries, gfx::Rect(200, 300, 400, 200), &delegate); + EditorMenuView(queries, gfx::Rect(200, 300, 80, 200), &delegate); - // Chips should be in a single row. - const auto* chips_container = editor_menu_view.chips_container_for_testing(); - ASSERT_THAT(chips_container->children(), SizeIs(1)); - const auto* chip_row = chips_container->children()[0]; - ASSERT_THAT(chip_row->children(), SizeIs(queries.size())); - // Chips should have correct text labels. - EXPECT_EQ(GetChipLabel(chip_row->children()[0]), queries[0].name); - EXPECT_EQ(GetChipLabel(chip_row->children()[1]), queries[1].name); + const auto& editor_menu_chips = editor_menu_view.chips_for_testing(); + ASSERT_THAT(editor_menu_chips, testing::SizeIs(queries.size())); + EXPECT_EQ(editor_menu_chips[0]->GetText(), queries[0].name); + EXPECT_EQ(editor_menu_chips[1]->GetText(), queries[1].name); } } // namespace
diff --git a/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc b/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc index 806911b..1905b0b 100644 --- a/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc +++ b/chrome/browser/ui/views/frame/webui_tab_strip_container_view.cc
@@ -951,3 +951,6 @@ tab_strip_ui->Deinitialize(); } } + +BEGIN_METADATA(WebUITabStripContainerView, views::AccessiblePaneView) +END_METADATA
diff --git a/chrome/browser/ui/views/frame/webui_tab_strip_container_view.h b/chrome/browser/ui/views/frame/webui_tab_strip_container_view.h index 745f61d..52d003b 100644 --- a/chrome/browser/ui/views/frame/webui_tab_strip_container_view.h +++ b/chrome/browser/ui/views/frame/webui_tab_strip_container_view.h
@@ -19,6 +19,7 @@ #include "chrome/common/buildflags.h" #include "components/tab_groups/tab_group_id.h" #include "third_party/abseil-cpp/absl/types/optional.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/events/event_handler.h" #include "ui/gfx/animation/animation_delegate.h" #include "ui/gfx/animation/slide_animation.h" @@ -54,6 +55,7 @@ public views::WidgetObserver, public content::WebContentsObserver { public: + METADATA_HEADER(WebUITabStripContainerView); WebUITabStripContainerView(BrowserView* browser_view, views::View* tab_contents_container, views::View* top_container,
diff --git a/chrome/browser/ui/views/global_media_controls/media_item_ui_cast_footer_view.cc b/chrome/browser/ui/views/global_media_controls/media_item_ui_cast_footer_view.cc index 3cd5228..a3fe727 100644 --- a/chrome/browser/ui/views/global_media_controls/media_item_ui_cast_footer_view.cc +++ b/chrome/browser/ui/views/global_media_controls/media_item_ui_cast_footer_view.cc
@@ -7,6 +7,7 @@ #include "components/media_message_center/vector_icons/vector_icons.h" #include "components/strings/grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/views/background.h" #include "ui/views/layout/box_layout.h" @@ -66,3 +67,7 @@ stop_casting_button_->SetEnabled(false); stop_casting_callback_.Run(); } + +BEGIN_METADATA(MediaItemUICastFooterView, + global_media_controls::MediaItemUIFooter) +END_METADATA
diff --git a/chrome/browser/ui/views/global_media_controls/media_item_ui_cast_footer_view.h b/chrome/browser/ui/views/global_media_controls/media_item_ui_cast_footer_view.h index 4d0a859..c7836ca 100644 --- a/chrome/browser/ui/views/global_media_controls/media_item_ui_cast_footer_view.h +++ b/chrome/browser/ui/views/global_media_controls/media_item_ui_cast_footer_view.h
@@ -7,6 +7,7 @@ #include "components/global_media_controls/public/views/media_item_ui_footer.h" #include "components/media_message_center/notification_theme.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/controls/button/label_button.h" // A footer view attached to MediaItemUIView containing a stop casting button @@ -15,6 +16,7 @@ class MediaItemUICastFooterView : public global_media_controls::MediaItemUIFooter { public: + METADATA_HEADER(MediaItemUICastFooterView); explicit MediaItemUICastFooterView( base::RepeatingClosure stop_casting_callback, media_message_center::MediaColorTheme media_color_theme);
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view.cc b/chrome/browser/ui/views/media_router/cast_dialog_view.cc index f01fe4e2..42d8bc3 100644 --- a/chrome/browser/ui/views/media_router/cast_dialog_view.cc +++ b/chrome/browser/ui/views/media_router/cast_dialog_view.cc
@@ -292,7 +292,8 @@ l10n_util::GetStringUTF16( IDS_MEDIA_ROUTER_ALTERNATIVE_SOURCES_BUTTON))); sources_button_->SetEnabled(false); - sources_button_->SetStyle(ui::ButtonStyle::kTonal); + // TODO(crbug.com/1467969): Set the button style to `ui::ButtonStyle::kTonal` + // once crbug.com/1486965 is fixed. } void CastDialogView::ShowSourcesMenu() {
diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view_dialog_browsertest.cc b/chrome/browser/ui/views/page_info/page_info_bubble_view_dialog_browsertest.cc index be6f6ec5..8a53d28 100644 --- a/chrome/browser/ui/views/page_info/page_info_bubble_view_dialog_browsertest.cc +++ b/chrome/browser/ui/views/page_info/page_info_bubble_view_dialog_browsertest.cc
@@ -21,7 +21,6 @@ #include "chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h" #include "chrome/browser/ui/web_applications/test/web_app_browsertest_util.h" #include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_info.h" -#include "chrome/browser/web_applications/web_app_id.h" #include "chrome/common/chrome_features.h" #include "chrome/common/url_constants.h" #include "chrome/test/base/ui_test_utils.h" @@ -39,6 +38,7 @@ #include "components/safe_browsing/content/browser/password_protection/password_protection_test_util.h" #include "components/safe_browsing/core/browser/password_protection/metrics_util.h" #include "components/safe_browsing/core/common/features.h" +#include "components/webapps/common/web_app_id.h" #include "content/public/common/content_features.h" #include "content/public/test/browser_test.h" #include "net/dns/mock_host_resolver.h" @@ -920,7 +920,7 @@ base::test::ScopedFeatureList feature_list_; net::EmbeddedTestServer https_server_{net::EmbeddedTestServer::TYPE_HTTPS}; GURL start_url_; - web_app::AppId app_id_; + webapps::AppId app_id_; #if BUILDFLAG(IS_WIN) // This stops web app installation from creating a shortcut in the real
diff --git a/chrome/browser/ui/views/page_info/page_info_security_content_view.cc b/chrome/browser/ui/views/page_info/page_info_security_content_view.cc index 40ffaff..1ac163a3 100644 --- a/chrome/browser/ui/views/page_info/page_info_security_content_view.cc +++ b/chrome/browser/ui/views/page_info/page_info_security_content_view.cc
@@ -11,6 +11,7 @@ #include "components/safe_browsing/core/common/features.h" #include "components/strings/grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/ui_base_features.h" #include "ui/views/layout/box_layout.h" @@ -174,3 +175,6 @@ presenter_->OpenConnectionHelpCenterPage(event); } } + +BEGIN_METADATA(PageInfoSecurityContentView, views::View) +END_METADATA
diff --git a/chrome/browser/ui/views/page_info/page_info_security_content_view.h b/chrome/browser/ui/views/page_info/page_info_security_content_view.h index a30a7b2..97ceb32 100644 --- a/chrome/browser/ui/views/page_info/page_info_security_content_view.h +++ b/chrome/browser/ui/views/page_info/page_info_security_content_view.h
@@ -10,6 +10,7 @@ #include "chrome/browser/ui/views/controls/rich_hover_button.h" #include "chrome/browser/ui/views/page_info/security_information_view.h" #include "components/page_info/page_info_ui.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/view.h" // The view that contains `SecurityInformationView` and a certificate button. @@ -17,6 +18,7 @@ // the main page if connection isn't secure. class PageInfoSecurityContentView : public views::View, public PageInfoUI { public: + METADATA_HEADER(PageInfoSecurityContentView); // `is_standalone_page` is true, when this view is used as a content view of // a subpage and this view becomes current UI for `PageInfo` by calling // `InitializeUiState()`. Otherwise, it is part of another page (part of the
diff --git a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc index 478d1c70..202e4a2 100644 --- a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc +++ b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
@@ -199,6 +199,7 @@ // |PopulateSheetHeaderView|. class PaymentHandlerCloseButton : public views::ImageButton { public: + METADATA_HEADER(PaymentHandlerCloseButton); explicit PaymentHandlerCloseButton( views::Button::PressedCallback pressed_callback, const SkColor enabled_color, @@ -219,6 +220,9 @@ } }; +BEGIN_METADATA(PaymentHandlerCloseButton, views::ImageButton) +END_METADATA + PaymentHandlerWebFlowViewController::PaymentHandlerWebFlowViewController( base::WeakPtr<PaymentRequestSpec> spec, base::WeakPtr<PaymentRequestState> state,
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc index 4f6b969..0aafaa8 100644 --- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc +++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc
@@ -16,6 +16,7 @@ #include "components/send_tab_to_self/send_tab_to_self_entry.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/ui_base_features.h" #include "ui/color/color_id.h" @@ -83,4 +84,7 @@ ->LogNotificationDismissed(); } +BEGIN_METADATA(SendTabToSelfToolbarIconView, views::ImageView) +END_METADATA + } // namespace send_tab_to_self
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.h b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.h index ecb94fe..990e83b5 100644 --- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.h +++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.h
@@ -23,6 +23,7 @@ : public views::ImageView, public SendTabToSelfToolbarIconControllerDelegate { public: + METADATA_HEADER(SendTabToSelfToolbarIconView); explicit SendTabToSelfToolbarIconView(BrowserView* browser_view); SendTabToSelfToolbarIconView(const SendTabToSelfToolbarIconView&) = delete; SendTabToSelfToolbarIconView& operator=(const SendTabToSelfToolbarIconView&) =
diff --git a/chrome/browser/ui/views/side_panel/bookmarks/bookmarks_side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/bookmarks/bookmarks_side_panel_coordinator.cc index 380baeac..576e1ac 100644 --- a/chrome/browser/ui/views/side_panel/bookmarks/bookmarks_side_panel_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/bookmarks/bookmarks_side_panel_coordinator.cc
@@ -56,4 +56,4 @@ return bookmarks_web_view; } -WEB_CONTENTS_USER_DATA_KEY_IMPL(BookmarksSidePanelCoordinator); +BROWSER_USER_DATA_KEY_IMPL(BookmarksSidePanelCoordinator);
diff --git a/chrome/browser/ui/views/side_panel/feed/feed_side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/feed/feed_side_panel_coordinator.cc index e5cd59a..b688b1b 100644 --- a/chrome/browser/ui/views/side_panel/feed/feed_side_panel_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/feed/feed_side_panel_coordinator.cc
@@ -50,6 +50,6 @@ return view; } -WEB_CONTENTS_USER_DATA_KEY_IMPL(FeedSidePanelCoordinator); +BROWSER_USER_DATA_KEY_IMPL(FeedSidePanelCoordinator); } // namespace feed
diff --git a/chrome/browser/ui/views/side_panel/lens/lens_side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/lens/lens_side_panel_coordinator.cc index 19a64ff..a2216c7 100644 --- a/chrome/browser/ui/views/side_panel/lens/lens_side_panel_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/lens/lens_side_panel_coordinator.cc
@@ -254,4 +254,4 @@ } } -WEB_CONTENTS_USER_DATA_KEY_IMPL(LensSidePanelCoordinator); +BROWSER_USER_DATA_KEY_IMPL(LensSidePanelCoordinator);
diff --git a/chrome/browser/ui/views/side_panel/performance_controls/performance_side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/performance_controls/performance_side_panel_coordinator.cc index 9535c6b..0efffed6 100644 --- a/chrome/browser/ui/views/side_panel/performance_controls/performance_side_panel_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/performance_controls/performance_side_panel_coordinator.cc
@@ -64,4 +64,4 @@ return view; } -WEB_CONTENTS_USER_DATA_KEY_IMPL(PerformanceSidePanelCoordinator); +BROWSER_USER_DATA_KEY_IMPL(PerformanceSidePanelCoordinator);
diff --git a/chrome/browser/ui/views/side_panel/read_anything/read_anything_coordinator.cc b/chrome/browser/ui/views/side_panel/read_anything/read_anything_coordinator.cc index 10ca4178..d0e4b798 100644 --- a/chrome/browser/ui/views/side_panel/read_anything/read_anything_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/read_anything/read_anything_coordinator.cc
@@ -354,4 +354,4 @@ } } -WEB_CONTENTS_USER_DATA_KEY_IMPL(ReadAnythingCoordinator); +BROWSER_USER_DATA_KEY_IMPL(ReadAnythingCoordinator);
diff --git a/chrome/browser/ui/views/side_panel/reading_list/reading_list_side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/reading_list/reading_list_side_panel_coordinator.cc index 784eb9d0..0703489 100644 --- a/chrome/browser/ui/views/side_panel/reading_list/reading_list_side_panel_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/reading_list/reading_list_side_panel_coordinator.cc
@@ -41,4 +41,4 @@ base::RepeatingClosure()); } -WEB_CONTENTS_USER_DATA_KEY_IMPL(ReadingListSidePanelCoordinator); +BROWSER_USER_DATA_KEY_IMPL(ReadingListSidePanelCoordinator);
diff --git a/chrome/browser/ui/views/side_panel/search_companion/search_companion_side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/search_companion/search_companion_side_panel_coordinator.cc index ac5e34e..b217342 100644 --- a/chrome/browser/ui/views/side_panel/search_companion/search_companion_side_panel_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/search_companion/search_companion_side_panel_coordinator.cc
@@ -329,4 +329,4 @@ companion::UpdateCompanionDefaultPinnedToToolbarState(pref_service_); } -WEB_CONTENTS_USER_DATA_KEY_IMPL(SearchCompanionSidePanelCoordinator); +BROWSER_USER_DATA_KEY_IMPL(SearchCompanionSidePanelCoordinator);
diff --git a/chrome/browser/ui/views/side_panel/side_panel_rounded_corner.cc b/chrome/browser/ui/views/side_panel/side_panel_rounded_corner.cc index 1028e0e..b6419f6 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_rounded_corner.cc +++ b/chrome/browser/ui/views/side_panel/side_panel_rounded_corner.cc
@@ -9,6 +9,7 @@ #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/top_container_background.h" #include "chrome/browser/ui/views/side_panel/side_panel.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/ui_base_features.h" #include "ui/gfx/canvas.h" @@ -83,3 +84,6 @@ SchedulePaint(); View::OnThemeChanged(); } + +BEGIN_METADATA(SidePanelRoundedCorner, views::View) +END_METADATA
diff --git a/chrome/browser/ui/views/side_panel/side_panel_rounded_corner.h b/chrome/browser/ui/views/side_panel/side_panel_rounded_corner.h index b35d2c7..cc9a1571 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_rounded_corner.h +++ b/chrome/browser/ui/views/side_panel/side_panel_rounded_corner.h
@@ -5,6 +5,7 @@ #ifndef CHROME_BROWSER_UI_VIEWS_SIDE_PANEL_SIDE_PANEL_ROUNDED_CORNER_H_ #define CHROME_BROWSER_UI_VIEWS_SIDE_PANEL_SIDE_PANEL_ROUNDED_CORNER_H_ +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/view.h" class BrowserView; @@ -17,6 +18,7 @@ // SidePanel to the page content. class SidePanelRoundedCorner : public views::View { public: + METADATA_HEADER(SidePanelRoundedCorner); explicit SidePanelRoundedCorner(BrowserView* browser_view); private:
diff --git a/chrome/browser/ui/views/side_panel/side_panel_toolbar_container.cc b/chrome/browser/ui/views/side_panel/side_panel_toolbar_container.cc index d279c89..e7e38ff 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_toolbar_container.cc +++ b/chrome/browser/ui/views/side_panel/side_panel_toolbar_container.cc
@@ -28,6 +28,7 @@ #include "components/feature_engagement/public/feature_constants.h" #include "components/prefs/pref_service.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/dialog_model_menu_model_adapter.h" #include "ui/views/accessibility/view_accessibility.h" #include "ui/views/animation/ink_drop.h" @@ -328,3 +329,6 @@ return SidePanelUtil::GetSidePanelCoordinatorForBrowser( browser_view_->browser()); } + +BEGIN_METADATA(SidePanelToolbarContainer, ToolbarIconContainerView) +END_METADATA
diff --git a/chrome/browser/ui/views/side_panel/side_panel_toolbar_container.h b/chrome/browser/ui/views/side_panel/side_panel_toolbar_container.h index e6e23a6..e426a11 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_toolbar_container.h +++ b/chrome/browser/ui/views/side_panel/side_panel_toolbar_container.h
@@ -12,6 +12,7 @@ #include "chrome/browser/ui/views/toolbar/toolbar_button.h" #include "chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h" #include "components/prefs/pref_change_registrar.h" +#include "ui/base/metadata/metadata_header_macros.h" class BrowserView; class SidePanelToolbarButton; @@ -22,6 +23,7 @@ // toolbar. class SidePanelToolbarContainer : public ToolbarIconContainerView { public: + METADATA_HEADER(SidePanelToolbarContainer); explicit SidePanelToolbarContainer(BrowserView* browser_view); SidePanelToolbarContainer(const SidePanelToolbarContainer&) = delete; SidePanelToolbarContainer& operator=(const SidePanelToolbarContainer&) =
diff --git a/chrome/browser/ui/views/side_panel/side_panel_web_ui_view.cc b/chrome/browser/ui/views/side_panel/side_panel_web_ui_view.cc index d4cf963..f165594d 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_web_ui_view.cc +++ b/chrome/browser/ui/views/side_panel/side_panel_web_ui_view.cc
@@ -18,6 +18,7 @@ #include "chrome/grit/generated_resources.h" #include "components/feature_engagement/public/feature_constants.h" #include "components/feature_engagement/public/tracker.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/views/controls/menu/menu_runner.h" SidePanelWebUIView::SidePanelWebUIView(base::RepeatingClosure on_show_cb, @@ -80,3 +81,6 @@ return unhandled_keyboard_event_handler_.HandleKeyboardEvent( event, GetFocusManager()); } + +BEGIN_METADATA(SidePanelWebUIView, views::WebView) +END_METADATA
diff --git a/chrome/browser/ui/views/side_panel/side_panel_web_ui_view.h b/chrome/browser/ui/views/side_panel/side_panel_web_ui_view.h index a17b5cc9..9dbc659 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_web_ui_view.h +++ b/chrome/browser/ui/views/side_panel/side_panel_web_ui_view.h
@@ -10,6 +10,7 @@ #include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "chrome/browser/ui/views/bubble/bubble_contents_wrapper.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/controls/webview/unhandled_keyboard_event_handler.h" #include "ui/views/controls/webview/webview.h" @@ -27,6 +28,7 @@ class SidePanelWebUIView : public views::WebView, public BubbleContentsWrapper::Host { public: + METADATA_HEADER(SidePanelWebUIView); SidePanelWebUIView(base::RepeatingClosure on_show_cb, base::RepeatingClosure close_cb, BubbleContentsWrapper* contents_wrapper);
diff --git a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc index ec4b44c..0211755 100644 --- a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc +++ b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc
@@ -107,10 +107,10 @@ context_menu_.reset(); } -void ChromeWebContentsViewDelegateViews::OnPerformDrop( +void ChromeWebContentsViewDelegateViews::OnPerformingDrop( const content::DropData& drop_data, DropCompletionCallback callback) { - HandleOnPerformDrop(web_contents_, drop_data, std::move(callback)); + HandleOnPerformingDrop(web_contents_, drop_data, std::move(callback)); } std::unique_ptr<content::WebContentsViewDelegate> CreateWebContentsViewDelegate(
diff --git a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h index 485a84f..97c98c87 100644 --- a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h +++ b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h
@@ -47,8 +47,8 @@ void ShowContextMenu(content::RenderFrameHost& render_frame_host, const content::ContextMenuParams& params) override; void ExecuteCommandForTesting(int command_id, int event_flags) override; - void OnPerformDrop(const content::DropData& drop_data, - DropCompletionCallback callback) override; + void OnPerformingDrop(const content::DropData& drop_data, + DropCompletionCallback callback) override; // Overridden from ContextMenuDelegate. std::unique_ptr<RenderViewContextMenuBase> BuildMenu(
diff --git a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h index fac8260..07e5b36 100644 --- a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h +++ b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h
@@ -47,8 +47,8 @@ void ResetStoredFocus() override; bool Focus() override; bool TakeFocus(bool reverse) override; - void OnPerformDrop(const content::DropData& drop_data, - DropCompletionCallback callback) override; + void OnPerformingDrop(const content::DropData& drop_data, + DropCompletionCallback callback) override; // ContextMenuDelegate: std::unique_ptr<RenderViewContextMenuBase> BuildMenu(
diff --git a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm index 5cfee149..bcd6b54 100644 --- a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm +++ b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm
@@ -84,10 +84,10 @@ return GetFocusHelper()->TakeFocus(reverse); } -void ChromeWebContentsViewDelegateViewsMac::OnPerformDrop( +void ChromeWebContentsViewDelegateViewsMac::OnPerformingDrop( const content::DropData& drop_data, DropCompletionCallback callback) { - HandleOnPerformDrop(web_contents_, drop_data, std::move(callback)); + HandleOnPerformingDrop(web_contents_, drop_data, std::move(callback)); } std::unique_ptr<RenderViewContextMenuBase>
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc index 3518bc7c..96271cd 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
@@ -696,7 +696,7 @@ raw_ptr<aura::Window, DanglingUntriaged | ExperimentalAsh> root_ = nullptr; #endif base::test::ScopedFeatureList scoped_feature_list_; - absl::optional<web_app::AppId> tabbed_app_id_; + absl::optional<webapps::AppId> tabbed_app_id_; }; // Creates a browser with four tabs. The first three belong in the same Tab @@ -2892,7 +2892,7 @@ {blink::features::kDesktopPWAsTabStrip}, {}); } - web_app::AppId InstallMockApp(bool add_home_tab) { + webapps::AppId InstallMockApp(bool add_home_tab) { auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); web_app_info->start_url = GURL("https://www.example.com"); web_app_info->title = u"A tabbed web app"; @@ -2923,7 +2923,7 @@ IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTestWithTabbedWebApp, MAYBE_HomeTabAddedToEveryWindow) { // Install tabbed web app. - web_app::AppId app_id = InstallMockApp(/*add_home_tab=*/true); + webapps::AppId app_id = InstallMockApp(/*add_home_tab=*/true); Browser* app_browser = web_app::LaunchWebAppBrowser(browser()->profile(), app_id); ASSERT_EQ(2u, browser_list->size()); @@ -2981,7 +2981,7 @@ IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTestWithTabbedWebApp, MAYBE_CantDragHomeTab) { // Install tabbed web app. - web_app::AppId app_id = InstallMockApp(/*add_home_tab=*/true); + webapps::AppId app_id = InstallMockApp(/*add_home_tab=*/true); Browser* app_browser = web_app::LaunchWebAppBrowser(browser()->profile(), app_id); ASSERT_EQ(2u, browser_list->size()); @@ -3025,7 +3025,7 @@ IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTestWithTabbedWebApp, MAYBE_NoHomeTab) { // Install tabbed web app. - web_app::AppId app_id = InstallMockApp(/*add_home_tab=*/false); + webapps::AppId app_id = InstallMockApp(/*add_home_tab=*/false); Browser* app_browser = web_app::LaunchWebAppBrowser(browser()->profile(), app_id); ASSERT_EQ(2u, browser_list->size()); @@ -3785,12 +3785,12 @@ : test_system_web_app_installation_( ash::TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp()) {} - web_app::AppId InstallMockApp() { + webapps::AppId InstallMockApp() { test_system_web_app_installation_->WaitForAppInstall(); return test_system_web_app_installation_->GetAppId(); } - Browser* LaunchWebAppBrowser(web_app::AppId app_id) { + Browser* LaunchWebAppBrowser(webapps::AppId app_id) { return web_app::LaunchWebAppBrowser(browser()->profile(), app_id); } @@ -3807,7 +3807,7 @@ IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTestWithTabbedSystemApp, DragAppToOwnWindow) { // Install and get a tabbed system app. - web_app::AppId tabbed_app_id = InstallMockApp(); + webapps::AppId tabbed_app_id = InstallMockApp(); Browser* app_browser = LaunchWebAppBrowser(tabbed_app_id); ASSERT_EQ(2u, browser_list->size()); @@ -3836,7 +3836,7 @@ IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTestWithTabbedSystemApp, DragAppToAppWindow) { // Install and get 2 browsers with tabbed system app. - web_app::AppId tabbed_app_id = InstallMockApp(); + webapps::AppId tabbed_app_id = InstallMockApp(); Browser* app_browser1 = LaunchWebAppBrowser(tabbed_app_id); Browser* app_browser2 = LaunchWebAppBrowser(tabbed_app_id); ASSERT_EQ(3u, browser_list->size());
diff --git a/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc b/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc index 397dcc26..b884fe4 100644 --- a/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc +++ b/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc
@@ -20,6 +20,7 @@ #include "chrome/common/pref_names.h" #include "chrome/grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/ui_base_features.h" #include "ui/views/accessibility/view_accessibility.h" #include "ui/views/controls/button/button_controller.h" @@ -72,3 +73,6 @@ bool SidePanelToolbarButton::ShouldShowInkdropAfterIphInteraction() { return false; } + +BEGIN_METADATA(SidePanelToolbarButton, ToolbarButton) +END_METADATA
diff --git a/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h b/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h index ad18eff..4714935a 100644 --- a/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h +++ b/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h
@@ -10,11 +10,13 @@ #include "chrome/browser/ui/views/bubble/bubble_contents_wrapper.h" #include "chrome/browser/ui/views/toolbar/toolbar_button.h" #include "components/prefs/pref_change_registrar.h" +#include "ui/base/metadata/metadata_header_macros.h" class Browser; class SidePanelToolbarButton : public ToolbarButton { public: + METADATA_HEADER(SidePanelToolbarButton); explicit SidePanelToolbarButton(Browser* browser); SidePanelToolbarButton(const SidePanelToolbarButton&) = delete; SidePanelToolbarButton& operator=(const SidePanelToolbarButton&) = delete;
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc index 71afca8..9f4613c 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -200,6 +200,7 @@ class ToolbarView::ContainerView : public views::View { public: + METADATA_HEADER(ContainerView); // Calling PreferredSizeChanged() will trigger the parent's // ChildPreferredSizeChanged. // Bubble up calls to ChildPreferredSizeChanged. @@ -208,6 +209,9 @@ } }; +BEGIN_METADATA(ToolbarView, ContainerView, views::View) +END_METADATA + //////////////////////////////////////////////////////////////////////////////// // ToolbarView, public:
diff --git a/chrome/browser/ui/views/user_education/feature_promo_lifecycle_interactive_uitest.cc b/chrome/browser/ui/views/user_education/feature_promo_lifecycle_interactive_uitest.cc index 98cc30f2..8bb0f11f8 100644 --- a/chrome/browser/ui/views/user_education/feature_promo_lifecycle_interactive_uitest.cc +++ b/chrome/browser/ui/views/user_education/feature_promo_lifecycle_interactive_uitest.cc
@@ -17,7 +17,6 @@ #include "chrome/browser/ui/views/user_education/browser_feature_promo_controller.h" #include "chrome/browser/ui/web_applications/app_browser_controller.h" #include "chrome/browser/ui/web_applications/web_app_controller_browsertest.h" -#include "chrome/browser/web_applications/web_app_id.h" #include "chrome/grit/generated_resources.h" #include "chrome/test/interaction/interactive_browser_test.h" #include "components/feature_engagement/test/mock_tracker.h" @@ -29,6 +28,7 @@ #include "components/user_education/common/feature_promo_storage_service.h" #include "components/user_education/views/help_bubble_factory_views.h" #include "components/user_education/views/help_bubble_view.h" +#include "components/webapps/common/web_app_id.h" #include "content/public/test/browser_test.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -438,8 +438,8 @@ } protected: - web_app::AppId app1_id_; - web_app::AppId app2_id_; + webapps::AppId app1_id_; + webapps::AppId app2_id_; private: SpecList CreatePromos() override {
diff --git a/chrome/browser/ui/views/webid/account_selection_bubble_view.h b/chrome/browser/ui/views/webid/account_selection_bubble_view.h index 45b7bc1..7015ed9 100644 --- a/chrome/browser/ui/views/webid/account_selection_bubble_view.h +++ b/chrome/browser/ui/views/webid/account_selection_bubble_view.h
@@ -65,14 +65,14 @@ // Called when the user clicks the "continue" button on the sign-in // failure dialog. - virtual void OnSigninToIdP() = 0; + virtual void OnSigninToIdP(const ui::Event& event) = 0; // Called when the user clicks "got it" button. - virtual void OnGotIt() = 0; + virtual void OnGotIt(const ui::Event& event) = 0; // Called when the user clicks the "more details" button on the error // dialog. - virtual void OnMoreDetails() = 0; + virtual void OnMoreDetails(const ui::Event& event) = 0; // Called when IdentityProvider.close() is called from the renderer. virtual void CloseModalDialog() = 0;
diff --git a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc index 2e586a3c..98b2bde 100644 --- a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc +++ b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc
@@ -457,7 +457,11 @@ views::Widget::ClosedReason::kCloseButtonClicked); } -void FedCmAccountSelectionView::OnSigninToIdP() { +void FedCmAccountSelectionView::OnSigninToIdP(const ui::Event& event) { + if (input_protector_->IsPossiblyUnintendedInteraction(event)) { + return; + } + delegate_->OnSigninToIdP(); is_mismatch_continue_clicked_ = true; popup_window_state_ = @@ -466,11 +470,19 @@ MismatchDialogResult::kContinued); } -void FedCmAccountSelectionView::OnGotIt() { +void FedCmAccountSelectionView::OnGotIt(const ui::Event& event) { + if (input_protector_->IsPossiblyUnintendedInteraction(event)) { + return; + } + delegate_->OnDismiss(DismissReason::kGotItButton); } -void FedCmAccountSelectionView::OnMoreDetails() { +void FedCmAccountSelectionView::OnMoreDetails(const ui::Event& event) { + if (input_protector_->IsPossiblyUnintendedInteraction(event)) { + return; + } + delegate_->OnMoreDetails(); delegate_->OnDismiss(DismissReason::kMoreDetailsButton); }
diff --git a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h index 8c32100..4740a67 100644 --- a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h +++ b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h
@@ -199,9 +199,9 @@ const ui::Event& event) override; void OnBackButtonClicked() override; void OnCloseButtonClicked(const ui::Event& event) override; - void OnSigninToIdP() override; - void OnGotIt() override; - void OnMoreDetails() override; + void OnSigninToIdP(const ui::Event& event) override; + void OnGotIt(const ui::Event& event) override; + void OnMoreDetails(const ui::Event& event) override; void ShowVerifyingSheet(const Account& account, const IdentityProviderDisplayData& idp_display_data);
diff --git a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop_unittest.cc b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop_unittest.cc index 4cd43b4..4a85478 100644 --- a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop_unittest.cc +++ b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop_unittest.cc
@@ -647,7 +647,7 @@ "Blink.FedCm.IdpSigninStatus.MismatchDialogResult", 0); // Emulate user clicking on "Continue" button in the mismatch dialog. - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); histogram_tester_.ExpectUniqueSample( @@ -671,7 +671,7 @@ "Blink.FedCm.IdpSigninStatus.MismatchDialogResult", 0); // Emulate user clicking on "Continue" button in the mismatch dialog. - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); } @@ -696,7 +696,7 @@ static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); // Emulate user clicking on "Continue" button in the mismatch dialog. - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); // When pop-up window is shown, mismatch dialog should be hidden. @@ -753,7 +753,7 @@ static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); // Emulate user clicking on "Continue" button in the mismatch dialog. - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); // When pop-up window is shown, mismatch dialog should be hidden. @@ -809,7 +809,7 @@ static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); // Emulate user clicking on "Continue" button in the mismatch dialog. - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); // Emulate IdP sending the IdP sign-in status header which updates the @@ -844,7 +844,7 @@ static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); // Emulate user clicking on "Continue" button in the mismatch dialog. - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); // Emulate IdentityProvider.close() being called in the pop-up window. @@ -874,7 +874,7 @@ static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); // Emulate user clicking on "Continue" button in the mismatch dialog. - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); histogram_tester_.ExpectTotalCount( @@ -993,7 +993,7 @@ // Emulate user clicking on "Continue" button in the mismatch dialog. AccountSelectionBubbleView::Observer* observer = static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); // Emulate IdP closing the pop-up window. @@ -1031,7 +1031,7 @@ // Emulate user clicking on "Continue" button in the mismatch dialog. AccountSelectionBubbleView::Observer* observer = static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); - observer->OnSigninToIdP(); + observer->OnSigninToIdP(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); // Emulate IdP closing the pop-up window. @@ -1100,7 +1100,7 @@ // Emulate user clicking on "got it" button in the error dialog. AccountSelectionBubbleView::Observer* observer = static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); - observer->OnGotIt(); + observer->OnGotIt(CreateMouseEvent()); // Widget should be dismissed. StubAccountSelectionViewDelegate* delegate = @@ -1119,7 +1119,7 @@ // Emulate user clicking on "more details" button in the error dialog. AccountSelectionBubbleView::Observer* observer = static_cast<AccountSelectionBubbleView::Observer*>(controller.get()); - observer->OnMoreDetails(); + observer->OnMoreDetails(CreateMouseEvent()); CreateAndShowPopupWindow(*controller); // Widget should be dismissed.
diff --git a/chrome/browser/ui/webui/password_manager/promo_card_unittest.cc b/chrome/browser/ui/webui/password_manager/promo_card_unittest.cc index a97c68d..ed9f128 100644 --- a/chrome/browser/ui/webui/password_manager/promo_card_unittest.cc +++ b/chrome/browser/ui/webui/password_manager/promo_card_unittest.cc
@@ -88,7 +88,7 @@ std::unique_ptr<web_app::WebApp> CreateWebApp() { GURL url(chrome::kChromeUIPasswordManagerURL); - web_app::AppId app_id = web_app::GenerateAppId(/*manifest_id=*/"", url); + webapps::AppId app_id = web_app::GenerateAppId(/*manifest_id=*/"", url); auto web_app = std::make_unique<web_app::WebApp>(app_id); web_app->SetStartUrl(url); web_app->SetScope(url.DeprecatedGetOriginAsURL());
diff --git a/chrome/browser/ui/webui/password_manager/sync_handler.cc b/chrome/browser/ui/webui/password_manager/sync_handler.cc index 69f66cc..7b3257f39 100644 --- a/chrome/browser/ui/webui/password_manager/sync_handler.cc +++ b/chrome/browser/ui/webui/password_manager/sync_handler.cc
@@ -9,7 +9,7 @@ #include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/sync/sync_service_factory.h" #include "chrome/browser/sync/sync_ui_util.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/sync/service/sync_service.h" #include "components/sync/service/sync_service_utils.h" #include "components/sync/service/sync_user_settings.h"
diff --git a/chrome/browser/ui/webui/support_tool/OWNERS b/chrome/browser/ui/webui/support_tool/OWNERS index 63381752..f57c5d31 100644 --- a/chrome/browser/ui/webui/support_tool/OWNERS +++ b/chrome/browser/ui/webui/support_tool/OWNERS
@@ -1,3 +1,2 @@ iremuguz@google.com -pmarko@chromium.org -srad@google.com \ No newline at end of file +pmarko@chromium.org \ No newline at end of file
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt index 5bf0e72..543e511 100644 --- a/chrome/build/android-arm32.pgo.txt +++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@ -chrome-android32-main-1695880618-052c59ce3e36961e18b0674a348422586b9208f9.profdata +chrome-android32-main-1695902280-1955113fbb1a69f79ac6d3f6e0160b02c23b7043.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt index fbd9bf8..85a717d0 100644 --- a/chrome/build/android-arm64.pgo.txt +++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@ -chrome-android64-main-1695859109-0e2eae4c8994176677e03ea8e12ae9ade6a13b15.profdata +chrome-android64-main-1695902280-1aab926c345a759f2fbb2ece7e9e17a3d1fe7812.profdata
diff --git a/chrome/build/lacros64.pgo.txt b/chrome/build/lacros64.pgo.txt index 9dc4b81..ec94c5e1 100644 --- a/chrome/build/lacros64.pgo.txt +++ b/chrome/build/lacros64.pgo.txt
@@ -1 +1 @@ -chrome-chromeos-amd64-generic-main-1695859694-2a0bfdc678bad041058c437ef83a92f66a8dbd6d.profdata +chrome-chromeos-amd64-generic-main-1695902404-5c21040b1221c577513520f51b4d36600f152899.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index d9a19bf..22ab7d51 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1695859109-dde73106efeeb28fbf5a429c30ff08f1aefdef7d.profdata +chrome-linux-main-1695902280-cbaa400d347b1376ea2432590750d76e6c0de3b5.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index f63c771b..5d006e5 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1695895142-3fefb1b7afb43664b9f1ab77bd32306d4b767692.profdata +chrome-mac-arm-main-1695909549-d69578b1de08cbd3017f393d92d3ac9f02602b0a.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 2799dea..3e1e3b2 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1695859109-9641f552e30870749666a8850629d75c79de94ce.profdata +chrome-mac-main-1695902280-fd54e727177fde00a4c6f73cb07656854ddc2674.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt index f43d4e1..677cae5 100644 --- a/chrome/build/win-arm64.pgo.txt +++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@ -chrome-win-arm64-main-1695859109-ab547c0e49da71e0c156ee862c2780b162c5894c.profdata +chrome-win-arm64-main-1695902280-b4f6373ddaa2a1b997bf4cadc3c45bcbd348405c.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index f1c2d2e..af8ba50 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1695869075-05cf5462ce0a91faf111f3dbda9cac15e7618bfb.profdata +chrome-win32-main-1695891569-be99fecd0668f508cdcd3993275875e2a35c2a8c.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index e5fecc6b..7209f0f7 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1695869075-5f108d0d3aac928a0f7550a85ae7c68a0a696fdd.profdata +chrome-win64-main-1695891569-06befb5958a6baa6379f49841776c81d3ea90b8c.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index f33663b..e3d79c4 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -1433,6 +1433,10 @@ kTrustSafetySentimentSurveyV2PasswordCheckProbability{ &kTrustSafetySentimentSurveyV2, "password-check-probability", 0.0}; const base::FeatureParam<double> + kTrustSafetySentimentSurveyV2PasswordProtectionUIProbability{ + &kTrustSafetySentimentSurveyV2, "password-protection-ui-probability", + 0.0}; +const base::FeatureParam<double> kTrustSafetySentimentSurveyV2SafetyCheckProbability{ &kTrustSafetySentimentSurveyV2, "safety-check-probability", 0.0}; const base::FeatureParam<double> @@ -1475,6 +1479,10 @@ const base::FeatureParam<std::string> kTrustSafetySentimentSurveyV2PasswordCheckTriggerId{ &kTrustSafetySentimentSurveyV2, "password-check-trigger-id", ""}; +extern const base::FeatureParam<std::string> + kTrustSafetySentimentSurveyV2PasswordProtectionUITriggerId{ + &kTrustSafetySentimentSurveyV2, "password-protection-ui-trigger-id", + ""}; const base::FeatureParam<std::string> kTrustSafetySentimentSurveyV2SafetyCheckTriggerId{ &kTrustSafetySentimentSurveyV2, "safety-check-trigger-id", ""}; @@ -1580,7 +1588,7 @@ // which makes blink expose IWA APIs to be used by the web app. BASE_FEATURE(kWebKioskEnableIwaApis, "WebKioskEnableIwaApis", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); #endif #if !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index e246af1..a8dbe8c 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -845,6 +845,9 @@ kTrustSafetySentimentSurveyV2PasswordCheckProbability; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::FeatureParam<double> + kTrustSafetySentimentSurveyV2PasswordProtectionUIProbability; +COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::FeatureParam<double> kTrustSafetySentimentSurveyV2SafetyCheckProbability; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::FeatureParam<double> @@ -881,6 +884,9 @@ kTrustSafetySentimentSurveyV2PasswordCheckTriggerId; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::FeatureParam<std::string> + kTrustSafetySentimentSurveyV2PasswordProtectionUITriggerId; +COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::FeatureParam<std::string> kTrustSafetySentimentSurveyV2SafetyCheckTriggerId; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::FeatureParam<std::string>
diff --git a/chrome/installer/setup/run_all_unittests.cc b/chrome/installer/setup/run_all_unittests.cc index dbc5ec6..b8d1743d 100644 --- a/chrome/installer/setup/run_all_unittests.cc +++ b/chrome/installer/setup/run_all_unittests.cc
@@ -13,10 +13,12 @@ int main(int argc, char** argv) { base::TestSuite test_suite(argc, argv); - // Handle the --adjust-process-priority switch, which is used to test the - // installer::AdjustProcessPriority() function in a subprocess. - if (base::CommandLine::ForCurrentProcess()->HasSwitch(kAdjustProcessPriority)) - return DoProcessPriorityAdjustment(); + // Handle the --adjust-thread-priority switch, which is used to test the + // installer::AdjustThreadPriority() function in a subprocess. + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + kAdjustThreadPriority)) { + return DoThreadPriorityAdjustment(); + } // Register Chrome Path provider so that we can get test data dir. chrome::RegisterPathProvider();
diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc index 52e60dfb..f47ae30 100644 --- a/chrome/installer/setup/setup_main.cc +++ b/chrome/installer/setup/setup_main.cc
@@ -494,16 +494,20 @@ return installer::SETUP_SINGLETON_RELEASED; } - // Note that Windows 11 22H2 has a bug whereby process priorities are not - // altered by PROCESS_MODE_BACKGROUND_BEGIN, but I/O and memory priorities - // still are. See https://crbug.com/1396155 for details. + // SetPriorityClass with PROCESS_MODE_BACKGROUND_BEGIN will cap the process + // working set to 32 MiB. This was experimentally determined after being + // reported in https://crbug.com/1475179. This can lead to extreme + // inefficiency as most CPU time is spent faulting in pages and then + // immediately trimming the working set. In one trace 99% of CPU time was + // spent handling page faults, so avoid SetPriorityClass with + // PROCESS_MODE_BACKGROUND_BEGIN. base::ScopedClosureRunner restore_priority; - if (::SetPriorityClass(::GetCurrentProcess(), - PROCESS_MODE_BACKGROUND_BEGIN) != 0) { - // Be aware that a process restoring itself to normal priority from + if (::SetThreadPriority(::GetCurrentThread(), + THREAD_MODE_BACKGROUND_BEGIN) != 0) { + // Be aware that a thread restoring itself to normal priority from // background priority is inherently somewhat of a priority inversion. restore_priority.ReplaceClosure(base::BindOnce([]() { - ::SetPriorityClass(::GetCurrentProcess(), PROCESS_MODE_BACKGROUND_END); + ::SetThreadPriority(::GetCurrentThread(), THREAD_MODE_BACKGROUND_END); })); } const bool delete_old_versions_success = @@ -795,7 +799,7 @@ // normal process priority class. This is done here because InstallProducts- // Helper has read-only access to the state and because the action also // affects everything else that runs below. - const bool entered_background_mode = installer::AdjustProcessPriority(); + const bool entered_background_mode = installer::AdjustThreadPriority(); VLOG_IF(1, entered_background_mode) << "Entered background processing mode."; if (CheckPreInstallConditions(original_state, *installer_state,
diff --git a/chrome/installer/setup/setup_util.cc b/chrome/installer/setup/setup_util.cc index 7c02c0e..f7f654d7 100644 --- a/chrome/installer/setup/setup_util.cc +++ b/chrome/installer/setup/setup_util.cc
@@ -321,12 +321,15 @@ return ok != FALSE; } -bool AdjustProcessPriority() { - DWORD priority_class = ::GetPriorityClass(::GetCurrentProcess()); +bool AdjustThreadPriority() { + const DWORD priority_class = ::GetPriorityClass(::GetCurrentProcess()); if (priority_class == BELOW_NORMAL_PRIORITY_CLASS || priority_class == IDLE_PRIORITY_CLASS) { - BOOL result = ::SetPriorityClass(::GetCurrentProcess(), - PROCESS_MODE_BACKGROUND_BEGIN); + // Don't use SetPriorityClass with PROCESS_MODE_BACKGROUND_BEGIN because it + // will cap the process working set to 32 MiB. See + // https://crbug.com/1475179. + const BOOL result = + ::SetThreadPriority(::GetCurrentThread(), THREAD_MODE_BACKGROUND_BEGIN); PLOG_IF(WARNING, !result) << "Failed to enter background mode."; return !!result; }
diff --git a/chrome/installer/setup/setup_util.h b/chrome/installer/setup/setup_util.h index 442632a..37865ee 100644 --- a/chrome/installer/setup/setup_util.h +++ b/chrome/installer/setup/setup_util.h
@@ -89,10 +89,10 @@ bool DeleteFileFromTempProcess(const base::FilePath& path, uint32_t delay_before_delete_ms); -// Drops the process down to background processing mode on supported OSes if it +// Drops the thread down to background processing mode on supported OSes if it // was launched below the normal process priority. Returns true when background // processing mode is entered. -bool AdjustProcessPriority(); +bool AdjustThreadPriority(); // Returns true if |install_status| represents a successful uninstall code. bool IsUninstallSuccess(InstallStatus install_status);
diff --git a/chrome/installer/setup/setup_util_unittest.cc b/chrome/installer/setup/setup_util_unittest.cc index a1f2bf5..e5eb43c 100644 --- a/chrome/installer/setup/setup_util_unittest.cc +++ b/chrome/installer/setup/setup_util_unittest.cc
@@ -135,10 +135,10 @@ key.Open(HKEY_LOCAL_MACHINE, reg_path.c_str(), KEY_READ)); } -const char kAdjustProcessPriority[] = "adjust-process-priority"; +const char kAdjustThreadPriority[] = "adjust-thread-priority"; -PriorityClassChangeResult DoProcessPriorityAdjustment() { - return installer::AdjustProcessPriority() ? PCCR_CHANGED : PCCR_UNCHANGED; +PriorityClassChangeResult DoThreadPriorityAdjustment() { + return installer::AdjustThreadPriority() ? PCCR_CHANGED : PCCR_UNCHANGED; } namespace { @@ -185,9 +185,9 @@ EXPECT_NE(FALSE, result); } -PriorityClassChangeResult RelaunchAndDoProcessPriorityAdjustment() { +PriorityClassChangeResult RelaunchAndDoThreadPriorityAdjustment() { base::CommandLine cmd_line(*base::CommandLine::ForCurrentProcess()); - cmd_line.AppendSwitch(kAdjustProcessPriority); + cmd_line.AppendSwitch(kAdjustThreadPriority); base::Process process = base::LaunchProcess(cmd_line, base::LaunchOptions()); int exit_code = 0; if (!process.IsValid()) { @@ -211,7 +211,7 @@ << std::hex << priority_class; return; } - EXPECT_EQ(PCCR_UNCHANGED, RelaunchAndDoProcessPriorityAdjustment()); + EXPECT_EQ(PCCR_UNCHANGED, RelaunchAndDoThreadPriorityAdjustment()); } // Launching a subprocess below normal priority class drops it to bg mode for @@ -223,7 +223,7 @@ below_normal = ScopedPriorityClass::Create(BELOW_NORMAL_PRIORITY_CLASS); ASSERT_TRUE(below_normal); } - EXPECT_EQ(PCCR_CHANGED, RelaunchAndDoProcessPriorityAdjustment()); + EXPECT_EQ(PCCR_CHANGED, RelaunchAndDoThreadPriorityAdjustment()); } TEST(SetupUtilTest, GetInstallAge) {
diff --git a/chrome/installer/setup/setup_util_unittest.h b/chrome/installer/setup/setup_util_unittest.h index 201478ea..f7eb1e7 100644 --- a/chrome/installer/setup/setup_util_unittest.h +++ b/chrome/installer/setup/setup_util_unittest.h
@@ -6,19 +6,19 @@ #define CHROME_INSTALLER_SETUP_SETUP_UTIL_UNITTEST_H_ // A command line switch that causes the test harness to exit with the result of -// DoProcessPriorityAdjustment rather than executing all tests. -extern const char kAdjustProcessPriority[]; +// DoThreadPriorityAdjustment rather than executing all tests. +extern const char kAdjustThreadPriority[]; // Process exit codes when the test harness is run with the -// kAdjustProcessPriority switch. +// kAdjustThreadPriority switch. enum PriorityClassChangeResult { PCCR_UNKNOWN, PCCR_UNCHANGED, PCCR_CHANGED, }; -// Calls AdjustProcessPriority() and returns PCCR_CHANGED or PCCR_UNCHANGED +// Calls AdjustThreadPriority() and returns PCCR_CHANGED or PCCR_UNCHANGED // based on its true or false result (respectively). -PriorityClassChangeResult DoProcessPriorityAdjustment(); +PriorityClassChangeResult DoThreadPriorityAdjustment(); #endif // CHROME_INSTALLER_SETUP_SETUP_UTIL_UNITTEST_H_
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 983bf3f..8f393221 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -9533,8 +9533,8 @@ "../browser/ui/views/accelerator_table_unittest.cc", "../browser/ui/views/apps/app_info_dialog/app_info_dialog_views_unittest.cc", "../browser/ui/views/apps/app_info_dialog/app_info_permissions_panel_unittest.cc", - "../browser/ui/views/autofill/popup/popup_autocomplete_cell_view_unittest.cc", "../browser/ui/views/autofill/popup/popup_cell_view_unittest.cc", + "../browser/ui/views/autofill/popup/popup_cell_with_button_view_unittest.cc", "../browser/ui/views/autofill/popup/popup_row_strategy_unittest.cc", "../browser/ui/views/autofill/popup/popup_row_view_unittest.cc", "../browser/ui/views/autofill/popup/popup_separator_view_unittest.cc",
diff --git a/chrome/test/data/dlp/file_drop.html b/chrome/test/data/dlp/file_drop.html index 373c9e848..0df8d88d 100644 --- a/chrome/test/data/dlp/file_drop.html +++ b/chrome/test/data/dlp/file_drop.html
@@ -28,6 +28,7 @@ dropArea.addEventListener(eventName, preventDefaults, false); }) function preventDefaults(e) { + console.log(e.type); e.preventDefault(); e.stopPropagation(); }
diff --git a/chrome/test/data/webui/settings/chromeos/os_apps_page/app_management_page/pwa_detail_view_test.ts b/chrome/test/data/webui/settings/chromeos/os_apps_page/app_management_page/pwa_detail_view_test.ts index 606810c..b61f964 100644 --- a/chrome/test/data/webui/settings/chromeos/os_apps_page/app_management_page/pwa_detail_view_test.ts +++ b/chrome/test/data/webui/settings/chromeos/os_apps_page/app_management_page/pwa_detail_view_test.ts
@@ -5,11 +5,13 @@ import 'chrome://os-settings/lazy_load.js'; import {AppManagementPinToShelfItemElement, AppManagementPwaDetailViewElement, AppManagementSubAppsItemElement} from 'chrome://os-settings/lazy_load.js'; -import {AppManagementStore, AppManagementToggleRowElement, CrToggleElement, updateSelectedAppId, updateSubAppToParentAppId} from 'chrome://os-settings/os_settings.js'; +import {AppManagementStore, AppManagementToggleRowElement, CrToggleElement, Router, updateSelectedAppId, updateSubAppToParentAppId} from 'chrome://os-settings/os_settings.js'; import {App, InstallReason} from 'chrome://resources/cr_components/app_management/app_management.mojom-webui.js'; import {PermissionTypeIndex} from 'chrome://resources/cr_components/app_management/permission_constants.js'; import {convertOptionalBoolToBool, getPermissionValueBool} from 'chrome://resources/cr_components/app_management/util.js'; import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import {flushTasks} from 'chrome://webui-test/polymer_test_util.js'; +import {eventToPromise} from 'chrome://webui-test/test_util.js'; import {FakePageHandler} from '../../app_management/fake_page_handler.js'; import {getPermissionCrToggleByType, getPermissionToggleByType, replaceBody, replaceStore, setupFakeHandler} from '../../app_management/test_util.js'; @@ -42,6 +44,21 @@ return selectedApp; } + async function selectPageFor(appId: string) { + AppManagementStore.getInstance().dispatch(updateSelectedAppId(appId)); + await fakeHandler.flushPipesForTesting(); + } + + async function addSubApp(title: string, parentApp: App): Promise<string> { + const subAppOptions = { + installReason: InstallReason.kSubApp, + }; + const sub_app = await fakeHandler.addApp(title, subAppOptions); + AppManagementStore.getInstance().dispatch( + updateSubAppToParentAppId(sub_app.id, parentApp.id)); + return sub_app.id; + } + setup(async () => { fakeHandler = setupFakeHandler(); replaceStore(); @@ -57,6 +74,7 @@ teardown(() => { pwaDetailView.remove(); + Router.getInstance().resetRouteForTesting(); }); test('App is rendered correctly', () => { @@ -125,31 +143,41 @@ convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); }); - test('Show sub apps correctly', async () => { - const subAppOptions = { - installReason: InstallReason.kSubApp, - }; - const sub1 = await fakeHandler.addApp('Sub1', subAppOptions); - const sub2 = await fakeHandler.addApp('Sub2', subAppOptions); - const parent = await fakeHandler.addApp(); - AppManagementStore.getInstance().dispatch( - updateSubAppToParentAppId(sub1.id, parent.id)); - AppManagementStore.getInstance().dispatch( - updateSubAppToParentAppId(sub2.id, parent.id)); - await fakeHandler.flushPipesForTesting(); - - // Navigate through parent and sub app setting pages so all elements get - // created. - AppManagementStore.getInstance().dispatch(updateSelectedAppId(parent.id)); - await fakeHandler.flushPipesForTesting(); - AppManagementStore.getInstance().dispatch(updateSelectedAppId(sub1.id)); - await fakeHandler.flushPipesForTesting(); - AppManagementStore.getInstance().dispatch( - updateSelectedAppId(defaultAppId)); - await fakeHandler.flushPipesForTesting(); + test('Show list of sub apps correctly', async () => { + const parentApp = await fakeHandler.addApp(); + const subAppId = await addSubApp('Sub1', parentApp); + await addSubApp('Sub2', parentApp); const subAppsItem: AppManagementSubAppsItemElement = pwaDetailView.shadowRoot!.querySelector('#subAppsItem')!; + + // Default app is shown, has neither parents nor sub apps. + assertEquals( + 0, subAppsItem.subApps.length, 'list of sub apps is not empty'); + assertTrue(subAppsItem.hidden, 'list of sub apps should be hidden'); + + await selectPageFor(parentApp.id); + assertEquals( + 2, subAppsItem.subApps.length, 'list of sub apps should show two apps'); + assertFalse(subAppsItem.hidden, 'list of sub apps should not be hidden'); + + await selectPageFor(subAppId); + assertEquals( + 0, subAppsItem.subApps.length, 'list of sub apps is not empty'); + assertTrue(subAppsItem.hidden, 'list of sub apps should be hidden'); + }); + + test('Show sub and parent app permission explanations', async () => { + const parentApp = await fakeHandler.addApp(); + const subAppId = await addSubApp('Sub1', parentApp); + await addSubApp('Sub2', parentApp); + + // Navigate through parent and sub app setting pages so all elements get + // created. + await selectPageFor(parentApp.id); + await selectPageFor(subAppId); + await selectPageFor(defaultAppId); + const permissionHeading = pwaDetailView.shadowRoot!.querySelector('#permissionHeading')!; const ParentAppPermissionExplanation = @@ -160,19 +188,66 @@ '#subAppPermissionExplanation')!; const assertParentAppExplanationShown = (shown: boolean) => { - const not = shown ? '' : 'not '; assertEquals( ParentAppPermissionExplanation.checkVisibility(), shown, - 'permission explanation for parent app should ' + not + 'be shown'); + 'permission explanation for parent app should ' + + (shown ? '' : 'not ') + 'be shown'); }; const assertSubAppExplanationShown = (shown: boolean) => { - const not = shown ? '' : 'not '; assertEquals( SubAppPermissionExplanation.checkVisibility(), shown, - 'permission explanation for sub app should ' + not + 'be shown'); + 'permission explanation for sub app should ' + (shown ? '' : 'not ') + + 'be shown'); }; + + // Default app is shown, has neither parents nor sub apps. + assertParentAppExplanationShown(false); + assertSubAppExplanationShown(false); + + await selectPageFor(parentApp.id); + assertParentAppExplanationShown(true); + assertSubAppExplanationShown(false); + + await selectPageFor(subAppId); + assertParentAppExplanationShown(false); + assertSubAppExplanationShown(true); + + // Explanation is hidden again when navigating to regular app. + await selectPageFor(defaultAppId); + assertParentAppExplanationShown(false); + assertSubAppExplanationShown(false); + }); + + test( + 'Manage permissions link on sub app page directs to parent app settings page', + async () => { + const parentApp = await fakeHandler.addApp(); + const subAppId = await addSubApp('Sub1', parentApp); + await selectPageFor(subAppId); + + const permissionHeading = + pwaDetailView.shadowRoot!.querySelector('#permissionHeading')!; + const link = permissionHeading.shadowRoot!.querySelector( + '#subAppPermissionExplanation')!; + const anchorTag = link.shadowRoot!.querySelector('a')!; + const localizedLinkPromise = eventToPromise('link-clicked', link); + + anchorTag.click(); + await Promise.all([localizedLinkPromise, flushTasks()]); + await fakeHandler.flushPipesForTesting(); + + assertEquals( + Router.getInstance().getQueryParameters().get('id'), parentApp.id); + }); + + test('Permission toggles disabled on sub app page', async () => { + const parentApp = await fakeHandler.addApp(); + const subAppId = await addSubApp('Sub1', parentApp); + await addSubApp('Sub2', parentApp); + await selectPageFor(subAppId); + const checkToggleDisabled = (permissionType: PermissionTypeIndex) => { assertTrue(getPermissionBoolByType(permissionType)); assertTrue( @@ -182,33 +257,6 @@ 'permission toggle should be disabled on sub app setting page'); }; - // Default app is shown, has neither parents nor sub apps. - assertEquals( - 0, subAppsItem.subApps.length, 'list of sub apps is not empty'); - assertTrue(subAppsItem.hidden, 'list of sub apps should be hidden'); - assertParentAppExplanationShown(false); - assertSubAppExplanationShown(false); - - // Parent app with two sub apps gets selected. - AppManagementStore.getInstance().dispatch(updateSelectedAppId(parent.id)); - await fakeHandler.flushPipesForTesting(); - - assertEquals( - 2, subAppsItem.subApps.length, 'list of sub apps should show two apps'); - assertFalse(subAppsItem.hidden, 'list of sub apps should not be hidden'); - assertParentAppExplanationShown(true); - assertSubAppExplanationShown(false); - - // Select a sub app, has one parent and no sub apps of its own. - AppManagementStore.getInstance().dispatch(updateSelectedAppId(sub1.id)); - await fakeHandler.flushPipesForTesting(); - - assertEquals( - 0, subAppsItem.subApps.length, 'list of sub apps is not empty'); - assertTrue(subAppsItem.hidden, 'list of sub apps should be hidden'); - assertParentAppExplanationShown(false); - assertSubAppExplanationShown(true); - checkToggleDisabled('kLocation'); checkToggleDisabled('kCamera'); checkToggleDisabled('kMicrophone');
diff --git a/chrome/test/data/webui/support_tool/OWNERS b/chrome/test/data/webui/support_tool/OWNERS index 63381752..f57c5d31 100644 --- a/chrome/test/data/webui/support_tool/OWNERS +++ b/chrome/test/data/webui/support_tool/OWNERS
@@ -1,3 +1,2 @@ iremuguz@google.com -pmarko@chromium.org -srad@google.com \ No newline at end of file +pmarko@chromium.org \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb index 5ce6ac4..ed066b0 100644 --- a/chromeos/strings/chromeos_strings_af.xtb +++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Soek skandeerders</translation> <translation id="3226657629376379887">Uitleghandelingekieslys</translation> <translation id="3246869037381808805">Druktake ouer as 1 dag sal verwyder word</translation> -<translation id="3248223063252096240">Eksklusief vir <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Misluk – Deur is oop</translation> <translation id="3275729367986477355">Avatar-prent</translation> <translation id="3283504360622356314">{0,plural, =1{Wysig lêer}other{Wysig lêers}}</translation>
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb index 65ef0d60..d9d2fa8 100644 --- a/chromeos/strings/chromeos_strings_am.xtb +++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">ቃኚዎችን በመፈለግ ላይ</translation> <translation id="3226657629376379887">የአቀማመጥ እርምጃዎች ምናሌ</translation> <translation id="3246869037381808805">ከ1 ቀን በላይ ዕድሜ ያላቸው የህትመት ሥራዎች ይወገዳሉ</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> ለሚመለከተው የተወሰነ</translation> <translation id="3268178239013324452">አልተሳካም - በር ክፍት ነው</translation> <translation id="3275729367986477355">የአምሳያ ምስል</translation> <translation id="3283504360622356314">{0,plural, =1{ፋይል አርትዕ ያድርጉ}one{ፋይሎችን አርትዕ ያድርጉ}other{ፋይሎችን አርትዕ ያድርጉ}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb index f2d2a98..4b18d5d 100644 --- a/chromeos/strings/chromeos_strings_ar.xtb +++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">جارٍ البحث عن أجهزة مسح ضوئي</translation> <translation id="3226657629376379887">قائمة إجراءات التصميم</translation> <translation id="3246869037381808805">ستتم إزالة طلبات الطباعة التي مرَّ عليها أكثر من يوم.</translation> -<translation id="3248223063252096240">حصري لأجهزة <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">تعذَّرت الطباعة - باب الطابعة مفتوح</translation> <translation id="3275729367986477355">الصورة الرمزية</translation> <translation id="3283504360622356314">{0,plural, =1{تعديل الملف}zero{تعديل الملفات}two{تعديل الملفَين}few{تعديل الملفات}many{تعديل الملفات}other{تعديل الملفات}}</translation>
diff --git a/chromeos/strings/chromeos_strings_as.xtb b/chromeos/strings/chromeos_strings_as.xtb index 4d4b8b2..24ac7b8 100644 --- a/chromeos/strings/chromeos_strings_as.xtb +++ b/chromeos/strings/chromeos_strings_as.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">স্কেনাৰ বিচাৰি থকা হৈছে</translation> <translation id="3226657629376379887">লে’আউট সম্পৰ্কীয় কাৰ্যৰ মেনু</translation> <translation id="3246869037381808805">১ দিনতকৈ পুৰণি প্ৰিণ্ট কাৰ্যসমূহ আঁতৰোৱা হ’ব</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" />ৰ বিশেষ</translation> <translation id="3268178239013324452">বিফল হৈছে - দুৱাৰ খোল খাই আছে</translation> <translation id="3275729367986477355">অৱতাৰৰ প্ৰতিচ্ছবি</translation> <translation id="3283504360622356314">{0,plural, =1{ফাইল সম্পাদনা কৰক}one{ফাইলসমূহ সম্পাদনা কৰক}other{ফাইলসমূহ সম্পাদনা কৰক}}</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb index 3179cc7c..de6a27d7 100644 --- a/chromeos/strings/chromeos_strings_az.xtb +++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Skanerlər axtarılır</translation> <translation id="3226657629376379887">Tərtibat üzrə əməliyyatlar menyusu</translation> <translation id="3246869037381808805">1 gündən köhnə çap işləri silinəcək</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> üçün eksklüziv</translation> <translation id="3268178239013324452">Alınmadı - Qapı açıqdır</translation> <translation id="3275729367986477355">Avatar şəkli</translation> <translation id="3283504360622356314">{0,plural, =1{Faylı redaktə edin}other{Faylları redaktə edin}}</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb index 59e9c04..477260d 100644 --- a/chromeos/strings/chromeos_strings_be.xtb +++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Ідзе пошук сканераў</translation> <translation id="3226657629376379887">Меню дзеянняў з макетам</translation> <translation id="3246869037381808805">Заданні друку, старэйшыя за 1 дзень, будуць выдалены</translation> -<translation id="3248223063252096240">Эксклюзіўнае змесціва <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Збой: дзверцы прынтара адкрыты</translation> <translation id="3275729367986477355">Відарыс аватара</translation> <translation id="3283504360622356314">{0,plural, =1{Змяніць файл}one{Змяніць файлы}few{Змяніць файлы}many{Змяніць файлы}other{Змяніць файлы}}</translation>
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb index 423ebcd..eeb1448 100644 --- a/chromeos/strings/chromeos_strings_bg.xtb +++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Търсят се скенери</translation> <translation id="3226657629376379887">Меню с действия за оформлението</translation> <translation id="3246869037381808805">Заданията за отпечатване, по-стари от 1 ден, ще бъдат премахнати</translation> -<translation id="3248223063252096240">Специално за <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Неуспешно – вратичката е отворена</translation> <translation id="3275729367986477355">Изображение на аватара</translation> <translation id="3283504360622356314">{0,plural, =1{Редактиране на файла}other{Редактиране на файловете}}</translation>
diff --git a/chromeos/strings/chromeos_strings_bn.xtb b/chromeos/strings/chromeos_strings_bn.xtb index 46e08f8..f4b4335 100644 --- a/chromeos/strings/chromeos_strings_bn.xtb +++ b/chromeos/strings/chromeos_strings_bn.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">স্ক্যানার খোঁজা হচ্ছে</translation> <translation id="3226657629376379887">লেআউট অ্যাকশন মেনু</translation> <translation id="3246869037381808805">১ দিনের বেশি পুরনো প্রিন্ট জব সরিয়ে দেওয়া হবে</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> এক্সক্লুসিভ</translation> <translation id="3268178239013324452">প্রিন্ট করা যায়নি - প্রিন্টারের ঢাকনা ভাল করে বন্ধ করা হয়নি</translation> <translation id="3275729367986477355">অবতারের ছবি</translation> <translation id="3283504360622356314">{0,plural, =1{ফাইলটি এডিট করুন}one{ফাইলগুলি এডিট করুন}other{ফাইলগুলি এডিট করুন}}</translation>
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb index e0251c8..ecdaab5 100644 --- a/chromeos/strings/chromeos_strings_bs.xtb +++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Traženje skenera</translation> <translation id="3226657629376379887">Raspored menija radnji</translation> <translation id="3246869037381808805">Zadaci za štampanje stariji od 1 dana će se ukloniti</translation> -<translation id="3248223063252096240">Ekskluzivno za <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Nije uspjelo – poklopac je otvoren</translation> <translation id="3275729367986477355">Slika avatara</translation> <translation id="3283504360622356314">{0,plural, =1{Uredi fajl}one{Uredi fajlove}few{Uredi fajlove}other{Uredi fajlove}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb index fb7fe9b1..f917a48d2 100644 --- a/chromeos/strings/chromeos_strings_ca.xtb +++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">S'estan cercant escàners</translation> <translation id="3226657629376379887">Menú d'accions de disseny</translation> <translation id="3246869037381808805">Se suprimiran les tasques d'impressió amb una antiguitat superior a 1 dia</translation> -<translation id="3248223063252096240">Exclusives de <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Error: porta oberta</translation> <translation id="3275729367986477355">Imatge d'avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Edita el fitxer}other{Edita els fitxers}}</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb index 6a6e83c..b9adc566 100644 --- a/chromeos/strings/chromeos_strings_cs.xtb +++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Vyhledávání skenerů</translation> <translation id="3226657629376379887">Nabídka akcí s rozvržením</translation> <translation id="3246869037381808805">Tiskové úlohy starší než 1 den budou odstraněny</translation> -<translation id="3248223063252096240">Exkluzivní pro <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Tisk selhal – jsou otevřená dvířka</translation> <translation id="3275729367986477355">Obrázek avatara</translation> <translation id="3283504360622356314">{0,plural, =1{Upravit soubor}few{Upravit soubory}many{Upravit soubory}other{Upravit soubory}}</translation>
diff --git a/chromeos/strings/chromeos_strings_cy.xtb b/chromeos/strings/chromeos_strings_cy.xtb index 2ed2a4c..acafbd2 100644 --- a/chromeos/strings/chromeos_strings_cy.xtb +++ b/chromeos/strings/chromeos_strings_cy.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Wrthi'n chwilio am sganwyr</translation> <translation id="3226657629376379887">Dewislen gweithredoedd cynllun</translation> <translation id="3246869037381808805">Bydd tasgau argraffu sy'n hŷn nag 1 diwrnod yn cael eu dileu</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> unigryw</translation> <translation id="3268178239013324452">Wedi methu - Drws ar agor</translation> <translation id="3275729367986477355">Llun rhithffurf</translation> <translation id="3283504360622356314">{0,plural, =1{Golygu'r ffeil}zero{Golygu ffeiliau}two{Golygu ffeiliau}few{Golygu ffeiliau}many{Golygu ffeiliau}other{Golygu ffeiliau}}</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb index e8cdd102..cfbb611 100644 --- a/chromeos/strings/chromeos_strings_da.xtb +++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Søger efter scannere</translation> <translation id="3226657629376379887">Handlingsmenu for layout</translation> <translation id="3246869037381808805">Udskriftjobs, der er ældre end 1 dag, fjernes</translation> -<translation id="3248223063252096240">Kun på <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Handlingen mislykkedes – Åben låge</translation> <translation id="3275729367986477355">Billede til avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Rediger fil}one{Rediger fil}other{Rediger filer}}</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb index 74645c1..17bdbce5 100644 --- a/chromeos/strings/chromeos_strings_de.xtb +++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Suche nach Scannern läuft</translation> <translation id="3226657629376379887">Layout-Aktionsmenü</translation> <translation id="3246869037381808805">Druckaufträge, die älter als 1 Tag sind, werden entfernt</translation> -<translation id="3248223063252096240">Exklusiv für <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Fehlgeschlagen – Druckerklappe offen</translation> <translation id="3275729367986477355">Avatarbild</translation> <translation id="3283504360622356314">{0,plural, =1{Datei bearbeiten}other{Dateien bearbeiten}}</translation>
diff --git a/chromeos/strings/chromeos_strings_el.xtb b/chromeos/strings/chromeos_strings_el.xtb index 2f083cb3..04cfb90 100644 --- a/chromeos/strings/chromeos_strings_el.xtb +++ b/chromeos/strings/chromeos_strings_el.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Αναζήτηση για σαρωτές</translation> <translation id="3226657629376379887">Μενού ενεργειών διάταξης</translation> <translation id="3246869037381808805">Οι εργασίες εκτύπωσης που είναι παλαιότερες της 1 ημέρας θα καταργηθούν.</translation> -<translation id="3248223063252096240">Διατίθεται αποκλειστικά σε <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Σφάλμα - Η θύρα είναι ανοικτή</translation> <translation id="3275729367986477355">Εικόνα avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Επεξεργασία αρχείου}other{Επεξεργασία αρχείων}}</translation>
diff --git a/chromeos/strings/chromeos_strings_en-GB.xtb b/chromeos/strings/chromeos_strings_en-GB.xtb index 874bc12..fbbd5d6 100644 --- a/chromeos/strings/chromeos_strings_en-GB.xtb +++ b/chromeos/strings/chromeos_strings_en-GB.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Looking for scanners</translation> <translation id="3226657629376379887">Layout actions menu</translation> <translation id="3246869037381808805">Print jobs older than 1 day will be removed</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> exclusive</translation> <translation id="3268178239013324452">Failed – Door open</translation> <translation id="3275729367986477355">Avatar image</translation> <translation id="3283504360622356314">{0,plural, =1{Edit file}other{Edit files}}</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb index 529589d..e44d5a1 100644 --- a/chromeos/strings/chromeos_strings_es-419.xtb +++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Buscando escáneres</translation> <translation id="3226657629376379887">Menú de acciones de diseño</translation> <translation id="3246869037381808805">Se quitarán los trabajos de impresión que tengan más de 1 día</translation> -<translation id="3248223063252096240">Contenido exclusivo de <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Error: La tapa está abierta</translation> <translation id="3275729367986477355">Imagen de avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Editar archivo}other{Editar archivos}}</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb index c0e6c39..d0ae92c 100644 --- a/chromeos/strings/chromeos_strings_es.xtb +++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Buscando escáneres</translation> <translation id="3226657629376379887">Menú de acciones de diseño</translation> <translation id="3246869037381808805">Los trabajos de impresión con más de 1 día de antigüedad se eliminarán</translation> -<translation id="3248223063252096240">Exclusivos de <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">No se ha podido imprimir - Cierra la cubierta</translation> <translation id="3275729367986477355">Imagen del avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Editar archivo}other{Editar archivos}}</translation>
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb index 1aa0eb1..bf0b509 100644 --- a/chromeos/strings/chromeos_strings_et.xtb +++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Skannerite otsimine</translation> <translation id="3226657629376379887">Paigutuse toimingute menüü</translation> <translation id="3246869037381808805">Prinditööd, mis on vanemad kui 1 päev, eemaldatakse</translation> -<translation id="3248223063252096240">Eksklusiivselt teenuses <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Ebaõnnestus – luuk on avatud</translation> <translation id="3275729367986477355">Avatari pilt</translation> <translation id="3283504360622356314">{0,plural, =1{Muuda faili}other{Muuda faile}}</translation>
diff --git a/chromeos/strings/chromeos_strings_eu.xtb b/chromeos/strings/chromeos_strings_eu.xtb index 8c3fbd4..058d058d 100644 --- a/chromeos/strings/chromeos_strings_eu.xtb +++ b/chromeos/strings/chromeos_strings_eu.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Eskanerren bila</translation> <translation id="3226657629376379887">Diseinuaren ekintza-menua</translation> <translation id="3246869037381808805">Egun bat baino gehiagoko inprimatze-lanak kendu egingo dira</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> gailuko esklusiboak</translation> <translation id="3268178239013324452">Hutsegitea - Atea irekita dago</translation> <translation id="3275729367986477355">Abatarra</translation> <translation id="3283504360622356314">{0,plural, =1{Editatu fitxategia}other{Editatu fitxategiak}}</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb index 45ce7db..148e18b 100644 --- a/chromeos/strings/chromeos_strings_fa.xtb +++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">درحال جستجوی اسکنرها</translation> <translation id="3226657629376379887">منوی کنشهای طرحبندی</translation> <translation id="3246869037381808805">کارهای چاپ قدیمیتر از ۱ روز برداشته میشوند</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> انحصاری</translation> <translation id="3268178239013324452">انجام نشد - در باز است</translation> <translation id="3275729367986477355">تصویر چهرهنما</translation> <translation id="3283504360622356314">{0,plural, =1{ویرایش فایل}one{ویرایش فایل}other{ویرایش فایلها}}</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb index fb9e5320..39e0cd79 100644 --- a/chromeos/strings/chromeos_strings_fi.xtb +++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Haetaan skannereita</translation> <translation id="3226657629376379887">Asettelun toimintovalikko</translation> <translation id="3246869037381808805">Yli päivän vanhat tulostustyöt poistetaan</translation> -<translation id="3248223063252096240">Vain <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Epäonnistui – Luukku auki</translation> <translation id="3275729367986477355">Avatar-kuva</translation> <translation id="3283504360622356314">{0,plural, =1{Muokkaa tiedostoa}other{Muokkaa tiedostoja}}</translation>
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb index f6e4132..b45610a 100644 --- a/chromeos/strings/chromeos_strings_fil.xtb +++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Naghahanap ng mga scanner</translation> <translation id="3226657629376379887">Menu ng mga pagkilos sa layout</translation> <translation id="3246869037381808805">Aalisin ang mga pag-print na lampas 1 araw na</translation> -<translation id="3248223063252096240">Eksklusibo sa <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Hindi na-print - Nakabukas ang takip</translation> <translation id="3275729367986477355">Larawan ng avatar</translation> <translation id="3283504360622356314">{0,plural, =1{I-edit ang file}one{I-edit ang mga file}other{I-edit ang mga file}}</translation>
diff --git a/chromeos/strings/chromeos_strings_fr-CA.xtb b/chromeos/strings/chromeos_strings_fr-CA.xtb index 6cca047c..bf8367e 100644 --- a/chromeos/strings/chromeos_strings_fr-CA.xtb +++ b/chromeos/strings/chromeos_strings_fr-CA.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Recherche de numériseurs en cours…</translation> <translation id="3226657629376379887">Menu des actions de mise en page</translation> <translation id="3246869037381808805">Les tâches d'impression de plus d'un jour seront retirées</translation> -<translation id="3248223063252096240">éléments exclusifs <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Échec : porte de l'imprimante ouverte</translation> <translation id="3275729367986477355">Image d'avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Modifier le fichier}one{Modifier le fichier}other{Modifier les fichiers}}</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb index e0bd0be..fe0fc95 100644 --- a/chromeos/strings/chromeos_strings_fr.xtb +++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Recherche de scanners…</translation> <translation id="3226657629376379887">Menu d'actions de la mise en page</translation> <translation id="3246869037381808805">Les tâches d'impression de plus d'un jour seront supprimées</translation> -<translation id="3248223063252096240">Exclusivité <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Échec – Capot de l'imprimante ouvert</translation> <translation id="3275729367986477355">Image d'avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Modifier le fichier}one{Modifier le fichier}other{Modifier les fichiers}}</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb index 9a0a68c916..40ec82f9 100644 --- a/chromeos/strings/chromeos_strings_gl.xtb +++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Buscando escáneres</translation> <translation id="3226657629376379887">Menú de accións de deseño</translation> <translation id="3246869037381808805">Quitaranse os traballos de impresión de máis de 1 día</translation> -<translation id="3248223063252096240">Exclusivos de <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Produciuse un erro: a tapa da impresora está aberta</translation> <translation id="3275729367986477355">Imaxe de avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Editar ficheiro}other{Editar ficheiros}}</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb index 2729d82..8b8511d4 100644 --- a/chromeos/strings/chromeos_strings_gu.xtb +++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">સ્કૅનર શોધી રહ્યાં છીએ</translation> <translation id="3226657629376379887">લેઆઉટ ક્રિયા મેનૂ</translation> <translation id="3246869037381808805">1 દિવસ કરતાં જૂના પ્રિન્ટ કાર્યો કાઢી નાખવામાં આવશે</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" />માટે વિશિષ્ટ</translation> <translation id="3268178239013324452">નિષ્ફળ રહ્યું - પ્રિન્ટરનું ઢાંકણ ખૂલ્લું છે</translation> <translation id="3275729367986477355">અવતારની છબી</translation> <translation id="3283504360622356314">{0,plural, =1{ફાઇલમાં ફેરફાર કરો}one{ફાઇલમાં ફેરફાર કરો}other{ફાઇલમાં ફેરફાર કરો}}</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb index 4b67aa3..c42314a8 100644 --- a/chromeos/strings/chromeos_strings_hi.xtb +++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">स्कैनर खोजे जा रहे हैं</translation> <translation id="3226657629376379887">लेआउट ऐक्शन मेन्यू</translation> <translation id="3246869037381808805">एक दिन से ज़्यादा पुरानी, प्रिंट की गई फ़ाइलों को हटा दिया जाएगा</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> के लिए खास</translation> <translation id="3268178239013324452">प्रिंट नहीं हो पाया - प्रिंटर का दरवाज़ा खुला है</translation> <translation id="3275729367986477355">अवतार इमेज की सेटिंग पर जाएं</translation> <translation id="3283504360622356314">{0,plural, =1{फ़ाइल में बदलाव करें}one{फ़ाइल में बदलाव करें}other{फ़ाइलों में बदलाव करें}}</translation>
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb index d04c22b..e16c2e4 100644 --- a/chromeos/strings/chromeos_strings_hr.xtb +++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Traženje skenera</translation> <translation id="3226657629376379887">Izbornik aktivnosti izgleda</translation> <translation id="3246869037381808805">Uklonit će se zadaci ispisa stariji od jednog dana</translation> -<translation id="3248223063252096240">Ekskluzivno za <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Nije uspjelo – vratašca su otvorena</translation> <translation id="3275729367986477355">Slika avatara</translation> <translation id="3283504360622356314">{0,plural, =1{Uredi datoteku}one{Uredi datoteke}few{Uredi datoteke}other{Uredi datoteke}}</translation>
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb index 2e97233..7f08a05 100644 --- a/chromeos/strings/chromeos_strings_hu.xtb +++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Szkennerek keresése</translation> <translation id="3226657629376379887">Elrendezésműveletek menüje</translation> <translation id="3246869037381808805">Az 1 napnál régebbi nyomtatási feladatokat eltávolítja a rendszer</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> exkluzív</translation> <translation id="3268178239013324452">Sikertelen – Nyitva van a nyomtató fedele</translation> <translation id="3275729367986477355">Avatarkép</translation> <translation id="3283504360622356314">{0,plural, =1{Fájl szerkesztése}other{Fájlok szerkesztése}}</translation>
diff --git a/chromeos/strings/chromeos_strings_hy.xtb b/chromeos/strings/chromeos_strings_hy.xtb index 4ffd5925..f5b89d4d 100644 --- a/chromeos/strings/chromeos_strings_hy.xtb +++ b/chromeos/strings/chromeos_strings_hy.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Սկաներների որոնում</translation> <translation id="3226657629376379887">Դասավորության գործողությունների ընտրացանկ</translation> <translation id="3246869037381808805">Տպման առաջադրանքները, որոնք 1 օրից հին են, կհեռացվեն</translation> -<translation id="3248223063252096240">Միայն <ph name="PRODUCT_NAME" />-ի համար</translation> <translation id="3268178239013324452">Չհաջողվեց տպել – Կափարիչը բաց է</translation> <translation id="3275729367986477355">Ավատարի պատկեր</translation> <translation id="3283504360622356314">{0,plural, =1{Փոփոխել ֆայլը}one{Փոփոխել ֆայլերը}other{Փոփոխել ֆայլերը}}</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb index 231f051..a50a477b 100644 --- a/chromeos/strings/chromeos_strings_id.xtb +++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Mencari pemindai</translation> <translation id="3226657629376379887">Menu tindakan tata letak</translation> <translation id="3246869037381808805">Tugas pencetakan yang sudah lebih dari 1 hari akan dihapus</translation> -<translation id="3248223063252096240">Eksklusif untuk <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Gagal - Tutup terbuka</translation> <translation id="3275729367986477355">Gambar avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Edit file}other{Edit file}}</translation>
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb index f7d77a7..ffbd9ef 100644 --- a/chromeos/strings/chromeos_strings_is.xtb +++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Leitar að skönnum</translation> <translation id="3226657629376379887">Aðgerðavalmynd uppsetningar</translation> <translation id="3246869037381808805">Prentverk sem eru meira en 1 dags gömul verða fjarlægð</translation> -<translation id="3248223063252096240">Sérstaklega fyrir <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Mistókst – hlíf er opin</translation> <translation id="3275729367986477355">Notandamynd</translation> <translation id="3283504360622356314">{0,plural, =1{Breyta skrá}one{Breyta skrám}other{Breyta skrám}}</translation>
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb index 846eb79d..e12b9b2 100644 --- a/chromeos/strings/chromeos_strings_it.xtb +++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Ricerca di scanner in corso…</translation> <translation id="3226657629376379887">Menu azioni del layout</translation> <translation id="3246869037381808805">I processi di stampa risalenti a oltre 1 giorno fa verranno rimossi</translation> -<translation id="3248223063252096240">Esclusivo di <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Operazione non riuscita - Sportello aperto</translation> <translation id="3275729367986477355">Immagine avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Modifica file}other{Modifica file}}</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb index 66ca925b..0f149bad 100644 --- a/chromeos/strings/chromeos_strings_iw.xtb +++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">מתבצע חיפוש של סורקים</translation> <translation id="3226657629376379887">תפריט הפעולות בפריסה</translation> <translation id="3246869037381808805">משימות הדפסה בנות יותר מיום אחד יוסרו</translation> -<translation id="3248223063252096240">בלעדי ל-<ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">נכשלה – דלת המדפסת פתוחה</translation> <translation id="3275729367986477355">תמונת הדמות</translation> <translation id="3283504360622356314">{0,plural, =1{עריכת הקובץ}one{עריכת הקבצים}two{עריכת הקבצים}other{עריכת הקבצים}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb index 514a89f5..5467ac4 100644 --- a/chromeos/strings/chromeos_strings_ja.xtb +++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">スキャナを検索しています</translation> <translation id="3226657629376379887">レイアウトの操作メニュー</translation> <translation id="3246869037381808805">昨日より前の印刷ジョブは削除されます</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> 限定</translation> <translation id="3268178239013324452">失敗 - 扉が開いています</translation> <translation id="3275729367986477355">アバターの画像</translation> <translation id="3283504360622356314">{0,plural, =1{ファイルを編集}other{ファイルを編集}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb index a313f13b98..d5580d18 100644 --- a/chromeos/strings/chromeos_strings_ka.xtb +++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">მიმდინარეობს სკანერების ძიება</translation> <translation id="3226657629376379887">განლაგებასთან დაკავშირებული მოქმედებების მენიუ</translation> <translation id="3246869037381808805">ბეჭდვის 1 დღეზე ძველი დავალებები ამოიშლება</translation> -<translation id="3248223063252096240">ექსკლუზიურად <ph name="PRODUCT_NAME" />-ზე</translation> <translation id="3268178239013324452">ვერ მოხერხდა — პრინტერის კარი ღიაა</translation> <translation id="3275729367986477355">ავატარის სურათი</translation> <translation id="3283504360622356314">{0,plural, =1{ფაილის რედაქტირება}other{ფაილების რედაქტირება}}</translation>
diff --git a/chromeos/strings/chromeos_strings_kk.xtb b/chromeos/strings/chromeos_strings_kk.xtb index 23d0265..f62c67a 100644 --- a/chromeos/strings/chromeos_strings_kk.xtb +++ b/chromeos/strings/chromeos_strings_kk.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Сканерлер ізделуде</translation> <translation id="3226657629376379887">Форматтың әрекеттер мәзірі</translation> <translation id="3246869037381808805">1 күннен асқан баспа жұмыстары өшіріледі.</translation> -<translation id="3248223063252096240">Тек <ph name="PRODUCT_NAME" /> үшін</translation> <translation id="3268178239013324452">Сәтсіз: есігі ашық</translation> <translation id="3275729367986477355">Аватар суреті</translation> <translation id="3283504360622356314">{0,plural, =1{Файлды өзгерту}other{Файлдарды өзгерту}}</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb index 13929721..7f0d57c0 100644 --- a/chromeos/strings/chromeos_strings_km.xtb +++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">កំពុងរកមើលម៉ាស៊ីនស្កេន</translation> <translation id="3226657629376379887">ម៉ឺនុយសកម្មភាពប្លង់</translation> <translation id="3246869037381808805">កិច្ចការបោះពុម្ពដែលចាស់ជាង 1 ថ្ងៃនឹងត្រូវលុបចេញ</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> ផ្ដាច់មុខ</translation> <translation id="3268178239013324452">មិនបានសម្រេច - ទ្វារចំហ</translation> <translation id="3275729367986477355">រូបតំណាង</translation> <translation id="3283504360622356314">{0,plural, =1{កែឯកសារ}other{កែឯកសារ}}</translation>
diff --git a/chromeos/strings/chromeos_strings_kn.xtb b/chromeos/strings/chromeos_strings_kn.xtb index 17ffa7b8..834f335 100644 --- a/chromeos/strings/chromeos_strings_kn.xtb +++ b/chromeos/strings/chromeos_strings_kn.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">ಸ್ಕ್ಯಾನರ್ಗಳಿಗಾಗಿ ಹುಡುಕಲಾಗುತ್ತಿದೆ</translation> <translation id="3226657629376379887">ಲೇಔಟ್ ಕ್ರಿಯೆಗಳ ಮೆನು</translation> <translation id="3246869037381808805">1 ದಿನಕ್ಕಿಂತ ಹಳೆಯದಾದ ಮುದ್ರಣ ಕಾರ್ಯಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> ಎಕ್ಸ್ಕ್ಲೂಸಿವ್</translation> <translation id="3268178239013324452">ವಿಫಲವಾಗಿದೆ - ಡೋರ್ ತೆರೆದಿದೆ</translation> <translation id="3275729367986477355">ಅವತಾರ್ ಚಿತ್ರ</translation> <translation id="3283504360622356314">{0,plural, =1{ಫೈಲ್ ಎಡಿಟ್ ಮಾಡಿ}one{ಫೈಲ್ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ}other{ಫೈಲ್ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb index 92784bf..ffd6c838 100644 --- a/chromeos/strings/chromeos_strings_ko.xtb +++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">스캐너 검색 중</translation> <translation id="3226657629376379887">레이아웃 작업 메뉴</translation> <translation id="3246869037381808805">1일 이상 경과한 인쇄 작업은 삭제됩니다.</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> 전용</translation> <translation id="3268178239013324452">실패 - 덮개 열림</translation> <translation id="3275729367986477355">아바타 이미지</translation> <translation id="3283504360622356314">{0,plural, =1{파일 수정}other{파일 수정}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb index 25aa181..ac8adb2 100644 --- a/chromeos/strings/chromeos_strings_ky.xtb +++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Сканерлер изделүүдө</translation> <translation id="3226657629376379887">Калып боюнча аракеттер менюсу</translation> <translation id="3246869037381808805">1 күндөн мурунку басып чыгаруу тапшырмалары өчүрүлөт</translation> -<translation id="3248223063252096240">Өзгөчө <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Басылып чыгарылган жок - Принтердин эшиги ачык</translation> <translation id="3275729367986477355">Аватардын сүрөтү</translation> <translation id="3283504360622356314">{0,plural, =1{Файлды түзөтүү}other{Файлдарды түзөтүү}}</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb index f9093c3c..2704914 100644 --- a/chromeos/strings/chromeos_strings_lo.xtb +++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">ກຳລັງຊອກຫາເຄື່ອງສະແກນ</translation> <translation id="3226657629376379887">ເມນູຄຳສັ່ງໂຄງຮ່າງ</translation> <translation id="3246869037381808805">ວຽກພິມທີ່ເກົ່າກວ່າ 1 ມື້ຈະຖືກລຶບອອກ</translation> -<translation id="3248223063252096240">ພິເສດສະເພາະຂອງ <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">ບໍ່ສຳເລັດ, ຝາເປີດຢູ່</translation> <translation id="3275729367986477355">ຮູບແທນຕົວ</translation> <translation id="3283504360622356314">{0,plural, =1{ແກ້ໄຂໄຟລ໌}other{ແກ້ໄຂໄຟລ໌}}</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb index fc9e810..a2274b3 100644 --- a/chromeos/strings/chromeos_strings_lt.xtb +++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Ieškoma skaitytuvų</translation> <translation id="3226657629376379887">Išdėstymo veiksmų meniu</translation> <translation id="3246869037381808805">Senesnės nei 1 dienos spausdinimo užduotys bus pašalintos</translation> -<translation id="3248223063252096240">Skirta tik „<ph name="PRODUCT_NAME" />“</translation> <translation id="3268178239013324452">Nepavyko – atidarytos durelės</translation> <translation id="3275729367986477355">Pseudoportreto vaizdas</translation> <translation id="3283504360622356314">{0,plural, =1{Redaguoti failą}one{Redaguoti failus}few{Redaguoti failus}many{Redaguoti failus}other{Redaguoti failus}}</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb index 812ac9d..a67d592 100644 --- a/chromeos/strings/chromeos_strings_lv.xtb +++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Notiek skeneru meklēšana…</translation> <translation id="3226657629376379887">Izkārtojuma darbību izvēlne</translation> <translation id="3246869037381808805">Drukas uzdevumi, kas ir vecāki par vienu dienu, tiks noņemti</translation> -<translation id="3248223063252096240">Tikai <ph name="PRODUCT_NAME" /> datoriem</translation> <translation id="3268178239013324452">Neizdevās — durtiņas ir atvērtas</translation> <translation id="3275729367986477355">Iemiesojuma attēls</translation> <translation id="3283504360622356314">{0,plural, =1{Rediģēt failu}zero{Rediģēt failus}one{Rediģēt failus}other{Rediģēt failus}}</translation>
diff --git a/chromeos/strings/chromeos_strings_mk.xtb b/chromeos/strings/chromeos_strings_mk.xtb index 6ecd2ff..6a49a37e 100644 --- a/chromeos/strings/chromeos_strings_mk.xtb +++ b/chromeos/strings/chromeos_strings_mk.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Се бараат скенери</translation> <translation id="3226657629376379887">Мени на дејства за распоред</translation> <translation id="3246869037381808805">Задачите за печатење постари од 1 ден ќе се отстранат</translation> -<translation id="3248223063252096240">Ексклузивно за <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Неуспешно - вратата е отворена</translation> <translation id="3275729367986477355">Слика за аватар</translation> <translation id="3283504360622356314">{0,plural, =1{Измени датотека}one{Измени датотеки}other{Измени датотеки}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb index 2c18b73e..89f68ce8 100644 --- a/chromeos/strings/chromeos_strings_ml.xtb +++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">സ്കാനറുകൾ തിരയുന്നു</translation> <translation id="3226657629376379887">ലേഔട്ട് പ്രവർത്തന മെനു</translation> <translation id="3246869037381808805">1 ദിവസം മുമ്പുള്ള പ്രിന്റ് ജോലികൾ നീക്കം ചെയ്യും</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> എക്സ്ക്ലൂസീവ്</translation> <translation id="3268178239013324452">പ്രിന്റ് ചെയ്യാനായില്ല - വാതിൽ തുറന്നിരിക്കുന്നു</translation> <translation id="3275729367986477355">അവതാർ ചിത്രം</translation> <translation id="3283504360622356314">{0,plural, =1{ഫയൽ എഡിറ്റ് ചെയ്യുക}other{ഫയലുകൾ എഡിറ്റ് ചെയ്യുക}}</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb index 70403a4..3802470 100644 --- a/chromeos/strings/chromeos_strings_mn.xtb +++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Сканнерыг хайж байна</translation> <translation id="3226657629376379887">Бүдүүвчийн үйлдлийн цэс</translation> <translation id="3246869037381808805">1 хоногоос дээш хугацаагаар хадгалсан хэвлэлийн ажлуудыг хасах болно</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" />-н онцгой</translation> <translation id="3268178239013324452">Амжилтгүй болсон - Таг нээлттэй</translation> <translation id="3275729367986477355">Аватар зураг</translation> <translation id="3283504360622356314">{0,plural, =1{Файлыг засах}other{Файлуудыг засах}}</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb index 9a448dc..f416ff3b 100644 --- a/chromeos/strings/chromeos_strings_mr.xtb +++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">स्कॅनर शोधत आहे</translation> <translation id="3226657629376379887">लेआउट अॅक्शन मेनू</translation> <translation id="3246869037381808805">एक दिवसापेक्षा जुने प्रिंट जॉब काढून टाकले जातील</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> विशेष</translation> <translation id="3268178239013324452">अयशस्वी झाले - दार उघडे आहे</translation> <translation id="3275729367986477355">अवतार इमेज</translation> <translation id="3283504360622356314">{0,plural, =1{फाइल संपादित करा}other{फाइल संपादित करा}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb index 64ad7b9..de83da8 100644 --- a/chromeos/strings/chromeos_strings_ms.xtb +++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Mencari pengimbas</translation> <translation id="3226657629376379887">Menu tindakan reka letak</translation> <translation id="3246869037381808805">Tugas cetak yang melebihi 1 hari akan dialih keluar</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> eksklusif</translation> <translation id="3268178239013324452">Gagal - Pintu terbuka</translation> <translation id="3275729367986477355">Imej avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Edit fail}other{Edit fail}}</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb index db6272f..0f1ce18 100644 --- a/chromeos/strings/chromeos_strings_my.xtb +++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">စကင်ဖတ်စက်များ ရှာနေသည်</translation> <translation id="3226657629376379887">အပြင်အဆင် လုပ်ဆောင်ချက် မီနူး</translation> <translation id="3246869037381808805">1 ရက်အထက် ပရင့်ထုတ်ရန်ဖိုင်များကို ဖယ်ရှားပါမည်</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> အထူးသီးသန့်</translation> <translation id="3268178239013324452">မအောင်မြင်ပါ - တံခါးပွင့်နေသည်</translation> <translation id="3275729367986477355">ချန်နယ်ပုံ</translation> <translation id="3283504360622356314">{0,plural, =1{ဖိုင် တည်းဖြတ်ရန်}other{ဖိုင်များ တည်းဖြတ်ရန်}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb index 6935f3f..175eca51 100644 --- a/chromeos/strings/chromeos_strings_ne.xtb +++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">स्क्यानरहरू खोजिँदै छ</translation> <translation id="3226657629376379887">लेआउट एक्सन मेनु</translation> <translation id="3246869037381808805">१ दिनभन्दा पहिलेका प्रिन्टसम्बन्धी कार्यहरू हटाइने छन्</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> को खास सामग्री</translation> <translation id="3268178239013324452">प्रिन्ट गर्न सकिएन - प्रिन्टरको कभर खुला छ</translation> <translation id="3275729367986477355">अवतारको फोटो</translation> <translation id="3283504360622356314">{0,plural, =1{फाइल सम्पादन गर्नुहोस्}other{फाइलहरू सम्पादन गर्नुहोस्}}</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb index 625fb314..5b53ce4 100644 --- a/chromeos/strings/chromeos_strings_nl.xtb +++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Zoeken naar scanners</translation> <translation id="3226657629376379887">Actiemenu voor indeling</translation> <translation id="3246869037381808805">Afdruktaken ouder dan 1 dag worden verwijderd</translation> -<translation id="3248223063252096240">Exclusief voor <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Mislukt - Klep geopend</translation> <translation id="3275729367986477355">Avatar-afbeelding</translation> <translation id="3283504360622356314">{0,plural, =1{Bestand bewerken}other{Bestanden bewerken}}</translation>
diff --git a/chromeos/strings/chromeos_strings_no.xtb b/chromeos/strings/chromeos_strings_no.xtb index e881f61..5b6cca6 100644 --- a/chromeos/strings/chromeos_strings_no.xtb +++ b/chromeos/strings/chromeos_strings_no.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Ser etter skannere</translation> <translation id="3226657629376379887">Handlingsmeny for layout</translation> <translation id="3246869037381808805">Utskriftsjobber som er eldre enn 1 dag, blir fjernet</translation> -<translation id="3248223063252096240">Kun på <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Mislykket – luken er åpen</translation> <translation id="3275729367986477355">Brukerbilde</translation> <translation id="3283504360622356314">{0,plural, =1{Rediger filen}other{Rediger filene}}</translation>
diff --git a/chromeos/strings/chromeos_strings_or.xtb b/chromeos/strings/chromeos_strings_or.xtb index 461db15..cc89cb9 100644 --- a/chromeos/strings/chromeos_strings_or.xtb +++ b/chromeos/strings/chromeos_strings_or.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">ସ୍କାନରଗୁଡ଼ିକୁ ଖୋଜାଯାଉଛି</translation> <translation id="3226657629376379887">ଲେଆଉଟ ଆକ୍ସନ ମେନୁ</translation> <translation id="3246869037381808805">1ଦିନରୁ ଅଧିକ ପୁରୁଣା ପ୍ରିଣ୍ଟ କାର୍ଯ୍ୟଗୁଡ଼ିକୁ କାଢ଼ି ଦିଆଯିବ</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> ଏକ୍ସକ୍ଲୁସିଭ</translation> <translation id="3268178239013324452">ବିଫଳ ହୋଇଛି - ପ୍ରିଣ୍ଟରର କଭର୍ ଖୋଲା ଅଛି</translation> <translation id="3275729367986477355">ଅବତାର ଇମେଜ</translation> <translation id="3283504360622356314">{0,plural, =1{ଫାଇଲକୁ ଏଡିଟ୍ କରନ୍ତୁ}other{ଫାଇଲଗୁଡ଼ିକୁ ଏଡିଟ୍ କରନ୍ତୁ}}</translation>
diff --git a/chromeos/strings/chromeos_strings_pa.xtb b/chromeos/strings/chromeos_strings_pa.xtb index c30e0674b..0e99b9a 100644 --- a/chromeos/strings/chromeos_strings_pa.xtb +++ b/chromeos/strings/chromeos_strings_pa.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">ਸਕੈਨਰ ਲੱਭੇ ਜਾ ਰਹੇ ਹਨ</translation> <translation id="3226657629376379887">ਖਾਕਾ ਕਾਰਵਾਈ ਮੀਨੂ</translation> <translation id="3246869037381808805">1 ਦਿਨ ਤੋਂ ਜ਼ਿਆਦਾ ਪੁਰਾਣੀਆਂ ਪ੍ਰਿੰਟ ਜੌਬਾਂ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> ਵਿਸ਼ੇਸ਼</translation> <translation id="3268178239013324452">ਅਸਫਲ ਰਹੀ - ਢੱਕਣ ਖੁੱਲ੍ਹਾ ਹੈ</translation> <translation id="3275729367986477355">ਅਵਤਾਰ ਚਿੱਤਰ</translation> <translation id="3283504360622356314">{0,plural, =1{ਫ਼ਾਈਲ ਦਾ ਸੰਪਾਦਨ ਕਰੋ}one{ਫ਼ਾਈਲ ਦਾ ਸੰਪਾਦਨ ਕਰੋ}other{ਫ਼ਾਈਲਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰੋ}}</translation>
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb index 761f129..623440ae 100644 --- a/chromeos/strings/chromeos_strings_pl.xtb +++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Szukam skanerów</translation> <translation id="3226657629376379887">Menu działań dotyczących układu</translation> <translation id="3246869037381808805">Zadania drukowania starsze niż 1 dzień zostaną usunięte</translation> -<translation id="3248223063252096240">Tylko na urządzenie <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Niepowodzenie – otwarte drzwiczki drukarki</translation> <translation id="3275729367986477355">Awatar</translation> <translation id="3283504360622356314">{0,plural, =1{Edytuj plik}few{Edytuj pliki}many{Edytuj pliki}other{Edytuj pliki}}</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb index a1762de..b279aa2 100644 --- a/chromeos/strings/chromeos_strings_pt-BR.xtb +++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Procurando scanners</translation> <translation id="3226657629376379887">Menu de ações de layout</translation> <translation id="3246869037381808805">Trabalhos de impressão enviados há mais de 1 dia serão removidos</translation> -<translation id="3248223063252096240">Exclusivo do <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Falha - Porta aberta</translation> <translation id="3275729367986477355">Imagem do avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Editar arquivo}one{Editar arquivo}other{Editar arquivos}}</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-PT.xtb b/chromeos/strings/chromeos_strings_pt-PT.xtb index e85f5b7..de0c9dc2 100644 --- a/chromeos/strings/chromeos_strings_pt-PT.xtb +++ b/chromeos/strings/chromeos_strings_pt-PT.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">A procurar leitores…</translation> <translation id="3226657629376379887">Menu de ações do esquema</translation> <translation id="3246869037381808805">As tarefas de impressão com mais de um 1 dia serão removidas.</translation> -<translation id="3248223063252096240">Exclusivos do <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Falha – Porta aberta</translation> <translation id="3275729367986477355">Imagem do avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Editar ficheiro}other{Editar ficheiros}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb index 48854fcf..be5d762 100644 --- a/chromeos/strings/chromeos_strings_ro.xtb +++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Se caută scanere</translation> <translation id="3226657629376379887">Meniu de acțiuni pentru aspect</translation> <translation id="3246869037381808805">Sarcinile de printare mai vechi de o zi vor fi eliminate</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> exclusiv</translation> <translation id="3268178239013324452">Nereușită – Ușă deschisă</translation> <translation id="3275729367986477355">Imagine avatar</translation> <translation id="3283504360622356314">{0,plural, =1{Editează fișierul}few{Editează fișierele}other{Editează fișierele}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb index b4e8df3..9a23100 100644 --- a/chromeos/strings/chromeos_strings_ru.xtb +++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Поиск сканеров…</translation> <translation id="3226657629376379887">Меню действий, связанных с раскладкой</translation> <translation id="3246869037381808805">Задания печати, хранящиеся дольше 1 дня, будут удалены</translation> -<translation id="3248223063252096240">Только для <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Сбой: крышка открыта</translation> <translation id="3275729367986477355">Аватар</translation> <translation id="3283504360622356314">{0,plural, =1{Редактировать файл}one{Редактировать файлы}few{Редактировать файлы}many{Редактировать файлы}other{Редактировать файлы}}</translation>
diff --git a/chromeos/strings/chromeos_strings_si.xtb b/chromeos/strings/chromeos_strings_si.xtb index 84e2e85..5b51efcf 100644 --- a/chromeos/strings/chromeos_strings_si.xtb +++ b/chromeos/strings/chromeos_strings_si.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">ස්කෑනර සඳහා සොයමින්</translation> <translation id="3226657629376379887">පිරිසැලසුම් ක්රියා මෙනුව</translation> <translation id="3246869037381808805">දින 1කට වඩා පැරණි මුද්රණ කාර්ය ඉවත් කරනු ඇත</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> සුවිශේෂී</translation> <translation id="3268178239013324452">අසාර්ථක විය - දොර විවෘතයි</translation> <translation id="3275729367986477355">නියුරු රූපය</translation> <translation id="3283504360622356314">{0,plural, =1{ගොනුව සංස්කරණ කරන්න}one{ගොනු සංස්කරණ කරන්න}other{ගොනු සංස්කරණ කරන්න}}</translation>
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb index d0e10da1..bb4da2cb 100644 --- a/chromeos/strings/chromeos_strings_sk.xtb +++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Hľadajú sa skenery</translation> <translation id="3226657629376379887">Ponuka akcií rozloženia</translation> <translation id="3246869037381808805">Tlačové úlohy staršie ako deň budú odstránené</translation> -<translation id="3248223063252096240">Exkluzívne pre zariadenie <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Nepodarilo sa – dvierka sú otvorené</translation> <translation id="3275729367986477355">Obrázok avatara</translation> <translation id="3283504360622356314">{0,plural, =1{Upraviť súbor}few{Upraviť súbory}many{Upraviť súbory}other{Upraviť súbory}}</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb index 4d3ff66..129f496 100644 --- a/chromeos/strings/chromeos_strings_sl.xtb +++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Iskanje optičnih bralnikov</translation> <translation id="3226657629376379887">Meni z dejanji za postavitev</translation> <translation id="3246869037381808805">Izbrisana bodo tiskalna opravila, starejša od 1 dneva</translation> -<translation id="3248223063252096240">Ekskluzivno za <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Napaka – vrata so odprta</translation> <translation id="3275729367986477355">Slika avatarja</translation> <translation id="3283504360622356314">{0,plural, =1{Uredi datoteko}one{Uredi datoteke}two{Uredi datoteke}few{Uredi datoteke}other{Uredi datoteke}}</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb index 269680f..da6561da 100644 --- a/chromeos/strings/chromeos_strings_sq.xtb +++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Po kërkon për skanerë</translation> <translation id="3226657629376379887">Menyja e veprimeve të strukturës</translation> <translation id="3246869037381808805">Printimet më të vjetra se 1 ditë do të hiqen</translation> -<translation id="3248223063252096240">Ekskluzive për <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Dështoi - Kapaku i hapur</translation> <translation id="3275729367986477355">Imazhi i simbolit</translation> <translation id="3283504360622356314">{0,plural, =1{Modifiko skedarin}other{Modifiko skedarët}}</translation>
diff --git a/chromeos/strings/chromeos_strings_sr-Latn.xtb b/chromeos/strings/chromeos_strings_sr-Latn.xtb index 29ec9cd86..f755225 100644 --- a/chromeos/strings/chromeos_strings_sr-Latn.xtb +++ b/chromeos/strings/chromeos_strings_sr-Latn.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Traže se skeneri</translation> <translation id="3226657629376379887">Meni sa radnjama za raspored</translation> <translation id="3246869037381808805">Zadaci štampanja stariji od 1 dana se uklanjaju</translation> -<translation id="3248223063252096240">Ekskluzivno za <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Nije uspelo – vrata su otvorena</translation> <translation id="3275729367986477355">Slika avatara</translation> <translation id="3283504360622356314">{0,plural, =1{Izmeni fajl}one{Izmeni fajlove}few{Izmeni fajlove}other{Izmeni fajlove}}</translation>
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb index 8a0824c..fba72d2b 100644 --- a/chromeos/strings/chromeos_strings_sr.xtb +++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Траже се скенери</translation> <translation id="3226657629376379887">Мени са радњама за распоред</translation> <translation id="3246869037381808805">Задаци штампања старији од 1 дана се уклањају</translation> -<translation id="3248223063252096240">Ексклузивно за <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Није успело – врата су отворена</translation> <translation id="3275729367986477355">Слика аватара</translation> <translation id="3283504360622356314">{0,plural, =1{Измени фајл}one{Измени фајлове}few{Измени фајлове}other{Измени фајлове}}</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb index 6c60305..812cf42 100644 --- a/chromeos/strings/chromeos_strings_sv.xtb +++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Söker efter skannrar</translation> <translation id="3226657629376379887">Layoutåtgärdsmeny</translation> <translation id="3246869037381808805">Utskriftsjobb som är äldre än 1 dagar tas bort</translation> -<translation id="3248223063252096240">Exklusivt för <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Misslyckades – luckan är öppen</translation> <translation id="3275729367986477355">Avatarbild</translation> <translation id="3283504360622356314">{0,plural, =1{Redigera fil}other{Redigera filer}}</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb index dfb86928..88c370e5 100644 --- a/chromeos/strings/chromeos_strings_sw.xtb +++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Inatafuta vichanganuzi</translation> <translation id="3226657629376379887">Menyu ya vitendo vya kuweka miundo</translation> <translation id="3246869037381808805">Kazi za kuchapisha zilizohifadhiwa kwa zaidi ya siku moja zitaondolewa</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> ya kipekee</translation> <translation id="3268178239013324452">Haijakamilika - Kifuniko kimefunguka</translation> <translation id="3275729367986477355">Picha ya ishara</translation> <translation id="3283504360622356314">{0,plural, =1{Badilisha faili}other{Badilisha faili}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb index 6bae2a8..f905d003 100644 --- a/chromeos/strings/chromeos_strings_ta.xtb +++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">ஸ்கேனர்களைத் தேடுகிறது</translation> <translation id="3226657629376379887">தளவமைப்புகளுக்கான செயல்பாட்டு மெனு</translation> <translation id="3246869037381808805">1 நாளுக்கும் முன்னதாக உள்ள பிரிண்ட்டிங் பணிகள் அகற்றப்படும்</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> இன் பிரத்தியேக வீடியோக்கள்</translation> <translation id="3268178239013324452">பிரிண்டரின் மூடி திறந்துள்ளதால் அச்சிட முடியவில்லை</translation> <translation id="3275729367986477355">தோற்றப் படம்</translation> <translation id="3283504360622356314">{0,plural, =1{ஃபைலைத் திருத்துக}other{ஃபைல்களைத் திருத்துக}}</translation>
diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb index e01d4f9..8686cbb 100644 --- a/chromeos/strings/chromeos_strings_te.xtb +++ b/chromeos/strings/chromeos_strings_te.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">స్కానర్ల కోసం వెతుకుతోంది</translation> <translation id="3226657629376379887">లేఅవుట్ చర్యల మెనూ</translation> <translation id="3246869037381808805">1 రోజుకు పైగా ఉన్న ప్రింట్ టాస్క్లు తీసివేయబడతాయి</translation> -<translation id="3248223063252096240">ప్రత్యేకించి <ph name="PRODUCT_NAME" />లో మాత్రమే</translation> <translation id="3268178239013324452">విఫలమైంది - తలుపు తెరుచుకుని ఉంది</translation> <translation id="3275729367986477355">అవతార్ ఇమేజ్</translation> <translation id="3283504360622356314">{0,plural, =1{ఫైల్ను ఎడిట్ చేయండి}other{ఫైల్లను ఎడిట్ చేయండి}}</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb index e90aa3a..ea75af53 100644 --- a/chromeos/strings/chromeos_strings_th.xtb +++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">กำลังค้นหาเครื่องสแกน</translation> <translation id="3226657629376379887">เมนูการทำงานสำหรับเลย์เอาต์</translation> <translation id="3246869037381808805">ระบบจะนำงานพิมพ์ที่เก่ากว่า 1 วันออก</translation> -<translation id="3248223063252096240">สุดพิเศษจาก <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">ไม่สำเร็จ - ฝาเครื่องเปิดอยู่</translation> <translation id="3275729367986477355">รูปโปรไฟล์</translation> <translation id="3283504360622356314">{0,plural, =1{แก้ไขไฟล์}other{แก้ไขไฟล์}}</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb index 419df507..0c2c6c8 100644 --- a/chromeos/strings/chromeos_strings_tr.xtb +++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Tarayıcılar aranıyor</translation> <translation id="3226657629376379887">Düzen işlemleri menüsü</translation> <translation id="3246869037381808805">1 günden daha eski yazdırma işleri kaldırılır</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> cihazlara özel</translation> <translation id="3268178239013324452">İşlem başarısız - Kapak açık</translation> <translation id="3275729367986477355">Avatar resmi</translation> <translation id="3283504360622356314">{0,plural, =1{Dosyayı düzenle}other{Dosyaları düzenle}}</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb index c66046e1..a2ef1fba 100644 --- a/chromeos/strings/chromeos_strings_uk.xtb +++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Пошук сканерів</translation> <translation id="3226657629376379887">Меню дій для макета</translation> <translation id="3246869037381808805">Завдання друку, старіші за 1 день, буде вилучено</translation> -<translation id="3248223063252096240">Ексклюзивно для <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Не надруковано – відкрито кришку принтера</translation> <translation id="3275729367986477355">Зображення аватара</translation> <translation id="3283504360622356314">{0,plural, =1{Редагувати файл}one{Редагувати файли}few{Редагувати файли}many{Редагувати файли}other{Редагувати файли}}</translation>
diff --git a/chromeos/strings/chromeos_strings_ur.xtb b/chromeos/strings/chromeos_strings_ur.xtb index 0fa3d0b..135da787 100644 --- a/chromeos/strings/chromeos_strings_ur.xtb +++ b/chromeos/strings/chromeos_strings_ur.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">اسکینرز کی تلاش جاری ہے</translation> <translation id="3226657629376379887">لے آؤٹ کارروائیوں کا مینیو</translation> <translation id="3246869037381808805">1 دن سے پرانی پرنٹ جابز کو ہٹا دیا جائے گا</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> خاص</translation> <translation id="3268178239013324452">ناکام ہو گیا - دروازہ کھلا ہے</translation> <translation id="3275729367986477355">اوتار کی تصویر</translation> <translation id="3283504360622356314">{0,plural, =1{فائل میں ترمیم کریں}other{فائلز میں ترمیم کریں}}</translation>
diff --git a/chromeos/strings/chromeos_strings_uz.xtb b/chromeos/strings/chromeos_strings_uz.xtb index e9b768e..2266fae 100644 --- a/chromeos/strings/chromeos_strings_uz.xtb +++ b/chromeos/strings/chromeos_strings_uz.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Skanerlar qidirilmoqda</translation> <translation id="3226657629376379887">Interfeys amallari menyusi</translation> <translation id="3246869037381808805">1 kundan eski chop etish vazifalari avtomatik tozalanadi</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> ekskluziv</translation> <translation id="3268178239013324452">Bajarilmadi - Eshikchasi ochiq</translation> <translation id="3275729367986477355">Avatar rasmi</translation> <translation id="3283504360622356314">{0,plural, =1{Faylni tahrirlash}other{Fayllarni tahrirlash}}</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb index c773a6f..cc5013d 100644 --- a/chromeos/strings/chromeos_strings_vi.xtb +++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Đang tìm máy quét</translation> <translation id="3226657629376379887">Trình đơn thao tác của bố cục</translation> <translation id="3246869037381808805">Các lệnh in quá 1 ngày sẽ bị xóa</translation> -<translation id="3248223063252096240">Dành riêng cho <ph name="PRODUCT_NAME" /></translation> <translation id="3268178239013324452">Không thành công – Cửa máy in đang mở</translation> <translation id="3275729367986477355">Hình đại diện</translation> <translation id="3283504360622356314">{0,plural, =1{Chỉnh sửa tệp}other{Chỉnh sửa các tệp}}</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb index c6f64c4..6370a161 100644 --- a/chromeos/strings/chromeos_strings_zh-CN.xtb +++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">正在搜寻扫描器</translation> <translation id="3226657629376379887">布局操作菜单</translation> <translation id="3246869037381808805">系统会自动移除存在时长已超过 1 天的打印任务</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> 专有</translation> <translation id="3268178239013324452">失败 - 机盖未关</translation> <translation id="3275729367986477355">头像图片</translation> <translation id="3283504360622356314">{0,plural, =1{修改文件}other{修改文件}}</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb index 81a0577..92c2d0a0 100644 --- a/chromeos/strings/chromeos_strings_zh-HK.xtb +++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">正在尋找掃瞄器</translation> <translation id="3226657629376379887">版面配置操作選單</translation> <translation id="3246869037381808805">超過 1 天前的列印工作將被移除</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> 獨家設計</translation> <translation id="3268178239013324452">失敗 - 機蓋未關</translation> <translation id="3275729367986477355">顯示圖片</translation> <translation id="3283504360622356314">{0,plural, =1{編輯檔案}other{編輯檔案}}</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb index 4fd6f77d..6ea1295 100644 --- a/chromeos/strings/chromeos_strings_zh-TW.xtb +++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">正在尋找掃描器</translation> <translation id="3226657629376379887">版面配置動作選單</translation> <translation id="3246869037381808805">系統會移除 1 天前的列印工作</translation> -<translation id="3248223063252096240"><ph name="PRODUCT_NAME" /> 獨家設計</translation> <translation id="3268178239013324452">失敗 - 蓋子處於開啟狀態</translation> <translation id="3275729367986477355">顯示圖片</translation> <translation id="3283504360622356314">{0,plural, =1{編輯檔案}other{編輯檔案}}</translation>
diff --git a/chromeos/strings/chromeos_strings_zu.xtb b/chromeos/strings/chromeos_strings_zu.xtb index 8e15a4a..3cb0a65 100644 --- a/chromeos/strings/chromeos_strings_zu.xtb +++ b/chromeos/strings/chromeos_strings_zu.xtb
@@ -280,7 +280,6 @@ <translation id="3226405216343213872">Ifuna izikena</translation> <translation id="3226657629376379887">Imenyu yezenzo yohlaka</translation> <translation id="3246869037381808805">Imisebenzi yokuphrinta emidala kunosuku olu-1 izosuswa</translation> -<translation id="3248223063252096240">I-<ph name="PRODUCT_NAME" /> ekhethekile</translation> <translation id="3268178239013324452">Yehlulekile - Umnyango uvuliwe</translation> <translation id="3275729367986477355">Umfanekiso wesithombe</translation> <translation id="3283504360622356314">{0,plural, =1{Hlela ifayela}one{Hlela amafayela}other{Hlela amafayela}}</translation>
diff --git a/clank b/clank index b59e8eb..890f83c 160000 --- a/clank +++ b/clank
@@ -1 +1 @@ -Subproject commit b59e8eb3544c68291e7cb11b2b5eeb52e359982e +Subproject commit 890f83c8971c3574be289f7599d4c1b23f5daf12
diff --git a/components/BUILD.gn b/components/BUILD.gn index f830dc1..ecfe6ff 100644 --- a/components/BUILD.gn +++ b/components/BUILD.gn
@@ -258,6 +258,7 @@ "//components/password_manager/core/browser/affiliation:affiliation_fetching_unittests", "//components/password_manager/core/browser/affiliation:unit_tests", "//components/password_manager/core/browser/export:unit_tests", + "//components/password_manager/core/browser/features:unit_tests", "//components/password_manager/core/browser/generation:unit_tests", "//components/password_manager/core/browser/sharing:unit_tests", "//components/password_manager/core/browser/well_known_change_password:unit_tests",
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc index 16dc9b8..a3b76f4 100644 --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -427,8 +427,7 @@ if ((IsKeyboardAccessoryEnabled() || !focus_requires_scroll_) && !element.IsNull() && element.GetDocument().GetFrame()->HasTransientUserActivation()) { - focused_node_was_last_clicked_ = true; - HandleFocusChangeComplete(); + HandleFocusChangeComplete(/*focused_node_was_last_clicked=*/true); } if (focus_moved_to_new_form) @@ -1175,7 +1174,10 @@ } if (!IsKeyboardAccessoryEnabled() && focus_requires_scroll_) - HandleFocusChangeComplete(); + HandleFocusChangeComplete( + /*focused_node_was_last_clicked=*/ + last_left_mouse_down_or_gesture_tap_in_node_caused_focus_); + last_left_mouse_down_or_gesture_tap_in_node_caused_focus_ = false; SendPotentiallySubmittedFormToBrowser(); } @@ -1183,9 +1185,10 @@ void AutofillAgent::DidReceiveLeftMouseDownOrGestureTapInNode( const WebNode& node) { DCHECK(!node.IsNull()); - focused_node_was_last_clicked_ = node.Focused(); -#if BUILDFLAG(IS_ANDROID) - HandleFocusChangeComplete(); +#if defined(ANDROID) + HandleFocusChangeComplete(/*focused_node_was_last_clicked=*/node.Focused()); +#else + last_left_mouse_down_or_gesture_tap_in_node_caused_focus_ = node.Focused(); #endif } @@ -1286,7 +1289,8 @@ SendPotentiallySubmittedFormToBrowser(); } -void AutofillAgent::HandleFocusChangeComplete() { +void AutofillAgent::HandleFocusChangeComplete( + bool focused_node_was_last_clicked) { if (!unsafe_render_frame()) { return; } @@ -1299,7 +1303,7 @@ // When the focus is on a non-input field on Android, keyboard accessory may // be shown if autofill data is available. Make sure to hide the accessory if // focus changes to another element. - if ((focused_node_was_last_clicked_ || is_screen_reader_enabled_) && + if ((focused_node_was_last_clicked || is_screen_reader_enabled_) && !focused_element.IsNull() && focused_element.IsFormControlElement()) { WebFormControlElement focused_form_control_element = focused_element.To<WebFormControlElement>(); @@ -1308,8 +1312,6 @@ } } - focused_node_was_last_clicked_ = false; - SendPotentiallySubmittedFormToBrowser(); }
diff --git a/components/autofill/content/renderer/autofill_agent.h b/components/autofill/content/renderer/autofill_agent.h index e485b5e..8945e33 100644 --- a/components/autofill/content/renderer/autofill_agent.h +++ b/components/autofill/content/renderer/autofill_agent.h
@@ -270,7 +270,7 @@ std::vector<blink::WebAutofillClient::FormIssue> ProccessFormsAndReturnIssues() override; - void HandleFocusChangeComplete(); + void HandleFocusChangeComplete(bool focused_node_was_last_clicked); void SendFocusedInputChangedNotificationToBrowser( const blink::WebElement& node); @@ -415,7 +415,7 @@ // doesn't use PasswordAutofillAgent to handle password form. bool query_password_suggestion_ = false; - bool focused_node_was_last_clicked_ = false; + bool last_left_mouse_down_or_gesture_tap_in_node_caused_focus_ = false; FieldRendererId last_clicked_form_control_element_for_testing_; FormTracker form_tracker_;
diff --git a/components/autofill/content/renderer/form_autofill_util.cc b/components/autofill/content/renderer/form_autofill_util.cc index 1f610a2..ff838d7 100644 --- a/components/autofill/content/renderer/form_autofill_util.cc +++ b/components/autofill/content/renderer/form_autofill_util.cc
@@ -533,15 +533,61 @@ // <input> // <span>Placeholder</span> // </div> +// We want to consider placeholders which are either positioned over the input +// element or placed on the top left (or top right in RTL languages) of the +// input element (they need to overlap a bit). We want to disregard elements +// that are primarily below the input element (even if they overlap) because +// that place is often used to indicate incorrect inputs. std::u16string InferLabelFromOverlayingSuccessor( const WebFormControlElement& element) { WebNode next = element.NextSibling(); while (!next.IsNull() && !next.IsElementNode()) next = next.NextSibling(); if (!next.IsNull()) { - gfx::Rect bounds = next.To<WebElement>().BoundsInWidget(); - if (!bounds.IsEmpty() && element.BoundsInWidget().Contains(bounds)) + gfx::Rect element_bounds = element.BoundsInWidget(); + gfx::Rect next_bounds = next.To<WebElement>().BoundsInWidget(); + // Reduce size by 1 pixel in all dimensions to resolve intersection due to + // rounding errors. + next_bounds.Inset(1); + // We don't rely on element_bounds.Contains(next_bounds) because some + // websites render the label partially above the input element. + // We check the following conditions: 1) horizontally we want the `next` + // element to be contained by `element` + // to consider `next` a label: + // |<----- element ----->| + // |<----- next ------>| + // 2) vertically we often see three cases: + // (a) + // ----- + // ^ (b) + // -------- | ----- + // ^ next ^ + // | | | + // | v | (c) (not a placeholder) + // element ----- next ----- + // | | ^ + // | | | + // v v next + // -------- ----- | + // v + // ----- + // a) a label is presented on the top left corner of an input element, + // possibly even exceeding it a bit. + // b) a label is presented inside the input element. + // c) an error message is presented at the bottom of an input element. + if (!next_bounds.IsEmpty() && + // `next` needs to overlap `element` to be even considered. + element_bounds.Intersects(next_bounds) && + // `next` must be horizontally contained. + next_bounds.x() >= element_bounds.x() && + next_bounds.right() <= element_bounds.right() && + // bottom of `next` does not exceed the bounds of `element` because that + // may represent an error label (case c above). The top of `next` may, + // however exceed the `element` (case a above), so that condition is not + // tested. + !(next_bounds.bottom() > element_bounds.bottom())) { return FindChildText(next); + } } return std::u16string(); }
diff --git a/components/autofill/content/renderer/form_autofill_util_browsertest.cc b/components/autofill/content/renderer/form_autofill_util_browsertest.cc index 8ca9c9c..6ffb335f 100644 --- a/components/autofill/content/renderer/form_autofill_util_browsertest.cc +++ b/components/autofill/content/renderer/form_autofill_util_browsertest.cc
@@ -67,7 +67,7 @@ // An <input> with a label placed on top of it (usually used as a placeholder // replacement). -const char* kPoorMansPlaceholder = R"( +const char* kPoorMansPlaceholderFullOverlap = R"( <style> .fixed_position_and_size { position: fixed; @@ -77,10 +77,99 @@ height: 20px; } </style> - <input id='target' class=fixed_position_and_size> + <input id=target class=fixed_position_and_size> <span class=fixed_position_and_size>label</span> )"; +// The <input> element partially overlaps the label (placeholder) but the label +// is not fully contained in the <input> element. This is a common case for +// placeholders that moph into a minified version when the user focuses an +// <input> element. +const char* kPoorMansPlaceholderPartialOverlap = R"( + <style> + .fixed_position_and_size { + position: fixed; + top: 30px; + left: 0; + width: 100px; + height: 20px; + } + .overlapping_position_and_size { + position: fixed; + top: 25px; + left: 0; + width: 100px; + height: 20px; + } + </style> + <input id=target class=fixed_position_and_size> + <span class=overlapping_position_and_size>label</span> +)"; + +// The <input> element touches the next element vertically but does not overlap. +// The label should not be considered a placeholder. +const char* kPoorMansPlaceholderNoOverlap = R"( + <input id='target'> + <div>not a label</div> +)"; + +// The <input> element touches the next element horizontally but does not +// overlap. The label should not be considered a placeholder. +const char* kPoorMansPlaceholderNoOverlap2 = R"( + <input id=target> + <span>not a label</span> +)"; + +// The span exceeds the vertical limits of the input element, which is a +// pattern often observed in error messages. Therefore we don't consider the +// span a label. +const char* kPoorMansPlaceholderPossiblyErrorMessage = R"( + <style> + .fixed_position_and_size { + position: fixed; + top: 0px; + left: 0; + width: 100px; + height: 20px; + } + .label_position_and_size { + position: fixed; + top: 15px; + left: 0; + width: 100px; + height: 25px; + } + </style> + <input id=target class=fixed_position_and_size> + <span class=overlapping_position_and_size>not a label</span> +)"; + +// The span is not horizontally contained in the input element. We don't +// consider this a label because have seen several cases where the actual +// label was on the left of the input field in a <table> structure and the +// text on the right, which just touched the element contained non-label +// data (e.g. instructions like "don't enter symbols"). +const char* kPoorMansPlaceholderNoHorizontalContainment = R"( + <style> + .fixed_position_and_size { + position: fixed; + top: 0px; + left: 0; + width: 100px; + height: 20px; + } + .label_position_and_size { + position: fixed; + top: 15px; + left: 90px; + width: 100px; + height: 20px; + } + </style> + <input id=target class=fixed_position_and_size> + <span class=overlapping_position_and_size>not a label</span> +)"; + void VerifyButtonTitleCache(const WebFormElement& form_target, const ButtonTitleList& expected_button_titles, const ButtonTitlesCache& actual_cache) { @@ -268,7 +357,16 @@ u""}, {"Infer from next sibling", "<input id='target' type='checkbox'>hello <b>world</b>", u"hello world"}, - {"Poor man's placeholder", kPoorMansPlaceholder, u"label"}, + {"Poor man's placeholder", kPoorMansPlaceholderFullOverlap, u"label"}, + {"Poor man's placeholder partial overlap", + kPoorMansPlaceholderPartialOverlap, u"label"}, + {"Poor man's placeholder no overlap", kPoorMansPlaceholderNoOverlap, u""}, + {"Poor man's placeholder no overlap 2", kPoorMansPlaceholderNoOverlap2, + u""}, + {"Poor man's placeholder: possibly an error message", + kPoorMansPlaceholderPossiblyErrorMessage, u""}, + {"Poor man's placeholder: no horizontal containment", + kPoorMansPlaceholderNoHorizontalContainment, u""}, }; for (auto test_case : test_cases) { SCOPED_TRACE(test_case.description); @@ -317,7 +415,8 @@ FormFieldData::LabelSource::kTdTag}, {"<dl><dt>label</dt><dd><input id='target'></dd></dl>", FormFieldData::LabelSource::kDdTag}, - {kPoorMansPlaceholder, FormFieldData::LabelSource::kOverlayingLabel}}; + {kPoorMansPlaceholderFullOverlap, + FormFieldData::LabelSource::kOverlayingLabel}}; for (auto test_case : test_cases) { SCOPED_TRACE(testing::Message() << test_case.label_source);
diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn index 08db309..902f0bb9 100644 --- a/components/autofill/core/browser/BUILD.gn +++ b/components/autofill/core/browser/BUILD.gn
@@ -796,6 +796,8 @@ "payments/test_payments_client.h", "payments/test_virtual_card_enrollment_manager.cc", "payments/test_virtual_card_enrollment_manager.h", + "personal_data_manager_test_utils.cc", + "personal_data_manager_test_utils.h", "profile_token_quality_test_api.cc", "profile_token_quality_test_api.h", "strike_databases/payments/test_credit_card_save_strike_database.cc",
diff --git a/components/autofill/core/browser/autofill_suggestion_generator.cc b/components/autofill/core/browser/autofill_suggestion_generator.cc index bbc9cfa..80168110 100644 --- a/components/autofill/core/browser/autofill_suggestion_generator.cc +++ b/components/autofill/core/browser/autofill_suggestion_generator.cc
@@ -12,12 +12,10 @@ #include "base/ranges/algorithm.h" #include "base/strings/strcat.h" #include "base/strings/utf_string_conversions.h" -#include "base/uuid.h" #include "build/build_config.h" #include "components/autofill/core/browser/autofill_browser_util.h" #include "components/autofill/core/browser/autofill_client.h" #include "components/autofill/core/browser/autofill_experiments.h" -#include "components/autofill/core/browser/autofill_field.h" #include "components/autofill/core/browser/autofill_optimization_guide.h" #include "components/autofill/core/browser/data_model/autofill_offer_data.h" #include "components/autofill/core/browser/data_model/autofill_profile.h" @@ -28,12 +26,10 @@ #include "components/autofill/core/browser/field_types.h" #include "components/autofill/core/browser/form_structure.h" #include "components/autofill/core/browser/metrics/autofill_metrics.h" -#include "components/autofill/core/browser/metrics/log_event.h" #include "components/autofill/core/browser/metrics/payments/card_metadata_metrics.h" #include "components/autofill/core/browser/payments/autofill_offer_manager.h" #include "components/autofill/core/browser/payments/constants.h" #include "components/autofill/core/browser/personal_data_manager.h" -#include "components/autofill/core/browser/strike_databases/autofill_profile_migration_strike_database.h" #include "components/autofill/core/browser/ui/label_formatter.h" #include "components/autofill/core/browser/ui/popup_item_ids.h" #include "components/autofill/core/browser/ui/suggestion.h" @@ -110,7 +106,7 @@ // secondary text in the corresponding suggestion bubble. `field_types` the // types of the fields that will be filled by the suggestion std::vector<std::u16string> GetProfileSuggestionLabels( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const ServerFieldTypeSet& field_types, ServerFieldType trigger_field_type, const std::string& app_locale) { @@ -220,28 +216,31 @@ AutofillSuggestionGenerator::~AutofillSuggestionGenerator() = default; std::vector<Suggestion> AutofillSuggestionGenerator::GetSuggestionsForProfiles( - const FormStructure& form, - const FormFieldData& field, - AutofillType field_type, + const ServerFieldTypeSet& field_types, + const FormFieldData& triggering_field, + AutofillType triggering_field_type, absl::optional<ServerFieldTypeSet> last_targeted_fields, - base::span<FieldFillingSkipReason> skip_statuses) { - ServerFieldTypeSet field_types; - CHECK_EQ(skip_statuses.size(), form.field_count()); - for (size_t i = 0; i < form.field_count(); ++i) { - if (skip_statuses[i] == FieldFillingSkipReason::kNotSkipped) { - field_types.insert(form.field(i)->Type().GetStorableType()); - } - } + AutofillSuggestionTriggerSource trigger_source) { + // If the user manually triggered suggestions from the context menu, all + // available profiles should be shown. Selecting a suggestion overwrites the + // triggering field's value. + const std::u16string field_value_for_filtering = + trigger_source != AutofillSuggestionTriggerSource:: + kManualFallbackForAutocompleteUnrecognized + ? triggering_field.value + : u""; - std::vector<AutofillProfile*> profiles_to_suggest = GetProfilesToSuggest( - field_type, field.value, field.is_autofilled, field_types); + std::vector<const AutofillProfile*> profiles_to_suggest = + GetProfilesToSuggest(triggering_field_type, field_value_for_filtering, + triggering_field.is_autofilled, field_types); - return CreateSuggestionsFromProfiles(profiles_to_suggest, field_types, - last_targeted_fields, field_type, - field.max_length); + return CreateSuggestionsFromProfiles( + profiles_to_suggest, field_types, last_targeted_fields, + triggering_field_type, triggering_field.max_length); } -std::vector<AutofillProfile*> AutofillSuggestionGenerator::GetProfilesToSuggest( +std::vector<const AutofillProfile*> +AutofillSuggestionGenerator::GetProfilesToSuggest( const AutofillType& type, const std::u16string& field_contents, bool field_is_autofilled, @@ -263,7 +262,7 @@ sorted_profiles); } - std::vector<AutofillProfile*> matched_profiles = + std::vector<const AutofillProfile*> matched_profiles = suggestion_selection::GetPrefixMatchedProfiles( type, field_contents, field_contents_canon, personal_data_->app_locale(), field_is_autofilled, sorted_profiles); @@ -271,7 +270,7 @@ const AutofillProfileComparator comparator(personal_data_->app_locale()); // Don't show two suggestions if one is a subset of the other. // Duplicates across sources are resolved in favour of `kAccount` profiles. - std::vector<AutofillProfile*> unique_matched_profiles = + std::vector<const AutofillProfile*> unique_matched_profiles = suggestion_selection::DeduplicatedProfilesForSuggestions( type, field_types, comparator, matched_profiles); @@ -280,7 +279,7 @@ std::vector<Suggestion> AutofillSuggestionGenerator::CreateSuggestionsFromProfiles( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const ServerFieldTypeSet& field_types, absl::optional<ServerFieldTypeSet> last_targeted_fields, const AutofillType& trigger_field_type, @@ -492,7 +491,7 @@ // way if the profile represented by `backend_id` is not included we can // conclude that it was hidden previously and is only showing now because // Autofill is considering address field types. - std::vector<AutofillProfile*> profiles_to_suggest = + std::vector<const AutofillProfile*> profiles_to_suggest = GetProfilesToSuggest(field.Type(), field.value, field.is_autofilled, suggestion_field_types_without_address_types);
diff --git a/components/autofill/core/browser/autofill_suggestion_generator.h b/components/autofill/core/browser/autofill_suggestion_generator.h index 3de9c82..ad5991e 100644 --- a/components/autofill/core/browser/autofill_suggestion_generator.h +++ b/components/autofill/core/browser/autofill_suggestion_generator.h
@@ -5,14 +5,11 @@ #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_SUGGESTION_GENERATOR_H_ #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_SUGGESTION_GENERATOR_H_ -#include <map> #include <string> #include <vector> #include "base/containers/flat_map.h" -#include "base/gtest_prod_util.h" #include "base/memory/raw_ptr.h" -#include "base/types/id_type.h" #include "components/autofill/core/browser/data_model/autofill_profile.h" #include "components/autofill/core/browser/data_model/autofill_wallet_usage_data.h" #include "components/autofill/core/browser/field_types.h" @@ -35,7 +32,6 @@ class AutofillType; class CreditCard; struct FormFieldData; -class FormStructure; class Iban; class PersonalDataManager; @@ -50,8 +46,9 @@ AutofillSuggestionGenerator& operator=(const AutofillSuggestionGenerator&) = delete; - // Generates suggestions for all available profiles based on the `form` and - // the value of `field` of type `field_type`. + // Generates suggestions for a form containing the given `field_types`. It + // considers all available profiles, deduplicates them based on the types and + // returns one suggestion per remaining profile. // `last_targeted_fields` is used to know which fields were targeted on a // prior form interaction. In the context of granular filling, this could lead // the user to be in one of the available filling granularities, field by @@ -60,17 +57,17 @@ // only use fillable fields for suggestion deduplication and label generation. // It is assumed that skip_statuses and form_structure have the sane size. std::vector<Suggestion> GetSuggestionsForProfiles( - const FormStructure& form, - const FormFieldData& field, - AutofillType field_type, + const ServerFieldTypeSet& field_types, + const FormFieldData& triggering_field, + AutofillType triggering_field_type, absl::optional<ServerFieldTypeSet> last_targeted_fields, - base::span<FieldFillingSkipReason> skip_statuses); + AutofillSuggestionTriggerSource trigger_source); // Returns a list of profiles that will be displayed as suggestions to the // user. This involved many steps from fetching the profiles to matching with // `field_contents`, and deduplicating based on `field_types`, which are the // relevant types for the current suggestion. - std::vector<AutofillProfile*> GetProfilesToSuggest( + std::vector<const AutofillProfile*> GetProfilesToSuggest( const AutofillType& type, const std::u16string& field_contents, bool field_is_autofilled, @@ -82,7 +79,7 @@ // The profiles passed to this function should already have been matched on // `trigger_field_contents_canon` and deduplicated. std::vector<Suggestion> CreateSuggestionsFromProfiles( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const ServerFieldTypeSet& field_types, absl::optional<ServerFieldTypeSet> last_targeted_fields, const AutofillType& trigger_field_type,
diff --git a/components/autofill/core/browser/autofill_suggestion_generator_unittest.cc b/components/autofill/core/browser/autofill_suggestion_generator_unittest.cc index aabbd1e..3f3bf4067 100644 --- a/components/autofill/core/browser/autofill_suggestion_generator_unittest.cc +++ b/components/autofill/core/browser/autofill_suggestion_generator_unittest.cc
@@ -8,6 +8,7 @@ #include "base/rand_util.h" #include "base/strings/strcat.h" #include "base/strings/string_number_conversions.h" +#include "base/strings/string_util.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" @@ -213,7 +214,7 @@ personal_data()->AddProfile(profile_2); ASSERT_EQ(personal_data()->GetProfilesToSuggest().size(), 2u); - std::vector<AutofillProfile*> profiles = + std::vector<const AutofillProfile*> profiles = suggestion_generator()->GetProfilesToSuggest(AutofillType(EMAIL_ADDRESS), u"Test@", false, {}); @@ -252,7 +253,7 @@ // Simulate a form with street address, city and state. ServerFieldTypeSet types = {ADDRESS_HOME_CITY, ADDRESS_HOME_STATE}; - std::vector<AutofillProfile*> profiles = + std::vector<const AutofillProfile*> profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(ADDRESS_HOME_STREET_ADDRESS), u"123", false, types); ASSERT_EQ(2U, profiles.size()); @@ -276,7 +277,7 @@ profiles.push_back(profile); } - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest(AutofillType(NAME_FIRST), u"Ma", false, {}); @@ -320,7 +321,7 @@ profile.set_use_date(AutofillClock::Now() - base::Days(7)); personal_data()->AddProfile(profile); - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest(AutofillType(NAME_FIRST), u"Ma", false, {}); @@ -363,7 +364,7 @@ profile2.set_use_count(300); personal_data()->AddProfile(profile2); - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest(AutofillType(NAME_FIRST), u"Ma", false, {}); ASSERT_EQ(3U, suggested_profiles.size()); @@ -398,7 +399,7 @@ personal_data()->AddProfile(profile3); // Verify that all the profiles are suggested. - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest(AutofillType(NAME_FIRST), std::u16string(), false, {}); EXPECT_EQ(3U, suggested_profiles.size()); @@ -419,21 +420,21 @@ personal_data()->AddProfile(profile2); { - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(NAME_FULL), std::u16string(), false, {NAME_FULL, PHONE_HOME_WHOLE_NUMBER}); EXPECT_EQ(2U, suggested_profiles.size()); } { - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(NAME_FULL), std::u16string(), false, {NAME_FULL, PHONE_HOME_COUNTRY_CODE, PHONE_HOME_CITY_AND_NUMBER}); EXPECT_EQ(2U, suggested_profiles.size()); } { - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(NAME_FULL), std::u16string(), false, {NAME_FULL, PHONE_HOME_COUNTRY_CODE, PHONE_HOME_CITY_CODE, @@ -441,7 +442,7 @@ EXPECT_EQ(2U, suggested_profiles.size()); } { - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(NAME_FULL), std::u16string(), false, {NAME_FULL, PHONE_HOME_COUNTRY_CODE, PHONE_HOME_CITY_CODE}); @@ -472,7 +473,7 @@ // Query with empty string only returns profile2. { - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(ADDRESS_HOME_STREET_ADDRESS), std::u16string(), false, {}); @@ -481,7 +482,7 @@ // Query with non-alpha-numeric string only returns profile2. { - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(ADDRESS_HOME_STREET_ADDRESS), u"--", false, {}); EXPECT_EQ(1U, suggested_profiles.size()); @@ -489,7 +490,7 @@ // Query with prefix for profile1 returns profile1. { - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(ADDRESS_HOME_STREET_ADDRESS), u"123", false, {}); ASSERT_EQ(1U, suggested_profiles.size()); @@ -498,7 +499,7 @@ // Query with prefix for profile2 returns profile2. { - std::vector<AutofillProfile*> suggested_profiles = + std::vector<const AutofillProfile*> suggested_profiles = suggestion_generator()->GetProfilesToSuggest( AutofillType(ADDRESS_HOME_STREET_ADDRESS), u"456", false, {}); EXPECT_EQ(1U, suggested_profiles.size()); @@ -927,10 +928,12 @@ features::kAutofillGranularFillingAvailable); AutofillProfile profile = test::GetFullProfile(); - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{NAME_FIRST}, - /*last_targeted_fields=*/kAllServerFieldTypes, AutofillType(NAME_FIRST), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{NAME_FIRST}, + /*last_targeted_fields=*/kAllServerFieldTypes, + AutofillType(NAME_FIRST), + /*trigger_field_max_length=*/0); ASSERT_EQ(1U, suggestions.size()); // Test root suggestion @@ -992,10 +995,11 @@ features::kAutofillGranularFillingAvailable); AutofillProfile profile = test::GetFullProfile(); - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{NAME_FIRST}, - /*last_targeted_fields=*/absl::nullopt, AutofillType(NAME_FIRST), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{NAME_FIRST}, + /*last_targeted_fields=*/absl::nullopt, AutofillType(NAME_FIRST), + /*trigger_field_max_length=*/0); // Suggestions should have two levels of children, The address line 1 (sixth // child) suggestion should have the following children: house number street @@ -1026,41 +1030,45 @@ features::kAutofillGranularFillingAvailable); AutofillProfile profile = test::GetFullProfile(); - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{NAME_LAST}, - absl::optional<ServerFieldTypeSet>({NAME_LAST}), AutofillType(NAME_FIRST), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{NAME_LAST}, + absl::optional<ServerFieldTypeSet>({NAME_LAST}), + AutofillType(NAME_FIRST), + /*trigger_field_max_length=*/0); EXPECT_EQ(suggestions[0].popup_item_id, PopupItemId::kFieldByFieldFilling); } TEST_F(AutofillSuggestionGeneratorTest, - CreateSuggestionsFromProfiles_LastTargedFieldsIsGroup_GroupFilling) { + CreateSuggestionsFromProfiles_LastTargetedFieldsIsGroup_GroupFilling) { base::test::ScopedFeatureList feature_list( features::kAutofillGranularFillingAvailable); AutofillProfile profile = test::GetFullProfile(); - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{NAME_FIRST}, - absl::optional<ServerFieldTypeSet>(GetAddressFieldsForGroupFilling()), - AutofillType(NAME_FIRST), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{NAME_FIRST}, + absl::optional<ServerFieldTypeSet>(GetAddressFieldsForGroupFilling()), + AutofillType(NAME_FIRST), + /*trigger_field_max_length=*/0); EXPECT_EQ(suggestions[0].popup_item_id, PopupItemId::kFillFullName); } TEST_F( AutofillSuggestionGeneratorTest, - CreateSuggestionsFromProfiles_LastTargedFieldsAreAllServerFields_FullForm) { + CreateSuggestionsFromProfiles_LastTargetedFieldsAreAllServerFields_FullForm) { base::test::ScopedFeatureList feature_list( features::kAutofillGranularFillingAvailable); AutofillProfile profile = test::GetFullProfile(); - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{NAME_FIRST}, - absl::optional<ServerFieldTypeSet>(kAllServerFieldTypes), - AutofillType(NAME_FIRST), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{NAME_FIRST}, + absl::optional<ServerFieldTypeSet>(kAllServerFieldTypes), + AutofillType(NAME_FIRST), + /*trigger_field_max_length=*/0); EXPECT_EQ(suggestions[0].popup_item_id, PopupItemId::kAddressEntry); } @@ -1073,11 +1081,12 @@ features::kAutofillGranularFillingAvailable); AutofillProfile profile = test::GetFullProfile(); - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{CREDIT_CARD_TYPE}, - absl::optional<ServerFieldTypeSet>(kAllServerFieldTypes), - AutofillType(CREDIT_CARD_TYPE), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{CREDIT_CARD_TYPE}, + absl::optional<ServerFieldTypeSet>(kAllServerFieldTypes), + AutofillType(CREDIT_CARD_TYPE), + /*trigger_field_max_length=*/0); EXPECT_EQ(suggestions[0].popup_item_id, PopupItemId::kAddressEntry); } @@ -1092,13 +1101,12 @@ base::test::ScopedFeatureList feature_list( features::kAutofillGranularFillingAvailable); AutofillProfile profile = test::GetFullProfile(); - std::vector<AutofillProfile*> matched_profiles; - - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, {PHONE_HOME_WHOLE_NUMBER}, - /*last_targeted_fields=*/kAllServerFieldTypes, - AutofillType(PHONE_HOME_WHOLE_NUMBER), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, {PHONE_HOME_WHOLE_NUMBER}, + /*last_targeted_fields=*/kAllServerFieldTypes, + AutofillType(PHONE_HOME_WHOLE_NUMBER), + /*trigger_field_max_length=*/0); // The child suggestions should be: // @@ -1127,11 +1135,12 @@ features::kAutofillGranularFillingAvailable); AutofillProfile profile = test::GetFullProfile(); - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{ADDRESS_HOME_LINE1}, - /*last_targeted_fields=*/kAllServerFieldTypes, - AutofillType(ADDRESS_HOME_LINE1), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{ADDRESS_HOME_LINE1}, + /*last_targeted_fields=*/kAllServerFieldTypes, + AutofillType(ADDRESS_HOME_LINE1), + /*trigger_field_max_length=*/0); // The child suggestions should be: // @@ -1170,10 +1179,12 @@ profile.SetRawInfo(ADDRESS_HOME_STREET_NAME, u"Amphitheatre Parkway"); profile.SetRawInfo(ADDRESS_HOME_HOUSE_NUMBER, u"1600"); - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{ADDRESS_HOME_LINE1}, - /*last_targeted_fields=*/absl::nullopt, AutofillType(ADDRESS_HOME_LINE1), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{ADDRESS_HOME_LINE1}, + /*last_targeted_fields=*/absl::nullopt, + AutofillType(ADDRESS_HOME_LINE1), + /*trigger_field_max_length=*/0); ASSERT_EQ(1u, suggestions.size()); ASSERT_LE(3u, suggestions[0].children.size()); @@ -1302,11 +1313,13 @@ // We set only a name field as `last_targeted_fields` to denote that the user // chose field by field filling. - auto suggestions = suggestion_generator()->CreateSuggestionsFromProfiles( - {&profile}, /*field_types=*/{ADDRESS_HOME_LINE1}, - /*last_targeted_fields=*/absl::optional<ServerFieldTypeSet>({NAME_FIRST}), - AutofillType(ADDRESS_HOME_LINE1), - /*trigger_field_max_length=*/0); + std::vector<Suggestion> suggestions = + suggestion_generator()->CreateSuggestionsFromProfiles( + {&profile}, /*field_types=*/{ADDRESS_HOME_LINE1}, + /*last_targeted_fields=*/ + absl::optional<ServerFieldTypeSet>({NAME_FIRST}), + AutofillType(ADDRESS_HOME_LINE1), + /*trigger_field_max_length=*/0); EXPECT_TRUE(base::ranges::any_of(suggestions[0].children, [](auto child) { return child.popup_item_id == @@ -1314,6 +1327,40 @@ })); } +// Tests that regular suggestions are filtered by the triggering field's value, +// but manual fallback suggestions are not. +TEST_F(AutofillSuggestionGeneratorTest, GetSuggestionsForProfiles_Filtering) { + AutofillProfile profile1 = test::GetFullProfile(); + AutofillProfile profile2 = test::GetFullProfile2(); + personal_data()->AddProfile(profile1); + personal_data()->AddProfile(profile2); + + // Create a triggering field those value prefix-matches `profile1`, but not + // `profile2`. + FormFieldData triggering_field; + triggering_field.value = profile1.GetRawInfo(NAME_FIRST); + ASSERT_FALSE(base::StartsWith(profile2.GetRawInfo(NAME_FIRST), + profile1.GetRawInfo(NAME_FIRST))); + + // Expect that regular suggestions filter. + EXPECT_EQ(suggestion_generator() + ->GetSuggestionsForProfiles( + {NAME_FIRST}, triggering_field, AutofillType(NAME_FIRST), + /*last_targeted_fields=*/absl::nullopt, + AutofillSuggestionTriggerSource::kFormControlElementClicked) + .size(), + 1u); + // But manual fallback suggestions do not. + EXPECT_EQ(suggestion_generator() + ->GetSuggestionsForProfiles( + {NAME_FIRST}, triggering_field, AutofillType(NAME_FIRST), + /*last_targeted_fields=*/absl::nullopt, + AutofillSuggestionTriggerSource:: + kManualFallbackForAutocompleteUnrecognized) + .size(), + 2u); +} + TEST_F(AutofillSuggestionGeneratorTest, RemoveExpiredCreditCardsNotUsedSinceTimestamp) { const char kHistogramName[] = "Autofill.CreditCardsSuppressedForDisuse";
diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc index 2d054c9..94c9131 100644 --- a/components/autofill/core/browser/browser_autofill_manager.cc +++ b/components/autofill/core/browser/browser_autofill_manager.cc
@@ -2862,9 +2862,15 @@ : std::vector<FieldFillingSkipReason>( form_structure.field_count(), FieldFillingSkipReason::kNotSkipped); + ServerFieldTypeSet field_types; + for (size_t i = 0; i < form_structure.field_count(); ++i) { + if (skip_statuses[i] == FieldFillingSkipReason::kNotSkipped) { + field_types.insert(form_structure.field(i)->Type().GetStorableType()); + } + } return suggestion_generator_->GetSuggestionsForProfiles( - form_structure, field, autofill_field.Type(), - last_address_fields_to_fill_for_section, skip_statuses); + field_types, field, autofill_field.Type(), + last_address_fields_to_fill_for_section, trigger_source); } std::vector<Suggestion> BrowserAutofillManager::GetCreditCardSuggestions(
diff --git a/components/autofill/core/browser/data_model/autofill_profile.cc b/components/autofill/core/browser/data_model/autofill_profile.cc index 8f9dc5b..36e4349 100644 --- a/components/autofill/core/browser/data_model/autofill_profile.cc +++ b/components/autofill/core/browser/data_model/autofill_profile.cc
@@ -869,7 +869,7 @@ // static void AutofillProfile::CreateDifferentiatingLabels( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, std::vector<std::u16string>* labels) { const size_t kMinimalFieldsShown = 2; @@ -880,7 +880,7 @@ // static void AutofillProfile::CreateInferredLabels( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const absl::optional<ServerFieldTypeSet>& suggested_fields, ServerFieldType excluded_field, size_t minimal_fields_shown, @@ -1086,7 +1086,7 @@ // static void AutofillProfile::CreateInferredLabelsHelper( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::list<size_t>& indices, const std::vector<ServerFieldType>& fields, size_t num_fields_to_include,
diff --git a/components/autofill/core/browser/data_model/autofill_profile.h b/components/autofill/core/browser/data_model/autofill_profile.h index 9c8b3f8..e562461 100644 --- a/components/autofill/core/browser/data_model/autofill_profile.h +++ b/components/autofill/core/browser/data_model/autofill_profile.h
@@ -213,7 +213,7 @@ // 4. Phone. // 5. Company name. static void CreateDifferentiatingLabels( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, std::vector<std::u16string>* labels); @@ -225,7 +225,7 @@ // |UNKNOWN_TYPE| when |suggested_fields| is NULL. Each label includes at // least |minimal_fields_shown| fields, if possible. static void CreateInferredLabels( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const absl::optional<ServerFieldTypeSet>& suggested_fields, ServerFieldType excluded_field, size_t minimal_fields_shown, @@ -344,7 +344,7 @@ // profiles, if possible; and also at least |num_fields_to_include| fields, if // possible. The label fields are drawn from |fields|. static void CreateInferredLabelsHelper( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::list<size_t>& indices, const std::vector<ServerFieldType>& fields, size_t num_fields_to_include, @@ -366,7 +366,7 @@ // Merging two AutofillProfiles is done by merging their `FormGroups()`. While // doing so, the `token_quality_` needs to be merged too. This function is - // responsible for carring over or resetting the token quality of all + // responsible for carrying over or resetting the token quality of all // supported types of the `merged_group`. // `merged_group` represents the merged form group of `*this` with the same // form group of `other_profile`.
diff --git a/components/autofill/core/browser/data_model/autofill_profile_unittest.cc b/components/autofill/core/browser/data_model/autofill_profile_unittest.cc index 9b611d5..a8baee41 100644 --- a/components/autofill/core/browser/data_model/autofill_profile_unittest.cc +++ b/components/autofill/core/browser/data_model/autofill_profile_unittest.cc
@@ -41,7 +41,7 @@ namespace { std::u16string GetSuggestionLabel(AutofillProfile* profile) { - std::vector<AutofillProfile*> profiles; + std::vector<const AutofillProfile*> profiles; profiles.push_back(profile); std::vector<std::u16string> labels; AutofillProfile::CreateDifferentiatingLabels(profiles, "en-US", &labels); @@ -55,9 +55,9 @@ "Hollywood", "CA", "91601", "US", "12345678910"); } -std::vector<AutofillProfile*> ToRawPointerVector( +std::vector<const AutofillProfile*> ToRawPointerVector( const std::vector<std::unique_ptr<AutofillProfile>>& list) { - std::vector<AutofillProfile*> result; + std::vector<const AutofillProfile*> result; for (const auto& item : list) result.push_back(item.get()); return result; @@ -153,7 +153,7 @@ test::SetProfileInfo(&profile7a, "Marion", "Mitchell", "Morrison", "marion@me.xyz", "Fox", "123 Zoo St.", "unit 5", "Hollywood", "CA", "91601", "US", "16505678910"); - std::vector<AutofillProfile*> profiles; + std::vector<const AutofillProfile*> profiles; profiles.push_back(&profile7); profiles.push_back(&profile7a); std::vector<std::u16string> labels; @@ -1304,7 +1304,7 @@ << AutofillType(type).ToString()); SCOPED_TRACE(testing::Message() - << "Verify the corrext result for identical values"); + << "Verify the correct result for identical values"); profile1.SetRawInfoWithVerificationStatus(type, value1, status1); profile2.SetRawInfoWithVerificationStatus(type, value1, status1); EXPECT_EQ(profile1.Compare(profile2), 0);
diff --git a/components/autofill/core/browser/manual_testing_import.cc b/components/autofill/core/browser/manual_testing_import.cc index 334c6fb..de556b4 100644 --- a/components/autofill/core/browser/manual_testing_import.cc +++ b/components/autofill/core/browser/manual_testing_import.cc
@@ -152,6 +152,18 @@ return card; } +// Removes all AutofillProfiles from the `pdm`. Since `PDM::RemoveByGUID()` +// invalidates the pointers returned by `PDM::GetProfiles()`, this is done by +// collecting all GUIDs to remove first. +void RemoveAllExistingProfiles(PersonalDataManager& pdm) { + std::vector<std::string> existing_guids; + base::ranges::transform(pdm.GetProfiles(), std::back_inserter(existing_guids), + &AutofillProfile::guid); + for (const std::string& guid : existing_guids) { + pdm.RemoveByGUID(guid); + } +} + // Sets all of the `pdm`'s profiles or credit cards to `profiles` or // `credit_cards`, if the `pdm` still exists. void SetData( @@ -169,7 +181,10 @@ // If a list in `profiles_or_credit_cards` is empty, do not trigger the PDM // because this will clear all corresponding existing data. if (!profiles_or_credit_cards->profiles->empty()) { - pdm->SetProfilesForAllSources(&*profiles_or_credit_cards->profiles); + RemoveAllExistingProfiles(*pdm); + for (const AutofillProfile& profile : *profiles_or_credit_cards->profiles) { + pdm->AddProfile(profile); + } } if (!profiles_or_credit_cards->credit_cards->empty()) { pdm->SetCreditCards(&*profiles_or_credit_cards->credit_cards);
diff --git a/components/autofill/core/browser/personal_data_manager.h b/components/autofill/core/browser/personal_data_manager.h index c029f7c9..50ad9ce 100644 --- a/components/autofill/core/browser/personal_data_manager.h +++ b/components/autofill/core/browser/personal_data_manager.h
@@ -221,6 +221,7 @@ // Returns the profile with the specified |guid|, or nullptr if there is no // profile with the specified |guid|. + // TODO(crbug.com/1487119): Change return type to const AutofillProfile* virtual AutofillProfile* GetProfileByGUID(const std::string& guid) const; // Determines whether the logged in user (if any) is eligible to store @@ -355,8 +356,12 @@ // using `GetProfilesFromSource()`, profiles from a single source are be // retrieved. // The profiles are returned in the specified `order`. + // TODO(crbug.com/1487119): Change return type to + // std::vector<const AutofillProfile*> virtual std::vector<AutofillProfile*> GetProfiles( ProfileOrder order = ProfileOrder::kNone) const; + // TODO(crbug.com/1487119): Change return type to + // std::vector<const AutofillProfile*> virtual std::vector<AutofillProfile*> GetProfilesFromSource( AutofillProfile::Source profile_source, ProfileOrder order = ProfileOrder::kNone) const; @@ -408,10 +413,14 @@ // Returns the profiles to suggest to the user for filling, ordered by // frecency. + // TODO(crbug.com/1487119): Change return type to + // std::vector<const AutofillProfile*> std::vector<AutofillProfile*> GetProfilesToSuggest() const; // Returns all `GetProfiles()` in the order that the should be shown in the // settings. + // TODO(crbug.com/1487119): Change return type to + // std::vector<const AutofillProfile*> std::vector<AutofillProfile*> GetProfilesForSettings() const; // Returns the credit cards to suggest to the user. Those have been deduped
diff --git a/components/autofill/core/browser/personal_data_manager_test_base.cc b/components/autofill/core/browser/personal_data_manager_test_base.cc index 0852ecb4..176990d 100644 --- a/components/autofill/core/browser/personal_data_manager_test_base.cc +++ b/components/autofill/core/browser/personal_data_manager_test_base.cc
@@ -4,7 +4,6 @@ #include "components/autofill/core/browser/personal_data_manager_test_base.h" #include "base/task/single_thread_task_runner.h" -#include "base/test/gmock_callback_support.h" #include "components/autofill/core/browser/autofill_test_utils.h" #include "components/autofill/core/browser/personal_data_manager.h" #include "components/autofill/core/common/autofill_clock.h" @@ -18,22 +17,6 @@ } // anonymous namespace -PersonalDataLoadedObserverMock::PersonalDataLoadedObserverMock() = default; -PersonalDataLoadedObserverMock::~PersonalDataLoadedObserverMock() = default; - -PersonalDataProfileTaskWaiter::PersonalDataProfileTaskWaiter( - PersonalDataManager& pdm) { - scoped_observation_.Observe(&pdm); - ON_CALL(mock_observer_, OnPersonalDataFinishedProfileTasks()) - .WillByDefault(base::test::RunClosure(run_loop_.QuitClosure())); -} - -PersonalDataProfileTaskWaiter::~PersonalDataProfileTaskWaiter() = default; - -void PersonalDataProfileTaskWaiter::Wait() && { - run_loop_.Run(); -} - PersonalDataManagerTestBase::PersonalDataManagerTestBase() = default; PersonalDataManagerTestBase::~PersonalDataManagerTestBase() = default;
diff --git a/components/autofill/core/browser/personal_data_manager_test_base.h b/components/autofill/core/browser/personal_data_manager_test_base.h index ed90e5d6..10db719b 100644 --- a/components/autofill/core/browser/personal_data_manager_test_base.h +++ b/components/autofill/core/browser/personal_data_manager_test_base.h
@@ -5,9 +5,9 @@ #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_TEST_BASE_H_ #define COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_TEST_BASE_H_ -#include "base/scoped_observation.h" #include "base/test/task_environment.h" #include "components/autofill/core/browser/personal_data_manager_observer.h" +#include "components/autofill/core/browser/personal_data_manager_test_utils.h" #include "components/autofill/core/browser/strike_databases/test_inmemory_strike_database.h" #include "components/autofill/core/browser/webdata/autofill_table.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" @@ -25,49 +25,6 @@ class PersonalDataManager; -class PersonalDataLoadedObserverMock : public PersonalDataManagerObserver { - public: - PersonalDataLoadedObserverMock(); - ~PersonalDataLoadedObserverMock() override; - - MOCK_METHOD(void, OnPersonalDataChanged, (), (override)); - MOCK_METHOD(void, OnPersonalDataFinishedProfileTasks, (), (override)); -}; - -// Helper class to wait for a `OnPersonalDataFinishedProfileTasks()` call from -// the `pdm`. This is necessary, since the PDM operates asynchronously on the -// WebDatabase. -// Additional expectations can be set using `mock_observer()`. -// Example usage: -// PersonalDataManagerWaiter waiter(pdm); -// EXPECT_CALL(waiter.mock_observer(), OnPersonalDataChanged()).Times(1); -// pdm.AddProfile(AutofillProfile()); -// waiter.Wait(); - -// Initializing the waiter after the operation (`AddProfile()`, in this case) is -// not recommended, because the notifications might fire before the expectations -// are set. -class PersonalDataProfileTaskWaiter { - public: - explicit PersonalDataProfileTaskWaiter(PersonalDataManager& pdm); - ~PersonalDataProfileTaskWaiter(); - - // Waits for `OnPersonalDataFinishedProfileTasks()` to trigger. As a safety - // mechanism, this can only be called once per `PersonalDataProfileTaskWaiter` - // instance. This is because gMock doesn't support setting expectations after - // a function (here the mock_observer_'s - // `OnPersonalDataFinishedProfileTasks()`) was called. - void Wait() &&; - - PersonalDataLoadedObserverMock& mock_observer() { return mock_observer_; } - - private: - testing::NiceMock<PersonalDataLoadedObserverMock> mock_observer_; - base::RunLoop run_loop_; - base::ScopedObservation<PersonalDataManager, PersonalDataLoadedObserverMock> - scoped_observation_{&mock_observer_}; -}; - class PersonalDataManagerTestBase { protected: PersonalDataManagerTestBase();
diff --git a/components/autofill/core/browser/personal_data_manager_test_utils.cc b/components/autofill/core/browser/personal_data_manager_test_utils.cc new file mode 100644 index 0000000..086d87b --- /dev/null +++ b/components/autofill/core/browser/personal_data_manager_test_utils.cc
@@ -0,0 +1,28 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/autofill/core/browser/personal_data_manager_test_utils.h" + +#include "base/test/gmock_callback_support.h" +#include "components/autofill/core/browser/personal_data_manager.h" + +namespace autofill { + +PersonalDataLoadedObserverMock::PersonalDataLoadedObserverMock() = default; +PersonalDataLoadedObserverMock::~PersonalDataLoadedObserverMock() = default; + +PersonalDataProfileTaskWaiter::PersonalDataProfileTaskWaiter( + PersonalDataManager& pdm) { + scoped_observation_.Observe(&pdm); + ON_CALL(mock_observer_, OnPersonalDataFinishedProfileTasks()) + .WillByDefault(base::test::RunClosure(run_loop_.QuitClosure())); +} + +PersonalDataProfileTaskWaiter::~PersonalDataProfileTaskWaiter() = default; + +void PersonalDataProfileTaskWaiter::Wait() && { + run_loop_.Run(); +} + +} // namespace autofill
diff --git a/components/autofill/core/browser/personal_data_manager_test_utils.h b/components/autofill/core/browser/personal_data_manager_test_utils.h new file mode 100644 index 0000000..27b6f3d --- /dev/null +++ b/components/autofill/core/browser/personal_data_manager_test_utils.h
@@ -0,0 +1,62 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_TEST_UTILS_H_ +#define COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_TEST_UTILS_H_ + +#include "base/run_loop.h" +#include "base/scoped_observation.h" +#include "components/autofill/core/browser/personal_data_manager_observer.h" +#include "testing/gmock/include/gmock/gmock.h" + +namespace autofill { + +class PersonalDataManager; + +class PersonalDataLoadedObserverMock : public PersonalDataManagerObserver { + public: + PersonalDataLoadedObserverMock(); + ~PersonalDataLoadedObserverMock() override; + + MOCK_METHOD(void, OnPersonalDataChanged, (), (override)); + MOCK_METHOD(void, OnPersonalDataFinishedProfileTasks, (), (override)); +}; + +// Helper class to wait for a `OnPersonalDataFinishedProfileTasks()` call from +// the `pdm`. This is necessary, since the PDM operates asynchronously on the +// WebDatabase. +// Additional expectations can be set using `mock_observer()`. +// Example usage: +// PersonalDataManagerWaiter waiter(pdm); +// EXPECT_CALL(waiter.mock_observer(), OnPersonalDataChanged()).Times(1); +// pdm.AddProfile(AutofillProfile()); +// waiter.Wait(); + +// Initializing the waiter after the operation (`AddProfile()`, in this case) is +// not recommended, because the notifications might fire before the expectations +// are set. +class PersonalDataProfileTaskWaiter { + public: + explicit PersonalDataProfileTaskWaiter(PersonalDataManager& pdm); + ~PersonalDataProfileTaskWaiter(); + + // Waits for `OnPersonalDataFinishedProfileTasks()` to trigger. As a safety + // mechanism, this can only be called once per `PersonalDataProfileTaskWaiter` + // instance. This is because gMock doesn't support setting expectations after + // a function (here the mock_observer_'s + // `OnPersonalDataFinishedProfileTasks()`) was called. + void Wait() &&; + + PersonalDataLoadedObserverMock& mock_observer() { return mock_observer_; } + + private: + testing::NiceMock<PersonalDataLoadedObserverMock> mock_observer_; + base::RunLoop run_loop_; + base::ScopedObservation<PersonalDataManager, PersonalDataLoadedObserverMock> + scoped_observation_{&mock_observer_}; +}; + +} // namespace autofill + +#endif // COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_TEST_UTILS_H_
diff --git a/components/autofill/core/browser/ui/address_combobox_model.cc b/components/autofill/core/browser/ui/address_combobox_model.cc index 28d655cc..97b636b 100644 --- a/components/autofill/core/browser/ui/address_combobox_model.cc +++ b/components/autofill/core/browser/ui/address_combobox_model.cc
@@ -34,7 +34,7 @@ UpdateAddresses(); } -AddressComboboxModel::~AddressComboboxModel() {} +AddressComboboxModel::~AddressComboboxModel() = default; size_t AddressComboboxModel::GetItemCount() const { // When there are not addresses, a special entry is shown to prompt the user @@ -110,7 +110,7 @@ std::vector<std::u16string> labels; // CreateDifferentiatingLabels is expecting a pointer vector and we keep // profiles as unique_ptr. - std::vector<AutofillProfile*> profiles; + std::vector<const AutofillProfile*> profiles; for (const auto& profile : profiles_cache_) { profiles.push_back(profile.get()); }
diff --git a/components/autofill/core/browser/ui/address_contact_form_label_formatter.cc b/components/autofill/core/browser/ui/address_contact_form_label_formatter.cc index 421510c..aa1270db 100644 --- a/components/autofill/core/browser/ui/address_contact_form_label_formatter.cc +++ b/components/autofill/core/browser/ui/address_contact_form_label_formatter.cc
@@ -10,7 +10,7 @@ namespace autofill { AddressContactFormLabelFormatter::AddressContactFormLabelFormatter( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups, @@ -24,7 +24,7 @@ email_disambiguates_(!HaveSameEmailAddresses(profiles, app_locale)), phone_disambiguates_(!HaveSamePhoneNumbers(profiles, app_locale)) {} -AddressContactFormLabelFormatter::~AddressContactFormLabelFormatter() {} +AddressContactFormLabelFormatter::~AddressContactFormLabelFormatter() = default; // Note that the order in which parts of the label are added--name, street // address, phone, and email--ensures that the label is formatted correctly for
diff --git a/components/autofill/core/browser/ui/address_contact_form_label_formatter.h b/components/autofill/core/browser/ui/address_contact_form_label_formatter.h index e0e7979..324fda7 100644 --- a/components/autofill/core/browser/ui/address_contact_form_label_formatter.h +++ b/components/autofill/core/browser/ui/address_contact_form_label_formatter.h
@@ -19,7 +19,7 @@ class AddressContactFormLabelFormatter : public LabelFormatter { public: AddressContactFormLabelFormatter( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups,
diff --git a/components/autofill/core/browser/ui/address_contact_form_label_formatter_unittest.cc b/components/autofill/core/browser/ui/address_contact_form_label_formatter_unittest.cc index e039ccd..b6ea8cf 100644 --- a/components/autofill/core/browser/ui/address_contact_form_label_formatter_unittest.cc +++ b/components/autofill/core/browser/ui/address_contact_form_label_formatter_unittest.cc
@@ -32,7 +32,7 @@ } TEST(AddressContactFormLabelFormatterTest, GetLabelsWithMissingProfiles) { - const std::vector<AutofillProfile*> profiles{}; + const std::vector<const AutofillProfile*> profiles{}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_FULL, GetFieldTypes()); EXPECT_TRUE(formatter->GetLabels().empty()); @@ -67,8 +67,8 @@ test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4, &profile5, &profile6}; + const std::vector<const AutofillProfile*> profiles{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_FULL, GetFieldTypes()); @@ -111,8 +111,8 @@ test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4, &profile5, &profile6}; + const std::vector<const AutofillProfile*> profiles{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_LINE1, GetFieldTypes()); @@ -156,8 +156,8 @@ test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4, &profile5, &profile6}; + const std::vector<const AutofillProfile*> profiles{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_CITY, GetFieldTypes()); @@ -200,8 +200,8 @@ test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4, &profile5, &profile6}; + const std::vector<const AutofillProfile*> profiles{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", EMAIL_ADDRESS, GetFieldTypes()); @@ -245,8 +245,8 @@ test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4, &profile5, &profile6}; + const std::vector<const AutofillProfile*> profiles{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", PHONE_HOME_WHOLE_NUMBER, GetFieldTypes()); @@ -275,7 +275,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "pt-BR", NAME_FULL, GetFieldTypes()); @@ -302,7 +302,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", ADDRESS_HOME_LINE1, GetFieldTypes()); @@ -328,7 +328,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", ADDRESS_HOME_ZIP, GetFieldTypes()); @@ -355,7 +355,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "pt-BR", EMAIL_ADDRESS, GetFieldTypes()); @@ -382,7 +382,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", PHONE_HOME_WHOLE_NUMBER, GetFieldTypes()); @@ -402,7 +402,7 @@ "", "19 North Sq", "", "Boston", "MA", "02113", "US", "16175232338"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", EMAIL_ADDRESS, {NAME_FULL, EMAIL_ADDRESS, ADDRESS_HOME_ZIP, PHONE_HOME_WHOLE_NUMBER}); @@ -419,7 +419,7 @@ "", "19 North Sq", "", "Boston", "MA", "02113", "US", "16175232338"); - std::vector<AutofillProfile*> profiles{&profile1}; + std::vector<const AutofillProfile*> profiles{&profile1}; std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_LINE1, {ADDRESS_HOME_ZIP, EMAIL_ADDRESS, PHONE_HOME_WHOLE_NUMBER});
diff --git a/components/autofill/core/browser/ui/address_email_form_label_formatter.cc b/components/autofill/core/browser/ui/address_email_form_label_formatter.cc index bb363ee..1125072d 100644 --- a/components/autofill/core/browser/ui/address_email_form_label_formatter.cc +++ b/components/autofill/core/browser/ui/address_email_form_label_formatter.cc
@@ -10,7 +10,7 @@ namespace autofill { AddressEmailFormLabelFormatter::AddressEmailFormLabelFormatter( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups, @@ -22,7 +22,7 @@ field_types), form_has_street_address_(HasStreetAddress(field_types_for_labels())) {} -AddressEmailFormLabelFormatter::~AddressEmailFormLabelFormatter() {} +AddressEmailFormLabelFormatter::~AddressEmailFormLabelFormatter() = default; std::u16string AddressEmailFormLabelFormatter::GetLabelForProfile( const AutofillProfile& profile,
diff --git a/components/autofill/core/browser/ui/address_email_form_label_formatter.h b/components/autofill/core/browser/ui/address_email_form_label_formatter.h index 6b0f632..4d0438a 100644 --- a/components/autofill/core/browser/ui/address_email_form_label_formatter.h +++ b/components/autofill/core/browser/ui/address_email_form_label_formatter.h
@@ -18,11 +18,12 @@ // with name, address, and email fields and without phone fields. class AddressEmailFormLabelFormatter : public LabelFormatter { public: - AddressEmailFormLabelFormatter(const std::vector<AutofillProfile*>& profiles, - const std::string& app_locale, - ServerFieldType focused_field_type, - uint32_t groups, - const ServerFieldTypeSet& field_types); + AddressEmailFormLabelFormatter( + const std::vector<const AutofillProfile*>& profiles, + const std::string& app_locale, + ServerFieldType focused_field_type, + uint32_t groups, + const ServerFieldTypeSet& field_types); ~AddressEmailFormLabelFormatter() override;
diff --git a/components/autofill/core/browser/ui/address_email_form_label_formatter_unittest.cc b/components/autofill/core/browser/ui/address_email_form_label_formatter_unittest.cc index c7217cc..ad6022ac 100644 --- a/components/autofill/core/browser/ui/address_email_form_label_formatter_unittest.cc +++ b/components/autofill/core/browser/ui/address_email_form_label_formatter_unittest.cc
@@ -35,7 +35,7 @@ } TEST(AddressEmailFormLabelFormatterTest, GetLabelsWithMissingProfiles) { - const std::vector<AutofillProfile*> profiles{}; + const std::vector<const AutofillProfile*> profiles{}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_FULL, GetFieldTypes()); EXPECT_TRUE(formatter->GetLabels().empty()); @@ -60,8 +60,8 @@ test::SetProfileInfo(&profile4, "John", "", "Adams", "", "", "", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_FULL, GetFieldTypes()); @@ -91,8 +91,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "141 Franklin St", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_LINE1, GetFieldTypes()); @@ -122,8 +122,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_ZIP, GetFieldTypes()); @@ -152,8 +152,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "141 Franklin St", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", EMAIL_ADDRESS, GetFieldTypes()); @@ -176,7 +176,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "pt-BR", NAME_FULL, GetFieldTypes()); @@ -201,7 +201,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", ADDRESS_HOME_LINE1, GetFieldTypes()); @@ -226,7 +226,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", ADDRESS_HOME_DEPENDENT_LOCALITY, GetFieldTypes()); @@ -251,7 +251,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "pt-BR", EMAIL_ADDRESS, GetFieldTypes()); @@ -270,7 +270,7 @@ "333 Washington St", "", "Brookline", "MA", "02445", "US", "16177302000"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", EMAIL_ADDRESS, {NAME_FULL, EMAIL_ADDRESS, ADDRESS_HOME_CITY, ADDRESS_HOME_STATE}); @@ -287,7 +287,7 @@ "", "19 North Sq", "", "Boston", "MA", "02113", "US", "16175232338"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_LINE1, {ADDRESS_HOME_LINE1, ADDRESS_HOME_ZIP, EMAIL_ADDRESS});
diff --git a/components/autofill/core/browser/ui/address_form_label_formatter.cc b/components/autofill/core/browser/ui/address_form_label_formatter.cc index 775e1b03..f687f25 100644 --- a/components/autofill/core/browser/ui/address_form_label_formatter.cc +++ b/components/autofill/core/browser/ui/address_form_label_formatter.cc
@@ -10,7 +10,7 @@ namespace autofill { AddressFormLabelFormatter::AddressFormLabelFormatter( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups, @@ -22,7 +22,7 @@ field_types), form_has_street_address_(HasStreetAddress(field_types_for_labels())) {} -AddressFormLabelFormatter::~AddressFormLabelFormatter() {} +AddressFormLabelFormatter::~AddressFormLabelFormatter() = default; std::u16string AddressFormLabelFormatter::GetLabelForProfile( const AutofillProfile& profile,
diff --git a/components/autofill/core/browser/ui/address_form_label_formatter.h b/components/autofill/core/browser/ui/address_form_label_formatter.h index 546aed8..9dcb3a3 100644 --- a/components/autofill/core/browser/ui/address_form_label_formatter.h +++ b/components/autofill/core/browser/ui/address_form_label_formatter.h
@@ -18,7 +18,7 @@ // with name and address fields and without email or phone fields. class AddressFormLabelFormatter : public LabelFormatter { public: - AddressFormLabelFormatter(const std::vector<AutofillProfile*>& profiles, + AddressFormLabelFormatter(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups,
diff --git a/components/autofill/core/browser/ui/address_form_label_formatter_unittest.cc b/components/autofill/core/browser/ui/address_form_label_formatter_unittest.cc index a21f9c5..7fa9b27 100644 --- a/components/autofill/core/browser/ui/address_form_label_formatter_unittest.cc +++ b/components/autofill/core/browser/ui/address_form_label_formatter_unittest.cc
@@ -30,7 +30,7 @@ } TEST(AddressFormLabelFormatterTest, GetLabelsWithMissingProfiles) { - const std::vector<AutofillProfile*> profiles{}; + const std::vector<const AutofillProfile*> profiles{}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_FIRST, GetFieldTypes()); EXPECT_TRUE(formatter->GetLabels().empty()); @@ -56,8 +56,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_LINE1, GetFieldTypes()); @@ -87,8 +87,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_CITY, GetFieldTypes()); @@ -109,7 +109,7 @@ "", "151 Irving Ave", "", "Hyannis", "MA", "02601", "US", "5087717796"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_FIRST, GetFieldTypes()); @@ -125,7 +125,7 @@ "", "Av. Pedro Álvares Cabral, 1301", "", "Vila Mariana", "São Paulo", "SP", "04094-050", "BR", ""); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", ADDRESS_HOME_LINE1, GetFieldTypes()); @@ -142,7 +142,7 @@ "", "Av. Pedro Álvares Cabral, 1301", "", "Vila Mariana", "São Paulo", "SP", "04094-050", "BR", ""); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", ADDRESS_HOME_ZIP, GetFieldTypes()); @@ -157,7 +157,7 @@ "", "Av. Pedro Álvares Cabral, 1301", "", "Vila Mariana", "São Paulo", "SP", "04094-050", "BR", ""); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "pt-BR", NAME_FIRST, GetFieldTypes()); @@ -172,7 +172,7 @@ "", "19 North Sq", "", "Boston", "MA", "02113", "US", "16175232338"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_LINE1, {ADDRESS_HOME_CITY, ADDRESS_HOME_STATE, ADDRESS_HOME_DEPENDENT_LOCALITY,
diff --git a/components/autofill/core/browser/ui/address_phone_form_label_formatter.cc b/components/autofill/core/browser/ui/address_phone_form_label_formatter.cc index 948c183..558c76a 100644 --- a/components/autofill/core/browser/ui/address_phone_form_label_formatter.cc +++ b/components/autofill/core/browser/ui/address_phone_form_label_formatter.cc
@@ -11,7 +11,7 @@ namespace autofill { AddressPhoneFormLabelFormatter::AddressPhoneFormLabelFormatter( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups, @@ -23,7 +23,7 @@ field_types), form_has_street_address_(HasStreetAddress(field_types_for_labels())) {} -AddressPhoneFormLabelFormatter::~AddressPhoneFormLabelFormatter() {} +AddressPhoneFormLabelFormatter::~AddressPhoneFormLabelFormatter() = default; std::u16string AddressPhoneFormLabelFormatter::GetLabelForProfile( const AutofillProfile& profile,
diff --git a/components/autofill/core/browser/ui/address_phone_form_label_formatter.h b/components/autofill/core/browser/ui/address_phone_form_label_formatter.h index 78f80a5..78147d0 100644 --- a/components/autofill/core/browser/ui/address_phone_form_label_formatter.h +++ b/components/autofill/core/browser/ui/address_phone_form_label_formatter.h
@@ -18,11 +18,12 @@ // with name, address, and phone fields and without email fields. class AddressPhoneFormLabelFormatter : public LabelFormatter { public: - AddressPhoneFormLabelFormatter(const std::vector<AutofillProfile*>& profiles, - const std::string& app_locale, - ServerFieldType focused_field_type, - uint32_t groups, - const ServerFieldTypeSet& field_types); + AddressPhoneFormLabelFormatter( + const std::vector<const AutofillProfile*>& profiles, + const std::string& app_locale, + ServerFieldType focused_field_type, + uint32_t groups, + const ServerFieldTypeSet& field_types); ~AddressPhoneFormLabelFormatter() override;
diff --git a/components/autofill/core/browser/ui/address_phone_form_label_formatter_unittest.cc b/components/autofill/core/browser/ui/address_phone_form_label_formatter_unittest.cc index cab3f2b..1ee5461f 100644 --- a/components/autofill/core/browser/ui/address_phone_form_label_formatter_unittest.cc +++ b/components/autofill/core/browser/ui/address_phone_form_label_formatter_unittest.cc
@@ -29,7 +29,7 @@ } TEST(AddressPhoneFormLabelFormatterTest, GetLabelsWithMissingProfiles) { - const std::vector<AutofillProfile*> profiles{}; + const std::vector<const AutofillProfile*> profiles{}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_FULL, GetFieldTypes()); EXPECT_TRUE(formatter->GetLabels().empty()); @@ -54,8 +54,8 @@ test::SetProfileInfo(&profile4, "John", "", "Adams", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_FULL, GetFieldTypes()); @@ -85,8 +85,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "141 Franklin St", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_LINE1, GetFieldTypes()); @@ -116,8 +116,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_CITY, GetFieldTypes()); @@ -147,8 +147,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", PHONE_HOME_WHOLE_NUMBER, GetFieldTypes()); @@ -172,7 +172,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "pt-BR", NAME_FULL, GetFieldTypes()); @@ -198,7 +198,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", ADDRESS_HOME_LINE1, GetFieldTypes()); @@ -222,7 +222,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", ADDRESS_HOME_ZIP, GetFieldTypes()); @@ -247,7 +247,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", PHONE_HOME_WHOLE_NUMBER, GetFieldTypes()); @@ -266,7 +266,7 @@ "333 Washington St", "", "Brookline", "MA", "02445", "US", "16177302000"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", PHONE_HOME_WHOLE_NUMBER, {NAME_FULL, PHONE_HOME_WHOLE_NUMBER, ADDRESS_HOME_ZIP}); @@ -282,7 +282,7 @@ "", "19 North Sq", "", "Boston", "MA", "02113", "US", "16175232338"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_LINE1, {ADDRESS_HOME_LINE1, ADDRESS_HOME_ZIP, PHONE_HOME_WHOLE_NUMBER});
diff --git a/components/autofill/core/browser/ui/contact_form_label_formatter.cc b/components/autofill/core/browser/ui/contact_form_label_formatter.cc index fa82cb4..38241e6 100644 --- a/components/autofill/core/browser/ui/contact_form_label_formatter.cc +++ b/components/autofill/core/browser/ui/contact_form_label_formatter.cc
@@ -10,7 +10,7 @@ namespace autofill { ContactFormLabelFormatter::ContactFormLabelFormatter( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups, @@ -21,7 +21,7 @@ groups, field_types) {} -ContactFormLabelFormatter::~ContactFormLabelFormatter() {} +ContactFormLabelFormatter::~ContactFormLabelFormatter() = default; // Note that the order--name, phone, and email--in which parts of the label // are possibly added ensures that the label is formatted correctly for
diff --git a/components/autofill/core/browser/ui/contact_form_label_formatter.h b/components/autofill/core/browser/ui/contact_form_label_formatter.h index 40a36cd..d5ee9bb2 100644 --- a/components/autofill/core/browser/ui/contact_form_label_formatter.h +++ b/components/autofill/core/browser/ui/contact_form_label_formatter.h
@@ -18,7 +18,7 @@ // containing name and phone or email fields. class ContactFormLabelFormatter : public LabelFormatter { public: - ContactFormLabelFormatter(const std::vector<AutofillProfile*>& profiles, + ContactFormLabelFormatter(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups,
diff --git a/components/autofill/core/browser/ui/contact_form_label_formatter_unittest.cc b/components/autofill/core/browser/ui/contact_form_label_formatter_unittest.cc index 59d0074..b02de70 100644 --- a/components/autofill/core/browser/ui/contact_form_label_formatter_unittest.cc +++ b/components/autofill/core/browser/ui/contact_form_label_formatter_unittest.cc
@@ -27,7 +27,7 @@ } TEST(ContactFormLabelFormatterTest, GetLabelsWithMissingProfiles) { - const std::vector<AutofillProfile*> profiles{}; + const std::vector<const AutofillProfile*> profiles{}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", NAME_FIRST, GetNamePhoneAndEmailFieldTypes()); EXPECT_TRUE(formatter->GetLabels().empty()); @@ -53,8 +53,8 @@ "141 Franklin St.", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", NAME_LAST, GetNamePhoneAndEmailFieldTypes()); @@ -83,8 +83,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "141 Franklin St.", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", EMAIL_ADDRESS, GetNamePhoneAndEmailFieldTypes()); @@ -115,8 +115,8 @@ test::SetProfileInfo(&profile4, "", "", "", "", "", "141 Franklin St.", "", "Quincy", "MA", "02169", "US", ""); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2, &profile3, - &profile4}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2, + &profile3, &profile4}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", PHONE_HOME_WHOLE_NUMBER, GetNamePhoneAndEmailFieldTypes()); @@ -142,7 +142,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", NAME_LAST, GetNamePhoneAndEmailFieldTypes()); @@ -166,7 +166,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "pt-BR", EMAIL_ADDRESS, GetNamePhoneAndEmailFieldTypes()); @@ -189,7 +189,7 @@ "Rio de Janeiro", "RJ", "22460-320", "BR", "21987650000"); - const std::vector<AutofillProfile*> profiles{&profile1, &profile2}; + const std::vector<const AutofillProfile*> profiles{&profile1, &profile2}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "pt-BR", PHONE_HOME_WHOLE_NUMBER, GetNamePhoneAndEmailFieldTypes()); @@ -206,7 +206,7 @@ "333 Washington St", "", "Brookline", "MA", "02445", "US", "16177302000"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", NAME_LAST, {NAME_FIRST, NAME_LAST, PHONE_HOME_WHOLE_NUMBER}); @@ -222,7 +222,7 @@ "333 Washington St", "", "Brookline", "MA", "02445", "US", "16177302000"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create(profiles, "en-US", PHONE_HOME_WHOLE_NUMBER, {NAME_FIRST, NAME_LAST, PHONE_HOME_WHOLE_NUMBER}); @@ -238,7 +238,7 @@ "333 Washington St", "", "Brookline", "MA", "02445", "US", "16177302000"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", NAME_LAST, {NAME_FIRST, NAME_LAST, EMAIL_ADDRESS}); @@ -253,7 +253,7 @@ "333 Washington St", "", "Brookline", "MA", "02445", "US", "16177302000"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", EMAIL_ADDRESS, {NAME_FIRST, NAME_LAST, EMAIL_ADDRESS}); @@ -268,7 +268,7 @@ "", "19 North Sq", "", "Boston", "MA", "02113", "US", "16175232338"); - const std::vector<AutofillProfile*> profiles{&profile}; + const std::vector<const AutofillProfile*> profiles{&profile}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", PHONE_HOME_COUNTRY_CODE, {EMAIL_ADDRESS, PHONE_HOME_COUNTRY_CODE, PHONE_HOME_CITY_AND_NUMBER});
diff --git a/components/autofill/core/browser/ui/label_formatter.cc b/components/autofill/core/browser/ui/label_formatter.cc index 1042ca1..8bb0d93 100644 --- a/components/autofill/core/browser/ui/label_formatter.cc +++ b/components/autofill/core/browser/ui/label_formatter.cc
@@ -32,11 +32,12 @@ using data_util::bit_field_type_groups::kName; using data_util::bit_field_type_groups::kPhone; -LabelFormatter::LabelFormatter(const std::vector<AutofillProfile*>& profiles, - const std::string& app_locale, - ServerFieldType focused_field_type, - uint32_t groups, - const ServerFieldTypeSet& field_types) +LabelFormatter::LabelFormatter( + const std::vector<const AutofillProfile*>& profiles, + const std::string& app_locale, + ServerFieldType focused_field_type, + uint32_t groups, + const ServerFieldTypeSet& field_types) : profiles_(profiles), app_locale_(app_locale), focused_field_type_(focused_field_type), @@ -82,7 +83,7 @@ // static std::unique_ptr<LabelFormatter> LabelFormatter::Create( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, const ServerFieldTypeSet& field_types) {
diff --git a/components/autofill/core/browser/ui/label_formatter.h b/components/autofill/core/browser/ui/label_formatter.h index e1ab8c4a..230160d 100644 --- a/components/autofill/core/browser/ui/label_formatter.h +++ b/components/autofill/core/browser/ui/label_formatter.h
@@ -18,7 +18,7 @@ // Handles the creation of Suggestions' disambiguating labels. class LabelFormatter { public: - LabelFormatter(const std::vector<AutofillProfile*>& profiles, + LabelFormatter(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups, @@ -37,7 +37,7 @@ // formatter has the ability to build labels with disambiguating information // from the given |profiles|. static std::unique_ptr<LabelFormatter> Create( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, const ServerFieldTypeSet& field_types); @@ -66,7 +66,7 @@ // It is safe to store a reference here because the LabelFormatter is // destroyed when the suggestions for which the labels are constructed are // returned. - const raw_ref<const std::vector<AutofillProfile*>> profiles_; + const raw_ref<const std::vector<const AutofillProfile*>> profiles_; // The locale for which to generate labels. This reflects the language and // country for which the application is translated, e.g. en-AU for Australian
diff --git a/components/autofill/core/browser/ui/label_formatter_unittest.cc b/components/autofill/core/browser/ui/label_formatter_unittest.cc index 98c84c5..28c9e3a 100644 --- a/components/autofill/core/browser/ui/label_formatter_unittest.cc +++ b/components/autofill/core/browser/ui/label_formatter_unittest.cc
@@ -14,12 +14,12 @@ namespace { TEST(LabelFormatterTest, CreateWithMissingFieldTypes) { - const std::vector<AutofillProfile*> profiles{}; + const std::vector<const AutofillProfile*> profiles{}; EXPECT_EQ(LabelFormatter::Create(profiles, "en-US", NAME_FIRST, {}), nullptr); } TEST(LabelFormatterTest, CreateWithUnsupportedFieldTypes) { - const std::vector<AutofillProfile*> profiles{}; + const std::vector<const AutofillProfile*> profiles{}; EXPECT_EQ( LabelFormatter::Create(profiles, "en-US", USERNAME, {USERNAME, PASSWORD}), nullptr);
diff --git a/components/autofill/core/browser/ui/label_formatter_utils.cc b/components/autofill/core/browser/ui/label_formatter_utils.cc index 7e601d94..03d0c71 100644 --- a/components/autofill/core/browser/ui/label_formatter_utils.cc +++ b/components/autofill/core/browser/ui/label_formatter_utils.cc
@@ -34,7 +34,7 @@ // Returns true if all |profiles| have the same value for the data retrieved by // |get_data|. bool HaveSameData( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, base::RepeatingCallback<std::u16string(const AutofillProfile&, const std::string&)> get_data, @@ -303,22 +303,23 @@ data_util::GetCountryCodeWithFallback(profile, app_locale))); } -bool HaveSameEmailAddresses(const std::vector<AutofillProfile*>& profiles, +bool HaveSameEmailAddresses(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale) { return HaveSameData(profiles, app_locale, base::BindRepeating(&GetLabelEmail), base::BindRepeating(base::BindRepeating(&Equals))); } -bool HaveSameFirstNames(const std::vector<AutofillProfile*>& profiles, +bool HaveSameFirstNames(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale) { return HaveSameData(profiles, app_locale, base::BindRepeating(&GetLabelFirstName), base::BindRepeating(base::BindRepeating(&Equals))); } -bool HaveSameNonStreetAddresses(const std::vector<AutofillProfile*>& profiles, - const std::string& app_locale, - const std::vector<ServerFieldType>& types) { +bool HaveSameNonStreetAddresses( + const std::vector<const AutofillProfile*>& profiles, + const std::string& app_locale, + const std::vector<ServerFieldType>& types) { // In general, comparing non street addresses with Equals, which uses ==, is // not ideal since Düsseldorf and Dusseldorf will be considered distinct. It's // okay to use it here because near-duplicate non street addresses like this @@ -328,7 +329,7 @@ base::BindRepeating(&Equals)); } -bool HaveSamePhoneNumbers(const std::vector<AutofillProfile*>& profiles, +bool HaveSamePhoneNumbers(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale) { // Note that the same country code is used in all comparisons. auto equals = [](const std::string& country_code, @@ -348,9 +349,10 @@ app_locale)); } -bool HaveSameStreetAddresses(const std::vector<AutofillProfile*>& profiles, - const std::string& app_locale, - const std::vector<ServerFieldType>& types) { +bool HaveSameStreetAddresses( + const std::vector<const AutofillProfile*>& profiles, + const std::string& app_locale, + const std::vector<ServerFieldType>& types) { // In general, comparing street addresses with Equals, which uses ==, is not // ideal since 3 Elm St and 3 Elm St. will be considered distinct. It's okay // to use it here because near-duplicate addresses like this are filtered
diff --git a/components/autofill/core/browser/ui/label_formatter_utils.h b/components/autofill/core/browser/ui/label_formatter_utils.h index 4e4da8e..97b0da2 100644 --- a/components/autofill/core/browser/ui/label_formatter_utils.h +++ b/components/autofill/core/browser/ui/label_formatter_utils.h
@@ -143,18 +143,20 @@ // // Near-duplicate data, such as Düsseldorf and Dusseldorf or 3 Elm St and 3 Elm // St., should be filtered out before calling this function. -bool HaveSameEmailAddresses(const std::vector<AutofillProfile*>& profiles, +bool HaveSameEmailAddresses(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale); -bool HaveSameFirstNames(const std::vector<AutofillProfile*>& profiles, +bool HaveSameFirstNames(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale); -bool HaveSameNonStreetAddresses(const std::vector<AutofillProfile*>& profiles, - const std::string& app_locale, - const std::vector<ServerFieldType>& types); -bool HaveSamePhoneNumbers(const std::vector<AutofillProfile*>& profiles, +bool HaveSameNonStreetAddresses( + const std::vector<const AutofillProfile*>& profiles, + const std::string& app_locale, + const std::vector<ServerFieldType>& types); +bool HaveSamePhoneNumbers(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale); -bool HaveSameStreetAddresses(const std::vector<AutofillProfile*>& profiles, - const std::string& app_locale, - const std::vector<ServerFieldType>& types); +bool HaveSameStreetAddresses( + const std::vector<const AutofillProfile*>& profiles, + const std::string& app_locale, + const std::vector<ServerFieldType>& types); // Each HasUnfocused* function below returns true if the form described by // |form_groups| includes a field corresponding to the specified data and if
diff --git a/components/autofill/core/browser/ui/mobile_label_formatter.cc b/components/autofill/core/browser/ui/mobile_label_formatter.cc index 02fdeb00..c3af33e 100644 --- a/components/autofill/core/browser/ui/mobile_label_formatter.cc +++ b/components/autofill/core/browser/ui/mobile_label_formatter.cc
@@ -25,7 +25,7 @@ using data_util::bit_field_type_groups::kPhone; MobileLabelFormatter::MobileLabelFormatter( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups,
diff --git a/components/autofill/core/browser/ui/mobile_label_formatter.h b/components/autofill/core/browser/ui/mobile_label_formatter.h index c47c76a..205ef470 100644 --- a/components/autofill/core/browser/ui/mobile_label_formatter.h +++ b/components/autofill/core/browser/ui/mobile_label_formatter.h
@@ -34,7 +34,7 @@ // Non street address examples: London, 02113, CA, Rio Comprido, and Germany class MobileLabelFormatter : public LabelFormatter { public: - MobileLabelFormatter(const std::vector<AutofillProfile*>& profiles, + MobileLabelFormatter(const std::vector<const AutofillProfile*>& profiles, const std::string& app_locale, ServerFieldType focused_field_type, uint32_t groups,
diff --git a/components/autofill/core/browser/ui/mobile_label_formatter_unittest.cc b/components/autofill/core/browser/ui/mobile_label_formatter_unittest.cc index 19d584b..4d88113 100644 --- a/components/autofill/core/browser/ui/mobile_label_formatter_unittest.cc +++ b/components/autofill/core/browser/ui/mobile_label_formatter_unittest.cc
@@ -83,7 +83,7 @@ } TEST(MobileLabelFormatterTest, GetLabelsWithMissingProfiles) { - const std::vector<AutofillProfile*> profiles{}; + const std::vector<const AutofillProfile*> profiles{}; const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", NAME_FIRST, {NAME_FIRST, NAME_LAST, EMAIL_ADDRESS}); EXPECT_TRUE(formatter->GetLabels().empty()); @@ -103,7 +103,8 @@ AutofillProfile profileC; test::SetProfileInfo(&profileC, "firstC", "middleC", "lastC", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profileA, &profileB, &profileC}; + const std::vector<const AutofillProfile*> profiles{&profileA, &profileB, + &profileC}; // Tests that the street address is shown when the form contains a street // address field and the user is not focused on it. @@ -152,7 +153,7 @@ // Tests that a street is shown when a form contains an unfocused street // address and a focused non street address. AutofillProfile profileB = GetProfileB(); - std::vector<AutofillProfile*> profiles{&profileA, &profileB}; + std::vector<const AutofillProfile*> profiles{&profileA, &profileB}; std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( profiles, "en-US", ADDRESS_HOME_ZIP, GetAddressPlusContactFieldTypes()); @@ -251,7 +252,7 @@ features::kAutofillUseMobileLabelDisambiguation, parameters); AutofillProfile profileA = GetProfileA(); - std::vector<AutofillProfile*> profiles{&profileA}; + std::vector<const AutofillProfile*> profiles{&profileA}; // Tests that the second most important piece of data, phone, is shown when // the form has an unfocused form field corresponding to this data and the @@ -289,7 +290,8 @@ AutofillProfile profileC; test::SetProfileInfo(&profileC, "firstC", "middleC", "lastC", "", "", "", "", "", "", "", "US", ""); - const std::vector<AutofillProfile*> profiles{&profileA, &profileB, &profileC}; + const std::vector<const AutofillProfile*> profiles{&profileA, &profileB, + &profileC}; // Tests that unfocused data that is not the same across profiles is shown in // the label for forms with addresses. @@ -352,7 +354,7 @@ features::kAutofillUseMobileLabelDisambiguation, parameters); AutofillProfile profileA = GetProfileA(); - const std::vector<AutofillProfile*> profiles{&profileA}; + const std::vector<const AutofillProfile*> profiles{&profileA}; // Tests that the most important piece of data, address, is shown when the // form has an unfocused form field corresponding to this data.
diff --git a/components/autofill/core/browser/ui/suggestion_selection.cc b/components/autofill/core/browser/ui/suggestion_selection.cc index 64c25ff..af6b709 100644 --- a/components/autofill/core/browser/ui/suggestion_selection.cc +++ b/components/autofill/core/browser/ui/suggestion_selection.cc
@@ -391,16 +391,16 @@ return AutofillProfileComparator::NormalizeForComparison(text); } -std::vector<AutofillProfile*> GetPrefixMatchedProfiles( +std::vector<const AutofillProfile*> GetPrefixMatchedProfiles( const AutofillType& type, const std::u16string& raw_field_contents, const std::u16string& field_contents_canon, const std::string& app_locale, bool field_is_autofilled, const std::vector<AutofillProfile*>& profiles) { - std::vector<AutofillProfile*> matched_profiles; + std::vector<const AutofillProfile*> matched_profiles; - for (AutofillProfile* profile : profiles) { + for (const AutofillProfile* profile : profiles) { if (matched_profiles.size() == kMaxSuggestedProfilesCount) { break; } @@ -432,12 +432,12 @@ return matched_profiles; } -std::vector<AutofillProfile*> DeduplicatedProfilesForSuggestions( +std::vector<const AutofillProfile*> DeduplicatedProfilesForSuggestions( const AutofillType& type, const ServerFieldTypeSet& field_types, const AutofillProfileComparator& comparator, - const std::vector<AutofillProfile*> matched_profiles) { - std::vector<AutofillProfile*> unique_matched_profiles; + const std::vector<const AutofillProfile*> matched_profiles) { + std::vector<const AutofillProfile*> unique_matched_profiles; std::vector<std::u16string> suggestion_main_text; for (const AutofillProfile* profile : matched_profiles) { suggestion_main_text.push_back( @@ -452,9 +452,9 @@ unique_matched_profiles.size() < kMaxUniqueSuggestedProfilesCount; ++i) { bool include = true; - AutofillProfile* profile_a = matched_profiles[i]; + const AutofillProfile* profile_a = matched_profiles[i]; for (size_t j = 0; j < matched_profiles.size(); ++j) { - AutofillProfile* profile_b = matched_profiles[j]; + const AutofillProfile* profile_b = matched_profiles[j]; // Check if profile A is a subset of profile B. If not, continue. if (i == j || !comparator.Compare(suggestion_main_text[i],
diff --git a/components/autofill/core/browser/ui/suggestion_selection.h b/components/autofill/core/browser/ui/suggestion_selection.h index 1141cd1b7..a49e163 100644 --- a/components/autofill/core/browser/ui/suggestion_selection.h +++ b/components/autofill/core/browser/ui/suggestion_selection.h
@@ -64,7 +64,7 @@ // Matches based on prefix search, and limits number of profiles. // Returns the top matching profiles based on prefix search. At most // `kMaxSuggestedProfilesCount` are returned. -std::vector<AutofillProfile*> GetPrefixMatchedProfiles( +std::vector<const AutofillProfile*> GetPrefixMatchedProfiles( const AutofillType& type, const std::u16string& raw_field_contents, const std::u16string& field_contents_canon, @@ -77,11 +77,11 @@ // `kMaxUniqueSuggestedProfilesCount` profiles. `field_types` stores all of the // ServerFieldTypes relevant for the current suggestions, including that of the // field on which the user is currently focused. -std::vector<AutofillProfile*> DeduplicatedProfilesForSuggestions( +std::vector<const AutofillProfile*> DeduplicatedProfilesForSuggestions( const AutofillType& type, const ServerFieldTypeSet& field_types, const AutofillProfileComparator& comparator, - const std::vector<AutofillProfile*> matched_profiles); + const std::vector<const AutofillProfile*> matched_profiles); // Returns whether the |suggestion_canon| is valid considering the // |field_contents_canon|, the |type|, |is_masked_server_card|, and
diff --git a/components/autofill/core/browser/ui/suggestion_selection_unittest.cc b/components/autofill/core/browser/ui/suggestion_selection_unittest.cc index 7ca8a00a..f0063421 100644 --- a/components/autofill/core/browser/ui/suggestion_selection_unittest.cc +++ b/components/autofill/core/browser/ui/suggestion_selection_unittest.cc
@@ -60,7 +60,7 @@ } std::vector<Suggestion> CreateSuggestions( - const std::vector<AutofillProfile*>& profiles, + const std::vector<const AutofillProfile*>& profiles, const ServerFieldType& field_type) { return base::test::ToVector( profiles, [field_type](const AutofillProfile* profile) { @@ -78,9 +78,10 @@ const std::unique_ptr<AutofillProfile> profile2 = CreateProfileUniquePtr("Bob"); - std::vector<AutofillProfile*> matched_profiles = GetPrefixMatchedProfiles( - AutofillType(NAME_FIRST), u"Mar", GetCanonicalUtf16Content("Mar"), - comparator_.app_locale(), false, {profile1.get(), profile2.get()}); + std::vector<const AutofillProfile*> matched_profiles = + GetPrefixMatchedProfiles( + AutofillType(NAME_FIRST), u"Mar", GetCanonicalUtf16Content("Mar"), + comparator_.app_locale(), false, {profile1.get(), profile2.get()}); ASSERT_EQ(1U, matched_profiles.size()); EXPECT_EQ(profile1.get(), matched_profiles[0]); @@ -90,17 +91,19 @@ const std::unique_ptr<AutofillProfile> profile1 = CreateProfileUniquePtr("Bob"); - std::vector<AutofillProfile*> matched_profiles = GetPrefixMatchedProfiles( - AutofillType(NAME_FIRST), u"Mar", GetCanonicalUtf16Content("Mar"), - comparator_.app_locale(), false, {profile1.get()}); + std::vector<const AutofillProfile*> matched_profiles = + GetPrefixMatchedProfiles( + AutofillType(NAME_FIRST), u"Mar", GetCanonicalUtf16Content("Mar"), + comparator_.app_locale(), false, {profile1.get()}); ASSERT_TRUE(matched_profiles.empty()); } TEST_F(SuggestionSelectionTest, GetPrefixMatchedProfiles_EmptyProfilesInput) { - std::vector<AutofillProfile*> matched_profiles = GetPrefixMatchedProfiles( - AutofillType(NAME_FIRST), u"Mar", GetCanonicalUtf16Content("Mar"), - comparator_.app_locale(), false, {}); + std::vector<const AutofillProfile*> matched_profiles = + GetPrefixMatchedProfiles(AutofillType(NAME_FIRST), u"Mar", + GetCanonicalUtf16Content("Mar"), + comparator_.app_locale(), false, {}); ASSERT_TRUE(matched_profiles.empty()); } @@ -118,9 +121,10 @@ std::vector<AutofillProfile*> profiles_pointers = base::test::ToVector( profiles_data, &std::unique_ptr<AutofillProfile>::get); - std::vector<AutofillProfile*> matched_profiles = GetPrefixMatchedProfiles( - AutofillType(NAME_FIRST), u"Mar", GetCanonicalUtf16Content("Mar"), - comparator_.app_locale(), false, profiles_pointers); + std::vector<const AutofillProfile*> matched_profiles = + GetPrefixMatchedProfiles( + AutofillType(NAME_FIRST), u"Mar", GetCanonicalUtf16Content("Mar"), + comparator_.app_locale(), false, profiles_pointers); // Marie should not be found. ASSERT_EQ(kMaxSuggestedProfilesCount, matched_profiles.size()); @@ -141,9 +145,10 @@ const std::unique_ptr<AutofillProfile> profile2 = CreateProfileUniquePtr("Bob"); - auto profile_pointers = {profile1.get(), profile2.get()}; + std::vector<const AutofillProfile*> profile_pointers = {profile1.get(), + profile2.get()}; - std::vector<AutofillProfile*> unique_matched_profiles = + std::vector<const AutofillProfile*> unique_matched_profiles = DeduplicatedProfilesForSuggestions(AutofillType(NAME_FIRST), {}, comparator_, profile_pointers); @@ -162,9 +167,10 @@ const std::unique_ptr<AutofillProfile> profile3 = CreateProfileUniquePtr("Mary", "Parker"); - auto profile_pointers = {profile1.get(), profile2.get(), profile3.get()}; + std::vector<const AutofillProfile*> profile_pointers = { + profile1.get(), profile2.get(), profile3.get()}; - std::vector<AutofillProfile*> unique_matched_profiles = + std::vector<const AutofillProfile*> unique_matched_profiles = DeduplicatedProfilesForSuggestions(AutofillType(NAME_FIRST), {NAME_LAST}, comparator_, profile_pointers); @@ -183,11 +189,11 @@ } // Map all the pointers into an array that has the right type. - std::vector<AutofillProfile*> profiles_pointers; + std::vector<const AutofillProfile*> profiles_pointers; base::ranges::transform(profiles_data, std::back_inserter(profiles_pointers), &std::unique_ptr<AutofillProfile>::get); - std::vector<AutofillProfile*> unique_matched_profiles = + std::vector<const AutofillProfile*> unique_matched_profiles = DeduplicatedProfilesForSuggestions(AutofillType(NAME_FIRST), {NAME_LAST}, comparator_, profiles_pointers); @@ -215,10 +221,10 @@ local_profile->set_source_for_testing( AutofillProfile::Source::kLocalOrSyncable); // Place `account_profile` behind `local_profile`. - std::vector<AutofillProfile*> profiles = {local_profile.get(), - account_profile.get()}; + std::vector<const AutofillProfile*> profiles = {local_profile.get(), + account_profile.get()}; - std::vector<AutofillProfile*> unique_matched_profiles = + std::vector<const AutofillProfile*> unique_matched_profiles = DeduplicatedProfilesForSuggestions(AutofillType(NAME_FIRST), {}, comparator_, profiles); // Usually, duplicates are resolved in favour of the earlier profile. Expect
diff --git a/components/autofill/core/browser/webdata/autofill_table.cc b/components/autofill/core/browser/webdata/autofill_table.cc index 28e2136..d444645 100644 --- a/components/autofill/core/browser/webdata/autofill_table.cc +++ b/components/autofill/core/browser/webdata/autofill_table.cc
@@ -1713,7 +1713,7 @@ // VerificationStatus of the data entry's `value`. int status; // Serialized observations for the stored type. - std::vector<const uint8_t> serialized_data; + std::vector<uint8_t> serialized_data; }; std::vector<FieldTypeData> field_type_values; @@ -1735,8 +1735,8 @@ base::span<const uint8_t> observations_data = s.ColumnBlob(3); field_type_values.emplace_back( type, s.ColumnString16(1), s.ColumnInt(2), - std::vector<const uint8_t>(observations_data.begin(), - observations_data.end())); + std::vector<uint8_t>(observations_data.begin(), + observations_data.end())); if (type == ADDRESS_HOME_COUNTRY) { country_code = base::UTF16ToUTF8(s.ColumnString16(1));
diff --git a/components/browser_ui/accessibility/android/java/res/layout/page_zoom_preference.xml b/components/browser_ui/accessibility/android/java/res/layout/page_zoom_preference.xml index 4ed68fe..690749f 100644 --- a/components/browser_ui/accessibility/android/java/res/layout/page_zoom_preference.xml +++ b/components/browser_ui/accessibility/android/java/res/layout/page_zoom_preference.xml
@@ -62,7 +62,7 @@ android:textAlignment="center" /> <include - android:id="@+id/text_size_contrast_layout_container" + android:id="@+id/text_size_contrast_seekbar" layout="@layout/text_size_contrast_slider" android:visibility="gone" />
diff --git a/components/browser_ui/accessibility/android/java/res/layout/text_size_contrast_slider.xml b/components/browser_ui/accessibility/android/java/res/layout/text_size_contrast_slider.xml index 26dcad74..562cbfd 100644 --- a/components/browser_ui/accessibility/android/java/res/layout/text_size_contrast_slider.xml +++ b/components/browser_ui/accessibility/android/java/res/layout/text_size_contrast_slider.xml
@@ -17,7 +17,6 @@ android:layout_width="@dimen/min_touch_target_size" android:layout_height="@dimen/min_touch_target_size" android:src="@drawable/ic_remove" - android:visibility="gone" android:background="@drawable/page_zoom_ripple" android:tint="@color/default_icon_color_tint_list" /> @@ -26,7 +25,6 @@ android:layout_weight="1" android:layout_width="0dp" android:layout_height="@dimen/min_touch_target_size" - android:visibility="gone" android:contentDescription="@string/page_zoom_label" /> <org.chromium.ui.widget.ChromeImageButton @@ -34,7 +32,6 @@ android:layout_width="@dimen/min_touch_target_size" android:layout_height="@dimen/min_touch_target_size" android:src="@drawable/ic_add" - android:visibility="gone" android:background="@drawable/page_zoom_ripple" android:tint="@color/default_icon_color_tint_list" />
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/PageZoomPreference.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/PageZoomPreference.java index 7ba185bc..2a034f6 100644 --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/PageZoomPreference.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/PageZoomPreference.java
@@ -109,26 +109,21 @@ if (ContentFeatureMap.isEnabled(ContentFeatureList.SMART_ZOOM)) { holder.findViewById(R.id.text_size_contrast_title).setVisibility(View.VISIBLE); holder.findViewById(R.id.text_size_contrast_summary).setVisibility(View.VISIBLE); - holder.findViewById(R.id.text_size_contrast_layout_container) - .setVisibility(View.VISIBLE); mTextSizeContrastCurrentLevelText = (TextView) holder.findViewById(R.id.text_size_contrast_current_value_text); mTextSizeContrastCurrentLevelText.setText( getContext().getResources().getString(R.string.text_size_contrast_level, 0)); - mTextSizeContrastCurrentLevelText.setVisibility(View.VISIBLE); mTextSizeContrastDecreaseButton = (ChromeImageButton) holder.findViewById( R.id.text_size_contrast_decrease_zoom_button); mTextSizeContrastDecreaseButton.setOnClickListener( v -> onHandleContrastDecreaseClicked()); - mTextSizeContrastDecreaseButton.setVisibility(View.VISIBLE); mTextSizeContrastIncreaseButton = (ChromeImageButton) holder.findViewById( R.id.text_size_contrast_increase_zoom_button); mTextSizeContrastIncreaseButton.setOnClickListener( v -> onHandleContrastIncreaseClicked()); - mTextSizeContrastIncreaseButton.setVisibility(View.VISIBLE); mTextSizeContrastSeekBar = (SeekBar) holder.findViewById(R.id.text_size_contrast_slider); @@ -136,8 +131,13 @@ mTextSizeContrastSeekBar.setMax(PageZoomUtils.TEXT_SIZE_CONTRAST_MAX_LEVEL); mTextSizeContrastFactor = mTextSizeContrastDelegate.getValue(); mTextSizeContrastSeekBar.setProgress(mTextSizeContrastFactor); - mTextSizeContrastSeekBar.setVisibility(View.VISIBLE); updateViewsOnProgressChanged(mTextSizeContrastFactor, mTextSizeContrastSeekBar); + + mTextSizeContrastCurrentLevelText.setVisibility(View.VISIBLE); + holder.findViewById(R.id.text_size_contrast_current_value_text) + .setVisibility(View.VISIBLE); + holder.findViewById(R.id.text_size_contrast_summary).setVisibility(View.VISIBLE); + holder.findViewById(R.id.text_size_contrast_seekbar).setVisibility(View.VISIBLE); } } @@ -285,24 +285,4 @@ private void saveTextSizeContrastValueToPreferences() { mTextSizeContrastDelegate.setValue(mTextSizeContrastSeekBar.getProgress()); } - - // Testing methods. - - public SeekBar getZoomSliderForTesting() { - return mSeekBar; - } - - public void setZoomValueForTesting(int progress) { - mSeekBar.setProgress(progress); - updateViewsOnProgressChanged(progress, mSeekBar); - } - - public SeekBar getTextSizeContrastSliderForTesting() { - return mTextSizeContrastSeekBar; - } - - public void setTextContrastValueForTesting(int contrast) { - mTextSizeContrastSeekBar.setProgress(contrast); - updateViewsOnProgressChanged(contrast, mTextSizeContrastSeekBar); - } } \ No newline at end of file
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingException.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingException.java index 30276e1..23e41bc 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingException.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingException.java
@@ -22,12 +22,12 @@ private final @ContentSettingsType int mContentSettingType; private final String mPrimaryPattern; private final String mSecondaryPattern; + private final @ContentSettingValues @Nullable Integer mContentSetting; // TODO(crbug.com/1344877): Convert {@link #mSource} to enum to enable merging {@link #mSource} // and {@link #mIsEmbargoed}. private final String mSource; private final Integer mExpirationInDays; private final boolean mIsEmbargoed; - private @ContentSettingValues @Nullable Integer mContentSetting; /** * Construct a ContentSettingException. @@ -101,7 +101,6 @@ */ public void setContentSetting( BrowserContextHandle browserContextHandle, @ContentSettingValues int value) { - mContentSetting = value; WebsitePreferenceBridge.setContentSettingCustomScope(browserContextHandle, mContentSettingType, mPrimaryPattern, getSecondaryPatternSafe(), value); }
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java index 5dcf09f3..4cd8246d 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
@@ -288,11 +288,6 @@ R.string.website_settings_category_sound_allowed, R.string.website_settings_category_sound_blocked); - case ContentSettingsType.STORAGE_ACCESS: - return new ResourceItem(R.drawable.ic_storage_access_24, - R.string.storage_access_permission_title, ContentSettingValues.ASK, - ContentSettingValues.BLOCK, 0, 0); - case ContentSettingsType.USB_CHOOSER_DATA: return new ResourceItem(R.drawable.gm_filled_usb_24, 0, ContentSettingValues.ASK, ContentSettingValues.BLOCK, 0, 0);
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java index 324e701..bf1276a 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
@@ -21,12 +21,17 @@ private final String mOrigin; private final @ContentSettingsType int mContentSettingsType; + public PermissionInfo(@ContentSettingsType int type, String origin, String embedder) { + this(type, origin, embedder, false); + } + public PermissionInfo( @ContentSettingsType int type, String origin, String embedder, boolean isEmbargoed) { assert WebsitePermissionsFetcher.getPermissionsType(type) - == WebsitePermissionsFetcher.WebsitePermissionsType.PERMISSION_INFO - : "invalid type: " - + type; + == WebsitePermissionsFetcher.WebsitePermissionsType.PERMISSION_INFO + || WebsitePermissionsFetcher.getPermissionsType(type) + == WebsitePermissionsFetcher.WebsitePermissionsType.EMBEDDED_PERMISSION_INFO + : "invalid type: " + type; mOrigin = origin; mEmbedder = embedder; mContentSettingsType = type;
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java index 9a481ac3..3615b97 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -43,7 +43,6 @@ import java.util.Collection; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -205,13 +204,9 @@ // The Preference key for chooser object permissions. private static final String CHOOSER_PERMISSION_PREFERENCE_KEY = "chooser_permission_list"; - // The Preference key for embedded permissions such as StorageAccess. - private static final String EMBEDDED_PERMISSION_PREFERENCE_KEY = "embedded_permission_list"; - // The number of user and policy chosen object permissions displayed. private int mObjectUserPermissionCount; private int mObjectPolicyPermissionCount; - private int mEmbeddedPermissionCount; // Records previous notification permission on Android O+ to allow detection of permission // revocation within the Android system permission activity. @@ -428,13 +423,13 @@ merged.setPermissionInfo(info); } } - for (var exceptionList : other.getEmbeddedPermissions().values()) { - for (var exception : exceptionList) { + for (var infoList : other.getEmbeddedPermissionInfos().values()) { + for (var info : infoList) { boolean matchesOrigin = other.getEmbedder() != null && WebsitePreferenceBridgeJni.get().urlMatchesContentSettingsPattern( - origin, exception.getSecondaryPattern()); + origin, info.getEmbedder()); if (matchesOrigin) { - merged.addEmbeddedPermission(exception); + merged.addEmbeddedPermissionInfo(info); } } } @@ -506,7 +501,6 @@ findPreference(PREF_SITE_TITLE).setTitle(mSite.getTitle()); setupContentSettingsPreferences(); - setUpEmbeddedContentSettingPreferences(); setUpChosenObjectPreferences(); setupResetSitePreference(); setUpClearDataPreference(); @@ -843,40 +837,6 @@ } } - private void setUpEmbeddedContentSettingPreferences() { - PreferenceScreen preferenceScreen = getPreferenceScreen(); - BrowserContextHandle handle = getSiteSettingsDelegate().getBrowserContextHandle(); - - for (List<ContentSettingException> entries : mSite.getEmbeddedPermissions().values()) { - for (ContentSettingException info : entries) { - var preference = new ChromeSwitchPreference(getStyledContext()); - preference.setKey(EMBEDDED_PERMISSION_PREFERENCE_KEY); - preference.setIcon(getContentSettingsIcon(info.getContentSettingType(), null)); - preference.setTitle(ContentSettingsResources.getTitle( - info.getContentSettingType(), getSiteSettingsDelegate())); - var pattern = WebsiteAddress.create(info.getPrimaryPattern()); - preference.setSummary(pattern.getHost()); - preference.setChecked(info.getContentSetting() == ContentSettingValues.ALLOW); - preference.setOnPreferenceChangeListener((pref, newValue) -> { - info.setContentSetting(handle, - (boolean) newValue ? ContentSettingValues.ALLOW - : ContentSettingValues.BLOCK); - if (mWebsiteSettingsObserver != null) { - mWebsiteSettingsObserver.onPermissionChanged(); - } - return true; - }); - if (info.getContentSettingType() == mHighlightedPermission) { - preference.setBackgroundColor(mHighlightColor); - } - - mEmbeddedPermissionCount++; - preference.setOrder(++mMaxPermissionOrder); - preferenceScreen.addPreference(preference); - } - } - } - private Context getStyledContext() { return getPreferenceManager().getContext(); } @@ -994,10 +954,7 @@ } private boolean hasPermissionsPreferences() { - if (mObjectUserPermissionCount > 0 || mObjectPolicyPermissionCount > 0 - || mEmbeddedPermissionCount > 0) { - return true; - } + if (mObjectUserPermissionCount > 0 || mObjectPolicyPermissionCount > 0) return true; PreferenceScreen preferenceScreen = getPreferenceScreen(); for (int i = 0; i < preferenceScreen.getPreferenceCount(); i++) { String key = preferenceScreen.getPreference(i).getKey(); @@ -1244,18 +1201,13 @@ removePreferenceSafely(key); } } - var preference = findPreference(EMBEDDED_PERMISSION_PREFERENCE_KEY); - while (preference != null) { - getPreferenceScreen().removePreference(preference); - preference = findPreference(EMBEDDED_PERMISSION_PREFERENCE_KEY); - } // Clearing stored data implies popping back to parent menu if there is nothing left to // show. Therefore, we only need to explicitly close the activity if there's no stored data // to begin with. The only exception to this is if there are policy managed permissions as // those cannot be reset and will always show. - boolean finishActivityImmediately = mSite.getTotalUsage() == 0 - && mObjectPolicyPermissionCount == 0 && mEmbeddedPermissionCount == 0; + boolean finishActivityImmediately = + mSite.getTotalUsage() == 0 && mObjectPolicyPermissionCount == 0; SiteDataCleaner.resetPermissions( getSiteSettingsDelegate().getBrowserContextHandle(), mSite);
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteDataCleaner.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteDataCleaner.java index 1297a48..4725b62 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteDataCleaner.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteDataCleaner.java
@@ -64,12 +64,6 @@ for (ChosenObjectInfo info : site.getChosenObjectInfo()) { info.revoke(browserContextHandle); } - - for (var exceptions : site.getEmbeddedPermissions().values()) { - for (var exception : exceptions) { - exception.setContentSetting(browserContextHandle, ContentSettingValues.DEFAULT); - } - } } /**
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java index a3ab86f..7b3485d 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
@@ -44,7 +44,7 @@ * Indexed by ContentSettingsType. For Permissions like the StorageAccess API that are keyed by * requesting and embedding site. */ - private Map<Integer, List<ContentSettingException>> mEmbeddedPermissionInfos = new HashMap<>(); + private Map<Integer, List<PermissionInfo>> mEmbeddedPermissionInfos = new HashMap<>(); private LocalStorageInfo mLocalStorageInfo; private FPSCookieInfo mFPSCookieInfo; @@ -166,14 +166,15 @@ mPermissionInfos.put(info.getContentSettingsType(), info); } - public Map<Integer, List<ContentSettingException>> getEmbeddedPermissions() { + public Map<Integer, List<PermissionInfo>> getEmbeddedPermissionInfos() { return mEmbeddedPermissionInfos; } - public void addEmbeddedPermission(ContentSettingException info) { - assert !info.getSecondaryPattern().equals("*"); + public void addEmbeddedPermissionInfo(PermissionInfo info) { + assert info.getEmbedder() != null; + assert !info.getEmbedder().equals("*"); var list = mEmbeddedPermissionInfos.computeIfAbsent( - info.getContentSettingType(), k -> new ArrayList<>()); + info.getContentSettingsType(), k -> new ArrayList<>()); list.add(info); }
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsiteAddress.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsiteAddress.java index aaa85cd..49884a1 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsiteAddress.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsiteAddress.java
@@ -64,7 +64,7 @@ } // Origin - if (originOrHostOrPattern.contains(SCHEME_SUFFIX)) { + if (originOrHostOrPattern.indexOf(SCHEME_SUFFIX) != -1) { Uri uri = Uri.parse(originOrHostOrPattern); String origin = trimTrailingBackslash(originOrHostOrPattern); boolean omitProtocolAndPort = UrlConstants.HTTP_SCHEME.equals(uri.getScheme())
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java index 45f342d..9e9ba97 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
@@ -39,7 +39,7 @@ public enum WebsitePermissionsType { CONTENT_SETTING_EXCEPTION, PERMISSION_INFO, - EMBEDDED_PERMISSION, + EMBEDDED_PERMISSION_INFO, CHOSEN_OBJECT_INFO } @@ -99,7 +99,7 @@ case ContentSettingsType.STORAGE_ACCESS: if (PermissionsAndroidFeatureMap.isEnabled( PermissionsAndroidFeatureList.PERMISSION_STORAGE_ACCESS)) { - return WebsitePermissionsType.EMBEDDED_PERMISSION; + return WebsitePermissionsType.EMBEDDED_PERMISSION_INFO; } return null; case ContentSettingsType.BLUETOOTH_GUARD: @@ -332,10 +332,10 @@ queue.add(new ExceptionInfoFetcher(contentSettingsType)); return; case PERMISSION_INFO: - queue.add(new PermissionInfoFetcher(contentSettingsType)); + queue.add(new PermissionInfoFetcher(contentSettingsType, false)); return; - case EMBEDDED_PERMISSION: - queue.add(new ExceptionInfoFetcher(contentSettingsType)); + case EMBEDDED_PERMISSION_INFO: + queue.add(new PermissionInfoFetcher(contentSettingsType, true)); return; case CHOSEN_OBJECT_INFO: queue.add(new ChooserExceptionInfoFetcher(contentSettingsType)); @@ -378,8 +378,6 @@ } private void setException(int contentSettingsType) { - boolean isEmbeddedPermission = getPermissionsType(contentSettingsType) - == WebsitePermissionsType.EMBEDDED_PERMISSION; for (ContentSettingException exception : mWebsitePreferenceBridge.getContentSettingsExceptions( mBrowserContextHandle, contentSettingsType)) { @@ -395,11 +393,7 @@ ? address : WebsiteAddress.create(address).getOrigin(); Website site = findOrCreateSite(origin, embedder); - if (isEmbeddedPermission) { - site.addEmbeddedPermission(exception); - } else { - site.setContentSettingException(contentSettingsType, exception); - } + site.setContentSettingException(contentSettingsType, exception); } } @@ -436,8 +430,10 @@ final @ContentSettingsType int mType; private boolean mIsEmbeddedPermission; - public PermissionInfoFetcher(@ContentSettingsType int type) { + public PermissionInfoFetcher( + @ContentSettingsType int type, boolean isEmbeddedPermission) { mType = type; + mIsEmbeddedPermission = isEmbeddedPermission; } @Override @@ -449,7 +445,11 @@ String embedder = mType == ContentSettingsType.SENSORS ? null : info.getEmbedder(); Website site = findOrCreateSite(origin, embedder); - site.setPermissionInfo(info); + if (mIsEmbeddedPermission) { + site.addEmbeddedPermissionInfo(info); + } else { + site.setPermissionInfo(info); + } } } }
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java index b7543ea..791e1a5 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
@@ -379,17 +379,13 @@ public static void setContentSettingCustomScope(BrowserContextHandle browserContextHandle, @ContentSettingsType int contentSettingType, String primaryPattern, String secondaryPattern, @ContentSettingValues int setting) { - if (contentSettingType == ContentSettingsType.STORAGE_ACCESS) { - // StorageAccess exceptions should always specify a primary and a secondary pattern. - assert !primaryPattern.equals(SITE_WILDCARD) && !secondaryPattern.equals(SITE_WILDCARD); - } else if (contentSettingType == ContentSettingsType.COOKIES - && !secondaryPattern.equals(SITE_WILDCARD)) { - // Currently only Cookie Settings support a non-empty, non-wildcard secondaryPattern. - // In addition, if a Cookie Setting uses secondaryPattern, the primaryPattern must be - // the wildcard. - assert primaryPattern.equals(SITE_WILDCARD); - } else { + // Currently only Cookie Settings support a non-empty, non-wildcard secondaryPattern. + // In addition, if a Cookie Setting uses secondaryPattern, the primaryPattern must be + // the wildcard. + if (contentSettingType != ContentSettingsType.COOKIES) { assert secondaryPattern.equals(SITE_WILDCARD) || secondaryPattern.isEmpty(); + } else if (!secondaryPattern.equals(SITE_WILDCARD) && !secondaryPattern.isEmpty()) { + assert primaryPattern.equals(SITE_WILDCARD); } WebsitePreferenceBridgeJni.get().setContentSettingCustomScope(browserContextHandle,
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp index 79667881..d094c00 100644 --- a/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -112,9 +112,6 @@ <message name="IDS_DESKTOP_SITE_TITLE" desc="Title of the permission to request the desktop view of a site by default [CHAR_LIMIT=32]"> Desktop site </message> - <message name="IDS_STORAGE_ACCESS_PERMISSION_TITLE" desc="Title of the permission to allow embedded content to access cookies and site data [CHAR_LIMIT=32]"> - Embedded content - </message> <!-- Site settings global toggles -->
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_STORAGE_ACCESS_PERMISSION_TITLE.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_STORAGE_ACCESS_PERMISSION_TITLE.png.sha1 deleted file mode 100644 index 2207b74..0000000 --- a/components/browser_ui/strings/android/site_settings_grdp/IDS_STORAGE_ACCESS_PERMISSION_TITLE.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -6625fe55c5336a912a673001ee4a592e94eb31a8 \ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb index 5a727400..c661b61b 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_af.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Deel tans jou skerm</translation> <translation id="5922967540311291836">Blokkeer derdepartywebkoekies:</translation> <translation id="5939518447894949180">Stel terug</translation> +<translation id="5964247741333118902">Ingebedde inhoud</translation> <translation id="5968921426641056619">Voer webadres in</translation> <translation id="5975083100439434680">Zoem uit</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb index b4de5d3d..fd8f7d5 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">ማያ ገጽዎን በማጋራት ላይ</translation> <translation id="5922967540311291836">የሶስተኛ ወገን ኩኪዎችን ያግዱ፦</translation> <translation id="5939518447894949180">ዳግም አስጀምር</translation> +<translation id="5964247741333118902">የተከተተ ይዘት</translation> <translation id="5968921426641056619">የድር አድራሻን ያስገቡ</translation> <translation id="5975083100439434680">አሳንስ</translation> <translation id="5976059395673079613"><ph name="PERMISSION" />፣ <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb index 5b279728..5592046f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
@@ -284,6 +284,7 @@ <translation id="5922853908706496913">جارٍ مشاركة شاشتك</translation> <translation id="5922967540311291836">حظر ملفات تعريف الارتباط التابعة لجهات خارجية:</translation> <translation id="5939518447894949180">إعادة الضبط</translation> +<translation id="5964247741333118902">المحتوى المضمَّن</translation> <translation id="5968921426641056619">أدخِل عنوان الويب.</translation> <translation id="5975083100439434680">تصغير</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb index e3d93d9..e4ade4c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">আপোনাৰ স্ক্ৰীন শ্বেয়াৰ কৰি থকা হৈছে</translation> <translation id="5922967540311291836">তৃতীয় পক্ষৰ কুকি অৱৰোধ কৰক:</translation> <translation id="5939518447894949180">ৰিছেট কৰক</translation> +<translation id="5964247741333118902">এম্বেড কৰা সমল</translation> <translation id="5968921426641056619">ৱেবৰ ঠিকনা দিয়ক</translation> <translation id="5975083100439434680">জুম আউট কৰক</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
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 751574a..8e3f824 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
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Ekranınız paylaşılır</translation> <translation id="5922967540311291836">Üçüncü tərəf kukiləri bloklayın:</translation> <translation id="5939518447894949180">Sıfırlayın</translation> +<translation id="5964247741333118902">Daxil edilmiş kontent</translation> <translation id="5968921426641056619">Veb ünvanını daxil edin</translation> <translation id="5975083100439434680">Kiçildin</translation> <translation id="5976059395673079613"><ph name="PERMISSION" />-<ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb index 451f71db..6abf8384 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Ваш экран абагульваецца</translation> <translation id="5922967540311291836">Блакіраваць староннія файлы cookie:</translation> <translation id="5939518447894949180">Скінуць</translation> +<translation id="5964247741333118902">Убудаванае змесціва</translation> <translation id="5968921426641056619">Увядзіце вэб-адрас</translation> <translation id="5975083100439434680">Паменшыць</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb index 2232643..17129be6 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bg.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Екранът ви се споделя</translation> <translation id="5922967540311291836">Блокиране на „бисквитките“ на трети страни:</translation> <translation id="5939518447894949180">Нулиране</translation> +<translation id="5964247741333118902">Вградено съдържание</translation> <translation id="5968921426641056619">Въведете уеб адрес</translation> <translation id="5975083100439434680">Намаляване на мащаба</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb index 93b3cc1..013e603 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">আপনার স্ক্রিন শেয়ার করা হচ্ছে</translation> <translation id="5922967540311291836">থার্ড-পার্টি কুকি ব্লক করুন:</translation> <translation id="5939518447894949180">রিসেট করুন</translation> +<translation id="5964247741333118902">এম্বেড করা কন্টেন্ট</translation> <translation id="5968921426641056619">ওয়েব ঠিকানা লিখুন</translation> <translation id="5975083100439434680">ছোট করুন</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb index 812f7c4..020d037 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Dijeljenje ekrana</translation> <translation id="5922967540311291836">Blokirajte kolačiće treće strane:</translation> <translation id="5939518447894949180">Vrati na zadano</translation> +<translation id="5964247741333118902">Ugrađeni sadržaj</translation> <translation id="5968921426641056619">Unesite web adresu</translation> <translation id="5975083100439434680">Umanjivanje</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb index ae27d7e..ec97689 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">S'està compartint la pantalla</translation> <translation id="5922967540311291836">Bloqueja les galetes de tercers:</translation> <translation id="5939518447894949180">Restableix</translation> +<translation id="5964247741333118902">Contingut inserit</translation> <translation id="5968921426641056619">Introdueix l'adreça web</translation> <translation id="5975083100439434680">Redueix</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb index 15f7370..2e5a066 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_cs.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Sdílíte obrazovku</translation> <translation id="5922967540311291836">Blokovat soubory cookie třetích stran:</translation> <translation id="5939518447894949180">Resetovat</translation> +<translation id="5964247741333118902">Vložený obsah</translation> <translation id="5968921426641056619">Zadejte webovou adresu</translation> <translation id="5975083100439434680">Oddálit</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb index 9a00d02..916ed73 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Wrthi'n rhannu eich sgrîn</translation> <translation id="5922967540311291836">Rhwystro cwcis trydydd parti:</translation> <translation id="5939518447894949180">Ailosod</translation> +<translation id="5964247741333118902">Cynnwys wedi'i fewnblannu</translation> <translation id="5968921426641056619">Rhowch gyfeiriad gwe</translation> <translation id="5975083100439434680">Pellhau</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb index 6a03fa9fa..caf1aa6a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Deling af din skærm</translation> <translation id="5922967540311291836">Bloker tredjepartscookies:</translation> <translation id="5939518447894949180">Nulstil</translation> +<translation id="5964247741333118902">Indlejret indhold</translation> <translation id="5968921426641056619">Angiv webadresse</translation> <translation id="5975083100439434680">Zoom ud</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb index da94870..001456a3 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Bildschirmfreigabe läuft</translation> <translation id="5922967540311291836">Drittanbieter-Cookies blockieren:</translation> <translation id="5939518447894949180">Zurücksetzen</translation> +<translation id="5964247741333118902">Eingebettete Inhalte</translation> <translation id="5968921426641056619">Webadresse eingeben</translation> <translation id="5975083100439434680">Verkleinern</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
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 c18ad29..85f6a8e 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
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Κοινή χρήση της οθόνης σας</translation> <translation id="5922967540311291836">Αποκλεισμός cookie τρίτου μέρους:</translation> <translation id="5939518447894949180">Επαναφορά</translation> +<translation id="5964247741333118902">Ενσωματωμένο περιεχόμενο</translation> <translation id="5968921426641056619">Εισαγωγή διεύθυνσης ιστού</translation> <translation id="5975083100439434680">Σμίκρυνση</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
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 70cedd1..47ac052 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
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Sharing your screen</translation> <translation id="5922967540311291836">Block third-party cookies:</translation> <translation id="5939518447894949180">Reset</translation> +<translation id="5964247741333118902">Embedded content</translation> <translation id="5968921426641056619">Enter web address</translation> <translation id="5975083100439434680">Zoom out</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb index 340663e..f4e2a42 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Compartiendo tu pantalla</translation> <translation id="5922967540311291836">Bloquear cookies de terceros:</translation> <translation id="5939518447894949180">Restablecer</translation> +<translation id="5964247741333118902">Contenido incorporado</translation> <translation id="5968921426641056619">Ingresa una dirección web</translation> <translation id="5975083100439434680">Alejar</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb index 93f22fc0..29f40d7f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Compartiendo tu pantalla</translation> <translation id="5922967540311291836">Bloquea cookies de terceros:</translation> <translation id="5939518447894949180">Restablecer</translation> +<translation id="5964247741333118902">Contenido insertado</translation> <translation id="5968921426641056619">Introduce una dirección web</translation> <translation id="5975083100439434680">Reducir</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb index e6ec82a..f10443f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Ekraanikuva jagamine</translation> <translation id="5922967540311291836">Kolmanda osapoole küpsisefailide blokeerimine</translation> <translation id="5939518447894949180">Lähtesta</translation> +<translation id="5964247741333118902">Manustatud sisu</translation> <translation id="5968921426641056619">Sisestage veebiaadress</translation> <translation id="5975083100439434680">Suumib välja</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb index 337f9bdb..9e47974 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Pantaila partekatzen</translation> <translation id="5922967540311291836">Blokeatu hirugarrenen cookieak:</translation> <translation id="5939518447894949180">Berrezarri</translation> +<translation id="5964247741333118902">Eduki kapsulatua</translation> <translation id="5968921426641056619">Idatzi web-helbidea</translation> <translation id="5975083100439434680">Txikitu</translation> <translation id="5976059395673079613"><ph name="PERMISSION" />: <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb index 82c86c4..873c0b3 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fa.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">درحال همرسانی صفحهنمایش</translation> <translation id="5922967540311291836">مسدود کردن کوکیهای شخص ثالث:</translation> <translation id="5939518447894949180">بازنشانی</translation> +<translation id="5964247741333118902">محتوای جاسازیشده</translation> <translation id="5968921426641056619">نشانی وب را وارد کنید</translation> <translation id="5975083100439434680">دورنمایی کردن</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb index 33962d69..a1d63a5 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fi.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Näyttösi jaetaan</translation> <translation id="5922967540311291836">Estä kolmannen osapuolen evästeet:</translation> <translation id="5939518447894949180">Tyhjennä</translation> +<translation id="5964247741333118902">Upotettu sisältö</translation> <translation id="5968921426641056619">Lisää verkko-osoite</translation> <translation id="5975083100439434680">Loitonna</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb index 0d8b331..2d11213 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Ibinabahagi ang iyong screen</translation> <translation id="5922967540311291836">I-block ang third-party na cookies:</translation> <translation id="5939518447894949180">I-reset</translation> +<translation id="5964247741333118902">Naka-embed na content</translation> <translation id="5968921426641056619">Ilagay ang address sa web</translation> <translation id="5975083100439434680">Mag-zoom out</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb index 793e4e2..e132381a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr-CA.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Partage de votre écran en cours…</translation> <translation id="5922967540311291836">Bloquer les témoins tiers :</translation> <translation id="5939518447894949180">Recommencer</translation> +<translation id="5964247741333118902">Contenu intégré</translation> <translation id="5968921426641056619">Entrez l'adresse Web</translation> <translation id="5975083100439434680">Zoom arrière</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> : <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb index d3df0b2..9aa5473 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Partage de votre écran…</translation> <translation id="5922967540311291836">Bloquer les cookies tiers :</translation> <translation id="5939518447894949180">Réinitialiser</translation> +<translation id="5964247741333118902">Contenu intégré</translation> <translation id="5968921426641056619">Saisissez une adresse Web</translation> <translation id="5975083100439434680">Zoom arrière</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb index a2b08a7..0d01cd25 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Compartindo pantalla</translation> <translation id="5922967540311291836">Bloquea as cookies de terceiros:</translation> <translation id="5939518447894949180">Restablecer</translation> +<translation id="5964247741333118902">Contido inserido</translation> <translation id="5968921426641056619">Indica o enderezo web</translation> <translation id="5975083100439434680">Afastar</translation> <translation id="5976059395673079613"><ph name="PERMISSION" />: <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb index dacfd1a..a2cd009 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">તમારી સ્ક્રીન શેર કરીએ છીએ</translation> <translation id="5922967540311291836">ત્રીજા પક્ષની કુકીને બ્લૉક કરો:</translation> <translation id="5939518447894949180">રીસેટ કરો</translation> +<translation id="5964247741333118902">શામેલ કરેલું કન્ટેન્ટ</translation> <translation id="5968921426641056619">વેબ ઍડ્રેસ દાખલ કરો</translation> <translation id="5975083100439434680">ઝૂમ ઘટાડો</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb index 1a05b5b4..64f00a14 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hi.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">आपकी स्क्रीन शेयर की जा रही है</translation> <translation id="5922967540311291836">तीसरे पक्ष की कुकी ब्लॉक करें:</translation> <translation id="5939518447894949180">रीसेट करें</translation> +<translation id="5964247741333118902">एम्बेड किया गया कॉन्टेंट</translation> <translation id="5968921426641056619">वेब पता डालें</translation> <translation id="5975083100439434680">ज़ूम आउट</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb index 7bd93562..0111b59 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Dijeljenje zaslona</translation> <translation id="5922967540311291836">Blokiraj kolačiće trećih strana:</translation> <translation id="5939518447894949180">Ponovno postavi</translation> +<translation id="5964247741333118902">Ugrađeni sadržaj</translation> <translation id="5968921426641056619">Unesite web-adresu</translation> <translation id="5975083100439434680">Smanji</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb index 764a64c..0cd9db9 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hu.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Képernyő megosztása</translation> <translation id="5922967540311291836">Harmadik féltől származó cookie-k letiltása</translation> <translation id="5939518447894949180">Visszaállítás</translation> +<translation id="5964247741333118902">Beágyazott tartalom</translation> <translation id="5968921426641056619">Adja meg a kívánt internetcímet</translation> <translation id="5975083100439434680">Kicsinyítés</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb index af5918c..2056c2e6 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hy.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Էկրանը ցուցադրվում է</translation> <translation id="5922967540311291836">Արգելափակել երրորդ կողմի քուքիները․</translation> <translation id="5939518447894949180">Վերակայել</translation> +<translation id="5964247741333118902">Զետեղված բովանդակություն</translation> <translation id="5968921426641056619">Մուտքագրեք վեբ հասցեն</translation> <translation id="5975083100439434680">Փոքրացնել</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb index bd61e2c..4814826 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_id.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Membagikan layar Anda</translation> <translation id="5922967540311291836">Blokir cookie pihak ketiga:</translation> <translation id="5939518447894949180">Reset</translation> +<translation id="5964247741333118902">Konten yang disematkan</translation> <translation id="5968921426641056619">Masukkan alamat web</translation> <translation id="5975083100439434680">Perkecil</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb index aab5862..767fc251 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Deiling skjásins þíns</translation> <translation id="5922967540311291836">Loka á fótspor þriðju aðila:</translation> <translation id="5939518447894949180">Endurstilla</translation> +<translation id="5964247741333118902">Innfellt efni</translation> <translation id="5968921426641056619">Sláðu inn vefslóð</translation> <translation id="5975083100439434680">Minnka aðdrátt</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb index 03940cb..52a9ea4 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Condivisione dello schermo</translation> <translation id="5922967540311291836">Blocca cookie di terze parti:</translation> <translation id="5939518447894949180">Reimposta</translation> +<translation id="5964247741333118902">Contenuti incorporati</translation> <translation id="5968921426641056619">Inserisci l'indirizzo web</translation> <translation id="5975083100439434680">Diminuisci lo zoom</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb index 517e73e7..fde1bd92 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">מתבצע שיתוף מסך</translation> <translation id="5922967540311291836">חסימת קובצי cookie של צד שלישי:</translation> <translation id="5939518447894949180">איפוס</translation> +<translation id="5964247741333118902">תוכן מוטמע</translation> <translation id="5968921426641056619">צריך להזין כתובת אינטרנט</translation> <translation id="5975083100439434680">התרחקות</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb index 1e38585..8a6965ec 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">画面を共有しています</translation> <translation id="5922967540311291836">サードパーティの Cookie をブロックする:</translation> <translation id="5939518447894949180">リセット</translation> +<translation id="5964247741333118902">埋め込みコンテンツ</translation> <translation id="5968921426641056619">ウェブアドレスを入力</translation> <translation id="5975083100439434680">縮小する</translation> <translation id="5976059395673079613"><ph name="PERMISSION" />~<ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb index b50dc979..c2d7d61 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">თქვენი ეკრანი ზიარდება</translation> <translation id="5922967540311291836">მესამე მხარის ქუქი-ჩანაწერების დაბლოკვა:</translation> <translation id="5939518447894949180">გადატვირთვა</translation> +<translation id="5964247741333118902">ჩაშენებული კონტენტი</translation> <translation id="5968921426641056619">შეიყვანეთ ვებ-მისამართი</translation> <translation id="5975083100439434680">დაშორება</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> — <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb index 1ceda95..a278033d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Экранды бөлісіп жатырсыз.</translation> <translation id="5922967540311291836">Үшінші тарап cookie файлдарын бөгеу:</translation> <translation id="5939518447894949180">Қалпына келтіру</translation> +<translation id="5964247741333118902">Ендірілген контент</translation> <translation id="5968921426641056619">Веб-мекенжайды енгізіңіз</translation> <translation id="5975083100439434680">Кішірейту</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb index b2e59c2..720cb40d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">កំពុងចែករំលែកអេក្រង់របស់អ្នក</translation> <translation id="5922967540311291836">ទប់ស្កាត់ខូគីភាគីទីបី៖</translation> <translation id="5939518447894949180">កំណត់ឡើងវិញ</translation> +<translation id="5964247741333118902">ខ្លឹមសារដែលបានបង្កប់</translation> <translation id="5968921426641056619">បញ្ចូលអាសយដ្ឋានទំព័រ</translation> <translation id="5975083100439434680">បង្រួម</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb index ee414547..bd81af4 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ</translation> <translation id="5922967540311291836">ಥರ್ಡ್-ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ:</translation> <translation id="5939518447894949180">ಮರುಹೊಂದಿಸು</translation> +<translation id="5964247741333118902">ಎಂಬೆಡ್ ಮಾಡಲಾದ ಕಂಟೆಂಟ್</translation> <translation id="5968921426641056619">ವೆಬ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ</translation> <translation id="5975083100439434680">ಝೂಮ್ ಔಟ್</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb index 93bc2c3..94a6a6d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">화면 공유</translation> <translation id="5922967540311291836">서드 파티 쿠키 차단:</translation> <translation id="5939518447894949180">초기화</translation> +<translation id="5964247741333118902">삽입한 콘텐츠</translation> <translation id="5968921426641056619">웹 주소 입력</translation> <translation id="5975083100439434680">축소</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
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 05e3d8a9..c8ba61bd4 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
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Экраныңыз бөлүшүлүүдө</translation> <translation id="5922967540311291836">Үчүнчү тараптын cookie файлдарын бөгөттөө:</translation> <translation id="5939518447894949180">Кайра коюу</translation> +<translation id="5964247741333118902">Жалгаштырылган контент</translation> <translation id="5968921426641056619">Веб дарегин киргизиңиз</translation> <translation id="5975083100439434680">Кичирейтүү</translation> <translation id="5976059395673079613"><ph name="PERMISSION" />, <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb index 7d1f34b3..c4e2a88 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">ກຳລັງແບ່ງປັນໜ້າຈໍຂອງທ່ານ</translation> <translation id="5922967540311291836">ບລັອກຄຸກກີ້ພາກສ່ວນທີສາມ:</translation> <translation id="5939518447894949180">ຕັ້ງຄ່າຄືນໃໝ່</translation> +<translation id="5964247741333118902">ເນື້ອຫາທີ່ຝັງໄວ້</translation> <translation id="5968921426641056619">ລະບຸທີ່ຢູ່ເວັບ</translation> <translation id="5975083100439434680">ຊູມອອກ</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb index 5bb5220..0298014 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Bendrinamas ekranas</translation> <translation id="5922967540311291836">Blokuoti trečiųjų šalių slapukus:</translation> <translation id="5939518447894949180">Nustatyti iš naujo</translation> +<translation id="5964247741333118902">Įterptas turinys</translation> <translation id="5968921426641056619">Įveskite žiniatinklio adresą</translation> <translation id="5975083100439434680">Tolinti</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb index 118f84d..7ba0017 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Notiek jūsu ekrāna kopīgošana</translation> <translation id="5922967540311291836">Bloķēt trešo pušu sīkfailus:</translation> <translation id="5939518447894949180">Atiestatīt</translation> +<translation id="5964247741333118902">Iegultais saturs</translation> <translation id="5968921426641056619">Ievadiet tīmekļa adresi</translation> <translation id="5975083100439434680">Tālināt</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> — <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb index b45ca06..399d8ce 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mk.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Се споделува екранот</translation> <translation id="5922967540311291836">Блокирајте колачиња од трети страни:</translation> <translation id="5939518447894949180">Ресетирај</translation> +<translation id="5964247741333118902">Вметнати содржини</translation> <translation id="5968921426641056619">Внесете интернет-адреса</translation> <translation id="5975083100439434680">Одзумирај</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
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 cd148d8..265ce60 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
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">നിങ്ങളുടെ സ്ക്രീൻ പങ്കിടുന്നു</translation> <translation id="5922967540311291836">മൂന്നാം-കക്ഷി കുക്കികള് ബ്ലോക്ക് ചെയ്യുക:</translation> <translation id="5939518447894949180">റീസെറ്റ് ചെയ്യുക</translation> +<translation id="5964247741333118902">ഉൾച്ചേർത്ത ഉള്ളടക്കം</translation> <translation id="5968921426641056619">വെബ് വിലാസം നൽകുക</translation> <translation id="5975083100439434680">സൂം ഔട്ട് ചെയ്യുക</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb index 471606f..f6d5bb3d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mn.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Таны дэлгэцийг хуваалцаж байна</translation> <translation id="5922967540311291836">Гуравдагч талын күүкиг блоклох:</translation> <translation id="5939518447894949180">Дахин сэргээх</translation> +<translation id="5964247741333118902">Оруулсан контент</translation> <translation id="5968921426641056619">Веб хаяг оруулна уу</translation> <translation id="5975083100439434680">Багасгаж харах</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb index 86eb61a..ee9d982f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_mr.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">तुमची स्क्रीन शेअर करत आहे</translation> <translation id="5922967540311291836">तृतीय पक्ष कुकी ब्लॉक करा:</translation> <translation id="5939518447894949180">रीसेट करा</translation> +<translation id="5964247741333118902">एंबेड केलेला आशय</translation> <translation id="5968921426641056619">वेब अॅड्रेस एंटर करा</translation> <translation id="5975083100439434680">झूम कमी करा</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb index 313e29a..f84b7cf 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ms.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Berkongsi skrin anda</translation> <translation id="5922967540311291836">Sekat kuki pihak ketiga:</translation> <translation id="5939518447894949180">Tetapkan semula</translation> +<translation id="5964247741333118902">Kandungan terbenam</translation> <translation id="5968921426641056619">Masukkan alamat web</translation> <translation id="5975083100439434680">Zum keluar</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb index 41684ed..a0c324f1 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">သင့်ဖန်သားပြင်ကို မျှဝေနေသည်</translation> <translation id="5922967540311291836">ပြင်ပကုမ္ပဏီ၏ကွတ်ကီးများကို ပိတ်ထားခြင်း-</translation> <translation id="5939518447894949180">ပြင်ဆင်သတ်မှတ်ရန်</translation> +<translation id="5964247741333118902">မြှုပ်သွင်းထားသော အကြောင်းအရာ</translation> <translation id="5968921426641056619">ဝဘ်လိပ်စာထည့်ပါ</translation> <translation id="5975083100439434680">ဇူးမ်ဖြုတ်ရန်</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb index c5e9f4b..3d45114d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ne.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">तपाईंको स्क्रिन सेयर गर्दै</translation> <translation id="5922967540311291836">तेस्रो पक्षीय कुकीहरू ब्लक गरियोस्:</translation> <translation id="5939518447894949180">रिसेट गर्नुहोस्</translation> +<translation id="5964247741333118902">इम्बेड गरिएको सामग्री</translation> <translation id="5968921426641056619">वेब ठेगाना हाल्नुहोस्</translation> <translation id="5975083100439434680">जुम आउट</translation> <translation id="5976059395673079613"><ph name="PERMISSION" />, <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb index fdcedf9b..077e189a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_nl.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Je scherm delen</translation> <translation id="5922967540311291836">Cookies van derden blokkeren:</translation> <translation id="5939518447894949180">Resetten</translation> +<translation id="5964247741333118902">Ingesloten content</translation> <translation id="5968921426641056619">Webadres opgeven</translation> <translation id="5975083100439434680">Uitzoomen</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb index 15cff6db..f9716ce 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_no.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Deler skjermen din</translation> <translation id="5922967540311291836">Blokker informasjonskapsler fra tredjeparter:</translation> <translation id="5939518447894949180">Tilbakestill</translation> +<translation id="5964247741333118902">Innebygd innhold</translation> <translation id="5968921426641056619">Skriv inn en nettadresse</translation> <translation id="5975083100439434680">Zoom ut</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb index ebd543a..c97613c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">ଆପଣଙ୍କ ସ୍କ୍ରିନ୍ ସେୟାର୍ କରାଯାଉଛି</translation> <translation id="5922967540311291836">ତୃତୀୟ-ପକ୍ଷ କୁକୀଗୁଡ଼ିକୁ ବ୍ଲକ କରନ୍ତୁ:</translation> <translation id="5939518447894949180">ପୁନଃସେଟ୍</translation> +<translation id="5964247741333118902">ଏମ୍ବେଡ କରାଯାଇଥିବା ବିଷୟବସ୍ତୁ</translation> <translation id="5968921426641056619">ୱେବ ଠିକଣା ଲେଖନ୍ତୁ</translation> <translation id="5975083100439434680">ଜୁମ୍ କମାନ୍ତୁ</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb index d35117c..613f7353 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਸਾਂਝੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ</translation> <translation id="5922967540311291836">ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਕੁਕੀਜ਼ ਨੂੰ ਬਲਾਕ ਕਰੋ:</translation> <translation id="5939518447894949180">ਰੀਸੈਟ ਕਰੋ</translation> +<translation id="5964247741333118902">ਜੋੜੀ ਗਈ ਸਮੱਗਰੀ</translation> <translation id="5968921426641056619">ਵੈੱਬ ਪਤਾ ਦਾਖਲ ਕਰੋ</translation> <translation id="5975083100439434680">ਜ਼ੂਮ ਘਟਾਓ</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb index 52436e9..1f368e5 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Udostępnianie ekranu</translation> <translation id="5922967540311291836">Blokuj pliki cookie innych firm:</translation> <translation id="5939518447894949180">Resetuj</translation> +<translation id="5964247741333118902">Umieszczona treść</translation> <translation id="5968921426641056619">Podaj adres internetowy</translation> <translation id="5975083100439434680">Pomniejsz</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
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 4b7c97a..d50badd 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
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Compartilhando a tela</translation> <translation id="5922967540311291836">Bloquear cookies de terceiros:</translation> <translation id="5939518447894949180">Redefinir</translation> +<translation id="5964247741333118902">Conteúdo incorporado</translation> <translation id="5968921426641056619">Digite o endereço da Web</translation> <translation id="5975083100439434680">Diminuir zoom</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
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 ae02f2ec..7a00c24 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
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Partilhar o ecrã</translation> <translation id="5922967540311291836">Bloqueie cookies de terceiros:</translation> <translation id="5939518447894949180">Repor</translation> +<translation id="5964247741333118902">Conteúdo incorporado</translation> <translation id="5968921426641056619">Introduza o endereço Web</translation> <translation id="5975083100439434680">Reduzir</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb index 9b0388f..7f12642 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Se permite accesul la ecran</translation> <translation id="5922967540311291836">Blochează cookie-urile terță parte:</translation> <translation id="5939518447894949180">Resetează</translation> +<translation id="5964247741333118902">Conținut încorporat</translation> <translation id="5968921426641056619">Introdu adresa web</translation> <translation id="5975083100439434680">Micșorează</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb index 66852bc..9cd611f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ru.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Предоставлен доступ к вашему экрану</translation> <translation id="5922967540311291836">Блокировать сторонние файлы cookie</translation> <translation id="5939518447894949180">Сбросить</translation> +<translation id="5964247741333118902">Встроенный контент</translation> <translation id="5968921426641056619">Введите веб-адрес</translation> <translation id="5975083100439434680">Уменьшить</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb index 3858ec2..91c1d7d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_si.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">ඔබේ තිරය බෙදා ගැනීම</translation> <translation id="5922967540311291836">තෙවන පාර්ශ්ව කුකී අවහිර කරන්න:</translation> <translation id="5939518447894949180">නැවත සකසන්න</translation> +<translation id="5964247741333118902">කාවද්දන ලද අන්තර්ගතය</translation> <translation id="5968921426641056619">වෙබ් ලිපිනය ඇතුළු කරන්න</translation> <translation id="5975083100439434680">විශාලනය අඩු කරන්න</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
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 be3f4a9f..9cb26ce 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
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Zdieľate obrazovku</translation> <translation id="5922967540311291836">Blokovať súbory cookie tretích strán:</translation> <translation id="5939518447894949180">Resetovať</translation> +<translation id="5964247741333118902">Vložený obsah</translation> <translation id="5968921426641056619">Zadajte webovú adresu</translation> <translation id="5975083100439434680">Oddialiť</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb index 17d9d7b..75cc3c51a0 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Deljenje zaslona</translation> <translation id="5922967540311291836">Blokiranje piškotkov tretjih oseb:</translation> <translation id="5939518447894949180">Ponastavi</translation> +<translation id="5964247741333118902">Vdelana vsebina</translation> <translation id="5968921426641056619">Vnesite spletni naslov</translation> <translation id="5975083100439434680">Pomanjšaj</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb index 86f7063..9fc6828b 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Po ndan ekranin tënd</translation> <translation id="5922967540311291836">Blloko kukit e palëve të treta</translation> <translation id="5939518447894949180">Rivendos</translation> +<translation id="5964247741333118902">Përmbajtjet e integruara</translation> <translation id="5968921426641056619">Fut adresën e uebit</translation> <translation id="5975083100439434680">Zvogëlo</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb index 3da20f9..67fe5bb 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Deli se ekran</translation> <translation id="5922967540311291836">Blokirajte kolačiće trećih strana:</translation> <translation id="5939518447894949180">Resetuj</translation> +<translation id="5964247741333118902">Ugrađen sadržaj</translation> <translation id="5968921426641056619">Unesite veb-adresu</translation> <translation id="5975083100439434680">Umanjivanje</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb index 69242ae..d6491f8f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Дели се екран</translation> <translation id="5922967540311291836">Блокирајте колачиће трећих страна:</translation> <translation id="5939518447894949180">Ресетуј</translation> +<translation id="5964247741333118902">Уграђен садржај</translation> <translation id="5968921426641056619">Унесите веб-адресу</translation> <translation id="5975083100439434680">Умањивање</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb index 0b7f2b7d..6d5d51c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sv.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Delar skärmen</translation> <translation id="5922967540311291836">Blockera cookies från tredje part</translation> <translation id="5939518447894949180">Återställ</translation> +<translation id="5964247741333118902">Inbäddat innehåll</translation> <translation id="5968921426641056619">Ange webbadress</translation> <translation id="5975083100439434680">Zooma ut</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb index 4164ef80..5b33761c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sw.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Inashiriki skrini yako</translation> <translation id="5922967540311291836">Kuzuia vidakuzi vya washirika wengine:</translation> <translation id="5939518447894949180">Weka upya</translation> +<translation id="5964247741333118902">Maudhui yaliyopachikwa</translation> <translation id="5968921426641056619">Weka anwani ya wavuti</translation> <translation id="5975083100439434680">Fifiza</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb index c07724a..45a6b6b 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">உங்கள் திரையைப் பகிர்கிறது</translation> <translation id="5922967540311291836">மூன்றாம் தரப்புக் குக்கீகளைத் தடு:</translation> <translation id="5939518447894949180">மீட்டமை</translation> +<translation id="5964247741333118902">உட்பொதிக்கப்பட்ட உள்ளடக்கம்</translation> <translation id="5968921426641056619">வலை முகவரியை டைப் செய்யவும்</translation> <translation id="5975083100439434680">சிறிதாக்கு</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb index 1929259..9cbb3b2 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">మీ స్క్రీన్ను షేర్ చేయడం</translation> <translation id="5922967540311291836">థర్డ్-పార్టీ కుక్కీలను బ్లాక్ చేయండి:</translation> <translation id="5939518447894949180">రీసెట్ చేయండి</translation> +<translation id="5964247741333118902">పొందుపరచబడిన కంటెంట్</translation> <translation id="5968921426641056619">వెబ్ అడ్రస్ను ఎంటర్ చేయండి</translation> <translation id="5975083100439434680">దూరంగా జూమ్ చేయి</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb index 1958158..bd4cc01 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_th.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">กำลังแชร์หน้าจอ</translation> <translation id="5922967540311291836">บล็อกคุกกี้ของบุคคลที่สาม:</translation> <translation id="5939518447894949180">รีเซ็ต</translation> +<translation id="5964247741333118902">เนื้อหาที่ฝัง</translation> <translation id="5968921426641056619">ป้อนที่อยู่เว็บ</translation> <translation id="5975083100439434680">ย่อ</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb index ba199a2..81514a3 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Ekranınız paylaşılıyor</translation> <translation id="5922967540311291836">Üçüncü taraf çerezlerini engelle:</translation> <translation id="5939518447894949180">Sıfırla</translation> +<translation id="5964247741333118902">Yerleştirilmiş içerik</translation> <translation id="5968921426641056619">Web adresini girin</translation> <translation id="5975083100439434680">Uzaklaştır</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb index 9f09896..34a004b 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Доступ до вашого екрана</translation> <translation id="5922967540311291836">Блокувати сторонні файли cookie:</translation> <translation id="5939518447894949180">Скинути</translation> +<translation id="5964247741333118902">Вбудований контент</translation> <translation id="5968921426641056619">Введіть веб-адресу</translation> <translation id="5975083100439434680">Зменшити масштаб</translation> <translation id="5976059395673079613">"<ph name="PERMISSION" />" – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb index 067f635..0710396 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ur.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">آپ کی اسکرین کا اشتراک کیا جا رہا ہے</translation> <translation id="5922967540311291836">فریق ثالث کوکیز کو مسدود کریں:</translation> <translation id="5939518447894949180">دوبارہ ترتیب دیں</translation> +<translation id="5964247741333118902">سرایت کردہ مواد</translation> <translation id="5968921426641056619">ویب پتہ درج کریں</translation> <translation id="5975083100439434680">زوم آؤٹ کریں</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb index 61519065..5a7cbef 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uz.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Ekran namoyish qilinmoqda</translation> <translation id="5922967540311291836">Tashqi cookie fayllarni bloklash:</translation> <translation id="5939518447894949180">Asliga qaytarish</translation> +<translation id="5964247741333118902">Joylashtirilgan kontent</translation> <translation id="5968921426641056619">Veb-manzilni kiriting</translation> <translation id="5975083100439434680">Kichiklashtirish</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb index 0f5702c..41952c6 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Đang chia sẻ màn hình của bạn</translation> <translation id="5922967540311291836">Chặn cookie của bên thứ ba:</translation> <translation id="5939518447894949180">Đặt lại</translation> +<translation id="5964247741333118902">Nội dung được nhúng</translation> <translation id="5968921426641056619">Nhập địa chỉ web</translation> <translation id="5975083100439434680">Thu nhỏ</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb index 65572f81..2f7ea39 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-CN.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">正在共享您的屏幕</translation> <translation id="5922967540311291836">阻止第三方 Cookie:</translation> <translation id="5939518447894949180">重置</translation> +<translation id="5964247741333118902">嵌入式内容</translation> <translation id="5968921426641056619">输入网址</translation> <translation id="5975083100439434680">缩小</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb index d4c1d515..5589f22f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">正在分享螢幕畫面</translation> <translation id="5922967540311291836">封鎖第三方 Cookie:</translation> <translation id="5939518447894949180">重設</translation> +<translation id="5964247741333118902">已嵌入的內容</translation> <translation id="5968921426641056619">輸入網址</translation> <translation id="5975083100439434680">縮小</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb index 190fa1a..aaf57288 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-TW.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">正在分享你的螢幕畫面</translation> <translation id="5922967540311291836">封鎖第三方 Cookie:</translation> <translation id="5939518447894949180">重設</translation> +<translation id="5964247741333118902">嵌入的內容</translation> <translation id="5968921426641056619">輸入網址</translation> <translation id="5975083100439434680">縮小</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb index 02bbe64..ca7df2f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zu.xtb
@@ -283,6 +283,7 @@ <translation id="5922853908706496913">Yabelana ngesikrini sakho</translation> <translation id="5922967540311291836">Vimba amakhukhi angahlangene ngqo:</translation> <translation id="5939518447894949180">Setha kabusha</translation> +<translation id="5964247741333118902">Okuqukethwe okushumekiwe</translation> <translation id="5968921426641056619">Faka ikheli lewebhu</translation> <translation id="5975083100439434680">Hlehlisa isithombe</translation> <translation id="5976059395673079613"><ph name="PERMISSION" />, <ph name="WARNING_MESSAGE" /></translation>
diff --git a/components/browsing_data/core/features.cc b/components/browsing_data/core/features.cc index ffdb572..5b62b8bcd 100644 --- a/components/browsing_data/core/features.cc +++ b/components/browsing_data/core/features.cc
@@ -17,7 +17,7 @@ BASE_FEATURE(kMigrateStorageToBDM, "MigrateStorageToBDM", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kDataRetentionPoliciesDisableSyncTypesNeeded, "DataRetentionPoliciesDisableSyncTypesNeeded",
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index c85b9a6..78e4a31 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "25.8", - "log_list_timestamp": "2023-09-26T12:54:49Z", + "version": "25.10", + "log_list_timestamp": "2023-09-28T13:00:28Z", "operators": [ { "name": "Google",
diff --git a/components/enterprise/data_controls/action_context.h b/components/enterprise/data_controls/action_context.h index 63407ac..fe4b7a0 100644 --- a/components/enterprise/data_controls/action_context.h +++ b/components/enterprise/data_controls/action_context.h
@@ -6,6 +6,7 @@ #define COMPONENTS_ENTERPRISE_DATA_CONTROLS_ACTION_CONTEXT_H_ #include "build/chromeos_buildflags.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h" #if BUILDFLAG(IS_CHROMEOS) @@ -14,16 +15,24 @@ namespace data_controls { -// Generic struct that represents metadata about an action involved in Data -// Controls. It can be used to either represent a source or destination tied -// to an action. -struct ActionContext { +struct ActionSource { + GURL url; +}; + +struct ActionDestination { GURL url; #if BUILDFLAG(IS_CHROMEOS) Component component = Component::kUnknownComponent; #endif // BUILDFLAG(IS_CHROMEOS) }; +// Generic struct that represents metadata about an action involved in Data +// Controls. +struct ActionContext { + ActionSource source; + ActionDestination destination; +}; + } // namespace data_controls #endif // COMPONENTS_ENTERPRISE_DATA_CONTROLS_ACTION_CONTEXT_H_
diff --git a/components/enterprise/data_controls/and_condition.cc b/components/enterprise/data_controls/and_condition.cc index a9a0c0e..59f43c7c 100644 --- a/components/enterprise/data_controls/and_condition.cc +++ b/components/enterprise/data_controls/and_condition.cc
@@ -11,7 +11,7 @@ namespace data_controls { // static -std::unique_ptr<AndCondition> AndCondition::Create( +std::unique_ptr<Condition> AndCondition::Create( std::vector<std::unique_ptr<Condition>> conditions) { if (conditions.empty()) { return nullptr;
diff --git a/components/enterprise/data_controls/and_condition.h b/components/enterprise/data_controls/and_condition.h index 43ae75c..66de5509b 100644 --- a/components/enterprise/data_controls/and_condition.h +++ b/components/enterprise/data_controls/and_condition.h
@@ -17,7 +17,7 @@ class AndCondition : public Condition { public: // Returns nullptr if the passed vector is empty. - static std::unique_ptr<AndCondition> Create( + static std::unique_ptr<Condition> Create( std::vector<std::unique_ptr<Condition>> conditions); ~AndCondition() override;
diff --git a/components/enterprise/data_controls/attributes_condition.cc b/components/enterprise/data_controls/attributes_condition.cc index 581459c..aaef8761 100644 --- a/components/enterprise/data_controls/attributes_condition.cc +++ b/components/enterprise/data_controls/attributes_condition.cc
@@ -4,7 +4,10 @@ #include "components/enterprise/data_controls/attributes_condition.h" +#include <algorithm> + #include "base/containers/contains.h" +#include "base/memory/ptr_util.h" #include "components/url_matcher/url_util.h" namespace data_controls { @@ -21,29 +24,14 @@ } // namespace -AttributesCondition::AttributesCondition() = default; AttributesCondition::~AttributesCondition() = default; -// static -std::unique_ptr<AttributesCondition> AttributesCondition::Create( - const base::Value& value) { - if (!value.is_dict()) { - return nullptr; - } - - return AttributesCondition::Create(value.GetDict()); -} - -// static -std::unique_ptr<AttributesCondition> AttributesCondition::Create( - const base::Value::Dict& value) { - auto attributes_condition = std::make_unique<AttributesCondition>(); - +AttributesCondition::AttributesCondition(const base::Value::Dict& value) { const base::Value::List* urls_value = value.FindList(kKeyUrls); if (urls_value) { for (const base::Value& url_pattern : *urls_value) { if (!url_pattern.is_string()) { - return nullptr; + return; } } @@ -52,7 +40,7 @@ url_matcher::util::AddFilters(url_matcher.get(), true, &id, *urls_value); if (!url_matcher->IsEmpty()) { - attributes_condition->url_matcher_ = std::move(url_matcher); + url_matcher_ = std::move(url_matcher); } } @@ -70,31 +58,12 @@ components.insert(component); } } - attributes_condition->components_ = std::move(components); + components_ = std::move(components); } #endif // BUILDFLAG(IS_CHROMEOS) - - if (attributes_condition->IsValid()) { - return attributes_condition; - } - - return nullptr; } -bool AttributesCondition::IsTriggered( - const ActionContext& action_context) const { -#if BUILDFLAG(IS_CHROMEOS) - if (!components_.empty() && - !base::Contains(components_, action_context.component)) { - return false; - } -#endif - if (url_matcher_ && action_context.url.is_valid() && - url_matcher_->MatchURL(action_context.url).empty()) { - return false; - } - return true; -} +AttributesCondition::AttributesCondition(AttributesCondition&& other) = default; bool AttributesCondition::IsValid() const { #if BUILDFLAG(IS_CHROMEOS) @@ -104,4 +73,97 @@ #endif // BUILDFLAG(IS_CHROMEOS) } +bool AttributesCondition::URLMatches(GURL url) const { + // Without URLs to match, any URL is considered to pass the condition. + if (!url_matcher_) { + return true; + } + + // With URLs to match, an invalid URL is considered as not matching the + // condition. + if (!url.is_valid()) { + return false; + } + + return !url_matcher_->MatchURL(url).empty(); +} + +#if BUILDFLAG(IS_CHROMEOS) +bool AttributesCondition::ComponentMatches(Component component) const { + // Without components to match, any URL is considered to pass the condition. + if (components_.empty()) { + return true; + } + + // With components to match, `component` needs to be in the set to pass the + // condition. + return base::Contains(components_, component); +} +#endif // BUILDFLAG(IS_CHROMEOS) + +// static +std::unique_ptr<Condition> SourceAttributesCondition::Create( + const base::Value& value) { + if (!value.is_dict()) { + return nullptr; + } + + return SourceAttributesCondition::Create(value.GetDict()); +} + +// static +std::unique_ptr<Condition> SourceAttributesCondition::Create( + const base::Value::Dict& value) { + AttributesCondition attributes_condition(value); + if (!attributes_condition.IsValid()) { + return nullptr; + } + return base::WrapUnique( + new SourceAttributesCondition(std::move(attributes_condition))); +} + +bool SourceAttributesCondition::IsTriggered( + const ActionContext& action_context) const { + return URLMatches(action_context.source.url); +} + +SourceAttributesCondition::SourceAttributesCondition( + AttributesCondition&& attributes_condition) + : AttributesCondition(std::move(attributes_condition)) {} + +// static +std::unique_ptr<Condition> DestinationAttributesCondition::Create( + const base::Value& value) { + if (!value.is_dict()) { + return nullptr; + } + + return DestinationAttributesCondition::Create(value.GetDict()); +} + +// static +std::unique_ptr<Condition> DestinationAttributesCondition::Create( + const base::Value::Dict& value) { + AttributesCondition attributes_condition(value); + if (!attributes_condition.IsValid()) { + return nullptr; + } + return base::WrapUnique( + new DestinationAttributesCondition(std::move(attributes_condition))); +} + +bool DestinationAttributesCondition::IsTriggered( + const ActionContext& action_context) const { +#if BUILDFLAG(IS_CHROMEOS) + if (!ComponentMatches(action_context.destination.component)) { + return false; + } +#endif + return URLMatches(action_context.destination.url); +} + +DestinationAttributesCondition::DestinationAttributesCondition( + AttributesCondition&& attributes_condition) + : AttributesCondition(std::move(attributes_condition)) {} + } // namespace data_controls
diff --git a/components/enterprise/data_controls/attributes_condition.h b/components/enterprise/data_controls/attributes_condition.h index f299ce2..2cb9f12 100644 --- a/components/enterprise/data_controls/attributes_condition.h +++ b/components/enterprise/data_controls/attributes_condition.h
@@ -27,30 +27,65 @@ // components: [ARC|CROSTINI|PLUGIN_VM|DRIVE|USB], <= CrOS only // } // This can represent either the `sources` or `destinations` fields of the -// DataLeakPreventionRulesList policy. -class AttributesCondition : public Condition { +// DataLeakPreventionRulesList policy (see sub-classes below). +class AttributesCondition { public: - AttributesCondition(); - ~AttributesCondition() override; + explicit AttributesCondition(const base::Value::Dict& value); + AttributesCondition(AttributesCondition&& other); + ~AttributesCondition(); - // Returns nullptr if the passed JSON doesn't match the expected schema. - static std::unique_ptr<AttributesCondition> Create(const base::Value& value); - static std::unique_ptr<AttributesCondition> Create( - const base::Value::Dict& value); - - // Condition: - bool IsTriggered(const ActionContext& action_context) const override; - - private: - // Returns true if at least one of the internal values is non-null/empty. + // Returns true if at least one of the internal values is non-null/empty, aka + // if the JSON represented a valid condition. This should only be checked + // right after an `AttributesCondition` is constructed, and other methods + // should not be used if this returns false. bool IsValid() const; + protected: + // Returns true if `url` should be considered to trigger the condition. + bool URLMatches(GURL url) const; + +#if BUILDFLAG(IS_CHROMEOS) + // Return true if `component` should be considered to trigger the condition. + bool ComponentMatches(Component component) const; +#endif // BUILDFLAG(IS_CHROMEOS) + + private: std::unique_ptr<url_matcher::URLMatcher> url_matcher_; #if BUILDFLAG(IS_CHROMEOS) std::set<Component> components_; #endif // BUILDFLAG(IS_CHROMEOS) }; +// Source-only AttributeCondition that also implement the `Condition` interface. +class SourceAttributesCondition : public AttributesCondition, public Condition { + public: + // Returns nullptr if the passed JSON doesn't match the expected schema. + static std::unique_ptr<Condition> Create(const base::Value& value); + static std::unique_ptr<Condition> Create(const base::Value::Dict& value); + + bool IsTriggered(const ActionContext& action_context) const override; + + private: + explicit SourceAttributesCondition( + AttributesCondition&& attributes_condition); +}; + +// Destination-only AttributeCondition that also implement the `Condition` +// interface. +class DestinationAttributesCondition : public AttributesCondition, + public Condition { + public: + // Returns nullptr if the passed JSON doesn't match the expected schema. + static std::unique_ptr<Condition> Create(const base::Value& value); + static std::unique_ptr<Condition> Create(const base::Value::Dict& value); + + bool IsTriggered(const ActionContext& action_context) const override; + + private: + explicit DestinationAttributesCondition( + AttributesCondition&& attributes_condition); +}; + } // namespace data_controls #endif // COMPONENTS_ENTERPRISE_DATA_CONTROLS_ATTRIBUTES_CONDITION_H_
diff --git a/components/enterprise/data_controls/attributes_condition_unittest.cc b/components/enterprise/data_controls/attributes_condition_unittest.cc index 11fad41..53805fe 100644 --- a/components/enterprise/data_controls/attributes_condition_unittest.cc +++ b/components/enterprise/data_controls/attributes_condition_unittest.cc
@@ -25,95 +25,185 @@ } // namespace -TEST(AttributesConditionTest, InvalidInputs) { +TEST(AttributesConditionTest, InvalidSourceInputs) { // Invalid JSON types are rejected. - ASSERT_FALSE(AttributesCondition::Create(base::Value("some string"))); - ASSERT_FALSE(AttributesCondition::Create(base::Value(12345))); - ASSERT_FALSE(AttributesCondition::Create(base::Value(99.999))); - ASSERT_FALSE(AttributesCondition::Create( + ASSERT_FALSE(SourceAttributesCondition::Create(base::Value("some string"))); + ASSERT_FALSE(SourceAttributesCondition::Create(base::Value(12345))); + ASSERT_FALSE(SourceAttributesCondition::Create(base::Value(99.999))); + ASSERT_FALSE(SourceAttributesCondition::Create( base::Value(std::vector<char>({1, 2, 3, 4, 5})))); // Invalid dictionaries are rejected. - ASSERT_FALSE(AttributesCondition::Create(base::Value::Dict())); - ASSERT_FALSE(AttributesCondition::Create(CreateDict(R"({"foo": 1})"))); + ASSERT_FALSE(SourceAttributesCondition::Create(base::Value::Dict())); + ASSERT_FALSE(SourceAttributesCondition::Create(CreateDict(R"({"foo": 1})"))); // Dictionaries with correct keys but wrong schema for values are rejected - ASSERT_FALSE(AttributesCondition::Create( + ASSERT_FALSE(SourceAttributesCondition::Create( CreateDict(R"({"urls": "https://foo.com"})"))); - ASSERT_FALSE(AttributesCondition::Create(CreateDict(R"({"urls": 1})"))); - ASSERT_FALSE(AttributesCondition::Create(CreateDict(R"({"urls": 99.999})"))); + ASSERT_FALSE(SourceAttributesCondition::Create(CreateDict(R"({"urls": 1})"))); + ASSERT_FALSE( + SourceAttributesCondition::Create(CreateDict(R"({"urls": 99.999})"))); #if BUILDFLAG(IS_CHROMEOS) - ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"urls": "https://foo.com", - "components": "ARC"})"))); - ASSERT_FALSE(AttributesCondition::Create(CreateDict(R"({"urls": 1, - "components": "ARC"})"))); - ASSERT_FALSE(AttributesCondition::Create(CreateDict(R"({"urls": 99.999, - "components": "ARC"})"))); - ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"components": "ARC"})"))); - ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"components": 12345})"))); - ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"components": 99.999})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"urls": "https://foo.com", "components": "ARC"})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"urls": 1, "components": "ARC"})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"urls": 99.999, "components": "ARC"})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"components": "ARC"})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"components": 12345})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"components": 99.999})"))); #endif // BUILDFLAG(IS_CHROMEOS) // Dictionaries with valid schemas but invalid URL patterns or components are // rejected. - ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"urls": ["http://:port"]})"))); - ASSERT_FALSE(AttributesCondition::Create( + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"urls": ["http://:port"]})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( CreateDict(R"({"urls": ["http://?query"]})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"urls": ["https://"]})"))); ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"urls": ["https://"]})"))); - ASSERT_FALSE(AttributesCondition::Create(CreateDict(R"({"urls": ["//"]})"))); + SourceAttributesCondition::Create(CreateDict(R"({"urls": ["//"]})"))); ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"urls": ["a", 1]})"))); + SourceAttributesCondition::Create(CreateDict(R"({"urls": ["a", 1]})"))); #if BUILDFLAG(IS_CHROMEOS) - ASSERT_FALSE(AttributesCondition::Create(CreateDict(R"({"urls": ["a", 1], - "components": ["ARC"]})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"urls": ["a", 1], "components": ["ARC"]})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"components": ["1", "a"]})"))); + ASSERT_FALSE(SourceAttributesCondition::Create( + CreateDict(R"({"components": ["5.5"]})"))); +#endif // BUILDFLAG(IS_CHROMEOS) +} + +TEST(AttributesConditionTest, InvalidDestinationInputs) { + // Invalid JSON types are rejected. ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"components": ["1", "a"]})"))); + DestinationAttributesCondition::Create(base::Value("some string"))); + ASSERT_FALSE(DestinationAttributesCondition::Create(base::Value(12345))); + ASSERT_FALSE(DestinationAttributesCondition::Create(base::Value(99.999))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + base::Value(std::vector<char>({1, 2, 3, 4, 5})))); + + // Invalid dictionaries are rejected. + ASSERT_FALSE(DestinationAttributesCondition::Create(base::Value::Dict())); ASSERT_FALSE( - AttributesCondition::Create(CreateDict(R"({"components": ["5.5"]})"))); + DestinationAttributesCondition::Create(CreateDict(R"({"foo": 1})"))); + + // Dictionaries with correct keys but wrong schema for values are rejected + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": "https://foo.com"})"))); + ASSERT_FALSE( + DestinationAttributesCondition::Create(CreateDict(R"({"urls": 1})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": 99.999})"))); +#if BUILDFLAG(IS_CHROMEOS) + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": "https://foo.com", "components": "ARC"})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": 1, "components": "ARC"})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": 99.999, "components": "ARC"})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"components": "ARC"})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"components": 12345})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"components": 99.999})"))); +#endif // BUILDFLAG(IS_CHROMEOS) + + // Dictionaries with valid schemas but invalid URL patterns or components are + // rejected. + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": ["http://:port"]})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": ["http://?query"]})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": ["https://"]})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": ["//"]})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": ["a", 1]})"))); +#if BUILDFLAG(IS_CHROMEOS) + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"urls": ["a", 1], "components": ["ARC"]})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"components": ["1", "a"]})"))); + ASSERT_FALSE(DestinationAttributesCondition::Create( + CreateDict(R"({"components": ["5.5"]})"))); #endif // BUILDFLAG(IS_CHROMEOS) } TEST(AttributesConditionTest, AnyURL) { - auto any_url = AttributesCondition::Create(CreateDict(R"({"urls": ["*"]})")); - ASSERT_TRUE(any_url); + auto any_source_url = + SourceAttributesCondition::Create(CreateDict(R"({"urls": ["*"]})")); + auto any_destination_url = + DestinationAttributesCondition::Create(CreateDict(R"({"urls": ["*"]})")); + ASSERT_TRUE(any_source_url); + ASSERT_TRUE(any_destination_url); for (const char* url : {kGoogleUrl, kChromiumUrl}) { - ActionContext context = {.url = GURL(url)}; - ASSERT_TRUE(any_url->IsTriggered(context)); + ActionContext context = { + .source = {.url = GURL(url)}, + .destination = {.url = GURL(url)}, + }; + ASSERT_TRUE(any_source_url->IsTriggered(context)); + ASSERT_TRUE(any_destination_url->IsTriggered(context)); } } -TEST(AttributesConditionTest, SpecificURL) { - auto google_url = - AttributesCondition::Create(CreateDict(R"({"urls": ["google.com"]})")); - auto chromium_url = - AttributesCondition::Create(CreateDict(R"({"urls": ["chromium.org"]})")); +TEST(AttributesConditionTest, SpecificSourceURL) { + auto google_url_source = SourceAttributesCondition::Create( + CreateDict(R"({"urls": ["google.com"]})")); + auto chromium_url_source = SourceAttributesCondition::Create( + CreateDict(R"({"urls": ["chromium.org"]})")); - ASSERT_TRUE(google_url); - ASSERT_TRUE(chromium_url); + ASSERT_TRUE(google_url_source); + ASSERT_TRUE(chromium_url_source); - ASSERT_TRUE(google_url->IsTriggered({.url = GURL(kGoogleUrl)})); - ASSERT_TRUE(chromium_url->IsTriggered({.url = GURL(kChromiumUrl)})); + ASSERT_TRUE( + google_url_source->IsTriggered({.source = {.url = GURL(kGoogleUrl)}})); + ASSERT_TRUE(chromium_url_source->IsTriggered( + {.source = {.url = GURL(kChromiumUrl)}})); - ASSERT_FALSE(google_url->IsTriggered({.url = GURL(kChromiumUrl)})); - ASSERT_FALSE(chromium_url->IsTriggered({.url = GURL(kGoogleUrl)})); + ASSERT_FALSE( + google_url_source->IsTriggered({.source = {.url = GURL(kChromiumUrl)}})); + ASSERT_FALSE( + chromium_url_source->IsTriggered({.source = {.url = GURL(kGoogleUrl)}})); +} + +TEST(AttributesConditionTest, SpecificDestinationURL) { + auto google_url_destination = DestinationAttributesCondition::Create( + CreateDict(R"({"urls": ["google.com"]})")); + auto chromium_url_destination = DestinationAttributesCondition::Create( + CreateDict(R"({"urls": ["chromium.org"]})")); + + ASSERT_TRUE(google_url_destination); + ASSERT_TRUE(chromium_url_destination); + + ASSERT_TRUE(google_url_destination->IsTriggered( + {.destination = {.url = GURL(kGoogleUrl)}})); + ASSERT_TRUE(chromium_url_destination->IsTriggered( + {.destination = {.url = GURL(kChromiumUrl)}})); + + ASSERT_FALSE(google_url_destination->IsTriggered( + {.destination = {.url = GURL(kChromiumUrl)}})); + ASSERT_FALSE(chromium_url_destination->IsTriggered( + {.destination = {.url = GURL(kGoogleUrl)}})); } #if BUILDFLAG(IS_CHROMEOS) TEST(AttributesConditionTest, AllComponents) { - auto any_component = AttributesCondition::Create(CreateDict(R"( - { - "components": ["ARC", "CROSTINI", "PLUGIN_VM", "USB", "DRIVE", - "ONEDRIVE"] - })")); + auto any_component = DestinationAttributesCondition::Create(CreateDict(R"( + { + "components": ["ARC", "CROSTINI", "PLUGIN_VM", "USB", "DRIVE", "ONEDRIVE"] + })")); ASSERT_TRUE(any_component); for (Component component : kAllComponents) { - ActionContext context = {.component = component}; + ActionContext context = {.destination = {.component = component}}; ASSERT_TRUE(any_component->IsTriggered(context)); } } @@ -122,11 +212,11 @@ for (Component condition_component : kAllComponents) { constexpr char kTemplate[] = R"({"components": ["%s"]})"; auto one_component = - AttributesCondition::Create(CreateDict(base::StringPrintf( + DestinationAttributesCondition::Create(CreateDict(base::StringPrintf( kTemplate, GetComponentMapping(condition_component).c_str()))); for (Component context_component : kAllComponents) { - ActionContext context = {.component = context_component}; + ActionContext context = {.destination = {.component = context_component}}; if (context_component == condition_component) { ASSERT_TRUE(one_component->IsTriggered(context)); } else { @@ -137,7 +227,8 @@ } TEST(AttributesConditionTest, URLAndAllComponents) { - auto any_component_or_url = AttributesCondition::Create(CreateDict(R"( + auto any_component_or_url = + DestinationAttributesCondition::Create(CreateDict(R"( { "urls": ["*"], "components": ["ARC", "CROSTINI", "PLUGIN_VM", "USB", "DRIVE", @@ -146,7 +237,8 @@ ASSERT_TRUE(any_component_or_url); for (Component component : kAllComponents) { for (const char* url : {kGoogleUrl, kChromiumUrl}) { - ActionContext context = {.url = GURL(url), .component = component}; + ActionContext context = { + .destination = {.url = GURL(url), .component = component}}; ASSERT_TRUE(any_component_or_url->IsTriggered(context)); } } @@ -157,14 +249,14 @@ constexpr char kTemplate[] = R"({"urls": ["google.com"], "components": ["%s"]})"; auto google_and_one_component = - AttributesCondition::Create(CreateDict(base::StringPrintf( + DestinationAttributesCondition::Create(CreateDict(base::StringPrintf( kTemplate, GetComponentMapping(condition_component).c_str()))); ASSERT_TRUE(google_and_one_component); for (Component context_component : kAllComponents) { for (const char* url : {kGoogleUrl, kChromiumUrl}) { - ActionContext context = {.url = GURL(url), - .component = context_component}; + ActionContext context = { + .destination = {.url = GURL(url), .component = context_component}}; if (context_component == condition_component && url == kGoogleUrl) { ASSERT_TRUE(google_and_one_component->IsTriggered(context)) << "Expected " << GetComponentMapping(context_component)
diff --git a/components/exo/buffer.cc b/components/exo/buffer.cc index 8cdbb9d6..d3f7887 100644 --- a/components/exo/buffer.cc +++ b/components/exo/buffer.cc
@@ -553,6 +553,8 @@ resource->id = resource_manager->AllocateResourceId(); resource->format = viz::SinglePlaneFormat::kRGBA_8888; resource->size = gpu_memory_buffer_->GetSize(); + resource->resource_source = + viz::TransferableResource::ResourceSource::kExoBuffer; // Create a new image texture for |gpu_memory_buffer_| with |texture_target_| // if one doesn't already exist. The contents of this buffer are copied to
diff --git a/components/flags_ui/resources/BUILD.gn b/components/flags_ui/resources/BUILD.gn index 6e678685f..1e6b3ba 100644 --- a/components/flags_ui/resources/BUILD.gn +++ b/components/flags_ui/resources/BUILD.gn
@@ -7,15 +7,18 @@ build_webui("build") { grd_prefix = "flags_ui" - static_files = [ "flags.html" ] - - web_component_files = [ - "experiment.ts", - "app.ts", + static_files = [ + "flags.css", + "flags.html", ] + + web_component_files = [ "experiment.ts" ] html_to_wrapper_template = "native" - non_web_component_files = [ "flags_browser_proxy.ts" ] + non_web_component_files = [ + "flags.ts", + "flags_browser_proxy.ts", + ] ts_definitions = [ "//tools/typescript/definitions/chrome_send.d.ts" ] ts_deps = [ "//ui/webui/resources/js:build_ts" ]
diff --git a/components/flags_ui/resources/app.html b/components/flags_ui/resources/app.html deleted file mode 100644 index eac33f5..0000000 --- a/components/flags_ui/resources/app.html +++ /dev/null
@@ -1,581 +0,0 @@ -<style> - :host { - color: var(--primary-color); - display: flex; - flex-direction: column; - font-size: 0.8125rem; - height: 100%; - - --ease-in-out: cubic-bezier(0.4, 0.0, 0.2, 1); - --shadow-color: rgba(0, 0, 0, 0.1); - - --google-blue-300-rgb: 138, 180, 248; - --google-blue-300: rgb(var(--google-blue-300-rgb)); - --google-blue-400: rgb(102, 157, 246); - --google-blue-500-rgb: 66, 133, 244; - --google-blue-500: rgb(var(--google-blue-500-rgb)); - --google-blue-600-rgb: 26, 115, 232; - --google-blue-600: rgb(var(--google-blue-600-rgb)); - --google-blue-700: rgb(25, 103, 210); - --google-grey-100: rgb(241, 243, 244); - --google-grey-200-rgb: 232, 234, 237; - --google-grey-200: rgb(var(--google-grey-200-rgb)); - --google-grey-300: rgb(218, 220, 224); - --google-grey-500: rgb(154, 160, 166); - --google-grey-700: rgb(95, 99, 104); - --google-grey-900-rgb: 32, 33, 36; - --google-grey-900: rgb(var(--google-grey-900-rgb)); - /* --google-grey-900 + 4% white blended together. */ - --google-grey-900-white-4-percent: #292a2d; - --google-red-300: rgb(242, 139, 130); - --google-red-700: rgb(197, 34, 31); - - --interactive-color: var(--google-blue-600); - --primary-color: var(--google-grey-900); - --secondary-color: var(--google-grey-700); - --warning-color: var(--google-red-700); - - --focus-shadow-color: rgba(var(--google-blue-600-rgb), 0.4); - --input-background: var(--google-grey-100); - --link-color: var(--google-blue-700); - --separator-color: rgba(0, 0, 0, .06); - --toolbar-color: white; - - background: white; - } - - @media (prefers-color-scheme: dark) { - :host { - --interactive-color: var(--google-blue-300); - --primary-color: var(--google-grey-200); - --secondary-color: var(--google-grey-500); - --warning-color: var(--google-red-300); - - --focus-shadow-color: rgba(var(--google-blue-300-rgb), 0.4); - --input-background: rgba(0, 0, 0, .3); - --link-color: var(--google-blue-300); - --separator-color: rgba(255, 255, 255, .1); - --toolbar-color: var(--google-grey-900-white-4-percent); - - background: var(--google-grey-900); - } - } - - a { - color: var(--link-color); - font-size: .8125rem; - } - - h1 { - color: var(--primary-color); - font-size: 1.4625rem; - font-weight: 400; - margin-top: 0; - padding: 0; - } - - button { - cursor: pointer; - font-weight: 500; - } - - #body-container { - flex: 1; - /* Force the vertical scrollbar to always be displayed, to avoid UI jumps. - */ - overflow-y: scroll; - } - - #flagsTemplate { - --side-padding: 20px; - box-sizing: border-box; - padding: 1rem var(--side-padding) 8px; - margin: 0 auto; - max-width: calc(700px + 2 * var(--side-padding)); - width: 100%; - } - - :focus-visible { - box-shadow: 0 0 0 2px var(--focus-shadow-color); - outline: none; - } - - @media (forced-colors: active) { - :focus-visible { - /* Outline is needed for Windows HCM. Color of outline does not matter; it - * is overridden by the OS. */ - box-shadow: none; - outline: 2px solid transparent; - } - } - - #flags-app-container { - display: flex; - flex-direction: column; - height: 100%; - } - - @media (prefers-color-scheme: dark) { - #flagsTemplate { - background: rgba(255, 255, 255, .04); - } - } - - .flex { - align-self: center; - flex: 1 1 auto; - } - - .flex-container { - display: flex; - padding: 8px 1em; - } - - #flagsTemplate>.flex-container:first-child { - padding: 0; - } - - #header { - background: var(--toolbar-color); - box-shadow: 0 2px 2px 0 var(--shadow-color); - box-sizing: border-box; - } - - @media (prefers-color-scheme: dark) { - #header { - border-bottom: 1px solid var(--separator-color); - } - } - - #header .flex-container { - box-sizing: border-box; - margin: 0 auto; - max-width: 700px; - } - - #header .flex-container .flex:first-child { - text-align: left; - /* csschecker-disable-line left-right */ - } - - #header .flex-container .flex:last-child { - text-align: right; - /* csschecker-disable-line left-right */ - } - - .hidden { - display: none; - } - - .search-container { - margin-inline-end: 8px; - position: relative; - } - - #search { - background: var(--input-background) - url(chrome://resources/images/icon_search.svg) no-repeat 8px 50%; - border: 1px solid transparent; - border-radius: 3px; - box-sizing: border-box; - color: inherit; - font-size: .8125rem; - padding: 12px 36px; - width: 100%; - } - - #search::placeholder { - color: rgba(var(--google-grey-900-rgb), .71); - } - - @media (prefers-color-scheme: dark) { - #search { - background-image: url(chrome://resources/images/dark/icon_search.svg); - } - - #search::placeholder { - color: rgba(var(--google-grey-200-rgb), .51); - } - } - - .clear-search { - -webkit-mask-image: url(chrome://resources/images/icon_cancel.svg); - -webkit-mask-size: 20px; - background: var(--secondary-color); - border: 0; - display: none; - height: 20px; - opacity: 0.5; - position: absolute; - right: 8px; - top: calc(50% - 10px); - width: 20px; - } - - .clear-search:focus { - opacity: 1; - outline: 0; - } - - :host(.searching) .clear-search { - display: inline-block; - } - - :host(.searching) .blurb-container, - :host(.searching) #promos { - display: none; - } - - .blurb-container { - color: var(--primary-color); - font-size: .875rem; - line-height: 1.4; - margin-bottom: 1rem; - } - - .blurb-warning { - color: var(--warning-color); - text-transform: uppercase; - } - - .screen-reader-only { - clip: rect(0, 0, 0, 0); - display: inline-block; - position: fixed; - } - - #promos { - color: var(--secondary-color); - font-size: .875rem; - } - - button:not(.primary) { - background: none; - border: 1px solid var(--google-grey-300); - border-radius: 3px; - color: var(--google-blue-600); - font-size: .8125rem; - padding: 8px 12px; - } - - @media (prefers-color-scheme: dark) { - button:not(.primary) { - border-color: var(--google-grey-700); - color: var(--google-blue-300); - } - } - - button:not(.primary):hover { - background: rgba(var(--google-blue-500-rgb), .04); - } - - @media (prefers-color-scheme: dark) { - button:not(.primary):hover { - background: rgba(var(--google-blue-300-rgb), .08); - } - } - - .tabs { - display: flex; - width: 100%; - } - - .tab { - color: var(--secondary-color); - cursor: pointer; - display: block; - flex: 1; - font-size: 1rem; - font-weight: normal; - padding: 14px 21px; - position: relative; - text-align: center; - text-decoration: none; - transition: color 200ms var(--ease-in-out); - user-select: none; - width: 50%; - z-index: 1; - } - - .tab::before { - background: currentColor; - bottom: 0; - content: ''; - display: block; - height: 1px; - left: 0; - position: absolute; - transition: height 200ms var(--ease-in-out); - width: 100%; - } - - .tabs .tab.selected, - .tabs .tab.selected:focus { - color: var(--interactive-color); - } - - .tabs .tab.selected::before, - .tabs .tab.selected:focus::before { - height: 2px; - } - - html:not(.focus-outline-visible) .tab:focus { - outline: 0; - } - - .tab-content { - display: none; - line-height: 25px; - /* Bottom padding should be greater than evaluated height of needs-restart - */ - padding-bottom: 100px; - position: relative; - } - - .tab-content.selected, - .tab-content.selected .template { - display: block; - } - - /* Restart tray. */ - #needs-restart { - background: var(--toolbar-color); - bottom: 0; - box-shadow: 0 -2px 2px 0 var(--shadow-color); - box-sizing: border-box; - left: 0; - opacity: 0; - padding: 16px; - position: fixed; - transform: translateY(300px); - transition: all 225ms var(--ease-in-out); - width: 100%; - z-index: 10; - } - - #needs-restart .flex:last-child { - text-align: right; - /* csschecker-disable-line left-right */ - } - - #needs-restart.show { - opacity: 1; - transform: translate(0); - } - - .no-match { - margin-top: 75px; - } - - .restart-notice { - font-size: .9375rem; - line-height: 1.4; - } - - button.primary { - background: var(--link-color); - border: 0; - border-radius: 3px; - color: white; - font-size: .875rem; - padding: 14px 38px; - } - - @media (prefers-color-scheme: dark) { - button.primary { - color: var(--google-grey-900); - } - } - - button.primary:-webkit-any(:active, :hover) { - background: var(--google-blue-600); - } - - #version { - color: var(--secondary-color); - text-align: right; - /* csschecker-disable-line left-right */ - } - -<if expr="chromeos_lacros or chromeos_ash"> - #os-flags-link-container { - background-image: url(chrome://resources/images/os_flags_app_icon.svg); - } -</if> - - @media (max-width: 360px) { - #experiment-reset-all { - font-size: .65rem; - padding: 2px 8px; - } - - #flagsTemplate>.flex-container { - flex-direction: column; - } - - #version { - text-align: initial; - } - - button.primary { - padding: 8px; - } - - #search { - padding: 8px 36px; - } - } - - @media (max-width: 480px) { - #flagsTemplate>.flex-container:first-child:not('.version') { - flex-direction: column; - text-align: left; - /* csschecker-disable-line left-right */ - } - - #flagsTemplate>.flex-container:first-child .flex { - width: 100%; - } - - #needs-restart { - padding: 8px 12px; - } - - button.primary { - padding: 8px 16px; - } - - .restart-notice { - font-size: .8125rem; - padding: 4px; - } - - :host(.searching) flags-experiment::part(body) { - overflow: visible; - white-space: normal; - } - } - - @media (max-width: 732px) { - #version, - .blurb-warning { - display: block; - margin-bottom: 1rem; - } - } - - @media (max-height: 400px) { - #header { - position: relative; - } - - #flagsTemplate { - padding-top: 1.5rem; - } - } -</style> -<div id="header"> - <div class="flex-container"> - <div class="flex search-container"> - <input type="text" id="search" - aria-label="$i18n{search-label}" - placeholder="$i18n{search-placeholder}" tabindex="1" - autocomplete="off" spellcheck="false"> - <input type="button" class="clear-search" title="$i18n{clear-search}" - tabindex="2"> - </div> - <div class="flex"> - <button id="experiment-reset-all" tabindex="3"> - $i18n{reset} - </button> - </div> - </div> - <div class="screen-reader-only" id="screen-reader-status-message" - role="status"></div> -</div> -<div id="body-container" style="visibility:hidden"> - <div id="flagsTemplate"> -<if expr="chromeos_lacros or chromeos_ash"> - <div class="os-link-container" id="os-link-container"> - <span id="os-flags-link-container" class="os-link-icon"></span> - <span aria-hidden="true" id="os-link-desc">$i18n{os-flags-text1}</span> - <a href="#" id="os-link-href" tabindex="4" - aria-describedby="os-link-desc"> - $i18n{os-flags-link} - </a> - <span aria-hidden="true">$i18n{os-flags-text2}</span> - </div> -</if> - - <div class="flex-container"> - <div class="flex"> - <h1 class="section-header-title">$i18n{heading}</h1> - </div> - <span id="version" class="flex">$i18n{version}</span> - </div> - <div class="blurb-container"> - <span class="blurb-warning">$i18n{page-warning}</span> - <span>$i18n{page-warning-explanation}</span> -<if expr="chromeos_ash"> - <p id="owner-warning">$i18n{owner-warning}</p> -</if> - </div> - <p id="promos" hidden> - <!-- Those strings are not localized because they only appear in - chrome://flags, which is not localized. --> - <span id="channel-promo-beta" hidden> - Interested in cool new Chrome features? Try our - <a href="https://chrome.com/beta">beta channel</a>. - </span> - <span id="channel-promo-dev" hidden> - Interested in cool new Chrome features? Try our - <a href="https://chrome.com/dev">dev channel</a> - </span> - </p> - <div id="tabs" class="tabs" role="tablist"> - <a href="#tab-content-available" id="tab-available" class="tab selected" - role="tab" - aria-selected="true" - aria-controls="panel1" - tabindex="5">$i18n{available}</a> -<!-- Unsupported experiments are not shown on iOS --> -<if expr="not is_ios"> - <a href="#tab-content-unavailable" id="tab-unavailable" class="tab" - role="tab" - aria-selected="false" aria-controls="panel2" - tabindex="-1">$i18n{unavailable}</a> -</if> - </div> - <div id="tabpanels"> - <div id="tab-content-available" class="tab-content selected" - role="tabpanel" aria-labelledby="tab-available" aria-hidden="false"> - <!-- Non default experiments. --> - <div id="non-default-experiments"></div> - <!-- Experiments with default settings. --> - <div id="default-experiments"></div> - <div class="no-match hidden" role="alert">$i18n{no-results}</div> - </div> -<if expr="not is_ios"> - <div id="tab-content-unavailable" class="tab-content" - role="tabpanel" aria-labelledby="tab-unavailable" aria-hidden="false"> - <div id="unavailable-experiments"></div> - <div class="no-match hidden" role="alert"> - $i18n{no-results} - </div> - </div> -</if> - </div> - <div id="needs-restart" jsvalues="class:needsRestart ? 'show' : ''"> - <div class="flex-container"> - <div class="flex restart-notice">$i18n{flagsRestartNotice}</div> - <div class="flex"> -<if expr="not is_ios"> - <button id="experiment-restart-button" class="primary" tabindex="-1"> - $i18n{relaunch} - </button> -</if> - </div> - </div> - </div> - </div> -</div> \ No newline at end of file
diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resources/app.ts deleted file mode 100644 index 3ed36cd..0000000 --- a/components/flags_ui/resources/app.ts +++ /dev/null
@@ -1,501 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// <if expr="is_ios"> -import 'chrome://resources/js/ios/web_ui.js'; -// </if> - -import './strings.m.js'; -import './experiment.js'; - -import {assert} from 'chrome://resources/js/assert_ts.js'; -import {CustomElement} from 'chrome://resources/js/custom_element.js'; -import {FocusOutlineManager} from 'chrome://resources/js/focus_outline_manager.js'; -import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; -import {PromiseResolver} from 'chrome://resources/js/promise_resolver.js'; -import {getDeepActiveElement} from 'chrome://resources/js/util_ts.js'; - -import {getTemplate} from './app.html.js'; -import {FlagsExperimentElement} from './experiment.js'; -import {ExperimentalFeaturesData, Feature, FlagsBrowserProxyImpl} from './flags_browser_proxy.js'; - -interface Tab { - tabEl: HTMLElement; - panelEl: HTMLElement; -} - -// Delay in ms following a keypress, before a search is made. -const SEARCH_DEBOUNCE_TIME_MS: number = 150; - -/** - * Handles in page searching. Matches against the experiment flag name. - */ -class FlagSearch { - private flagsAppElement: FlagsAppElement; - private initialized: boolean = false; - private noMatchMsg: NodeListOf<HTMLElement>; - private searchIntervalId: number|null = null; - private searchBox: HTMLInputElement; - - - constructor(el: FlagsAppElement) { - this.flagsAppElement = el; - this.searchBox = - this.flagsAppElement.getRequiredElement<HTMLInputElement>('#search'); - this.noMatchMsg = this.flagsAppElement.$all('.tab-content .no-match'); - } - - /** - * Initialises the in page search. Adds searchbox listeners and - * collates the text elements used for string matching. - */ - public init() { - if (this.initialized) { - return; - } - this.searchBox.addEventListener('input', this.debounceSearch.bind(this)); - - this.flagsAppElement.getRequiredElement<HTMLInputElement>('.clear-search') - .addEventListener('click', this.clearSearch.bind(this)); - - window.addEventListener('keyup', e => { - // Check for an active textarea inside a <flags-experiment>. - const activeElement = getDeepActiveElement(); - if (activeElement && activeElement.nodeName === 'TEXTAREA') { - return; - } - switch (e.key) { - case '/': - this.searchBox.focus(); - break; - case 'Escape': - case 'Enter': - this.searchBox.blur(); - break; - } - }); - this.searchBox.focus(); - this.initialized = true; - } - - /** - * Clears a search showing all experiments. - */ - public clearSearch() { - this.searchBox.value = ''; - this.doSearch(); - } - - /** - * Goes through all experiment text and highlights the relevant matches. - * Only the first instance of a match in each experiment text block is - * highlighted. This prevents the sea of yellow that happens using the - * global find in page search. - * @param experiments The list of elements to search on and highlight. - * @param searchTerm The query to search for. - * @return The number of matches found. - */ - private highlightAllMatches( - experiments: NodeListOf<FlagsExperimentElement>, - searchTerm: string): number { - let matches = 0; - for (const experiment of experiments) { - const hasMatch = experiment.match(searchTerm); - matches += hasMatch ? 1 : 0; - experiment.classList.toggle('hidden', !hasMatch); - } - return matches; - } - - /** - * Performs a search against the experiment title, description, permalink. - */ - private doSearch() { - const searchTerm = this.searchBox.value.trim().toLowerCase(); - - if (searchTerm || searchTerm === '') { - this.flagsAppElement.classList.toggle('searching', Boolean(searchTerm)); - - // Available experiments - const availableExperiments = - this.flagsAppElement.$all<FlagsExperimentElement>( - '#tab-content-available flags-experiment'); - assert(this.noMatchMsg[0]); - this.noMatchMsg[0].classList.toggle( - 'hidden', - this.highlightAllMatches(availableExperiments, searchTerm) > 0); - - // <if expr="not is_ios"> - // Unavailable experiments, which are undefined on iOS. - const unavailableExperiments = - this.flagsAppElement.$all<FlagsExperimentElement>( - '#tab-content-unavailable flags-experiment'); - assert(this.noMatchMsg[1]); - this.noMatchMsg[1].classList.toggle( - 'hidden', - this.highlightAllMatches(unavailableExperiments, searchTerm) > 0); - // </if> - this.announceSearchResults(); - } - - this.searchIntervalId = null; - } - - private announceSearchResults() { - const searchTerm = this.searchBox.value.trim().toLowerCase(); - if (!searchTerm) { - return; - } - - const selectedTab = this.flagsAppElement.tabs.find( - tab => tab.panelEl.classList.contains('selected'))!; - const selectedTabId = selectedTab.panelEl.id; - const queryString = `#${selectedTabId} flags-experiment:not(.hidden)`; - const total = this.flagsAppElement.$all(queryString).length; - if (total) { - this.flagsAppElement.announceStatus( - total === 1 ? - loadTimeData.getStringF('searchResultsSingular', searchTerm) : - loadTimeData.getStringF( - 'searchResultsPlural', total, searchTerm)); - } - } - - /** - * Debounces the search to improve performance and prevent too many searches - * from being initiated. - */ - private debounceSearch() { - if (this.searchIntervalId) { - clearTimeout(this.searchIntervalId); - } - this.searchIntervalId = - setTimeout(this.doSearch.bind(this), SEARCH_DEBOUNCE_TIME_MS); - } -} - -export class FlagsAppElement extends CustomElement { - static get is() { - return 'flags-app'; - } - - static override get template() { - return getTemplate(); - } - - private featuresResolver: PromiseResolver<void> = new PromiseResolver(); - private flagSearch: FlagSearch = new FlagSearch(this); - private lastChanged: HTMLElement|null = null; - // <if expr="not is_ios"> - private lastFocused: HTMLElement|null = null; - private restartButton: HTMLButtonElement = - this.getRequiredElement<HTMLButtonElement>('#experiment-restart-button'); - // </if> - - public tabs: Tab[] = [ - { - tabEl: this.getRequiredElement('#tab-available'), - panelEl: this.getRequiredElement('#tab-content-available'), - }, - // <if expr="not is_ios"> - { - tabEl: this.getRequiredElement('#tab-unavailable'), - panelEl: this.getRequiredElement('#tab-content-unavailable'), - }, - // </if> - ]; - - connectedCallback() { - // Get and display the data upon loading. - this.requestExperimentalFeaturesData(); - // There is no restart button on iOS. - // <if expr="not is_ios"> - this.setupRestartButton(); - // </if> - FocusOutlineManager.forDocument(document); - - // Exported on |window| since this is needed by tests. - Object.assign( - window, - {experimentalFeaturesReadyForTest: this.featuresResolver.promise}); - - // Update the highlighted flag when the hash changes. - window.addEventListener('hashchange', () => this.highlightReferencedFlag); - } - - /** - * Cause a text string to be announced by screen readers - * @param text The text that should be announced. - */ - public announceStatus(text: string) { - this.getRequiredElement('#screen-reader-status-message').textContent = ''; - setTimeout(() => { - this.getRequiredElement('#screen-reader-status-message').textContent = - text; - }, 100); - } - - /** - * Toggles necessary attributes to display selected tab. - */ - private selectTab(selectedTabEl: HTMLElement) { - for (const tab of this.tabs) { - const isSelectedTab = tab.tabEl === selectedTabEl; - tab.tabEl.classList.toggle('selected', isSelectedTab); - tab.tabEl.setAttribute('aria-selected', String(isSelectedTab)); - tab.panelEl.classList.toggle('selected', isSelectedTab); - } - } - - /** - * Takes the |experimentalFeaturesData| input argument which represents data - * about all the current feature entries and populates the page with - * that data. It expects an object structure like the above. - * @param experimentalFeaturesData Information about all experiments. - */ - private render(experimentalFeaturesData: ExperimentalFeaturesData) { - const defaultFeatures: Feature[] = []; - const nonDefaultFeatures: Feature[] = []; - - experimentalFeaturesData.supportedFeatures.forEach( - f => (f.is_default ? defaultFeatures : nonDefaultFeatures).push(f)); - - this.renderExperiments( - nonDefaultFeatures, - this.getRequiredElement('#non-default-experiments')); - - this.renderExperiments( - defaultFeatures, this.getRequiredElement('#default-experiments')); - - // <if expr="not is_ios"> - this.renderExperiments( - experimentalFeaturesData.unsupportedFeatures, - this.getRequiredElement('#unavailable-experiments'), true); - // </if> - - this.showRestartToast(experimentalFeaturesData.needsRestart); - - // <if expr="not is_ios"> - this.restartButton.onclick = () => - FlagsBrowserProxyImpl.getInstance().restartBrowser(); - // </if> - - // Tab panel selection. - for (const tab of this.tabs) { - tab.tabEl.addEventListener('click', e => { - e.preventDefault(); - this.selectTab(tab.tabEl); - }); - } - - const resetAllButton = - this.getRequiredElement<HTMLButtonElement>('#experiment-reset-all'); - resetAllButton.onclick = () => { - this.resetAllFlags(); - this.lastChanged = resetAllButton; - }; - this.registerFocusEvents(resetAllButton); - - // <if expr="is_chromeos"> - const crosUrlFlagsRedirectButton = - this.getRequiredElement<HTMLAnchorElement>('#os-link-href'); - if (crosUrlFlagsRedirectButton) { - crosUrlFlagsRedirectButton.onclick = - FlagsBrowserProxyImpl.getInstance().crosUrlFlagsRedirect; - } - // </if> - - this.highlightReferencedFlag(); - } - - /** - * Add events to an element in order to keep track of the last focused - * element. Focus restart button if a previous focus target has been set and - * tab key pressed. - */ - private registerFocusEvents(el: HTMLElement) { - el.addEventListener('keydown', e => { - if (this.lastChanged && e.key === 'Tab' && !e.shiftKey) { - e.preventDefault(); - // <if expr="not is_ios"> - this.lastFocused = this.lastChanged; - this.restartButton.focus(); - // </if> - } - }); - el.addEventListener('blur', () => { - this.lastChanged = null; - }); - } - - /** - * Highlight an element associated with the page's location's hash. We need to - * fake fragment navigation with '.scrollIntoView()', since the fragment IDs - * don't actually exist until after the template code runs; normal navigation - * therefore doesn't work. - */ - private highlightReferencedFlag() { - if (!window.location.hash) { - return; - } - - const experiment = this.shadowRoot!.querySelector(window.location.hash); - if (!experiment || experiment.classList.contains('referenced')) { - return; - } - - // Unhighlight whatever's highlighted. - const previous = this.shadowRoot!.querySelector('.referenced'); - if (previous) { - previous.classList.remove('referenced'); - } - // Highlight the referenced element. - experiment.classList.add('referenced'); - - // <if expr="not is_ios"> - // Switch to unavailable tab if the flag is in this section. - if (this.getRequiredElement('#tab-content-unavailable') - .contains(experiment)) { - this.selectTab(this.getRequiredElement('#tab-unavailable')); - } - // </if> - experiment.scrollIntoView(); - } - - /** - * Gets details and configuration about the available features. The - * |returnExperimentalFeatures()| will be called with reply. - */ - private requestExperimentalFeaturesData() { - FlagsBrowserProxyImpl.getInstance().requestExperimentalFeatures().then( - this.returnExperimentalFeatures.bind(this)); - } - - /** Reset all flags to their default values and refresh the UI. */ - private resetAllFlags() { - FlagsBrowserProxyImpl.getInstance().resetAllFlags(); - this.flagSearch.clearSearch(); - this.announceStatus(loadTimeData.getString('reset-acknowledged')); - this.showRestartToast(true); - this.requestExperimentalFeaturesData(); - } - - private renderExperiments( - features: Feature[], container: HTMLElement, unsupported = false) { - const fragment = document.createDocumentFragment(); - for (const feature of features) { - const experiment = document.createElement('flags-experiment'); - - experiment.toggleAttribute('unsupported', unsupported); - experiment.data = feature; - experiment.id = feature.internal_name; - - const select = experiment.getSelect(); - if (select) { - experiment.addEventListener('select-change', e => { - e.preventDefault(); - this.showRestartToast(true); - this.lastChanged = select; - }); - this.registerFocusEvents(select); - } - - const textarea = experiment.getTextarea(); - if (textarea) { - experiment.addEventListener('textarea-change', e => { - e.preventDefault(); - this.showRestartToast(true); - }); - } - const textbox = experiment.getTextbox(); - if (textbox) { - experiment.addEventListener('input-change', e => { - e.preventDefault(); - this.showRestartToast(true); - }); - } - fragment.appendChild(experiment); - } - container.replaceChildren(fragment); - } - - /** - * Show the restart toast. - * @param show Setting to toggle showing / hiding the toast. - */ - private showRestartToast(show: boolean) { - this.getRequiredElement('#needs-restart').classList.toggle('show', show); - // There is no restart button on iOS. - // <if expr="not is_ios"> - this.restartButton.setAttribute('tabindex', show ? '9' : '-1'); - // </if> - if (show) { - this.getRequiredElement('#needs-restart').setAttribute('role', 'alert'); - } - } - - /** - * Called by the WebUI to re-populate the page with data representing the - * current state of all experimental features. - */ - private returnExperimentalFeatures(experimentalFeaturesData: - ExperimentalFeaturesData) { - const bodyContainer = this.getRequiredElement('#body-container'); - this.render(experimentalFeaturesData); - - if (experimentalFeaturesData.showBetaChannelPromotion) { - this.getRequiredElement<HTMLSpanElement>('#channel-promo-beta').hidden = - false; - } else if (experimentalFeaturesData.showDevChannelPromotion) { - this.getRequiredElement<HTMLSpanElement>('#channel-promo-dev').hidden = - false; - } - - this.getRequiredElement<HTMLParagraphElement>('#promos').hidden = - !experimentalFeaturesData.showBetaChannelPromotion && - !experimentalFeaturesData.showDevChannelPromotion; - - bodyContainer.style.visibility = 'visible'; - - this.flagSearch.init(); - - const ownerWarningDiv = this.$<HTMLParagraphElement>('owner-warning'); - if (ownerWarningDiv) { - ownerWarningDiv.hidden = !experimentalFeaturesData.showOwnerWarning; - } - - const systemFlagsLinkDiv = this.$<HTMLElement>('os-link-container'); - if (systemFlagsLinkDiv && !experimentalFeaturesData.showSystemFlagsLink) { - systemFlagsLinkDiv.style.display = 'none'; - } - - this.featuresResolver.resolve(); - } - - // <if expr="not is_ios"> - /** - * Allows the restart button to jump back to the previously focused experiment - * in the list instead of going to the top of the page. - */ - private setupRestartButton() { - this.restartButton.addEventListener('keydown', e => { - if (e.shiftKey && e.key === 'Tab' && this.lastFocused) { - e.preventDefault(); - this.lastFocused.focus(); - } - }); - this.restartButton.addEventListener('blur', () => { - this.lastFocused = null; - }); - } - // </if> -} - -declare global { - interface HTMLElementTagNameMap { - 'flags-app': FlagsAppElement; - } -} - -customElements.define(FlagsAppElement.is, FlagsAppElement);
diff --git a/components/flags_ui/resources/flags.css b/components/flags_ui/resources/flags.css new file mode 100644 index 0000000..103de7c --- /dev/null +++ b/components/flags_ui/resources/flags.css
@@ -0,0 +1,470 @@ +/* Copyright 2012 The Chromium Authors + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +html, +body { + height: 100%; + overflow: hidden; +} + +html { + --ease-in-out: cubic-bezier(0.4, 0.0, 0.2, 1); + --shadow-color: rgba(0, 0, 0, 0.1); + + --google-blue-300-rgb: 138, 180, 248; + --google-blue-300: rgb(var(--google-blue-300-rgb)); + --google-blue-400: rgb(102, 157, 246); + --google-blue-500-rgb: 66, 133, 244; + --google-blue-500: rgb(var(--google-blue-500-rgb)); + --google-blue-600-rgb: 26, 115, 232; + --google-blue-600: rgb(var(--google-blue-600-rgb)); + --google-blue-700: rgb(25, 103, 210); + --google-grey-100: rgb(241, 243, 244); + --google-grey-200-rgb: 232, 234, 237; + --google-grey-200: rgb(var(--google-grey-200-rgb)); + --google-grey-300: rgb(218, 220, 224); + --google-grey-500: rgb(154, 160, 166); + --google-grey-700: rgb(95, 99, 104); + --google-grey-900-rgb: 32, 33, 36; + --google-grey-900: rgb(var(--google-grey-900-rgb)); + /* --google-grey-900 + 4% white blended together. */ + --google-grey-900-white-4-percent: #292a2d; + --google-red-300: rgb(242, 139, 130); + --google-red-700: rgb(197, 34, 31); + + --interactive-color: var(--google-blue-600); + --primary-color: var(--google-grey-900); + --secondary-color: var(--google-grey-700); + --warning-color: var(--google-red-700); + + --focus-shadow-color: rgba(var(--google-blue-600-rgb), 0.4); + --input-background: var(--google-grey-100); + --link-color: var(--google-blue-700); + --separator-color: rgba(0, 0, 0, .06); + --toolbar-color: white; + + background: white; +} + +@media (prefers-color-scheme: dark) { + html { + --interactive-color: var(--google-blue-300); + --primary-color: var(--google-grey-200); + --secondary-color: var(--google-grey-500); + --warning-color: var(--google-red-300); + + --focus-shadow-color: rgba(var(--google-blue-300-rgb), 0.4); + --input-background: rgba(0, 0, 0, .3); + --link-color: var(--google-blue-300); + --separator-color: rgba(255, 255, 255, .1); + --toolbar-color: var(--google-grey-900-white-4-percent); + + background: var(--google-grey-900); + } +} + +body { + color: var(--primary-color); + display: flex; + flex-direction: column; + font-size: 0.8125em; + margin: 0; +} + +a { + color: var(--link-color); + font-size: .8125rem; +} + +h1 { + color: var(--primary-color); + font-size: 1.4625rem; + font-weight: 400; + margin-top: 0; + padding: 0; +} + +button { + cursor: pointer; + font-weight: 500; +} + +#body-container { + flex: 1; + /* Force the vertical scrollbar to always be displayed, to avoid UI jumps. */ + overflow-y: scroll; +} + +#flagsTemplate { + --side-padding: 20px; + box-sizing: border-box; + padding: 1rem var(--side-padding) 8px; + margin: 0 auto; + max-width: calc(700px + 2 * var(--side-padding)); + width: 100%; +} + +:focus-visible { + box-shadow: 0 0 0 2px var(--focus-shadow-color); + outline: none; +} + +@media (forced-colors: active) { + :focus-visible { + /* Outline is needed for Windows HCM. Color of outline does not matter; it + * is overridden by the OS. */ + box-shadow: none; + outline: 2px solid transparent; + } +} + +@media (prefers-color-scheme: dark) { + #flagsTemplate { + background: rgba(255, 255, 255, .04); + } +} + +.flex { + align-self: center; + flex: 1 1 auto; +} + +.flex-container { + display: flex; + padding: 8px 1em; +} + +#flagsTemplate > .flex-container:first-child { + padding: 0; +} + +#header { + background: var(--toolbar-color); + box-shadow: 0 2px 2px 0 var(--shadow-color); + box-sizing: border-box; +} + +@media (prefers-color-scheme: dark) { + #header { + border-bottom: 1px solid var(--separator-color); + } +} + +#header .flex-container { + box-sizing: border-box; + margin: 0 auto; + max-width: 700px; +} + +#header .flex-container .flex:first-child { + text-align: left; /* csschecker-disable-line left-right */ +} + +#header .flex-container .flex:last-child { + text-align: right; /* csschecker-disable-line left-right */ +} + +.hidden { + display: none; +} + +.search-container { + margin-inline-end: 8px; + position: relative; +} + +#search { + background: var(--input-background) url(chrome://resources/images/icon_search.svg) no-repeat 8px 50%; + border: 1px solid transparent; + border-radius: 3px; + box-sizing: border-box; + color: inherit; + font-size: .8125rem; + padding: 12px 36px; + width: 100%; +} + +#search::placeholder { + color: rgba(var(--google-grey-900-rgb), .71); +} + +@media (prefers-color-scheme: dark) { + #search { + background-image: url(chrome://resources/images/dark/icon_search.svg); + } + + #search::placeholder { + color: rgba(var(--google-grey-200-rgb), .51); + } +} + +.clear-search { + -webkit-mask-image: url(chrome://resources/images/icon_cancel.svg); + -webkit-mask-size: 20px; + background: var(--secondary-color); + border: 0; + display: none; + height: 20px; + opacity: 0.5; + position: absolute; + right: 8px; + top: calc(50% - 10px); + width: 20px; +} + +.clear-search:focus { + opacity: 1; + outline: 0; +} + +.searching .clear-search { + display: inline-block; +} + +.searching .blurb-container, +.searching #promos { + display: none; +} + +.blurb-container { + color: var(--primary-color); + font-size: .875rem; + line-height: 1.4; + margin-bottom: 1rem; +} + +.blurb-warning { + color: var(--warning-color); + text-transform: uppercase; +} + +.screen-reader-only { + clip: rect(0,0,0,0); + display: inline-block; + position: fixed; +} + +#promos { + color: var(--secondary-color); + font-size: .875rem; +} + +button:not(.primary) { + background: none; + border: 1px solid var(--google-grey-300); + border-radius: 3px; + color: var(--google-blue-600); + font-size: .8125rem; + padding: 8px 12px; +} + +@media (prefers-color-scheme: dark) { + button:not(.primary) { + border-color: var(--google-grey-700); + color: var(--google-blue-300); + } +} + +button:not(.primary):hover { + background: rgba(var(--google-blue-500-rgb), .04); +} + +@media (prefers-color-scheme: dark) { + button:not(.primary):hover { + background: rgba(var(--google-blue-300-rgb), .08); + } +} + +.tabs { + display: flex; + width: 100%; +} + +.tab { + color: var(--secondary-color); + cursor: pointer; + display: block; + flex: 1; + font-size: 1rem; + font-weight: normal; + padding: 14px 21px; + position: relative; + text-align: center; + text-decoration: none; + transition: color 200ms var(--ease-in-out); + user-select: none; + width: 50%; + z-index: 1; +} + +.tab::before { + background: currentColor; + bottom: 0; + content: ''; + display: block; + height: 1px; + left: 0; + position: absolute; + transition: height 200ms var(--ease-in-out); + width: 100%; +} + +.tabs .tab.selected, +.tabs .tab.selected:focus { + color: var(--interactive-color); +} + +.tabs .tab.selected::before, +.tabs .tab.selected:focus::before { + height: 2px; +} + +html:not(.focus-outline-visible) .tab:focus { + outline: 0; +} + +.tab-content { + display: none; + line-height: 25px; + /* Bottom padding should be greater than evaluated height of needs-restart */ + padding-bottom: 100px; + position: relative; +} + +.tab-content.selected, +.tab-content.selected .template { + display: block; +} + +/* Restart tray. */ +#needs-restart { + background: var(--toolbar-color); + bottom: 0; + box-shadow: 0 -2px 2px 0 var(--shadow-color); + box-sizing: border-box; + left: 0; + opacity: 0; + padding: 16px; + position: fixed; + transform: translateY(300px); + transition: all 225ms var(--ease-in-out); + width: 100%; + z-index: 10; +} + +#needs-restart .flex:last-child { + text-align: right; /* csschecker-disable-line left-right */ +} + +#needs-restart.show { + opacity: 1; + transform: translate(0); +} + +.no-match { + margin-top: 75px; +} + +.restart-notice { + font-size: .9375rem; + line-height: 1.4; +} + +button.primary { + background: var(--link-color); + border: 0; + border-radius: 3px; + color: white; + font-size: .875rem; + padding: 14px 38px; +} + +@media (prefers-color-scheme: dark) { + button.primary { + color: var(--google-grey-900); + } +} + +button.primary:-webkit-any(:active, :hover) { + background: var(--google-blue-600); +} + +#version { + color: var(--secondary-color); + text-align: right; /* csschecker-disable-line left-right */ +} + +#os-flags-link-container { + background-image: url(chrome://resources/images/os_flags_app_icon.svg); +} + +@media (max-width: 360px) { + #experiment-reset-all { + font-size: .65rem; + padding: 2px 8px; + } + + #flagsTemplate > .flex-container { + flex-direction: column; + } + + #version { + text-align: initial; + } + + button.primary { + padding: 8px; + } + + #search { + padding: 8px 36px; + } +} + +@media (max-width: 480px) { + #flagsTemplate > .flex-container:first-child:not('.version') { + flex-direction: column; + text-align: left; /* csschecker-disable-line left-right */ + } + + #flagsTemplate > .flex-container:first-child .flex { + width: 100%; + } + + #needs-restart { + padding: 8px 12px; + } + + button.primary { + padding: 8px 16px; + } + + .restart-notice { + font-size: .8125rem; + padding: 4px; + } + + .searching flags-experiment::part(body) { + overflow: visible; + white-space: normal; + } +} + +@media (max-width: 732px) { + #version, + .blurb-warning { + display: block; + margin-bottom: 1rem; + } +} + +@media (max-height: 400px) { + #header { + position: relative; + } + + #flagsTemplate { + padding-top: 1.5rem; + } +}
diff --git a/components/flags_ui/resources/flags.html b/components/flags_ui/resources/flags.html index d0dfac3..4e23ad1 100644 --- a/components/flags_ui/resources/flags.html +++ b/components/flags_ui/resources/flags.html
@@ -11,6 +11,7 @@ </if> <title>$i18n{title}</title> +<link rel="stylesheet" href="flags.css"> <if expr="chromeos_lacros or chromeos_ash"> <link rel="stylesheet" href="chrome://resources/css/os_header.css"> </if> @@ -19,17 +20,112 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1, maximum-scale=1"> <link rel="stylesheet" href="chrome://resources/css/text_defaults.css"> </if> -<style> - html, - body { - height: 100%; - overflow: hidden; - margin: 0; - } -</style> + </head> <body> - <script src="app.js" type="module"></script> - <flags-app></flags-app> +<div id="header"> + <div class="flex-container"> + <div class="flex"> + <div class="search-container"> + <input type="text" id="search" + aria-label="$i18n{search-label}" + placeholder="$i18n{search-placeholder}" tabindex="1" + autocomplete="off" spellcheck="false"> + <input type="button" class="clear-search" title="$i18n{clear-search}" + tabindex="2"> + </div> + </div> + <div class="flex"> + <button id="experiment-reset-all" type="button" tabindex="3"> + $i18n{reset} + </button> + </div> + </div> + <div class="screen-reader-only" id="screen-reader-status-message" role="status"></div> +</div> +<div id="body-container" style="visibility:hidden"> + <div id="flagsTemplate"> +<if expr="chromeos_lacros or chromeos_ash"> + <div class="os-link-container" id="os-link-container"> + <span id="os-flags-link-container" class="os-link-icon"></span> + <span aria-hidden="true" id="os-link-desc">$i18n{os-flags-text1}</span> + <a href="#" id="os-link-href" tabindex="4" aria-describedby="os-link-desc"> + $i18n{os-flags-link} + </a> + <span aria-hidden="true">$i18n{os-flags-text2}</span> + </div> +</if> + + <div class="flex-container"> + <div class="flex"><h1 class="section-header-title">$i18n{heading}</h1></div> + <span id="version" class="flex">$i18n{version}</span> + </div> + <div class="blurb-container"> + <span class="blurb-warning">$i18n{page-warning}</span> + <span>$i18n{page-warning-explanation}</span> +<if expr="chromeos_ash"> + <p id="owner-warning">$i18n{owner-warning}</p> +</if> + </div> + <p id="promos" hidden> + <!-- Those strings are not localized because they only appear in + chrome://flags, which is not localized. --> + <span id="channel-promo-beta" hidden> + Interested in cool new Chrome features? Try our + <a href="https://chrome.com/beta">beta channel</a>. + </span> + <span id="channel-promo-dev" hidden> + Interested in cool new Chrome features? Try our + <a href="https://chrome.com/dev">dev channel</a> + </span> + </p> + <div id="tabs" class="tabs" role="tablist"> + <a href="#tab-content-available" id="tab-available" class="tab selected" + role="tab" + aria-selected="true" + aria-controls="panel1" + tabindex="5">$i18n{available}</a> +<!-- Unsupported experiments are not shown on iOS --> +<if expr="not is_ios"> + <a href="#tab-content-unavailable" id="tab-unavailable" class="tab" + role="tab" + aria-selected="false" aria-controls="panel2" + tabindex="-1">$i18n{unavailable}</a> +</if> + </div> + <div id="tabpanels"> + <div id="tab-content-available" class="tab-content selected" + role="tabpanel" aria-labelledby="tab-available" aria-hidden="false"> + <!-- Non default experiments. --> + <div id="non-default-experiments"></div> + <!-- Experiments with default settings. --> + <div id="default-experiments"></div> + <div class="no-match hidden" role="alert">$i18n{no-results}</div> + </div> +<if expr="not is_ios"> + <div id="tab-content-unavailable" class="tab-content" + role="tabpanel" aria-labelledby="tab-unavailable" aria-hidden="false"> + <div id="unavailable-experiments"></div> + <div class="no-match hidden" role="alert"> + $i18n{no-results} + </div> + </div> +</if> + </div> + <div id="needs-restart" jsvalues="class:needsRestart ? 'show' : ''"> + <div class="flex-container"> + <div class="flex restart-notice" jstcache="0">$i18n{flagsRestartNotice}</div> + <div class="flex"> +<if expr="not is_ios"> + <button id="experiment-restart-button" class="primary" tabindex="-1"> + $i18n{relaunch} + </button> +</if> + </div> + </div> + </div> + </div> +</div> +<script type="module" src="flags.js"></script> </body> -</html> \ No newline at end of file +</html>
diff --git a/components/flags_ui/resources/flags.ts b/components/flags_ui/resources/flags.ts new file mode 100644 index 0000000..54415d6 --- /dev/null +++ b/components/flags_ui/resources/flags.ts
@@ -0,0 +1,520 @@ +// Copyright 2012 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// <if expr="is_ios"> +import 'chrome://resources/js/ios/web_ui.js'; +// </if> + +import './strings.m.js'; +import './experiment.js'; + +import {FocusOutlineManager} from 'chrome://resources/js/focus_outline_manager.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; +import {PromiseResolver} from 'chrome://resources/js/promise_resolver.js'; +import {$, getDeepActiveElement, getRequiredElement} from 'chrome://resources/js/util_ts.js'; + +import {FlagsExperimentElement} from './experiment.js'; +import {ExperimentalFeaturesData, Feature, FlagsBrowserProxyImpl} from './flags_browser_proxy.js'; + +let lastChanged: HTMLElement|null = null; + +// <if expr="not is_ios"> +let lastFocused: HTMLElement|null = null; + +const restartButton = getRequiredElement('experiment-restart-button'); +// </if> + +const experimentalFeaturesResolver: PromiseResolver<void> = + new PromiseResolver(); + +// Exported on |window| since this is needed by tests. +Object.assign( + window, + {experimentalFeaturesReadyForTest: experimentalFeaturesResolver.promise}); + +interface Tab { + tabEl: HTMLElement; + panelEl: HTMLElement; +} + +const tabs: Tab[] = [ + { + tabEl: document.body.querySelector('#tab-available')!, + panelEl: document.body.querySelector('#tab-content-available')!, + }, + // <if expr="not is_ios"> + { + tabEl: document.body.querySelector('#tab-unavailable')!, + panelEl: document.body.querySelector('#tab-content-unavailable')!, + }, + // </if> +]; + +/** + * Toggles necessary attributes to display selected tab. + */ +function selectTab(selectedTabEl: HTMLElement) { + for (const tab of tabs) { + const isSelectedTab = tab.tabEl === selectedTabEl; + tab.tabEl.classList.toggle('selected', isSelectedTab); + tab.tabEl.setAttribute('aria-selected', String(isSelectedTab)); + // flags.html has hard-coded tabindex values for its elements. A tabindex + // value of 5 ensures the tabs are in the correct order. + tab.tabEl.tabIndex = isSelectedTab ? 5 : -1; + if (isSelectedTab) { + selectedTabEl.focus(); + } + tab.panelEl.classList.toggle('selected', isSelectedTab); + } +} + +/** + * This variable structure is here to document the structure that the template + * expects to correctly populate the page. + */ + +/** + * Takes the |experimentalFeaturesData| input argument which represents data + * about all the current feature entries and populates the page with + * that data. It expects an object structure like the above. + * @param experimentalFeaturesData Information about all experiments. + */ +function render(experimentalFeaturesData: ExperimentalFeaturesData) { + const defaultFeatures: Feature[] = []; + const nonDefaultFeatures: Feature[] = []; + + experimentalFeaturesData.supportedFeatures.forEach( + f => (f.is_default ? defaultFeatures : nonDefaultFeatures).push(f)); + + renderExperiments( + nonDefaultFeatures, getRequiredElement('non-default-experiments')); + + renderExperiments(defaultFeatures, getRequiredElement('default-experiments')); + + // <if expr="not is_ios"> + renderExperiments( + experimentalFeaturesData.unsupportedFeatures, + getRequiredElement('unavailable-experiments'), true); + // </if> + + showRestartToast(experimentalFeaturesData.needsRestart); + + // <if expr="not is_ios"> + restartButton.onclick = () => + FlagsBrowserProxyImpl.getInstance().restartBrowser(); + // </if> + + // Tab panel selection. + const tabsEl = getRequiredElement('tabs'); + tabsEl.addEventListener('keydown', (e: KeyboardEvent) => { + let selectedIndex = tabs.findIndex(tab => { + return tab.tabEl.classList.contains('selected'); + }) || + 0; + + switch (e.key) { + case 'Home': + selectedIndex = 0; + break; + case 'End': + selectedIndex = tabs.length - 1; + break; + case 'ArrowLeft': + selectedIndex--; + if (selectedIndex < 0) { + selectedIndex += tabs.length; + } + break; + case 'ArrowRight': + selectedIndex++; + if (selectedIndex >= tabs.length) { + selectedIndex %= tabs.length; + } + break; + default: + return; + } + e.preventDefault(); + e.stopPropagation(); + selectTab(tabs[selectedIndex]!.tabEl); + }); + + for (const tab of tabs) { + tab.tabEl.addEventListener('click', e => { + e.preventDefault(); + selectTab(tab.tabEl); + }); + } + + const resetAllButton = getRequiredElement('experiment-reset-all'); + resetAllButton.onclick = () => { + resetAllFlags(); + lastChanged = resetAllButton; + }; + registerFocusEvents(resetAllButton); + + // <if expr="is_chromeos"> + const crosUrlFlagsRedirectButton = $('os-link-href'); + if (crosUrlFlagsRedirectButton) { + crosUrlFlagsRedirectButton.onclick = + FlagsBrowserProxyImpl.getInstance().crosUrlFlagsRedirect; + } + // </if> + + highlightReferencedFlag(); +} + +/** + * Add events to an element in order to keep track of the last focused element. + * Focus restart button if a previous focus target has been set and tab key + * pressed. + */ +function registerFocusEvents(el: HTMLElement) { + el.addEventListener('keydown', function(e) { + if (lastChanged && e.key === 'Tab' && !e.shiftKey) { + e.preventDefault(); + // <if expr="not is_ios"> + lastFocused = lastChanged; + restartButton.focus(); + // </if> + } + }); + el.addEventListener('blur', function() { + lastChanged = null; + }); +} + +/** + * Highlight an element associated with the page's location's hash. We need to + * fake fragment navigation with '.scrollIntoView()', since the fragment IDs + * don't actually exist until after the template code runs; normal navigation + * therefore doesn't work. + */ +function highlightReferencedFlag() { + if (window.location.hash) { + const experiment = document.body.querySelector(window.location.hash); + if (!experiment) { + return; + } + + if (!experiment.classList.contains('referenced')) { + // Unhighlight whatever's highlighted. + const previous = document.body.querySelector('.referenced'); + if (previous) { + previous.classList.remove('referenced'); + } + // Highlight the referenced element. + experiment.classList.add('referenced'); + + // <if expr="not is_ios"> + // Switch to unavailable tab if the flag is in this section. + if (getRequiredElement('tab-content-unavailable').contains(experiment)) { + selectTab(getRequiredElement('tab-unavailable')); + } + // </if> + experiment.scrollIntoView(); + } + } +} + +/** + * Gets details and configuration about the available features. The + * |returnExperimentalFeatures()| will be called with reply. + */ +function requestExperimentalFeaturesData() { + FlagsBrowserProxyImpl.getInstance().requestExperimentalFeatures().then( + returnExperimentalFeatures); +} + +/** + * Cause a text string to be announced by screen readers + * @param text The text that should be announced. + */ +function announceStatus(text: string) { + getRequiredElement('screen-reader-status-message').textContent = ''; + setTimeout(function() { + getRequiredElement('screen-reader-status-message').textContent = text; + }, 100); +} + +/** Reset all flags to their default values and refresh the UI. */ +function resetAllFlags() { + FlagsBrowserProxyImpl.getInstance().resetAllFlags(); + FlagSearch.getInstance().clearSearch(); + announceStatus(loadTimeData.getString('reset-acknowledged')); + showRestartToast(true); + requestExperimentalFeaturesData(); +} + +function renderExperiments( + features: Feature[], container: HTMLElement, unsupported = false) { + const fragment = document.createDocumentFragment(); + for (const feature of features) { + const experiment = document.createElement('flags-experiment'); + + experiment.toggleAttribute('unsupported', unsupported); + experiment.data = feature; + experiment.id = feature.internal_name; + + const select = experiment.getSelect(); + if (select) { + experiment.addEventListener('select-change', () => { + showRestartToast(true); + lastChanged = select; + return false; + }); + registerFocusEvents(select); + } + + const textarea = experiment.getTextarea(); + if (textarea) { + experiment.addEventListener('textarea-change', () => { + showRestartToast(true); + return false; + }); + } + const textbox = experiment.getTextbox(); + if (textbox) { + experiment.addEventListener('input-change', () => { + showRestartToast(true); + return false; + }); + } + fragment.appendChild(experiment); + } + container.replaceChildren(fragment); +} + +/** + * Show the restart toast. + * @param show Setting to toggle showing / hiding the toast. + */ +function showRestartToast(show: boolean) { + getRequiredElement('needs-restart').classList.toggle('show', show); + // There is no restart button on iOS. + // <if expr="not is_ios"> + restartButton.setAttribute('tabindex', show ? '9' : '-1'); + // </if> + if (show) { + getRequiredElement('needs-restart').setAttribute('role', 'alert'); + } +} + +/** + * Called by the WebUI to re-populate the page with data representing the + * current state of all experimental features. + */ +function returnExperimentalFeatures( + experimentalFeaturesData: ExperimentalFeaturesData) { + const bodyContainer = getRequiredElement('body-container'); + render(experimentalFeaturesData); + + if (experimentalFeaturesData.showBetaChannelPromotion) { + getRequiredElement('channel-promo-beta').hidden = false; + } else if (experimentalFeaturesData.showDevChannelPromotion) { + getRequiredElement('channel-promo-dev').hidden = false; + } + + getRequiredElement('promos').hidden = + !experimentalFeaturesData.showBetaChannelPromotion && + !experimentalFeaturesData.showDevChannelPromotion; + + bodyContainer.style.visibility = 'visible'; + + FlagSearch.getInstance().init(); + + const ownerWarningDiv = $('owner-warning'); + if (ownerWarningDiv) { + ownerWarningDiv.hidden = !experimentalFeaturesData.showOwnerWarning; + } + + const systemFlagsLinkDiv = $('os-link-container'); + if (systemFlagsLinkDiv && !experimentalFeaturesData.showSystemFlagsLink) { + systemFlagsLinkDiv.style.display = 'none'; + } + + experimentalFeaturesResolver.resolve(); +} + +// Delay in ms following a keypress, before a search is made. +const SEARCH_DEBOUNCE_TIME_MS: number = 150; + +/** + * Handles in page searching. Matches against the experiment flag name. + */ +class FlagSearch { + private searchIntervalId_: number|null = null; + + private searchBox_: HTMLInputElement; + private noMatchMsg_: NodeListOf<HTMLElement>; + + initialized: boolean = false; + + constructor() { + this.searchBox_ = document.body.querySelector<HTMLInputElement>('#search')!; + this.noMatchMsg_ = document.body.querySelectorAll('.tab-content .no-match'); + } + + /** + * Initialises the in page search. Adding searchbox listeners and + * collates the text elements used for string matching. + */ + init() { + if (!this.initialized) { + this.searchBox_.addEventListener('input', this.debounceSearch.bind(this)); + + document.body.querySelector('.clear-search')!.addEventListener( + 'click', this.clearSearch.bind(this)); + + window.addEventListener('keyup', e => { + // Check for an active textarea inside a <flags-experiment>. + if (getDeepActiveElement()!.nodeName === 'TEXTAREA') { + return; + } + switch (e.key) { + case '/': + this.searchBox_.focus(); + break; + case 'Escape': + case 'Enter': + this.searchBox_.blur(); + break; + } + }); + this.searchBox_.focus(); + this.initialized = true; + } + } + + /** + * Clears a search showing all experiments. + */ + clearSearch() { + this.searchBox_.value = ''; + this.doSearch(); + } + + /** + * Goes through all experiment text and highlights the relevant matches. + * Only the first instance of a match in each experiment text block is + * highlighted. This prevents the sea of yellow that happens using the global + * find in page search. + * @param searchContent Object containing the experiment text elements to + * search against. + * @return The number of matches found. + */ + highlightAllMatches( + experiments: NodeListOf<FlagsExperimentElement>, + searchTerm: string): number { + let matches = 0; + for (const experiment of experiments) { + const hasMatch = experiment.match(searchTerm); + matches += hasMatch ? 1 : 0; + experiment.classList.toggle('hidden', !hasMatch); + } + return matches; + } + + /** + * Performs a search against the experiment title, description, permalink. + */ + doSearch() { + const searchTerm = this.searchBox_.value.trim().toLowerCase(); + + if (searchTerm || searchTerm === '') { + document.body.classList.toggle('searching', Boolean(searchTerm)); + + // Available experiments + const availableExperiments = + document.body.querySelectorAll<FlagsExperimentElement>( + '#tab-content-available flags-experiment'); + this.noMatchMsg_[0]!.classList.toggle( + 'hidden', + this.highlightAllMatches(availableExperiments, searchTerm) > 0); + + // <if expr="not is_ios"> + // Unavailable experiments, which are undefined on iOS. + const unavailableExperiments = + document.body.querySelectorAll<FlagsExperimentElement>( + '#tab-content-unavailable flags-experiment'); + this.noMatchMsg_[1]!.classList.toggle( + 'hidden', + this.highlightAllMatches(unavailableExperiments, searchTerm) > 0); + // </if> + this.announceSearchResults(); + } + + this.searchIntervalId_ = null; + } + + announceSearchResults() { + const searchTerm = this.searchBox_.value.trim().toLowerCase(); + if (!searchTerm) { + return; + } + + const selectedTab = + tabs.find(tab => tab.panelEl.classList.contains('selected'))!; + const selectedTabId = selectedTab.panelEl.id; + const queryString = `#${selectedTabId} flags-experiment:not(.hidden)`; + const total = document.body.querySelectorAll(queryString).length; + if (total) { + announceStatus( + total === 1 ? + loadTimeData.getStringF('searchResultsSingular', searchTerm) : + loadTimeData.getStringF( + 'searchResultsPlural', total, searchTerm)); + } + } + + /** + * Debounces the search to improve performance and prevent too many searches + * from being initiated. + */ + debounceSearch() { + if (this.searchIntervalId_) { + clearTimeout(this.searchIntervalId_); + } + this.searchIntervalId_ = + setTimeout(this.doSearch.bind(this), SEARCH_DEBOUNCE_TIME_MS); + } + + /** Get the singleton instance of FlagSearch. */ + static getInstance(): FlagSearch { + return instance || (instance = new FlagSearch()); + } +} + +let instance: FlagSearch|null = null; + +// <if expr="not is_ios"> +/** + * Allows the restart button to jump back to the previously focused experiment + * in the list instead of going to the top of the page. + */ +function setupRestartButton() { + restartButton.addEventListener('keydown', function(e) { + if (e.shiftKey && e.key === 'Tab' && lastFocused) { + e.preventDefault(); + lastFocused.focus(); + } + }); + restartButton.addEventListener('blur', () => { + lastFocused = null; + }); +} +// </if> + +document.addEventListener('DOMContentLoaded', function() { + // Get and display the data upon loading. + requestExperimentalFeaturesData(); + // There is no restart button on iOS. + // <if expr="not is_ios"> + setupRestartButton(); + // </if> + FocusOutlineManager.forDocument(document); +}); + +// Update the highlighted flag when the hash changes. +window.addEventListener('hashchange', highlightReferencedFlag);
diff --git a/components/global_media_controls/public/views/media_notification_view_ash_impl.cc b/components/global_media_controls/public/views/media_notification_view_ash_impl.cc index eb6cccb7..ba96a33 100644 --- a/components/global_media_controls/public/views/media_notification_view_ash_impl.cc +++ b/components/global_media_controls/public/views/media_notification_view_ash_impl.cc
@@ -66,6 +66,7 @@ class MediaButton : public views::ImageButton { public: + METADATA_HEADER(MediaButton); MediaButton(PressedCallback callback, int button_id, const gfx::VectorIcon& vector_icon, @@ -117,6 +118,9 @@ const ui::ColorId foreground_disabled_color_id_; }; +BEGIN_METADATA(MediaButton, views::ImageButton) +END_METADATA + // If the image does not fit the square view, scale the image to fill the view // even if part of the image is cropped. gfx::Size ScaleImageSizeToFitView(const gfx::Size& image_size,
diff --git a/components/live_caption/views/caption_bubble.cc b/components/live_caption/views/caption_bubble.cc index ca24c408..6018155d 100644 --- a/components/live_caption/views/caption_bubble.cc +++ b/components/live_caption/views/caption_bubble.cc
@@ -223,6 +223,7 @@ #if BUILDFLAG(IS_WIN) class MediaFoundationRendererErrorMessageView : public views::StyledLabel { public: + METADATA_HEADER(MediaFoundationRendererErrorMessageView); explicit MediaFoundationRendererErrorMessageView( CaptionBubble* caption_bubble) : caption_bubble_(caption_bubble) {} @@ -242,6 +243,10 @@ private: const raw_ptr<CaptionBubble> caption_bubble_; // Not owned. }; + +BEGIN_METADATA(MediaFoundationRendererErrorMessageView, views::StyledLabel) +END_METADATA + #endif // CaptionBubble implementation of BubbleFrameView. This class takes care
diff --git a/components/media_message_center/media_notification_view_modern_impl.cc b/components/media_message_center/media_notification_view_modern_impl.cc index 39b8985..e633c8a 100644 --- a/components/media_message_center/media_notification_view_modern_impl.cc +++ b/components/media_message_center/media_notification_view_modern_impl.cc
@@ -89,6 +89,7 @@ class MediaButton : public views::ImageButton { public: + METADATA_HEADER(MediaButton); MediaButton(PressedCallback callback, int icon_size, gfx::Size button_size) : ImageButton(callback), icon_size_(icon_size) { SetHasInkDropActionOnClick(true); @@ -133,6 +134,9 @@ int icon_size_; }; +BEGIN_METADATA(MediaButton, views::ImageButton) +END_METADATA + } // anonymous namespace // static
diff --git a/components/metrics/file_metrics_provider.cc b/components/metrics/file_metrics_provider.cc index 7cb560e..90cebfd 100644 --- a/components/metrics/file_metrics_provider.cc +++ b/components/metrics/file_metrics_provider.cc
@@ -546,6 +546,12 @@ // Create an allocator for the mapped file. Ownership passes to the allocator. source->allocator = std::make_unique<base::PersistentHistogramAllocator>( std::move(memory_allocator)); + // Pass a custom RangesManager so that we do not register the BucketRanges + // with the global StatisticsRecorder when creating histogram objects using + // the allocator's underlying data. Otherwise, it could add unnecessary + // contention, and possibly a low amount of extra memory that will never be + // released. + source->allocator->SetRangesManager(new base::RangesManager()); // Check that an "independent" file has the necessary information present. if (source->association == ASSOCIATE_INTERNAL_PROFILE && @@ -696,10 +702,6 @@ if (PersistentSystemProfile::GetSystemProfile( *source->allocator->memory_allocator(), system_profile_proto)) { - // Pass a custom RangesManager so that we do not register the BucketRanges - // with the global statistics recorder. Otherwise, it could add unnecessary - // contention, and a low amount of extra memory that will never be released. - source->allocator->SetRangesManager(new base::RangesManager()); system_profile_proto->mutable_stability()->set_from_previous_run(true); RecordHistogramSnapshotsFromSource( snapshot_manager, source,
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn index 4de5742..2eac5b3 100644 --- a/components/password_manager/core/browser/BUILD.gn +++ b/components/password_manager/core/browser/BUILD.gn
@@ -141,8 +141,6 @@ "password_manager_constants.cc", "password_manager_constants.h", "password_manager_driver.h", - "password_manager_features_util.h", - "password_manager_features_util_common.cc", "password_manager_interface.h", "password_manager_metrics_recorder.cc", "password_manager_metrics_recorder.h", @@ -243,6 +241,7 @@ ":sql_builder", "//base", "//components/password_manager/core/browser/affiliation", + "//components/password_manager/core/browser/features:utils", "//components/password_manager/core/browser/well_known_change_password", "//components/safe_browsing:buildflags", "//components/sync", @@ -306,13 +305,6 @@ "//url", ] - if (!is_android && !is_ios) { - sources += [ "password_manager_features_util_desktop.cc" ] - deps += [ "//components/webauthn/core/browser" ] - } else { - sources += [ "password_manager_features_util_mobile.cc" ] - } - if (is_android) { sources += [ "android_backend_error.cc", @@ -338,6 +330,10 @@ ] } + if (!is_android && !is_ios) { + deps += [ "//components/webauthn/core/browser" ] + } + if (use_blink) { sources += [ "http_credentials_cleaner.cc", @@ -572,7 +568,6 @@ "password_hash_data_unittest.cc", "password_list_sorter_unittest.cc", "password_manager_client_helper_unittest.cc", - "password_manager_features_util_unittest.cc", "password_manager_metrics_recorder_unittest.cc", "password_manager_metrics_util_unittest.cc", "password_manager_unittest.cc", @@ -650,6 +645,7 @@ "//components/password_manager/core/browser:affiliation_proto", "//components/password_manager/core/browser/affiliation:test_support", "//components/password_manager/core/browser/features:password_features", + "//components/password_manager/core/browser/features:utils", "//components/password_manager/core/browser/form_parsing:form_parsing", "//components/password_manager/core/browser/form_parsing:unit_tests", "//components/password_manager/core/browser/form_parsing/fuzzer:unit_tests",
diff --git a/components/password_manager/core/browser/features/BUILD.gn b/components/password_manager/core/browser/features/BUILD.gn index 73fd69e..1f0bc8f 100644 --- a/components/password_manager/core/browser/features/BUILD.gn +++ b/components/password_manager/core/browser/features/BUILD.gn
@@ -9,3 +9,40 @@ ] deps = [ "//base" ] } + +source_set("utils") { + sources = [ + "password_manager_features_util.h", + "password_manager_features_util_common.cc", + ] + + deps = [ + ":password_features", + "//components/password_manager/core/browser:password_form", + "//components/password_manager/core/common", + "//components/prefs", + "//components/sync/service", + ] + + if (!is_android && !is_ios) { + sources += [ "password_manager_features_util_desktop.cc" ] + } else { + sources += [ "password_manager_features_util_mobile.cc" ] + } +} + +source_set("unit_tests") { + testonly = true + sources = [ "password_manager_features_util_unittest.cc" ] + deps = [ + ":password_features", + ":utils", + "//base/test:test_support", + "//components/password_manager/core/common", + "//components/prefs", + "//components/prefs:test_support", + "//components/signin/public/identity_manager", + "//components/sync:test_support", + "//testing/gtest", + ] +}
diff --git a/components/password_manager/core/browser/password_manager_features_util.h b/components/password_manager/core/browser/features/password_manager_features_util.h similarity index 79% rename from components/password_manager/core/browser/password_manager_features_util.h rename to components/password_manager/core/browser/features/password_manager_features_util.h index 37abae7..6ce2210 100644 --- a/components/password_manager/core/browser/password_manager_features_util.h +++ b/components/password_manager/core/browser/features/password_manager_features_util.h
@@ -2,12 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_MANAGER_FEATURES_UTIL_H_ -#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_MANAGER_FEATURES_UTIL_H_ +#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FEATURES_PASSWORD_MANAGER_FEATURES_UTIL_H_ +#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FEATURES_PASSWORD_MANAGER_FEATURES_UTIL_H_ #include "build/build_config.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_metrics_util.h" namespace syncer { class SyncService; @@ -17,6 +16,46 @@ namespace password_manager::features_util { +// Represents the state of the user wrt. sign-in and account-scoped storage. +// Used for metrics. Always keep this enum in sync with the corresponding +// histogram_suffixes in histograms.xml! +enum class PasswordAccountStorageUserState { + // Signed-out user (and no account storage opt-in exists). + kSignedOutUser = 0, + // Signed-out user, but an account storage opt-in exists. + kSignedOutAccountStoreUser = 1, + // Signed-in non-syncing user, not opted in to the account storage (but may + // save passwords to the account storage by default). + kSignedInUser = 2, + // Signed-in non-syncing user, not opted in to the account storage, and has + // explicitly chosen to save passwords only on the device. + kSignedInUserSavingLocally = 3, + // Signed-in non-syncing user, opted in to the account storage, and saving + // passwords to the account storage. + kSignedInAccountStoreUser = 4, + // Signed-in non-syncing user and opted in to the account storage, but has + // chosen to save passwords only on the device. + kSignedInAccountStoreUserSavingLocally = 5, + // Syncing user. + kSyncUser = 6, +}; + +// The usage level of the account-scoped password storage. This is essentially +// a less-detailed version of PasswordAccountStorageUserState, for metrics that +// don't need the fully-detailed breakdown. +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +enum class PasswordAccountStorageUsageLevel { + // The user is not using the account-scoped password storage. Either they're + // not signed in, or they haven't opted in to the account storage. + kNotUsingAccountStorage = 0, + // The user is signed in (but not syncing) and has opted in to the account + // storage. + kUsingAccountStorage = 1, + // The user has enabled Sync. + kSyncing = 2, +}; + // Note on password-account-storage methods on desktop vs mobile: // On desktop, there is an explicit per-user opt-in, and various associated // settings (e.g. which store is the default). On mobile, there is no explicit @@ -102,15 +141,14 @@ const syncer::SyncService* sync_service); // See definition of PasswordAccountStorageUserState. -metrics_util::PasswordAccountStorageUserState -ComputePasswordAccountStorageUserState(const PrefService* pref_service, - const syncer::SyncService* sync_service); +PasswordAccountStorageUserState ComputePasswordAccountStorageUserState( + const PrefService* pref_service, + const syncer::SyncService* sync_service); // Returns the "usage level" of the account-scoped password storage. See // definition of PasswordAccountStorageUsageLevel. // See PasswordFeatureManager::ComputePasswordAccountStorageUsageLevel. -password_manager::metrics_util::PasswordAccountStorageUsageLevel -ComputePasswordAccountStorageUsageLevel( +PasswordAccountStorageUsageLevel ComputePasswordAccountStorageUsageLevel( const PrefService* pref_service, const syncer::SyncService* sync_service); @@ -179,4 +217,4 @@ } // namespace password_manager::features_util -#endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_MANAGER_FEATURES_UTIL_H_ +#endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FEATURES_PASSWORD_MANAGER_FEATURES_UTIL_H_
diff --git a/components/password_manager/core/browser/password_manager_features_util_common.cc b/components/password_manager/core/browser/features/password_manager_features_util_common.cc similarity index 96% rename from components/password_manager/core/browser/password_manager_features_util_common.cc rename to components/password_manager/core/browser/features/password_manager_features_util_common.cc index 3db1bde..26372cc 100644 --- a/components/password_manager/core/browser/password_manager_features_util_common.cc +++ b/components/password_manager/core/browser/features/password_manager_features_util_common.cc
@@ -2,16 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "build/build_config.h" #include "components/password_manager/core/browser/features/password_features.h" #include "components/sync/service/sync_service.h" #include "components/sync/service/sync_user_settings.h" -using password_manager::metrics_util::PasswordAccountStorageUsageLevel; -using password_manager::metrics_util::PasswordAccountStorageUserState; - namespace password_manager::features_util { namespace internal {
diff --git a/components/password_manager/core/browser/password_manager_features_util_desktop.cc b/components/password_manager/core/browser/features/password_manager_features_util_desktop.cc similarity index 98% rename from components/password_manager/core/browser/password_manager_features_util_desktop.cc rename to components/password_manager/core/browser/features/password_manager_features_util_desktop.cc index 0e22a08..9b80a60 100644 --- a/components/password_manager/core/browser/password_manager_features_util_desktop.cc +++ b/components/password_manager/core/browser/features/password_manager_features_util_desktop.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include <algorithm> @@ -19,8 +19,6 @@ #include "components/sync/service/sync_service.h" #include "google_apis/gaia/gaia_auth_util.h" -using password_manager::metrics_util::PasswordAccountStorageUsageLevel; -using password_manager::metrics_util::PasswordAccountStorageUserState; using signin::GaiaIdHash; namespace password_manager::features_util {
diff --git a/components/password_manager/core/browser/password_manager_features_util_mobile.cc b/components/password_manager/core/browser/features/password_manager_features_util_mobile.cc similarity index 96% rename from components/password_manager/core/browser/password_manager_features_util_mobile.cc rename to components/password_manager/core/browser/features/password_manager_features_util_mobile.cc index 0954512..1f3b2aed 100644 --- a/components/password_manager/core/browser/password_manager_features_util_mobile.cc +++ b/components/password_manager/core/browser/features/password_manager_features_util_mobile.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include <algorithm>
diff --git a/components/password_manager/core/browser/password_manager_features_util_unittest.cc b/components/password_manager/core/browser/features/password_manager_features_util_unittest.cc similarity index 99% rename from components/password_manager/core/browser/password_manager_features_util_unittest.cc rename to components/password_manager/core/browser/features/password_manager_features_util_unittest.cc index a3427f5..9ad2d15 100644 --- a/components/password_manager/core/browser/password_manager_features_util_unittest.cc +++ b/components/password_manager/core/browser/features/password_manager_features_util_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "base/feature_list.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/components/password_manager/core/browser/mock_password_feature_manager.h b/components/password_manager/core/browser/mock_password_feature_manager.h index 011cf8d..38d76f6 100644 --- a/components/password_manager/core/browser/mock_password_feature_manager.h +++ b/components/password_manager/core/browser/mock_password_feature_manager.h
@@ -30,7 +30,7 @@ (override, const)); MOCK_METHOD(bool, IsDefaultPasswordStoreSet, (), (override, const)); - MOCK_METHOD(metrics_util::PasswordAccountStorageUsageLevel, + MOCK_METHOD(features_util::PasswordAccountStorageUsageLevel, ComputePasswordAccountStorageUsageLevel, (), (override, const));
diff --git a/components/password_manager/core/browser/password_feature_manager.h b/components/password_manager/core/browser/password_feature_manager.h index 2e96d1e..407f71c 100644 --- a/components/password_manager/core/browser/password_feature_manager.h +++ b/components/password_manager/core/browser/password_feature_manager.h
@@ -77,7 +77,7 @@ // Returns the "usage level" of the account-scoped password storage. See // definition of PasswordAccountStorageUsageLevel. - virtual metrics_util::PasswordAccountStorageUsageLevel + virtual features_util::PasswordAccountStorageUsageLevel ComputePasswordAccountStorageUsageLevel() const = 0; #if !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID)
diff --git a/components/password_manager/core/browser/password_feature_manager_impl.cc b/components/password_manager/core/browser/password_feature_manager_impl.cc index 31cc184..3c03393 100644 --- a/components/password_manager/core/browser/password_feature_manager_impl.cc +++ b/components/password_manager/core/browser/password_feature_manager_impl.cc
@@ -7,7 +7,7 @@ #include "base/feature_list.h" #include "build/build_config.h" #include "components/password_manager/core/browser/features/password_features.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_util.h" #include "components/password_manager/core/common/password_manager_pref_names.h" #include "components/prefs/pref_service.h" @@ -87,7 +87,7 @@ return features_util::IsDefaultPasswordStoreSet(pref_service_, sync_service_); } -metrics_util::PasswordAccountStorageUsageLevel +features_util::PasswordAccountStorageUsageLevel PasswordFeatureManagerImpl::ComputePasswordAccountStorageUsageLevel() const { return features_util::ComputePasswordAccountStorageUsageLevel(pref_service_, sync_service_);
diff --git a/components/password_manager/core/browser/password_feature_manager_impl.h b/components/password_manager/core/browser/password_feature_manager_impl.h index 80f10fb..d55cef0 100644 --- a/components/password_manager/core/browser/password_feature_manager_impl.h +++ b/components/password_manager/core/browser/password_feature_manager_impl.h
@@ -42,7 +42,7 @@ bool ShouldShowAccountStorageBubbleUi() const override; PasswordForm::Store GetDefaultPasswordStore() const override; bool IsDefaultPasswordStoreSet() const override; - metrics_util::PasswordAccountStorageUsageLevel + features_util::PasswordAccountStorageUsageLevel ComputePasswordAccountStorageUsageLevel() const override; #if !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID)
diff --git a/components/password_manager/core/browser/password_form_metrics_recorder.cc b/components/password_manager/core/browser/password_form_metrics_recorder.cc index d319f428..bf5ff1ca 100644 --- a/components/password_manager/core/browser/password_form_metrics_recorder.cc +++ b/components/password_manager/core/browser/password_form_metrics_recorder.cc
@@ -535,7 +535,7 @@ saved_passwords, bool is_blocklisted, const std::vector<InteractionsStats>& interactions_stats, - metrics_util::PasswordAccountStorageUsageLevel + features_util::PasswordAccountStorageUsageLevel account_storage_usage_level) { CalculateJsOnlyInput(submitted_form); if (is_main_frame_secure_ && submitted_form.action.is_valid() &&
diff --git a/components/password_manager/core/browser/password_form_metrics_recorder.h b/components/password_manager/core/browser/password_form_metrics_recorder.h index f37211a..a510928f 100644 --- a/components/password_manager/core/browser/password_form_metrics_recorder.h +++ b/components/password_manager/core/browser/password_form_metrics_recorder.h
@@ -397,7 +397,7 @@ saved_passwords, bool is_blocklisted, const std::vector<InteractionsStats>& interactions_stats, - metrics_util::PasswordAccountStorageUsageLevel + features_util::PasswordAccountStorageUsageLevel account_storage_usage_level); // Calculates whether all field values in |submitted_form| came from @@ -505,7 +505,7 @@ absl::optional<FillingAssistance> filling_assistance_; absl::optional<FillingSource> filling_source_; - absl::optional<metrics_util::PasswordAccountStorageUsageLevel> + absl::optional<features_util::PasswordAccountStorageUsageLevel> account_storage_usage_level_; absl::optional<metrics_util::SubmittedFormFrame> submitted_form_frame_;
diff --git a/components/password_manager/core/browser/password_form_metrics_recorder_unittest.cc b/components/password_manager/core/browser/password_form_metrics_recorder_unittest.cc index 754253b..02e63e2 100644 --- a/components/password_manager/core/browser/password_form_metrics_recorder_unittest.cc +++ b/components/password_manager/core/browser/password_form_metrics_recorder_unittest.cc
@@ -40,7 +40,7 @@ constexpr ukm::SourceId kTestSourceId = 0x1234; -using metrics_util::PasswordAccountStorageUsageLevel; +using features_util::PasswordAccountStorageUsageLevel; using UkmEntry = ukm::builders::PasswordForm; // Create a UkmEntryBuilder with kTestSourceId.
diff --git a/components/password_manager/core/browser/password_list_sorter.cc b/components/password_manager/core/browser/password_list_sorter.cc index e15e5805..ac930e2 100644 --- a/components/password_manager/core/browser/password_list_sorter.cc +++ b/components/password_manager/core/browser/password_list_sorter.cc
@@ -6,119 +6,12 @@ #include <algorithm> -#include "base/strings/string_number_conversions.h" -#include "base/strings/string_split.h" -#include "base/strings/utf_string_conversions.h" -#include "components/password_manager/core/browser/affiliation/affiliation_utils.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_ui_utils.h" #include "components/password_manager/core/browser/ui/credential_ui_entry.h" -#include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "url/gurl.h" namespace password_manager { -namespace { - -constexpr char kSortKeyPartsSeparator = ' '; - -// The character that is added to a sort key if there is no federation. -// Note: to separate the entries w/ federation and the entries w/o federation, -// this character should be alphabetically smaller than real federations. -constexpr char kSortKeyNoFederationSymbol = '-'; - -// Symbols to differentiate between passwords and passkeys. -constexpr char kSortKeyPasswordSymbol = 'w'; - -// TODO(crbug.com/1479425): Remove this method. -std::string SplitByDotAndReverse(base::StringPiece host) { - std::vector<base::StringPiece> parts = base::SplitStringPiece( - host, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); - std::reverse(parts.begin(), parts.end()); - return base::JoinString(parts, "."); -} - -} // namespace - -std::string CreateSortKey(const CredentialUIEntry& credential) { - std::string shown_origin = GetShownOrigin(credential); - - const auto facet_uri = - FacetURI::FromPotentiallyInvalidSpec(credential.GetFirstSignonRealm()); - const bool is_android_uri = facet_uri.IsValidAndroidFacetURI(); - - if (is_android_uri) { - // In case of Android credentials |GetShownOriginAndLinkURl| might return - // the app display name, e.g. the Play Store name of the given application. - // This might or might not correspond to the eTLD+1, which is why - // |shown_origin| is set to the reversed android package name in this case, - // e.g. com.example.android => android.example.com. - shown_origin = facet_uri.GetAndroidPackageDisplayName(); - } - - std::string site_name = - net::registry_controlled_domains::GetDomainAndRegistry( - shown_origin, - net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); - if (site_name.empty()) // e.g. localhost. - site_name = shown_origin; - - std::string key = site_name + kSortKeyPartsSeparator; - - // Since multiple distinct credentials might have the same site name, more - // information is added. For Android credentials this includes the full - // canonical spec which is guaranteed to be unique for a given App. - key += is_android_uri ? facet_uri.canonical_spec() - : SplitByDotAndReverse(shown_origin); - - if (!credential.blocked_by_user) { - key += kSortKeyPartsSeparator + base::UTF16ToUTF8(credential.username) + - kSortKeyPartsSeparator + base::UTF16ToUTF8(credential.password); - - key += kSortKeyPartsSeparator; - if (!credential.federation_origin.opaque()) - key += credential.federation_origin.host(); - else - key += kSortKeyNoFederationSymbol; - } - - // To separate HTTP/HTTPS credentials, add the scheme to the key. - key += kSortKeyPartsSeparator + GetShownUrl(credential).scheme(); - - // Separate passwords from passkeys. - key += kSortKeyPartsSeparator; - if (credential.passkey_credential_id.empty()) { - key += kSortKeyPasswordSymbol; - } else { - key += base::UTF16ToUTF8(credential.user_display_name) + - kSortKeyPartsSeparator + - base::HexEncode(credential.passkey_credential_id); - } - return key; -} - -std::string CreateUsernamePasswordSortKey(const CredentialUIEntry& credential) { - std::string key; - // The origin isn't taken into account for normal credentials since we want to - // group them together. - if (!credential.blocked_by_user) { - key += base::UTF16ToUTF8(credential.username) + kSortKeyPartsSeparator + - base::UTF16ToUTF8(credential.password); - - key += kSortKeyPartsSeparator; - if (!credential.federation_origin.opaque()) { - key += credential.federation_origin.host(); - } else { - key += kSortKeyNoFederationSymbol; - } - } else { - // Key for blocked by user credential since it does not store username and - // password. These credentials are not grouped together. - key = GetShownOrigin(credential); - } - return key; -} - void SortEntriesAndHideDuplicates( std::vector<std::unique_ptr<PasswordForm>>* list, DuplicatesMap* duplicates) {
diff --git a/components/password_manager/core/browser/password_list_sorter.h b/components/password_manager/core/browser/password_list_sorter.h index a07b1d7a..6aa26060 100644 --- a/components/password_manager/core/browser/password_list_sorter.h +++ b/components/password_manager/core/browser/password_list_sorter.h
@@ -15,26 +15,10 @@ namespace password_manager { struct PasswordForm; -struct CredentialUIEntry; // Multimap from sort key to password forms. using DuplicatesMap = std::multimap<std::string, std::unique_ptr<PasswordForm>>; -// Creates key for sorting password or password exception entries. The key is -// eTLD+1 followed by the reversed list of domains (e.g. -// secure.accounts.example.com => example.com.com.example.accounts.secure) and -// the scheme. If |form| is not blocklisted, username, password and federation -// are appended to the key. If not, no further information is added. For Android -// credentials the canocial spec is included. -// If |ignore_store| is true, forms differing only by the originating password -// store will map to the same key. -// TODO(vsemeniuk): find a better name for this function. -std::string CreateSortKey(const CredentialUIEntry& credential); - -// Creates a key to map passwords within an affiliated group with the same -// username and password. -std::string CreateUsernamePasswordSortKey(const CredentialUIEntry& credential); - // Sort entries of |list| based on sort key. The key is the concatenation of // origin, entry type (non-Android credential, Android w/ affiliated web realm // or Android w/o affiliated web realm). If a form in |list| is not blocklisted,
diff --git a/components/password_manager/core/browser/password_list_sorter_unittest.cc b/components/password_manager/core/browser/password_list_sorter_unittest.cc index 4db5e86..8c61598 100644 --- a/components/password_manager/core/browser/password_list_sorter_unittest.cc +++ b/components/password_manager/core/browser/password_list_sorter_unittest.cc
@@ -191,85 +191,4 @@ SortAndCheckPositions(test_cases); } -TEST(PasswordListSorterTest, EntriesDifferingByStoreShouldMapToSameKey) { - PasswordForm account_form; - account_form.signon_realm = "https://g.com/"; - account_form.url = GURL(account_form.signon_realm); - account_form.blocked_by_user = false; - account_form.in_store = PasswordForm::Store::kAccountStore; - - PasswordForm profile_form(account_form); - profile_form.in_store = PasswordForm::Store::kProfileStore; - - EXPECT_EQ(CreateSortKey(CredentialUIEntry(account_form)), - CreateSortKey(CredentialUIEntry(profile_form))); -} - -TEST(PasswordListSorterTest, CreateUsernamePasswordSortKey) { - PasswordForm form; - form.signon_realm = "https://g.com/"; - form.url = GURL(form.signon_realm); - form.blocked_by_user = false; - form.username_value = u"username00"; - form.password_value = u"password01"; - - EXPECT_EQ(CreateUsernamePasswordSortKey(CredentialUIEntry(form)), - "username00 password01 -"); -} - -TEST(PasswordListSorterTest, - CreateUsernamePasswordSortKeyWithFederationOrigin) { - PasswordForm form; - form.signon_realm = "https://g.com/"; - form.url = GURL(form.signon_realm); - form.username_value = u"username00"; - form.password_value = u"password01"; - form.federation_origin = url::Origin::Create(GURL("https://google.com/")); - - EXPECT_EQ(CreateUsernamePasswordSortKey(CredentialUIEntry(form)), - "username00 password01 google.com"); -} - -TEST(PasswordListSorterTest, CreateUsernamePasswordSortKeyBlockedByUser) { - PasswordForm form; - form.signon_realm = "https://g.com/"; - form.url = GURL(form.signon_realm); - form.blocked_by_user = true; - - EXPECT_EQ(CreateUsernamePasswordSortKey(CredentialUIEntry(form)), "g.com"); -} - -TEST(PasswordListSorterTest, PasskeyVsPasswordSortKey) { - PasswordForm form; - form.signon_realm = "https://test.com/"; - form.url = GURL(form.signon_realm); - form.username_value = u"lora"; - CredentialUIEntry password(std::move(form)); - - PasskeyCredential passkey_credential( - PasskeyCredential::Source::kAndroidPhone, - PasskeyCredential::RpId("test.com"), - PasskeyCredential::CredentialId({1, 2, 3, 4}), - PasskeyCredential::UserId(), PasskeyCredential::Username("lora")); - CredentialUIEntry passkey(std::move(passkey_credential)); - - EXPECT_NE(CreateSortKey(password), CreateSortKey(passkey)); -} - -// Tests that two passkeys that are equal in everything but the display name -// have different sort keys. -TEST(PasswordListSorterTest, PasskeyDifferentSortKeyForDifferentDisplayName) { - PasskeyCredential passkey_credential( - PasskeyCredential::Source::kAndroidPhone, - PasskeyCredential::RpId("test.com"), - PasskeyCredential::CredentialId({1, 2, 3, 4}), - PasskeyCredential::UserId(), PasskeyCredential::Username("lora"), - PasskeyCredential::DisplayName("Display Name 1")); - CredentialUIEntry passkey1(std::move(passkey_credential)); - CredentialUIEntry passkey2 = passkey1; - passkey2.user_display_name = u"Display Name 2"; - - EXPECT_NE(CreateSortKey(passkey1), CreateSortKey(passkey2)); -} - } // namespace password_manager
diff --git a/components/password_manager/core/browser/password_manager_metrics_util.cc b/components/password_manager/core/browser/password_manager_metrics_util.cc index 4f70e24..1cbc7b9a 100644 --- a/components/password_manager/core/browser/password_manager_metrics_util.cc +++ b/components/password_manager/core/browser/password_manager_metrics_util.cc
@@ -21,22 +21,29 @@ namespace password_manager::metrics_util { std::string GetPasswordAccountStorageUserStateHistogramSuffix( - PasswordAccountStorageUserState user_state) { + password_manager::features_util::PasswordAccountStorageUserState + user_state) { switch (user_state) { - case PasswordAccountStorageUserState::kSignedOutUser: + case password_manager::features_util::PasswordAccountStorageUserState:: + kSignedOutUser: return "SignedOutUser"; - case PasswordAccountStorageUserState::kSignedOutAccountStoreUser: + case password_manager::features_util::PasswordAccountStorageUserState:: + kSignedOutAccountStoreUser: return "SignedOutAccountStoreUser"; - case PasswordAccountStorageUserState::kSignedInUser: + case password_manager::features_util::PasswordAccountStorageUserState:: + kSignedInUser: return "SignedInUser"; - case PasswordAccountStorageUserState::kSignedInUserSavingLocally: + case password_manager::features_util::PasswordAccountStorageUserState:: + kSignedInUserSavingLocally: return "SignedInUserSavingLocally"; - case PasswordAccountStorageUserState::kSignedInAccountStoreUser: + case password_manager::features_util::PasswordAccountStorageUserState:: + kSignedInAccountStoreUser: return "SignedInAccountStoreUser"; - case PasswordAccountStorageUserState:: + case password_manager::features_util::PasswordAccountStorageUserState:: kSignedInAccountStoreUserSavingLocally: return "SignedInAccountStoreUserSavingLocally"; - case PasswordAccountStorageUserState::kSyncUser: + case password_manager::features_util::PasswordAccountStorageUserState:: + kSyncUser: return "SyncUser"; } NOTREACHED(); @@ -44,13 +51,17 @@ } std::string GetPasswordAccountStorageUsageLevelHistogramSuffix( - PasswordAccountStorageUsageLevel usage_level) { + password_manager::features_util::PasswordAccountStorageUsageLevel + usage_level) { switch (usage_level) { - case PasswordAccountStorageUsageLevel::kNotUsingAccountStorage: + case password_manager::features_util::PasswordAccountStorageUsageLevel:: + kNotUsingAccountStorage: return "NotUsingAccountStorage"; - case PasswordAccountStorageUsageLevel::kUsingAccountStorage: + case password_manager::features_util::PasswordAccountStorageUsageLevel:: + kUsingAccountStorage: return "UsingAccountStorage"; - case PasswordAccountStorageUsageLevel::kSyncing: + case password_manager::features_util::PasswordAccountStorageUsageLevel:: + kSyncing: return "Syncing"; } NOTREACHED(); @@ -100,7 +111,9 @@ void LogSaveUIDismissalReason( UIDismissalReason reason, autofill::mojom::SubmissionIndicatorEvent submission_event, - absl::optional<PasswordAccountStorageUserState> user_state) { + absl::optional< + password_manager::features_util::PasswordAccountStorageUserState> + user_state) { base::UmaHistogramEnumeration("PasswordManager.SaveUIDismissalReason", reason, NUM_UI_RESPONSES); @@ -134,8 +147,10 @@ } } -void LogMoveUIDismissalReason(UIDismissalReason reason, - PasswordAccountStorageUserState user_state) { +void LogMoveUIDismissalReason( + UIDismissalReason reason, + password_manager::features_util::PasswordAccountStorageUserState + user_state) { base::UmaHistogramEnumeration("PasswordManager.MoveUIDismissalReason", reason, NUM_UI_RESPONSES); @@ -277,7 +292,8 @@ void LogNewlySavedPasswordMetrics( bool is_generated_password, bool is_username_empty, - PasswordAccountStorageUsageLevel account_storage_usage_level) { + password_manager::features_util::PasswordAccountStorageUsageLevel + account_storage_usage_level) { base::UmaHistogramBoolean("PasswordManager.NewlySavedPasswordIsGenerated", is_generated_password); std::string suffix = GetPasswordAccountStorageUsageLevelHistogramSuffix(
diff --git a/components/password_manager/core/browser/password_manager_metrics_util.h b/components/password_manager/core/browser/password_manager_metrics_util.h index 26d3596b..e291f62f 100644 --- a/components/password_manager/core/browser/password_manager_metrics_util.h +++ b/components/password_manager/core/browser/password_manager_metrics_util.h
@@ -15,6 +15,7 @@ #include "base/timer/elapsed_timer.h" #include "components/autofill/core/common/mojom/autofill_types.mojom.h" #include "components/autofill/core/common/password_generation_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/common/credential_manager_types.h" #include "services/metrics/public/cpp/ukm_source_id.h" @@ -412,30 +413,6 @@ kSyncing = 2, }; -// Represents the state of the user wrt. sign-in and account-scoped storage. -// Used for metrics. Always keep this enum in sync with the corresponding -// histogram_suffixes in histograms.xml! -enum class PasswordAccountStorageUserState { - // Signed-out user (and no account storage opt-in exists). - kSignedOutUser = 0, - // Signed-out user, but an account storage opt-in exists. - kSignedOutAccountStoreUser = 1, - // Signed-in non-syncing user, not opted in to the account storage (but may - // save passwords to the account storage by default). - kSignedInUser = 2, - // Signed-in non-syncing user, not opted in to the account storage, and has - // explicitly chosen to save passwords only on the device. - kSignedInUserSavingLocally = 3, - // Signed-in non-syncing user, opted in to the account storage, and saving - // passwords to the account storage. - kSignedInAccountStoreUser = 4, - // Signed-in non-syncing user and opted in to the account storage, but has - // chosen to save passwords only on the device. - kSignedInAccountStoreUserSavingLocally = 5, - // Syncing user. - kSyncUser = 6, -}; - // Represents different user interactions related to password check. // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. Always keep this enum in sync with the @@ -532,23 +509,8 @@ }; std::string GetPasswordAccountStorageUserStateHistogramSuffix( - PasswordAccountStorageUserState user_state); - -// The usage level of the account-scoped password storage. This is essentially -// a less-detailed version of PasswordAccountStorageUserState, for metrics that -// don't need the fully-detailed breakdown. -// These values are persisted to logs. Entries should not be renumbered and -// numeric values should never be reused. -enum class PasswordAccountStorageUsageLevel { - // The user is not using the account-scoped password storage. Either they're - // not signed in, or they haven't opted in to the account storage. - kNotUsingAccountStorage = 0, - // The user is signed in (but not syncing) and has opted in to the account - // storage. - kUsingAccountStorage = 1, - // The user has enabled Sync. - kSyncing = 2, -}; + password_manager::features_util::PasswordAccountStorageUserState + user_state); // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. @@ -714,7 +676,8 @@ }; std::string GetPasswordAccountStorageUsageLevelHistogramSuffix( - PasswordAccountStorageUsageLevel usage_level); + password_manager::features_util::PasswordAccountStorageUsageLevel + usage_level); // Records the `type` of a leak dialog shown to the user and the `reason` // why it was dismissed. @@ -766,7 +729,7 @@ void LogSaveUIDismissalReason( UIDismissalReason reason, autofill::mojom::SubmissionIndicatorEvent submission_event, - absl::optional<PasswordAccountStorageUserState> user_state); + absl::optional<features_util::PasswordAccountStorageUserState> user_state); // Log the |reason| a user dismissed the update password bubble. If the // submission is detected on a cleared change password form, dismissal reason is @@ -776,8 +739,9 @@ autofill::mojom::SubmissionIndicatorEvent submission_event); // Log the |reason| a user dismissed the move password bubble. -void LogMoveUIDismissalReason(UIDismissalReason reason, - PasswordAccountStorageUserState user_state); +void LogMoveUIDismissalReason( + UIDismissalReason reason, + features_util::PasswordAccountStorageUserState user_state); // Log the appropriate display disposition. void LogUIDisplayDisposition(UIDisplayDisposition disposition); @@ -856,7 +820,8 @@ void LogNewlySavedPasswordMetrics( bool is_generated_password, bool is_username_empty, - PasswordAccountStorageUsageLevel account_storage_usage_level); + password_manager::features_util::PasswordAccountStorageUsageLevel + account_storage_usage_level); // Log whether the generated password was accepted or rejected for generation of // |type| (automatic or manual).
diff --git a/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc b/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc index e48cc338..4500b81 100644 --- a/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc +++ b/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc
@@ -70,7 +70,7 @@ constexpr bool kIsUsernameEmpty = true; LogNewlySavedPasswordMetrics( /*is_generated_password=*/true, /*is_username_empty=*/true, - PasswordAccountStorageUsageLevel::kNotUsingAccountStorage); + features_util::PasswordAccountStorageUsageLevel::kNotUsingAccountStorage); histogram_tester.ExpectUniqueSample( "PasswordManager.NewlySavedPasswordIsGenerated", kIsGeneratedPassword, 1);
diff --git a/components/password_manager/core/browser/password_manager_util.cc b/components/password_manager/core/browser/password_manager_util.cc index 9380dfa..88fbd053 100644 --- a/components/password_manager/core/browser/password_manager_util.cc +++ b/components/password_manager/core/browser/password_manager_util.cc
@@ -28,6 +28,7 @@ #include "components/password_manager/core/browser/credentials_cleaner.h" #include "components/password_manager/core/browser/credentials_cleaner_runner.h" #include "components/password_manager/core/browser/features/password_features.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/http_credentials_cleaner.h" #include "components/password_manager/core/browser/old_google_credentials_cleaner.h" #include "components/password_manager/core/browser/password_bubble_experiment.h" @@ -37,7 +38,6 @@ #include "components/password_manager/core/browser/password_manager.h" #include "components/password_manager/core/browser/password_manager_client.h" #include "components/password_manager/core/browser/password_manager_driver.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_metrics_util.h" #include "components/password_manager/core/browser/password_store_consumer.h" #include "components/password_manager/core/common/password_manager_features.h"
diff --git a/components/password_manager/core/browser/password_save_manager_impl.cc b/components/password_manager/core/browser/password_save_manager_impl.cc index 3af14cf..42fa835 100644 --- a/components/password_manager/core/browser/password_save_manager_impl.cc +++ b/components/password_manager/core/browser/password_save_manager_impl.cc
@@ -935,7 +935,7 @@ if (account_store_form_saver_ && client_->GetPasswordFeatureManager() ->ComputePasswordAccountStorageUsageLevel() == - metrics_util::PasswordAccountStorageUsageLevel:: + features_util::PasswordAccountStorageUsageLevel:: kUsingAccountStorage) { return true; }
diff --git a/components/password_manager/core/browser/password_save_manager_impl_unittest.cc b/components/password_manager/core/browser/password_save_manager_impl_unittest.cc index 2f69d72..0343d26 100644 --- a/components/password_manager/core/browser/password_save_manager_impl_unittest.cc +++ b/components/password_manager/core/browser/password_save_manager_impl_unittest.cc
@@ -363,11 +363,11 @@ .WillByDefault(Return(is_enabled)); ON_CALL(*client()->GetPasswordFeatureManager(), ComputePasswordAccountStorageUsageLevel) - .WillByDefault( - Return(is_enabled ? metrics_util::PasswordAccountStorageUsageLevel:: - kUsingAccountStorage - : metrics_util::PasswordAccountStorageUsageLevel:: - kNotUsingAccountStorage)); + .WillByDefault(Return( + is_enabled ? features_util::PasswordAccountStorageUsageLevel:: + kUsingAccountStorage + : features_util::PasswordAccountStorageUsageLevel:: + kNotUsingAccountStorage)); } void SetDefaultPasswordStore(const PasswordForm::Store& store) { @@ -2175,7 +2175,7 @@ ON_CALL(*client()->GetPasswordFeatureManager(), ComputePasswordAccountStorageUsageLevel) .WillByDefault( - Return(metrics_util::PasswordAccountStorageUsageLevel::kSyncing)); + Return(features_util::PasswordAccountStorageUsageLevel::kSyncing)); EXPECT_CALL(*mock_profile_form_saver(), Save).Times(1); EXPECT_CALL(*mock_account_form_saver(), Save).Times(0);
diff --git a/components/password_manager/core/browser/password_session_durations_metrics_recorder.cc b/components/password_manager/core/browser/password_session_durations_metrics_recorder.cc index 5a50cd07..aceca5b6 100644 --- a/components/password_manager/core/browser/password_session_durations_metrics_recorder.cc +++ b/components/password_manager/core/browser/password_session_durations_metrics_recorder.cc
@@ -6,13 +6,13 @@ #include "base/metrics/histogram_functions.h" #include "base/time/time.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" namespace password_manager { namespace { -void LogStateDuration(metrics_util::PasswordAccountStorageUserState user_state, +void LogStateDuration(features_util::PasswordAccountStorageUserState user_state, base::TimeDelta session_length) { std::string suffix = metrics_util::GetPasswordAccountStorageUserStateHistogramSuffix( @@ -91,7 +91,7 @@ } void PasswordSessionDurationsMetricsRecorder::CheckForUserStateChange() { - metrics_util::PasswordAccountStorageUserState new_user_state = + features_util::PasswordAccountStorageUserState new_user_state = features_util::ComputePasswordAccountStorageUserState(pref_service_, sync_service_); // If the state is unchanged, nothing to do.
diff --git a/components/password_manager/core/browser/password_session_durations_metrics_recorder.h b/components/password_manager/core/browser/password_session_durations_metrics_recorder.h index 6a63d7e4..96c55fb 100644 --- a/components/password_manager/core/browser/password_session_durations_metrics_recorder.h +++ b/components/password_manager/core/browser/password_session_durations_metrics_recorder.h
@@ -62,7 +62,7 @@ // The current state of the user. Whenever this changes, duration metrics are // recorded. - metrics_util::PasswordAccountStorageUserState user_state_; + features_util::PasswordAccountStorageUserState user_state_; // Tracks the elapsed active session time in the current state. The timer is // null if there's no active session.
diff --git a/components/password_manager/core/browser/password_sync_util.cc b/components/password_manager/core/browser/password_sync_util.cc index 85c2478b..0af49ab 100644 --- a/components/password_manager/core/browser/password_sync_util.cc +++ b/components/password_manager/core/browser/password_sync_util.cc
@@ -6,8 +6,8 @@ #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/common/password_manager_features.h" #include "components/safe_browsing/core/common/safe_browsing_prefs.h" #include "components/signin/public/identity_manager/identity_manager.h"
diff --git a/components/password_manager/core/browser/sharing/password_receiver_service_impl.cc b/components/password_manager/core/browser/sharing/password_receiver_service_impl.cc index 37a295a3..a97c3b2 100644 --- a/components/password_manager/core/browser/sharing/password_receiver_service_impl.cc +++ b/components/password_manager/core/browser/sharing/password_receiver_service_impl.cc
@@ -7,9 +7,10 @@ #include "base/containers/cxx20_erase.h" #include "base/functional/bind.h" #include "base/functional/callback_forward.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_form.h" #include "components/password_manager/core/browser/password_form_digest.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/password_manager_metrics_util.h" #include "components/password_manager/core/browser/password_store_interface.h" #include "components/password_manager/core/browser/sharing/incoming_password_sharing_invitation_sync_bridge.h" #include "components/password_manager/core/browser/sharing/sharing_invitations.h" @@ -137,17 +138,17 @@ // of destruction of sync service after delivering the invitation), the user // will be considered signed out (i.e. kNotUsingAccountStorage) and hence the // invitation will be ignored. - metrics_util::PasswordAccountStorageUsageLevel usage_level = + features_util::PasswordAccountStorageUsageLevel usage_level = features_util::ComputePasswordAccountStorageUsageLevel(pref_service_, sync_service_); switch (usage_level) { - case metrics_util::PasswordAccountStorageUsageLevel::kSyncing: + case features_util::PasswordAccountStorageUsageLevel::kSyncing: password_store = profile_password_store_; break; - case metrics_util::PasswordAccountStorageUsageLevel::kUsingAccountStorage: + case features_util::PasswordAccountStorageUsageLevel::kUsingAccountStorage: password_store = account_password_store_; break; - case metrics_util::PasswordAccountStorageUsageLevel:: + case features_util::PasswordAccountStorageUsageLevel:: kNotUsingAccountStorage: break; }
diff --git a/components/password_manager/core/browser/sharing/password_receiver_service_impl_unittest.cc b/components/password_manager/core/browser/sharing/password_receiver_service_impl_unittest.cc index 4b578d8b..70791a3 100644 --- a/components/password_manager/core/browser/sharing/password_receiver_service_impl_unittest.cc +++ b/components/password_manager/core/browser/sharing/password_receiver_service_impl_unittest.cc
@@ -10,8 +10,8 @@ #include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" #include "components/password_manager/core/browser/features/password_features.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_metrics_util.h" #include "components/password_manager/core/browser/sharing/incoming_password_sharing_invitation_sync_bridge.h" #include "components/password_manager/core/browser/test_password_store.h"
diff --git a/components/password_manager/core/browser/store_metrics_reporter.cc b/components/password_manager/core/browser/store_metrics_reporter.cc index 500b3ec..cf5f705 100644 --- a/components/password_manager/core/browser/store_metrics_reporter.cc +++ b/components/password_manager/core/browser/store_metrics_reporter.cc
@@ -14,9 +14,9 @@ #include "base/task/sequenced_task_runner.h" #include "base/task/thread_pool.h" #include "components/password_manager/core/browser/affiliation/affiliation_utils.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/password_feature_manager.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_metrics_util.h" #include "components/password_manager/core/browser/password_manager_util.h" #include "components/password_manager/core/browser/password_reuse_detector.h"
diff --git a/components/password_manager/core/browser/store_metrics_reporter_unittest.cc b/components/password_manager/core/browser/store_metrics_reporter_unittest.cc index 5ce749d8..9c0535aa 100644 --- a/components/password_manager/core/browser/store_metrics_reporter_unittest.cc +++ b/components/password_manager/core/browser/store_metrics_reporter_unittest.cc
@@ -15,10 +15,10 @@ #include "build/build_config.h" #include "components/os_crypt/sync/os_crypt_mocker.h" #include "components/password_manager/core/browser/features/password_features.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/password_manager/core/browser/mock_password_reuse_manager.h" #include "components/password_manager/core/browser/mock_password_store_interface.h" #include "components/password_manager/core/browser/password_form.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" #include "components/password_manager/core/browser/password_manager_metrics_util.h" #include "components/password_manager/core/browser/password_manager_util.h" #include "components/password_manager/core/browser/stub_password_manager_client.h"
diff --git a/components/password_manager/core/browser/sync/credential_model_type_controller.cc b/components/password_manager/core/browser/sync/credential_model_type_controller.cc index 11be60a8..a3f9661 100644 --- a/components/password_manager/core/browser/sync/credential_model_type_controller.cc +++ b/components/password_manager/core/browser/sync/credential_model_type_controller.cc
@@ -11,7 +11,7 @@ #include "base/task/sequenced_task_runner.h" #include "build/build_config.h" #include "components/password_manager/core/browser/features/password_features.h" -#include "components/password_manager/core/browser/password_manager_features_util.h" +#include "components/password_manager/core/browser/features/password_manager_features_util.h" #include "components/prefs/pref_service.h" #include "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h" #include "components/sync/base/features.h"
diff --git a/components/password_manager/core/browser/ui/credential_ui_entry.cc b/components/password_manager/core/browser/ui/credential_ui_entry.cc index 981e921..604745a4 100644 --- a/components/password_manager/core/browser/ui/credential_ui_entry.cc +++ b/components/password_manager/core/browser/ui/credential_ui_entry.cc
@@ -4,6 +4,7 @@ #include "components/password_manager/core/browser/ui/credential_ui_entry.h" +#include "base/strings/string_split.h" #include "base/strings/utf_string_conversions.h" #include "components/password_manager/core/browser/affiliation/affiliation_utils.h" #include "components/password_manager/core/browser/form_parsing/form_data_parser.h" @@ -13,6 +14,7 @@ #include "components/password_manager/core/browser/password_ui_utils.h" #include "components/password_manager/core/browser/well_known_change_password/well_known_change_password_util.h" #include "components/url_formatter/elide_url.h" +#include "net/base/registry_controlled_domains/registry_controlled_domain.h" namespace password_manager { @@ -21,11 +23,28 @@ constexpr char kPlayStoreAppPrefix[] = "https://play.google.com/store/apps/details?id="; +constexpr char kSortKeyPartsSeparator = ' '; + +// The character that is added to a sort key if there is no federation. +// Note: to separate the entries w/ federation and the entries w/o federation, +// this character should be alphabetically smaller than real federations. +constexpr char kSortKeyNoFederationSymbol = '-'; + +// Symbols to differentiate between passwords and passkeys. +constexpr char kSortKeyPasswordSymbol = 'w'; + std::string GetOrigin(const url::Origin& origin) { return base::UTF16ToUTF8(url_formatter::FormatOriginForSecurityDisplay( origin, url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC)); } +std::string SplitByDotAndReverse(base::StringPiece host) { + std::vector<base::StringPiece> parts = base::SplitStringPiece( + host, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + std::reverse(parts.begin(), parts.end()); + return base::JoinString(parts, "."); +} + } // namespace // CredentialFacet @@ -263,6 +282,65 @@ return domains; } +std::string CreateSortKey(const CredentialUIEntry& credential) { + std::string shown_origin = GetShownOrigin(credential); + + const auto facet_uri = + FacetURI::FromPotentiallyInvalidSpec(credential.GetFirstSignonRealm()); + const bool is_android_uri = facet_uri.IsValidAndroidFacetURI(); + + if (is_android_uri) { + // In case of Android credentials |GetShownOriginAndLinkURl| might return + // the app display name, e.g. the Play Store name of the given application. + // This might or might not correspond to the eTLD+1, which is why + // |shown_origin| is set to the reversed android package name in this case, + // e.g. com.example.android => android.example.com. + shown_origin = facet_uri.GetAndroidPackageDisplayName(); + } + + std::string site_name = + net::registry_controlled_domains::GetDomainAndRegistry( + shown_origin, + net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); + if (site_name.empty()) { // e.g. localhost. + site_name = shown_origin; + } + + std::string key = site_name + kSortKeyPartsSeparator; + + // Since multiple distinct credentials might have the same site name, more + // information is added. For Android credentials this includes the full + // canonical spec which is guaranteed to be unique for a given App. + key += is_android_uri ? facet_uri.canonical_spec() + : SplitByDotAndReverse(shown_origin); + + if (!credential.blocked_by_user) { + key += kSortKeyPartsSeparator + base::UTF16ToUTF8(credential.username) + + kSortKeyPartsSeparator + base::UTF16ToUTF8(credential.password); + + key += kSortKeyPartsSeparator; + if (!credential.federation_origin.opaque()) { + key += credential.federation_origin.host(); + } else { + key += kSortKeyNoFederationSymbol; + } + } + + // To separate HTTP/HTTPS credentials, add the scheme to the key. + key += kSortKeyPartsSeparator + GetShownUrl(credential).scheme(); + + // Separate passwords from passkeys. + key += kSortKeyPartsSeparator; + if (credential.passkey_credential_id.empty()) { + key += kSortKeyPasswordSymbol; + } else { + key += base::UTF16ToUTF8(credential.user_display_name) + + kSortKeyPartsSeparator + + base::HexEncode(credential.passkey_credential_id); + } + return key; +} + bool operator==(const CredentialUIEntry& lhs, const CredentialUIEntry& rhs) { return CreateSortKey(lhs) == CreateSortKey(rhs); }
diff --git a/components/password_manager/core/browser/ui/credential_ui_entry.h b/components/password_manager/core/browser/ui/credential_ui_entry.h index 6f80b41..9d6a76a2 100644 --- a/components/password_manager/core/browser/ui/credential_ui_entry.h +++ b/components/password_manager/core/browser/ui/credential_ui_entry.h
@@ -171,6 +171,15 @@ std::vector<DomainInfo> GetAffiliatedDomains() const; }; +// Creates key for sorting password or password exception entries. The key is +// eTLD+1 followed by the reversed list of domains (e.g. +// secure.accounts.example.com => example.com.com.example.accounts.secure) and +// the scheme. If |form| is not blocklisted, username, password and federation +// are appended to the key. If not, no further information is added. For Android +// credentials the canocial spec is included. +// TODO(vsemeniuk): find a better name for this function. +std::string CreateSortKey(const CredentialUIEntry& credential); + bool operator==(const CredentialUIEntry& lhs, const CredentialUIEntry& rhs); bool operator!=(const CredentialUIEntry& lhs, const CredentialUIEntry& rhs); bool operator<(const CredentialUIEntry& lhs, const CredentialUIEntry& rhs);
diff --git a/components/password_manager/core/browser/ui/credential_ui_entry_unittest.cc b/components/password_manager/core/browser/ui/credential_ui_entry_unittest.cc index 8d412ba..66e31a8 100644 --- a/components/password_manager/core/browser/ui/credential_ui_entry_unittest.cc +++ b/components/password_manager/core/browser/ui/credential_ui_entry_unittest.cc
@@ -281,4 +281,51 @@ EXPECT_EQ(entry.GetChangePasswordURL(), GURL(kTestComChangePassword)); } +TEST(CredentialUIEntryTest, EntriesDifferingByStoreShouldMapToSameKey) { + PasswordForm account_form; + account_form.signon_realm = "https://g.com/"; + account_form.url = GURL(account_form.signon_realm); + account_form.blocked_by_user = false; + account_form.in_store = PasswordForm::Store::kAccountStore; + + PasswordForm profile_form(account_form); + profile_form.in_store = PasswordForm::Store::kProfileStore; + + EXPECT_EQ(CreateSortKey(CredentialUIEntry(account_form)), + CreateSortKey(CredentialUIEntry(profile_form))); +} + +TEST(CredentialUIEntryTest, PasskeyVsPasswordSortKey) { + PasswordForm form; + form.signon_realm = "https://test.com/"; + form.url = GURL(form.signon_realm); + form.username_value = u"victor"; + CredentialUIEntry password(std::move(form)); + + PasskeyCredential passkey_credential( + PasskeyCredential::Source::kAndroidPhone, + PasskeyCredential::RpId("test.com"), + PasskeyCredential::CredentialId({1, 2, 3, 4}), + PasskeyCredential::UserId(), PasskeyCredential::Username("victor")); + CredentialUIEntry passkey(std::move(passkey_credential)); + + EXPECT_NE(CreateSortKey(password), CreateSortKey(passkey)); +} + +// Tests that two passkeys that are equal in everything but the display name +// have different sort keys. +TEST(CredentialUIEntryTest, PasskeyDifferentSortKeyForDifferentDisplayName) { + PasskeyCredential passkey_credential( + PasskeyCredential::Source::kAndroidPhone, + PasskeyCredential::RpId("test.com"), + PasskeyCredential::CredentialId({1, 2, 3, 4}), + PasskeyCredential::UserId(), PasskeyCredential::Username("victor"), + PasskeyCredential::DisplayName("Display Name 1")); + CredentialUIEntry passkey1(std::move(passkey_credential)); + CredentialUIEntry passkey2 = passkey1; + passkey2.user_display_name = u"Display Name 2"; + + EXPECT_NE(CreateSortKey(passkey1), CreateSortKey(passkey2)); +} + } // namespace password_manager
diff --git a/components/password_manager/core/browser/ui/passwords_grouper.cc b/components/password_manager/core/browser/ui/passwords_grouper.cc index b9573ff..8e3b96a5 100644 --- a/components/password_manager/core/browser/ui/passwords_grouper.cc +++ b/components/password_manager/core/browser/ui/passwords_grouper.cc
@@ -98,6 +98,29 @@ return branding_info; } +std::string CreateUsernamePasswordSortKey(const CredentialUIEntry& credential) { + std::string key; + // The origin isn't taken into account for normal credentials since we want to + // group them together. + const char kSortKeyPartsSeparator = ' '; + if (!credential.blocked_by_user) { + key += base::UTF16ToUTF8(credential.username) + kSortKeyPartsSeparator + + base::UTF16ToUTF8(credential.password); + + key += kSortKeyPartsSeparator; + if (!credential.federation_origin.opaque()) { + key += credential.federation_origin.host(); + } else { + key += kSortKeyPartsSeparator; + } + } else { + // Key for blocked by user credential since it does not store username and + // password. These credentials are not grouped together. + key = GetShownOrigin(credential); + } + return key; +} + } // namespace PasswordsGrouper::Credentials::Credentials() = default;
diff --git a/components/performance_manager/resource_attribution/cpu_measurement_monitor.cc b/components/performance_manager/resource_attribution/cpu_measurement_monitor.cc index 635be88..8784475 100644 --- a/components/performance_manager/resource_attribution/cpu_measurement_monitor.cc +++ b/components/performance_manager/resource_attribution/cpu_measurement_monitor.cc
@@ -103,14 +103,7 @@ result.metadata.measurement_time - result.start_time; CHECK(interval.is_positive()); - // Cumulative CPU must not be more than was actually available. Over very - // short intervals (on the order of 0.01 ms) rounding up after dividing CPU - // between frames can lead to `cumulative_cpu` being more than `interval`, so - // allow 0.1 ms of slack. - static constexpr base::TimeDelta kEpsilon = base::Milliseconds(0.1); - static const int kNumProcessors = base::SysInfo::NumberOfProcessors(); CHECK(!result.cumulative_cpu.is_negative()); - CHECK_LE(result.cumulative_cpu, interval * kNumProcessors + kEpsilon); } // Adds the measurement in `delta` to `result`. The start time of `delta` must @@ -657,6 +650,12 @@ // negative. return; } + // When measured in quick succession, GetCumulativeCPUUsage() can go + // backwards. + if (current_cpu_usage < most_recent_measurement_) { + current_cpu_usage = most_recent_measurement_; + } + const base::TimeDelta cumulative_cpu_delta = current_cpu_usage - most_recent_measurement_; most_recent_measurement_ = current_cpu_usage; @@ -672,6 +671,7 @@ // FrameNode or WorkerNode's containing process is measured when the node is // added, so `start_time` will be correctly set to the first time the node // is measured. + CHECK(!cpu_delta.is_negative()); const auto [_, inserted] = measurement_deltas.emplace( context, CPUTimeResult{ .metadata = {.measurement_time = measurement_interval_end},
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index 134c6b1..5208b17 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -1785,7 +1785,6 @@ Wenn die Richtlinie nicht konfiguriert ist, wird <ph name="PRINTERS_ALLOW_ALL" /> verwendet.</translation> <translation id="2581338546762479588">Automatischen Neustart nach Updates zulassen</translation> -<translation id="2582855747769273665">Eine URL, über die Nutzer mehr erfahren können. Sofern nicht konfiguriert, gibt es im Installationsprogramm keine URL „Weitere Informationen“.</translation> <translation id="2586117300379904732">Wakelocks für die Energieverwaltung zulassen</translation> <translation id="2586231026319371211">Die Zeit wird in der jeweiligen Ortszeit im 24-Stunden-Format angegeben.</translation> <translation id="2587719089023392205"><ph name="PRODUCT_NAME" /> als Standardbrowser festlegen</translation>
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index 2f3bd2d..14918d7 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -1830,8 +1830,6 @@ Si no estableces la política, se aplicará <ph name="PRINTERS_ALLOW_ALL" />.</translation> <translation id="2581338546762479588">Permitir el reinicio automático después de las actualizaciones</translation> -<translation id="2582855747769273665">Una URL que los usuarios pueden visitar para obtener más información. Si no la estableces, no habrá -ninguna URL de "más información" en el instalador.</translation> <translation id="2586117300379904732">Permite los bloqueos de activación para la administración de energía</translation> <translation id="2586231026319371211">Hora local en formato de reloj de pared de 24 horas.</translation> <translation id="2587719089023392205">Establecer <ph name="PRODUCT_NAME" /> como navegador predeterminado</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index 507ed9b..8f1fff9 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -623,6 +623,11 @@ Si se inhabilita la política, las solicitudes HTTP no seguras tendrán prohibido el uso del esquema de autenticación <ph name="BASIC_AUTH" />; solo se permitirán solicitudes HTTPS. Si se habilita la política <ph name="AUTH_SCHEMES_POLICY_NAME" /> y esta no incluye <ph name="BASIC_AUTH" />, se ignorará este ajuste de la política (y se prohibirá <ph name="BASIC_AUTH" /> de forma permanente).</translation> +<translation id="1573074208167290576">Permite especificar si los usuarios pueden añadir excepciones para permitir el contenido mixto en determinados sitios. + +Esta política se puede anular para patrones de URL concretos mediante las políticas "InsecureContentAllowedForUrls" e "InsecureContentBlockedForUrls". + +Si no se establece esta política, los usuarios podrán añadir excepciones para permitir contenido mixto bloqueable e inhabilitar actualizaciones automáticas de contenido mixto bloqueable opcionalmente.</translation> <translation id="1573444493980402757">Te permite definir una lista de patrones de URL donde se especifique qué sitios negarán automáticamente el permiso de colocación de ventanas. Esto limitará la habilidad de los sitios de ver información sobre las pantallas de los dispositivos y usarla para abrir y colocar ventanas, o solicitar la pantalla completa en pantallas específicas. Para obtener información detallada sobre los patrones de URL de sitios válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Se permite el uso de caracteres comodín (<ph name="WILDCARD_VALUE" />). Esta política solo detecta coincidencias basadas en el origen, así que se ignora cualquier ruta del patrón de URL. @@ -900,6 +905,13 @@ Esta política está obsoleta. Usa la política <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> en su lugar. </translation> +<translation id="1825583118566970564">Controla la instalación de extensiones externas. + +Si se habilita esta política, se impedirá que se instalen extensiones externas. + +Si se inhabilita esta política o no se establece, se podrán instalar extensiones externas. + +La documentación sobre las extensiones externas y sobre cómo instalarlas está disponible en https://developer.chrome.com/apps/external_extensions.</translation> <translation id="1827523283178827583">Utilizar servidores proxy fijos</translation> <translation id="1829117241432374848">Una cuenta gestionada debe ser principal, no puede tener cuentas secundarias y el usuario puede importar datos previos al crearla</translation> <translation id="1829839214911753838">Si se habilita esta política, el host de asistencia remota se ejecutará en un proceso con permisos <ph name="UIACCESS_PERMISSION_NAME" />. Así, los usuarios remotos podrán interactuar con ventanas a las que se puede acceder con permisos de administrador en el ordenador del usuario local. @@ -972,6 +984,15 @@ El campo <ph name="RUN_ON_OS_LOGIN_FIELD" /> especifica si una aplicación web puede ejecutarse durante el inicio de sesión en el SO. Si a este campo se le asigna el valor <ph name="BLOCKED" />, la aplicación web no se ejecutará durante el inicio de sesión en el SO y el usuario no podrá habilitar esta opción después. Si a este campo se le asigna el valor <ph name="RUN_WINDOWED" />, la aplicación web se ejecutará durante el inicio de sesión en el SO y el usuario no podrá inhabilitar esta opción después. Si a este campo se le asigna el valor <ph name="ALLOWED" />, el usuario podrá configurar la aplicación web para que se ejecute durante el inicio de sesión en el SO. La configuración predeterminada solo permite los valores <ph name="ALLOWED" /> y <ph name="BLOCKED" />. Desde la versión 117, en el campo <ph name="PREVENT_CLOSE_FIELD" /> se especifica si se debe impedir todo tipo de cierres de aplicaciones web (por ejemplo, por parte del usuario, el administrador de tareas o las APIs web). Este comportamiento solo se puede habilitar si se asigna el valor <ph name="RUN_WINDOWED" /> a <ph name="RUN_ON_OS_LOGIN_FIELD" />. Si la aplicación ya se estaba ejecutando, esta propiedad solo se hará efectiva después de reiniciar la aplicación. Si este campo no se define, los usuarios podrán cerrar las aplicaciones. Desde la versión 118, en el campo <ph name="FORCE_UNREGISTER_OS_INTEGRATION" /> se especifica si se eliminará o no toda la integración del SO en una aplicación web, es decir, los accesos directos, los controladores de archivos o de protocolo, etc. Si una aplicación ya se está ejecutando, esta propiedad se hará efectiva después de reiniciar la aplicación. Esta opción se debe utilizar con precaución, ya que puede prevalecer sobre cualquier integración del SO que se haya establecido automáticamente durante el inicio del sistema de la aplicación web. Por el momento, solo funciona en las plataformas Windows, Mac y Linux.</translation> +<translation id="1874719875297132073">Esta política determina si se proporciona información que se pueda usar para identificar a usuarios, como el inicio de sesión en el SO, el inicio de sesión en el perfil de <ph name="PRODUCT_NAME" />, el nombre de perfil de <ph name="PRODUCT_NAME" />, la ruta del perfil de <ph name="PRODUCT_NAME" /> y la ruta del ejecutable de <ph name="PRODUCT_NAME" />. + +Si no se establece la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o se inhabilita, se ignorará esta política. + +Si no se establece esta política o se le asigna el valor True, se recogerá información que puede usarse para identificar a usuarios. +Si se le asigna el valor False, no se recogerá información que pueda usarse para identificar a usuarios. + +En el caso de <ph name="PRODUCT_NAME" />, esta política solo es efectiva si el equipo está registrado en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />. +En el caso de <ph name="PRODUCT_OS_NAME" />, esta política siempre es efectiva.</translation> <translation id="1883274744253492031">Habilitar la actualización automática de contenido mixto</translation> <translation id="1885782360784839335">Permitir que se muestre contenido promocional que ocupe toda la pestaña</translation> <translation id="1888871729456797026">El token de registro de la política de nube en ordenadores</translation> @@ -999,6 +1020,9 @@ Si no se le asigna ningún valor, la página Nueva pestaña se abrirá al iniciar el navegador. En <ph name="MS_WIN_NAME" />, esta política solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" /> o a <ph name="MS_AAD_NAME" />, o que se hayan registrado en <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />.</translation> +<translation id="1897095538209040086">Si se habilita esta política o no se establece, <ph name="PRODUCT_NAME" /> mantendrá al menos una pestaña abierta después de cambiar a un navegador alternativo. + +Si se inhabilita, <ph name="PRODUCT_NAME" /> cerrará la pestaña después de cambiar a un navegador alternativo, aunque esta sea la última. Esto hará que <ph name="PRODUCT_NAME" /> se cierre por completo.</translation> <translation id="1897365952389968758">Permitir que todos los sitios ejecuten JavaScript</translation> <translation id="1902043648529789224">Controlar la posición de la estantería</translation> <translation id="1904323733389537794">Si se le asigna el valor "True" a esta política, se realizarán comprobaciones de <ph name="OCSP_CRL_LABEL" /> online. @@ -1454,6 +1478,9 @@ <translation id="2261648512244797294">Inhabilitar el protocolo Privet de impresión obsoleto</translation> <translation id="2266422599396179941">Permitir que los usuarios envíen sugerencias </translation> +<translation id="2268891553068901979">Si se habilita esta política, se desactivará la sincronización de <ph name="GOOGLE_DRIVE_NAME" /> en la aplicación Archivos de <ph name="PRODUCT_OS_NAME" /> cuando se utilice una conexión de datos móviles. Los datos solos se sincronizan con Drive si hay una conexión a una red Wi-Fi o Ethernet. + +Si se inhabilita esta política o no se establece, los usuarios podrán transferir archivos a Drive con conexiones de datos móviles.</translation> <translation id="2269319728625047531">Habilitar Sync Consent durante el inicio de sesión</translation> <translation id="2270113153862588648">Si se habilita esta política, se permitirá la atestación remota en el dispositivo. Se generará un certificado y se subirá al servidor de administración de dispositivos automáticamente. @@ -1803,7 +1830,6 @@ Si no se establece esta política, se utiliza <ph name="PRINTERS_ALLOW_ALL" />.</translation> <translation id="2581338546762479588">Permitir el reinicio automático después de las actualizaciones</translation> -<translation id="2582855747769273665">Una URL que los usuarios pueden visitar para obtener más información. Si no se define, no aparecerá ninguna URL para obtener más información en el instalador.</translation> <translation id="2586117300379904732">Permitir los wake locks para la gestión de energía</translation> <translation id="2586231026319371211">Hora interpretada en el formato local de 24 horas de reloj.</translation> <translation id="2587719089023392205">Establecer <ph name="PRODUCT_NAME" /> como navegador predeterminado</translation> @@ -1951,6 +1977,9 @@ <translation id="2727844239611930002">Permitir que <ph name="PRODUCT_NAME" /> determine si se muestra el mensaje de <ph name="PRIVACY_SANDBOX_NAME" />.</translation> <translation id="2730200383593984228">Permitir que los usuarios no afiliados utilicen aplicaciones Android</translation> <translation id="2730419309754848345">Imprimir PDF como imagen de forma predeterminada</translation> +<translation id="2730644640965800157">Si se habilita esta política, se desactivará la sincronización de <ph name="GOOGLE_DRIVE_NAME" /> en la aplicación Archivos de <ph name="PRODUCT_OS_NAME" />. No se subirán datos a Drive. + +Si se inhabilita esta política o no se establece, los usuarios podrán transferir archivos a Drive.</translation> <translation id="2731299561202635374">Esta política controla la comprobación de URLs en tiempo real para identificar URL no seguras. Si esta política no se establece o se le asigna el valor Disabled, se aplicarán las comprobaciones de Navegación segura de usuarios particulares. Estas comprobaciones podrán incluir consultas en tiempo real en función del valor del ajuste "Mejorar las búsquedas y la navegación" y del valor de la política UrlKeyedAnonymizedDataCollectionEnabled. @@ -2006,6 +2035,9 @@ A menos que el almacenamiento externo esté bloqueado, si se configura "ExternalStorageReadOnly" en "false" o no se le asigna ningún valor, los usuarios podrán crear y modificar archivos de dispositivos de almacenamiento externos en los que se pueda escribir físicamente. (El almacenamiento externo se bloquea asignándole a "ExternalStorageDisable" el valor "true").</translation> <translation id="2789742777235177478">Limita el tiempo durante el que un usuario autenticado mediante GAIA sin SAML puede iniciar sesión sin conexión en la pantalla de bloqueo</translation> +<translation id="2795923835422513629">Si se asigna el valor 1 a esta política, los sitios web podrán mostrar ventanas emergentes. Si se le asigna el valor 2, no se permitirán las ventanas emergentes. + +Si no se establece, se aplicará la política <ph name="BLOCK_POPUPS_POLICY_NAME" />, pero los usuarios podrán cambiar esta opción.</translation> <translation id="2796714419743648316">Lista de límites de tiempo por aplicación permitidos </translation> <translation id="2801065672151277034">Ajustes de gestión de certificados</translation> @@ -2519,6 +2551,9 @@ Para obtener información detallada sobre los patrones de URL válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation> <translation id="3205825995289802549">Maximizar la primera ventana del navegador en la primera ejecución</translation> +<translation id="320607884987562184">Si se asigna el valor 1 a esta política, los sitios web podrán ejecutar JavaScript. Si se le asigna el valor 2, no se permitirá el uso de JavaScript. + +Si no se establece, podrá ejecutarse JavaScript, pero los usuarios podrán cambiar esta opción.</translation> <translation id="3206959584699016689">Si estableces esta política, podrás definir una lista de patrones de URL donde se especifiquen los sitios que pueden acceder a los sensores, como los de luz o movimiento. Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_SENSORS_SETTING_POLICY_NAME" /> se aplicará a todos los sitios, si se ha definido. Si no se ha definido, se aplicará la configuración personal del usuario. @@ -2703,6 +2738,10 @@ <translation id="3362584244602846824">Usar la transición rápida cuando el punto de acceso inalámbrico lo permita</translation> <translation id="3363360928811201045">Añadir restricciones a las cuentas gestionadas</translation> <translation id="3364400740222114778">Recuperación de cuenta</translation> +<translation id="3367361756115023251">Permite a este usuario el acceso root a los contenedores de Crostini. + +Si se asigna el valor true a esta política o no se establece, el usuario tendrá acceso root a los contenedores de Crostini. +Si se le asigna el valor false, el usuario no tendrá acceso root a los contenedores de Crostini nuevos ni a los ya existentes.</translation> <translation id="3373381043600809954">Habilitar <ph name="PRODUCT_NAME" /></translation> <translation id="3374587000313305002">Configura el directorio que <ph name="PRODUCT_NAME" /> utilizará para almacenar los datos de usuario. @@ -2953,6 +2992,15 @@ <translation id="3554498762428140109">Habilitar oclusión de ventana nativa</translation> <translation id="3554984410014457319">Permite que el Asistente de Google escuche la frase de activación</translation> <translation id="3557586898458302131">Incluir un puerto no estándar en el SPN de Kerberos generado</translation> +<translation id="3558024517032824255">Especifica el número mínimo de restauraciones a versiones principales de <ph name="PRODUCT_OS_NAME" /> que se deberían permitir desde la versión estable en cualquier momento. + +El valor predeterminado es 0 para dispositivos de usuarios particulares y 4 (aproximadamente medio año) para los dispositivos registrados por empresas. + +Si se establece esta política, no se aplicará la protección contra restauraciones al menos a ese número de versiones principales. + +Si se asigna un valor inferior a esta política, el efecto será permanente: el dispositivo no PODRÁ restaurar versiones anteriores aunque se le vuelva a asignar un valor superior a la política. + +Las posibilidades reales de restauración también pueden depender de la placa y de los parches de vulnerabilidades críticas.</translation> <translation id="35668690622495904"> No se bloquearán llamadas porque se hayan originado en contextos no incluidos en la lista de permitidos. Sin embargo, estas llamadas se podrán bloquear por otros motivos.</translation> @@ -3028,6 +3076,15 @@ <translation id="3637063789824963261">Si se habilita esta política, los dispositivos registrados informarán sobre los contadores de tiempo de ejecución del dispositivo (solo Intel vPro de una generación superior a la 14). Si se inhabilita esta política o no se establece, los dispositivos registrados no registrarán ni informarán sobre los contadores de tiempo de ejecución del dispositivo.</translation> +<translation id="3640677352428533707">Esta política determina si se proporciona información de las versiones, como la versión, la plataforma o la arquitectura del SO, la versión de <ph name="PRODUCT_NAME" /> y el canal de <ph name="PRODUCT_NAME" />. + +Si no se establece la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o se inhabilita, se ignorará esta política. + +Si no se establece esta política o se le asigna el valor True, se recogerá la información de las versiones. +Si se le asigna el valor False, no se recogerá información de las versiones. + +En el caso de <ph name="PRODUCT_NAME" />, esta política solo es efectiva si el equipo está registrado en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />. +En el caso de <ph name="PRODUCT_OS_NAME" />, esta política siempre es efectiva.</translation> <translation id="3642557248926713561">Inhabilitar protección de extensiones de Navegación segura</translation> <translation id="3644735978203799620">Habilita la selección automática para capturas de multipantalla</translation> <translation id="3646859102161347133">Establecer el tipo de lupa</translation> @@ -3734,6 +3791,9 @@ Si el dispositivo no está gestionado o solo hay un usuario, esta política se ignorará y siempre se mostrará la notificación. Si hay varias cuentas de usuario en un dispositivo gestionado, la notificación solo se mostrará si esta política está habilitada.</translation> +<translation id="4297483555396496700">Los usuarios solo pueden cambiar el canal de lanzamiento del dispositivo si se le asigna el valor True a esta política. Si se le asigna el valor False o no se establece, los usuarios no podrán cambiar el canal. + +Establecer <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> solo tendrá efecto si se le asigna el valor False a <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" />.</translation> <translation id="4298476374822550051">Habilitar acuerdo de claves poscuántico Kyber para TLS</translation> <translation id="4303167373847512281">Permitir el modo Desarrollador</translation> <translation id="4307116964468610577">Esta política alarga la vida útil de las baterías de un sistema cargándolas por completo solo una vez al día. El resto del día, las baterías mantienen un estado de carga inferior que es beneficioso para su almacenamiento, incluso cuando el sistema está conectado a una fuente de alimentación. @@ -3744,6 +3804,9 @@ Los usuarios no podrán modificar este ajuste.</translation> <translation id="4309091698378414920">Habilitar el resaltado del cursor de texto</translation> +<translation id="4311141497190183490">Si se asigna el valor 1 a esta política, los sitios web podrán hacer un seguimiento de la ubicación física de los usuarios de forma predeterminada. Si se le asigna el valor 2, se bloqueará este seguimiento de forma predeterminada. Puedes configurar esta política para que pregunte siempre que un sitio quiera hacer un seguimiento de la ubicación física de los usuarios. + +Si no se establece, se aplicará la política <ph name="ASK_GEOLOCATION_POLICY_NAME" />, pero los usuarios podrán cambiar esta opción.</translation> <translation id="4311195029067684288">Llena</translation> <translation id="4311662690937656540">Requerir que se inicie sesión online en las pantallas de inicio de sesión y de bloqueo</translation> <translation id="4313767483634435271">Dirección MAC designada de la base del dispositivo</translation> @@ -3886,6 +3949,15 @@ <translation id="445505634382262792">Si se asigna el valor "3" a esta política, los sitios web podrán solicitar acceso de escritura a los archivos y directorios del sistema de archivos del sistema operativo del host. Si se le asigna el valor "2", se denegará el acceso. Si no se le asigna ningún valor, los sitios web podrán solicitar acceso, pero los usuarios podrán cambiar esta opción.</translation> +<translation id="4455258118946528063">Esta política determina si se proporciona información sobre extensiones y complementos. + +Si no se establece la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o se inhabilita, esta se ignorará. + +Si no se establece esta política o se le asigna el valor True, se recogerán datos de extensiones y complementos. +Si se le asigna el valor False, no se recogerán datos de extensiones ni de complementos. + +En el caso de <ph name="PRODUCT_NAME" />, esta política solo es efectiva si el equipo está registrado en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />. +En el caso de <ph name="PRODUCT_OS_NAME" />, esta política siempre es efectiva.</translation> <translation id="4457113781439375078">Esta política está obsoleta. Si se habilita esta política, los dispositivos registrados informarán periódicamente sobre su ubicación. @@ -3909,6 +3981,15 @@ <translation id="4467952432486360968">Bloquear cookies de terceros</translation> <translation id="4472740647327683596">Ancho de la página en micrómetros</translation> <translation id="4474167089968829729">Habilitar el almacenamiento de contraseñas en el gestor de contraseñas</translation> +<translation id="4475131520521739161">A menos que la política <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> desactive la detección automática de la zona horaria, asignar un valor a esta política define el método de detección automática de la zona horaria, que los usuarios no pueden cambiar. + +Si se asignan los siguientes valores: + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONDISABLED" />: se mantendrá desactivada la detección automática de la zona horaria. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TTIMEZONEAUTOMATICDETECTIONIPONLY" />: se mantendrá activada la detección automática de la zona horaria usando solo la IP. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" />: se mantendrá la detección automática de la zona horaria activada, enviando continuamente la lista de puntos de acceso Wi‑Fi visibles al servidor de la API Geolocation para detectar la zona horaria de forma más precisa. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" />: se mantendrá la detección automática de la zona horaria activada, enviando continuamente información sobre la ubicación (como puntos de acceso Wi‑Fi, torres de telefonía móvil disponibles, GPS) a un servidor para detectar la zona horaria de forma más precisa. + +Si esta política no se establece o se le asigna "Dejar que los usuarios decidan" o "Ninguno", los usuarios controlarán la detección automática de la zona horaria con los controles normales en chrome://settings.</translation> <translation id="4476769083125004742">Si se asigna el valor <ph name="BLOCK_GEOLOCATION_SETTING" /> a esta política, las aplicaciones para Android no tendrán acceso a la información sobre la ubicación. Si se le asigna cualquier otro valor o no se configura, el usuario tendrá que dar su consentimiento cuando una aplicación para Android quiera acceder a los datos de ubicación.</translation> <translation id="4478248026668918517">Bloquea la detección del nivel de las políticas.</translation> <translation id="4479671363221255277">Si se establece esta política, podrás definir una lista de patrones de URL donde se especifique qué sitios pueden pedir a los usuarios que les concedan acceso de lectura a archivos o directorios del sistema de archivos del sistema operativo del host a través de la API File System. @@ -4105,6 +4186,9 @@ <translation id="46321462262887935">Tratar las teclas de la fila superior como teclas de función, pero permitir que el usuario cambie este ajuste</translation> <translation id="4632343302005518762">Permitir que <ph name="PRODUCT_FRAME_NAME" /> procese los tipos de contenido mostrados</translation> <translation id="4636354638176939375">Inhabilitar la creación de usuarios supervisados</translation> +<translation id="46383668315040154">Especifica el canal de lanzamiento al que se vinculará este dispositivo. + +Establecer <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> solo tendrá efecto si se le asigna el valor False a <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" />.</translation> <translation id="4646626362889216307">Si se establece la política, se permitirá la combinación de las políticas seleccionadas cuando procedan de fuentes distintas, con los mismos permisos y el mismo nivel. Esta combinación está en las claves de primer nivel del diccionario de cada fuente. La clave procedente de la fuente con más prioridad prevalecerá. Usa el carácter comodín "*" para permitir la combinación de todas las políticas de diccionarios admitidas. @@ -4483,6 +4567,14 @@ <translation id="499654521603185442">Informes de telemetría de sitios web</translation> <translation id="4997074784107449343">Cuando la opción Imprimir como imagen está disponible, no se establece como opción predeterminada en las vistas previas de impresión de documentos PDF.</translation> <translation id="500149597848135831">Habilitar todas las variaciones</translation> +<translation id="5017157692744444035">Esta política controla si se proporciona información que pueda usarse para identificar equipos, como el nombre del equipo o direcciones de red. + +Si no se establece la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o se inhabilita, esta se ignorará. + +Si no se establece esta política o se le asigna el valor True, se recogerá información que puede usarse para identificar equipos. +Si se le asigna el valor False, no se recogerá información que pueda usarse para identificar equipos. + +En el caso de <ph name="PRODUCT_NAME" />, esta política solo es efectiva si el equipo está registrado en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.</translation> <translation id="5017369989680827157">Si se asigna el valor "Verdadero" a esta política o no se le asigna ninguno, se dará a los usuarios el control de la función de autocompletar direcciones en la UI. Si se le asigna el valor "Falso", la función Autocompletar nunca sugerirá ni completará información de direcciones, ni tampoco guardará la información adicional de direcciones que envíen los usuarios mientras naveguen por la Web.</translation> @@ -4505,6 +4597,7 @@ <translation id="5036013147560568855">Versión del protocolo de aprovisionamiento de certificados. El valor predeterminado es 1. 1 es el protocolo estático. 2 es el protocolo dinámico.</translation> <translation id="5039110755072335605">Compatibilidad con encabezados de solicitud CORS sin comodín</translation> <translation id="504116558738617678">Solor mostrar advertencias de poco espacio en disco si el dispositivo no está gestionado o si únicamente hay 1 usuario</translation> +<translation id="5041315457555330432">Permitir que <ph name="PRODUCT_NAME" /> solo se conecte a dispositivos con direcciones IP privadas, a menos que la función CastAllowAllIPs esté activada.</translation> <translation id="5046376406561077773">El usuario no puede ver la interfaz de usuario relacionada con la función de sincronización de archivos de <ph name="GOOGLE_DRIVE_NAME" />.</translation> <translation id="5055474681190962362">Día del mes [1-31] en el que se debe reiniciar, interpretado en la zona horaria local del dispositivo. Solo se utiliza si el valor de "frequency" (frecuencia) es "MONTHLY" (mensual). Si este valor es superior al número máximo de días de un mes concreto, se seleccionará el último día del mes.</translation> <translation id="5056708224511062314">Lupa inhabilitada</translation> @@ -4744,6 +4837,9 @@ Si se le asigna el valor False o no se le asigna ningún valor, se desactivará el escritorio unificado y los usuarios no podrán activarlo.</translation> <translation id="5255162913209987122">Se puede recomendar</translation> <translation id="525543707238275321">Inhabilitar los informes sobre la CPU del dispositivo</translation> +<translation id="5255790642269910630">Si se establece esta política, cada pantalla rotará según la orientación especificada en cada reinicio y también lo hará la primera vez que se conecte después de cambiar el valor de la política. Los usuarios podrán cambiar la rotación de la pantalla en la página de configuración después de iniciar sesión, pero, en el siguiente reinicio, volverá a cambiar. Esta política se aplica a las pantallas principales y secundarias. + +Si no se establece, el valor predeterminado será 0 grados y los usuarios podrán cambiarlo. En este caso, no se volverá a aplicar el valor predeterminado tras reiniciar.</translation> <translation id="5257395339965216304">Datos de aplicaciones alojadas</translation> <translation id="5258445772095084618">Permitir que los usuarios no afiliados usen las máquinas virtuales necesarias para el funcionamiento de las aplicaciones de Linux</translation> <translation id="5262320080678421295">Inhabilitar la confianza en los certificados emitidos por la PKI antigua de Symantec Corporation</translation> @@ -5200,6 +5296,9 @@ <translation id="5660228672907979869">Impedir que se habilite la partición del almacenamiento de terceros.</translation> <translation id="5660950553460381588">Crear llaves de acceso de forma predeterminada en el llavero de iCloud cuando sea posible</translation> <translation id="5666457529647159548">Permite que los usuarios gestionen los certificados de cliente instalados.</translation> +<translation id="5670249935663090320">Si se habilita esta política o no se establece, se activará <ph name="PRODUCT_NAME" />. Los usuarios pueden iniciarlo desde el menú de la aplicación, los menús contextuales de páginas, los controles multimedia de sitios web compatibles con Google Cast y, si aparece, con el icono de Cast en la barra de herramientas. + +Si se inhabilita esta política, se desactivará <ph name="PRODUCT_NAME" />.</translation> <translation id="567377007899266033">Si se le asigna el valor "True" a esta política, se enviarán a Google informes de los principales eventos de instalación de extensiones activados por la política. Si se le asigna el valor "False", no se enviará información de ninguno de estos eventos. Si no se le asigna ningún valor a esta política, el valor predeterminado será "True".</translation> <translation id="5676740747107495269">Mostrar las opciones de accesibilidad en el menú de la bandeja del sistema de la pantalla de inicio de sesión</translation> <translation id="5679540979548648200">Impide que los usuarios de este dispositivo utilicen la instalación de fuente desconocida adb y ejecuta la función Powerwash de manera forzada en el dispositivo si ya se había habilitado previamente la instalación de fuente desconocida</translation> @@ -6109,7 +6208,21 @@ <translation id="6462604655173570082">Si esta política se habilita o no se establece, los usuarios podrán ver y usar el botón <ph name="GOOGLE_LENS_PRODUCT_NAME" /> en el cuadro de búsqueda de la página Nueva pestaña. Si esta política se inhabilita, los usuarios no verán el botón <ph name="GOOGLE_LENS_PRODUCT_NAME" /> en el cuadro de búsqueda de la página Nueva pestaña.</translation> <translation id="6464074037294098618">Habilitar la función Autocompletar para direcciones</translation> <translation id="6467613372414922590">Permitir hosts de mensajería nativa en el nivel de usuario (instalados sin permisos de administrador)</translation> +<translation id="6467707081687600148">Programa un reinicio automático después de que se haya aplicado una actualización de <ph name="PRODUCT_OS_NAME" />. + +Si se le asigna el valor true a esta política, se programará un reinicio automático cuando se haya aplicado una actualización de <ph name="PRODUCT_OS_NAME" /> y sea necesario reiniciar para completar el proceso de actualización. El reinicio se programará inmediatamente, pero puede retrasarse en el dispositivo hasta 24 horas si un usuario lo está usando en ese momento. + +Si se le asigna el valor false a esta política, no se programará ningún reinicio automático tras aplicar una actualización de <ph name="PRODUCT_OS_NAME" />. El proceso de actualización se completará cuando el usuario reinicie el dispositivo. + +Si se establece esta política, los usuarios no podrán cambiarlo ni anularlo. + +Nota: Actualmente, los reinicios automáticos solo están habilitados mientras se muestra la pantalla de inicio de sesión o mientras haya una sesión de una aplicación de kiosco.</translation> <translation id="6471018476824827813">Se permite la recogida de métricas con clave de URL</translation> +<translation id="6471927932956897852">Especifica si se pueden utilizar conexiones P2P para las cargas útiles de las actualizaciones del SO. +Si se le asigna el valor True, los dispositivos compartirán e intentarán consumir cargas útiles de actualizaciones en la red LAN, lo que podría reducir el uso del ancho de banda de Internet y la congestión de la red. Si la carga útil de actualizaciones no está disponible en la red LAN, el dispositivo realizará las descargas desde un servidor de actualizaciones. +Si se le asigna el valor False, no se utilizarán conexiones P2P. + +NOTA: El comportamiento predeterminado de los dispositivos de usuarios particulares no es el mismo que el de los dispositivos de empresas. En los dispositivos gestionados, las conexiones P2P estarán habilitadas. Sin embargo, en los dispositivos no gestionados, las conexiones P2P estarán inhabilitadas.</translation> <translation id="6473623140202114570">Configura la lista de dominios en los que la Navegación segura no activará advertencias.</translation> <translation id="6474194795370862403">Se usará el comportamiento anterior de offsetParent.</translation> <translation id="647645276885673708">Habilitar <ph name="LACROS_NAME" /> y convertirlo en el navegador principal</translation> @@ -6416,6 +6529,11 @@ <translation id="6670794785040100077">Inhabilitar el envío de documentos a <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="6672070613706645316">Permite a los usuarios personalizar la imagen de fondo de la página Nueva pestaña</translation> <translation id="6672630473862787247">Habilita la autenticación pasiva en sesiones normales, de incógnito y de invitado.</translation> +<translation id="6676012253361586167">Especifica si está permitida la redirección de puertos a contenedores de Crostini. + +Si se le asigna el valor True a esta política o no se establece, los usuarios podrán configurar la redirección de puertos a sus contenedores de Crostini. + +Si se le asigna el valor False, se inhabilitará la redirección de puertos a contenedores de Crostini.</translation> <translation id="6677291257287862684">Habilitar las teclas persistentes en la pantalla de inicio de sesión</translation> <translation id="6682305153467826752">Habilitar informes de datos sobre la identificación de equipos</translation> <translation id="6685903773201985073">Habilita la autenticación pasiva en sesiones normales y de invitado.</translation> @@ -6790,6 +6908,9 @@ Si se ha seleccionado otro modo para la configuración de las políticas de proxy, no se le debe asignar ningún valor a esta política. Nota: Puedes consultar ejemplos detallados en The Chromium Projects ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett ).</translation> +<translation id="7001915679435065291">Si se asigna el valor 1 a esta política, todos los sitios web podrán mostrar imágenes. Si se le asigna el valor 2, no se permitirá la visualización de imágenes. + +Si no se establece, podrán mostrarse imágenes, pero los usuarios podrán cambiar esta opción.</translation> <translation id="7002040773317582266">Habilita la comprobación en tiempo real de las URL de marcos principales.</translation> <translation id="7003746348783715221">Preferencias de <ph name="PRODUCT_NAME" /></translation> <translation id="7007283257527015835">Un indicador booleano que especifica si el controlador de protocolos debe ser la opción predeterminada.</translation> @@ -7388,6 +7509,9 @@ https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html </translation> +<translation id="7512514325152952954">Las cargas útiles de actualizaciones automáticas de <ph name="PRODUCT_OS_NAME" /> se pueden descargar a través de HTTP en lugar de HTTPS, lo que permite el almacenamiento en caché HTTP transparente de las descargas HTTP. + +Si a esta política se le asigna el valor true, <ph name="PRODUCT_OS_NAME" /> intentará descargar cargas útiles de actualizaciones automáticas a través de HTTP. Si se le asigna el valor false o no se establece, se utilizará HTTPS para descargar cargas útiles de actualizaciones automáticas.</translation> <translation id="7515953732107149296">Esta política se retiró en la versión M53 después de que RC4 se retirase de <ph name="PRODUCT_NAME" />. Si esta política no se define o se le asigna el valor false, no se habilitarán los paquetes de cifrado RC4 en TLS. De lo contrario, se le podrá asignar el valor true para mantener la compatibilidad con un servidor obsoleto. Se trata de una solución provisional y se debería volver a configurar el servidor.</translation> @@ -7400,6 +7524,11 @@ Si no se asigna ningún valor a esta política o se le asigna el valor "True", se mostrará una alerta para recordar a los usuarios que deben salir del modo de pantalla completa antes de escribir la contraseña. Si se le asigna el valor "False", no se mostrará ninguna alerta.</translation> <translation id="7531630046107845550">Permitir conexiones salientes SSH en la aplicación del sistema Terminal</translation> +<translation id="7533385610709354870">A menos que la política <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> se haya inhabilitado, si se habilita <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" />,<ph name="PRODUCT_NAME" /> se conectará con los dispositivos de emisión de todas las direcciones IP, no solo con las direcciones privadas de RFC1918/RFC4193. + +Si se inhabilita esta política, <ph name="PRODUCT_NAME" /> solo se conectará con dispositivos de emisión en direcciones de RFC1918/RFC4193. + +Si esta política no se establece, <ph name="PRODUCT_NAME" /> solo se conectará con dispositivos de emisión de direcciones de RFC1918/RFC4193, a menos que la función CastAllowAllIPs esté activada.</translation> <translation id="7534199150025803530">Esta política no afecta a la aplicación Google Drive para Android. Si quieres impedir el uso de esta aplicación en conexiones de datos móviles, debes inhabilitar la descarga de Google Drive para Android.</translation> <translation id="7538583957913002726">Esta política está habilitada de forma predeterminada. Controla si los dispositivos registrados informan sobre el nombre del modelo, la arquitectura y la velocidad máxima de reloj de la CPU (además del uso y la temperatura de la CPU en M96 y versiones posteriores). @@ -7689,6 +7818,13 @@ Si no se establece esta política, <ph name="DEFAULT_CLIPBOARD_SETTING" /> se aplicará a todos los sitios si se ha definido. Si no, se aplicará la configuración personal del usuario. Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Esta política no acepta el valor <ph name="WILDCARD_VALUE" />.</translation> +<translation id="7790221177424764797">Esta política controla si se cargarán las reglas de la política SiteList de <ph name="IE_PRODUCT_NAME" />. + +Si se le asigna el valor true a esta política, <ph name="PRODUCT_NAME" /> usará la política <ph name="IEEM_SITELIST_POLICY" /> de <ph name="IE_PRODUCT_NAME" /> para obtener la URL de la lista de sitios. Después, <ph name="PRODUCT_NAME" /> descargará la lista de sitios de esa URL y aplicará las reglas como si se hubieran configurado con la política <ph name="BROWSER_SWITCHER_URL_LIST_POLICY_NAME" />. + +Si se le asigna el valor false o no se establece, <ph name="PRODUCT_NAME" /> no usará la política <ph name="IEEM_SITELIST_POLICY" /> de <ph name="IE_PRODUCT_NAME" /> como fuente de reglas para cambiar de navegador. + +Para obtener más información sobre la política <ph name="IEEM_SITELIST_POLICY" /> de Internet Explorer, consulta https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="7791215522423893512">No permitir que los usuarios hagan capturas de pantalla ni graben vídeos</translation> <translation id="7792796937016596423">El usuario no podrá realizar capturas de paquetes de red</translation> <translation id="7798441698807517880">Esta política se quitó a partir de la versión 89 de <ph name="PRODUCT_NAME" /> porque <ph name="FLASH_PLUGIN_NAME" /> ya no está disponible. @@ -8002,6 +8138,11 @@ Si se asigna un valor a esta política, el usuario no podrá cambiarlo ni anularlo.</translation> <translation id="8080200590486938727">Inhabilitar el buscador de complementos</translation> +<translation id="8086746212954621799">Inhabilita las actualizaciones automáticas si se le asigna el valor True. + +Los dispositivos de <ph name="PRODUCT_OS_NAME" /> comprobarán automáticamente si hay actualizaciones si no se configura esta opción o se le asigna el valor False. + +Advertencia: Se recomienda mantener habilitadas las actualizaciones automáticas para que los usuarios reciban actualizaciones de software y correcciones de seguridad críticas. Desactivar las actualizaciones automáticas podría poner en riesgo a los usuarios.</translation> <translation id="8089200718228084417">Habilitar el protocolo Privet de impresión obsoleto</translation> <translation id="8091982561085048989">Indicador booleano que especifica si se debe usar IPP Everywhere para configurar la impresora. Este indicador es compatible con <ph name="PRODUCT_OS_NAME" /> 76 y versiones posteriores.</translation> <translation id="8094095107731619070">Habilitar la autocorrección en el teclado físico cuando los usuarios escriban</translation> @@ -8619,6 +8760,15 @@ Si la política no se establece, los informes se suben cada 24 horas. Si se establece, el número de horas entre dos subidas de informe sucesivas lo define esta política.</translation> +<translation id="8618037841203431360">Esta política determina si se proporcionan datos de políticas y la hora de su obtención. + +Si no se establece la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o se inhabilita, esta se ignorará. + +Si no se establece la política o se le asigna el valor True, se recogerán datos de políticas y la hora de su obtención. +Si se le asigna el valor False, no se recogerán datos de políticas ni la hora de su obtención. + +En el caso de <ph name="PRODUCT_NAME" />, esta política solo es efectiva si el equipo está registrado en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />. +En el caso de <ph name="PRODUCT_OS_NAME" />, esta política siempre es efectiva.</translation> <translation id="8619748440665904084">Inhabilitar la importación de los datos para autocompletar formularios en la primera ejecución</translation> <translation id="8623672932476443039">Si se habilita la política, los usuarios podrán acceder al modo desarrollador para aplicaciones aisladas. Si se inhabilita, los usuarios no podrán acceder a esta función. @@ -9014,6 +9164,9 @@ Esta comprobación se activará siempre que se cargue la pantalla de inicio de sesión y se repetirá cada hora (si el dispositivo se mantiene en la pantalla de inicio de sesión). Así, se evita que la migración comience en medio de la sesión de un usuario, lo que podría causar problemas a los usuarios finales.</translation> <translation id="9003823644527627017">Configurar las VMs de Bruschetta en <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="9004469022085379212">Si se habilita esta política, el dispositivo podrá ejecutar máquinas virtuales en <ph name="PRODUCT_OS_NAME" />. Para poder usar <ph name="PRODUCT_CROSTINI_NAME" />, las políticas <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> y <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> deben estar habilitadas. Si se inhabilita la política, el dispositivo no podrá ejecutar máquinas virtuales. En caso de inhabilitar la política, esto se aplicará a las nuevas máquinas virtuales que se empiecen a usar, pero no a las que ya estén ejecutándose. + +Si no se establece la política en un dispositivo gestionado, este no podrá ejecutar máquinas virtuales. Los dispositivos no gestionados pueden ejecutar máquinas virtuales.</translation> <translation id="9007632512838819703">Esta política está obsoleta. Usa la política <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" /> en su lugar. Permite forzar la inhabilitación del corrector ortográfico de idiomas. Se ignorarán los idiomas no reconocidos de esa lista. @@ -9161,6 +9314,9 @@ <translation id="9098409326885953506">Detectar ventanas tapadas y dejar de generar sus píxeles</translation> <translation id="9105265795073104888">Solo se habilita la disponibilidad de un subconjunto de opciones de proxy para las aplicaciones de Android. Estas pueden elegir voluntariamente el uso del proxy. No puedes forzarlas a que utilicen un proxy.</translation> <translation id="9106865192244721694">Permitir WebUSB en estos sitios web</translation> +<translation id="9107635531763682565">Si se asigna el valor 1 a esta política, los sitios web podrán mostrar notificaciones de escritorio. Si se le asigna el valor 2, no se permitirán las notificaciones de escritorio. + +Si no se establece, se aplicará la política <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />, pero los usuarios podrán cambiar esta opción.</translation> <translation id="9110251436602897914">Proporcionar información sobre los periféricos conectados al dispositivo</translation> <translation id="9111850884577810507">Este campo debe coincidir con una de las cadenas que representan una impresora compatible con <ph name="PRODUCT_NAME" />. La cadena se usará para identificar e instalar los archivos PPD adecuados para la impresora. Puedes consultar más información en https://support.google.com/chrome?p=noncloudprint.</translation> <translation id="9112727953998243860">Archivo de configuración de las impresoras de empresa</translation> @@ -9284,6 +9440,9 @@ <translation id="9191821120522935133">Permite habilitar la limitación de iframes no visibles de orígenes cruzados.</translation> <translation id="9192220384862917760">Habilitar el modo de cortina en hosts de acceso remoto</translation> <translation id="9195766455191826480">No enviar información sobre el estado de seguridad</translation> +<translation id="9197238499850071076">Especifica si el dispositivo debería restaurar la versión establecida por <ph name="DEVICE_TARGET_VERSION_PREFIX_POLICY_NAME" /> si ya utiliza una versión posterior. + +El valor predeterminado es RollbackDisabled.</translation> <translation id="9197740283131855199">Porcentaje que permite ajustar el tiempo de espera de inactividad de la pantalla si el usuario vuelve a ser activo después de la inactividad</translation> <translation id="9200828125069750521">Parámetros para URL de imagen que utiliza POST</translation> <translation id="9204863016826119209">Las aplicaciones Android que estén instaladas y aparezcan en esta política pueden usar claves corporativas.</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index c54c135..9de4128b 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -1828,7 +1828,6 @@ Si cette règle n'est pas définie, <ph name="PRINTERS_ALLOW_ALL" /> est appliqué.</translation> <translation id="2581338546762479588">Autoriser le redémarrage automatique après les mises à jour</translation> -<translation id="2582855747769273665">URL permettant aux utilisateurs d'en savoir plus. Si cette règle n'est pas configurée, plus aucune URL "En savoir plus" ne figurera dans le programme d'installation.</translation> <translation id="2586117300379904732">Autoriser les wakelocks pour la gestion de l'alimentation</translation> <translation id="2586231026319371211">Heure au format 24h local.</translation> <translation id="2587719089023392205">Définir <ph name="PRODUCT_NAME" /> comme navigateur par défaut</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 2c5bdba..7f178fc 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -968,6 +968,11 @@ <translation id="1861206724856734193">Menyetel daftar aturan pencegahan kebocoran data.</translation> <translation id="1862267110714201519">Nonaktifkan fitur jendela bayangan.</translation> <translation id="1865417998205858223">Izin Kunci</translation> +<translation id="1865867000796030567">Jika kebijakan disetel ke Aktif, nilai kunci manifes <ph name="REQUIRED_PLATFORM_VERSION" /> pada aplikasi kios yang diluncurkan otomatis tanpa penundaan akan digunakan sebagai prefiks versi target update otomatis. + +Jika kebijakan disetel ke Nonaktif atau tidak disetel, kunci manifes <ph name="REQUIRED_PLATFORM_VERSION" /> akan diabaikan dan update otomatis akan berjalan seperti biasa. + +Peringatan: Jangan mendelegasikan kontrol versi <ph name="PRODUCT_OS_NAME" /> ke aplikasi kios, karena dapat mencegah perangkat menerima update software dan perbaikan keamanan penting. Mendelegasikan kontrol versi <ph name="PRODUCT_OS_NAME" /> dapat membahayakan pengguna.</translation> <translation id="186719019195685253">Kebijakan yang diambil saat penundaan nganggur tercapai ketika dijalankan pada daya AC</translation> <translation id="1869688072690234823">Menyetel kebijakan akan mengontrol faktor WebAuthn yang dapat digunakan. @@ -1204,6 +1209,11 @@ Jika kebijakan tidak disetel atau disetel ke daftar kosong, tidak akan ada mode buka kunci cepat yang tersedia bagi perangkat terkelola. Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan <ph name="QUICK_UNLOCK_MODE_ALLOW_LIST_POLICY_NAME" /></translation> +<translation id="2035995535603698706">Jika kebijakan disetel ke Aktif, gambar pihak ketiga di halaman dapat menampilkan perintah autentikasi. + +Jika kebijakan disetel ke Nonaktif atau tidak disetel, gambar pihak ketiga tidak dapat menampilkan perintah autentikasi. + +Kebijakan ini biasanya Dinonaktifkan sebagai pertahanan terhadap phishing.</translation> <translation id="2036522553891755455">Jika kebijakan disetel ke Aktif, penemuan berbagi (fitur Berbagi File Jaringan untuk <ph name="PRODUCT_NAME" />) akan menggunakan <ph name="NETBIOS_PROTOCOL" /> untuk menemukan berbagi di jaringan. Jika kebijakan disetel ke Nonaktif, penemuan berbagi tidak akan menggunakan protokol ini untuk menemukan berbagi. Jika kebijakan tidak disetel, perilaku default akan dinonaktifkan bagi pengguna terkelola dan aktif bagi pengguna lainnya.</translation> @@ -1373,6 +1383,19 @@ Untuk detail selengkapnya tentang sesi <ph name="WEBXR_AR_SESSION_ENUM_VALUE" />, lihat spesifikasi <ph name="WEBXR_AR_MODULE_API_NAME" />.</translation> <translation id="2175353308236295184">Objek konfigurasi JSON khusus aplikasi dengan sekumpulan key-value pair, mis. '"managedConfiguration": { "key1": value1, "key2": value2}'. Kunci ditentukan dalam manifes aplikasi.</translation> <translation id="2176115444876446233">Cegah pengguna mengumpulkan jejak performa di seluruh sistem.</translation> +<translation id="2177382213857119200">Memungkinkan Anda mengontrol apakah fitur Safe Browsing <ph name="PRODUCT_NAME" /> diaktifkan dan dalam mode apa fitur tersebut beroperasi. + + Jika kebijakan ini disetel ke 'NoProtection' (nilai 0), Safe Browsing selalu tidak aktif. + + Jika kebijakan ini disetel ke 'StandardProtection' (nilai 1, yang merupakan default), Safe Browsing selalu aktif dalam mode standar. + + Jika kebijakan ini disetel ke 'EnhancedProtection' (nilai 2), Safe Browsing selalu aktif dalam mode yang ditingkatkan, yang memberikan keamanan lebih baik, tetapi perlu membagikan lebih banyak informasi penjelajahan kepada Google. + + Jika Anda menyetel kebijakan ini sebagai sesuatu yang wajib, pengguna tidak dapat mengubah atau mengganti setelan Safe Browsing di <ph name="PRODUCT_NAME" />. + + Jika kebijakan ini tidak disetel, Safe Browsing akan beroperasi dalam mode Perlindungan Standar tetapi pengguna dapat mengubah setelan ini. + + Lihat https://support.google.com/chrome?p=safe_browsing_preferences untuk info selengkapnya tentang Safe Browsing.</translation> <translation id="2177696016354404697">Selalu nonaktifkan layar privasi</translation> <translation id="2178899310296064282">Terapkan setidaknya Mode Terbatas Menengah di YouTube</translation> <translation id="2180958780733364832">Mengontrol penggunaan Mode Headless</translation> @@ -1830,8 +1853,6 @@ Jika kebijakan tidak disetel, <ph name="PRINTERS_ALLOW_ALL" /> akan diberlakukan.</translation> <translation id="2581338546762479588">Izinkan mulai ulang otomatis setelah update</translation> -<translation id="2582855747769273665">URL yang dapat dikunjungi pengguna untuk mempelajari lebih lanjut. Jika tidak disetel, -tidak akan ada URL "pelajari lebih lanjut" di penginstal.</translation> <translation id="2586117300379904732">Izinkan penguncian layar saat aktif untuk pengelolaan daya</translation> <translation id="2586231026319371211">Waktu disesuaikan dengan format jam lokal 24 jam.</translation> <translation id="2587719089023392205">Setel <ph name="PRODUCT_NAME" /> sebagai Browser Default</translation> @@ -2031,6 +2052,11 @@ Jika kebijakan ini disetel ke salah (false), penampil PDF tidak akan dapat menganotasi PDF.</translation> <translation id="2769952903507981510">Mengonfigurasi nama domain yang dibutuhkan untuk hosting akses jarak jauh</translation> +<translation id="2770376586681635746">Mengontrol apakah pengguna dapat menambahkan akun Kerberos. + +Jika kebijakan ini diaktifkan atau tidak disetel, pengguna dapat menambahkan akun Kerberos melalui Setelan akun Kerberos di halaman setelan Kerberos. Pengguna dapat sepenuhnya mengontrol akun yang mereka tambahkan serta dapat mengubah atau menghapusnya. + +Jika kebijakan ini dinonaktifkan, pengguna tidak dapat menambahkan akun Kerberos. Akun hanya dapat ditambahkan melalui kebijakan 'Konfigurasi akun Kerberos'. Ini adalah cara yang efektif untuk mengunci akun.</translation> <translation id="2772231477628401250">Gunakan HTTP untuk download update</translation> <translation id="2772955711376920612">Menyetel kebijakan ke Aktif serta menyetel <ph name="DEVICE_POWER_PEAK_SHIFT_BATTERY_THRESHOLD_POLICY_NAME" /> dan <ph name="DEVICE_POWER_PEAK_SHIFT_DAY_CONFIG_POLICY_NAME" /> akan terus memicu pengaktifan daya baterai, jika didukung di perangkat. Kebijakan manajemen pengaktifan daya baterai adalah kebijakan penghematan daya yang meminimalkan penggunaan arus listrik AC selama waktu penggunaan puncak. Untuk setiap hari kerja, Anda dapat menyetel waktu mulai dan waktu akhir untuk menjalankan sistem dalam mode pengaktifan daya baterai. Selama baterai tetap berada di atas nilai minimum yang ditentukan, perangkat akan berjalan menggunakan daya baterai (meski arus listrik AC terhubung) selama waktu tersebut. Setelah waktu akhir yang ditentukan, perangkat akan berjalan menggunakan arus listrik AC (jika terhubung), tetapi tidak akan mengisi daya baterai. Perangkat akan berfungsi normal kembali menggunakan arus listrik AC dan mengisi ulang daya baterai setelah waktu mulai pengisian daya yang ditentukan. @@ -3788,6 +3814,9 @@ Jika kebijakan ini tidak disetel, resolusi DNS sistem dapat berjalan di dalam layanan jaringan, di luar layanan jaringan, atau sebagian di dalam dan sebagian di luar layanan jaringan, bergantung pada konfigurasi sistem dan tombol fitur.</translation> <translation id="4239720644496144453">Cache tidak digunakan untuk aplikasi Android. Jika beberapa pengguna menginstal aplikasi Android yang sama, aplikasi akan didownload lagi untuk setiap pengguna.</translation> <translation id="424318624725112807">Aktifkan sorotan tanda sisipan di layar login</translation> +<translation id="4245159233848584683">Jika kebijakan disetel ke Aktif atau tidak disetel dan akun lokal perangkat disetel untuk login otomatis tanpa penundaan, <ph name="PRODUCT_OS_NAME" /> akan menampilkan perintah konfigurasi jaringan saat perangkat offline. + +Jika kebijakan disetel ke Nonaktif, pesan error akan ditampilkan.</translation> <translation id="4248277954659222481">Izinkan pemutaran otomatis media pada pola URL yang diizinkan</translation> <translation id="4250680216510889253">Tidak</translation> <translation id="4252522848899331223">Izinkan pengguna mengabaikan peringatan Safe Browsing</translation> @@ -3932,6 +3961,11 @@ <translation id="4410236409016356088">Aktifkan pembatasan bandwidth jaringan</translation> <translation id="4411734231900934213">Perbedaan yang diizinkan antara jam di perangkat anak dan orang tua (dalam detik).</translation> <translation id="441217499641439905">Nonaktifkan Google Drive melalui koneksi seluler di aplikasi File <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="4412885120239670573">Jika kebijakan disetel ke Aktif, penampil PDF internal di <ph name="PRODUCT_NAME" /> akan dinonaktifkan, file PDF akan dianggap sebagai hasil download, dan pengguna akan diizinkan membuka PDF dengan aplikasi default. + +Jika kebijakan disetel ke Nonaktif, file PDF akan dibuka kecuali jika pengguna menonaktifkan plugin PDF. + +Jika Anda menyetel kebijakan, pengguna tidak dapat mengubahnya di <ph name="PRODUCT_NAME" />. Jika kebijakan tidak disetel, pengguna dapat memilih apakah akan membuka PDF secara eksternal atau tidak.</translation> <translation id="4413453659814156568">Memungkinkan Anda menetapkan daftar pola URL yang menentukan situs yang diizinkan untuk menjalankan JavaScript dengan compiler JIT (Just In Time) yang diaktifkan. Untuk informasi selengkapnya tentang pola URL situs yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> bukanlah nilai yang diterima untuk kebijakan ini. @@ -4021,6 +4055,7 @@ <translation id="4482784169143060077">Mengaktifkan upgrade HTTPS otomatis</translation> <translation id="4483120730995943109">Fungsi setTimeout() JavaScript dengan waktu tunggu 0 md tidak akan dibulatkan ke 1 md.</translation> <translation id="4483649828988077221">Nonaktifkan Update Otomatis</translation> +<translation id="4483738129334574255">Nonaktifkan game dinosaurus sebagai fitur tersembunyi di perangkat <ph name="PRODUCT_OS_NAME" /> yang terdaftar, aktifkan dalam kondisi lain</translation> <translation id="4484515651939984695">Menentukan durasi (dalam detik) perangkat transmisi yang dipilih dengan kode akses atau kode QR untuk tetap berada dalam daftar perangkat transmisi pada menu <ph name="PRODUCT_NAME" />.</translation> <translation id="4485425108474077672">Mengonfigurasi URL halaman Tab Baru</translation> <translation id="4490420545181481759">Sertifikat X.509 dapat mengenkode batasan, seperti Batasan Nama, @@ -4353,6 +4388,7 @@ Di instance <ph name="MAC_OS_NAME" />, aplikasi dan ekstensi yang bukan dari Chrome Web Store hanya dapat diinstal otomatis jika instance dikelola melalui MDM, dihubungkan ke domain melalui MCX, atau didaftarkan di <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />.</translation> <translation id="4742973303930120836">Membatasi mode pencetakan grafis latar belakang</translation> +<translation id="4744467872051608680">Mulai M119, jika kebijakan ini disetel ke salah (false) atau tidak disetel, WebSQL akan dinonaktifkan, tetapi dapat diaktifkan melalui tanda Chrome "web-sql-access". Jika kebijakan disetel ke benar (true), akses WebSQL akan diaktifkan.</translation> <translation id="4745232963710538589">Mengaktifkan ekstensi insight untuk melaporkan metrik penggunaan</translation> <translation id="4749670563834935149">Mengaktifkan <ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" /> untuk daftar URL di layar login dan layar kunci. @@ -4933,6 +4969,9 @@ Untuk informasi selengkapnya tentang pola <ph name="URL_LABEL" /> yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Kebijakan ini hanya mencocokkan berdasarkan asal, sehingga jalur apa pun di pola URL akan diabaikan.</translation> <translation id="5318185076587284965">Aktifkan penggunaan server relay oleh hosting akses jarak jauh</translation> +<translation id="5321624917465764266">Jika kebijakan disetel ke Aktif atau tidak disetel, histori browser dan histori download dapat dihapus di Chrome, dan pengguna tidak dapat mengubah setelan ini. + +Jika kebijakan disetel ke Nonaktif, histori browser dan histori download tidak dapat dihapus. Meskipun kebijakan ini dinonaktifkan, histori penjelajahan dan download tidak dijamin akan dipertahankan. Pengguna dapat langsung mengedit atau menghapus file database histori, dan browser dapat tidak berlaku lagi atau mengarsipkan beberapa atau semua item histori setiap saat.</translation> <translation id="5323200200131319468">Mengaktifkan respons lisan di layar login</translation> <translation id="5323271643727095577">Jangan tampilkan dialog pembatalan saat event.preventDefault() dipanggil untuk peristiwa beforeunload. Tampilkan dialog pembatalan jika event.returnValue berisi string kosong untuk peristiwa beforeunload.</translation> <translation id="5323355956693037267">Aktifkan keyboard virtual di layar login</translation> @@ -5173,6 +5212,9 @@ <translation id="5535256585099022933">Menyetel interval waktu untuk peluncuran kembali</translation> <translation id="553806128266843748">Tanda boolean menunjukkan jika throttling diaktifkan.</translation> <translation id="5540885720415375851">Izinkan penemuan perangkat lokal</translation> +<translation id="5542235730745104308">Jika kebijakan disetel ke Benar (True), <ph name="PRODUCT_NAME" /> akan menggunakan halaman error alternatif yang telah disertakan dalam browser tersebut (seperti "halaman tidak ditemukan"). Jika kebijakan disetel ke Salah (False), <ph name="PRODUCT_NAME" /> tidak akan pernah menggunakan halaman error alternatif. + +Jika Anda menyetel kebijakan, pengguna tidak dapat mengubahnya. Jika tidak disetel, kebijakan akan aktif tetapi pengguna dapat mengubah setelan ini.</translation> <translation id="5544059132156503357">Jika kebijakan disetel, jenis enkripsi yang diizinkan akan ditentukan saat meminta tiket Kerberos dari server <ph name="MS_AD_NAME" />. Jika kebijakan disetel ke: @@ -5943,6 +5985,9 @@ <translation id="625580680776945310">Mode Efisiensi Tinggi akan diaktifkan.</translation> <translation id="6258658183356534534">Mengontrol fitur Pembaruan GREASE Petunjuk Klien Agen Pengguna.</translation> <translation id="6261643884958898336">Laporkan informasi Identifikasi Mesin</translation> +<translation id="6264247808139384018">Jika kebijakan disetel ke Aktif atau tidak disetel, pengguna yang melakukan autentikasi dengan sandi akan dapat mengunci layar. + +Jika kebijakan disetel ke Nonaktif, pengguna tidak dapat mengunci layar. (Pengguna hanya dapat logout dari sesi pengguna).</translation> <translation id="6265892395051519509">Mengizinkan akses ke sensor di situs ini</translation> <translation id="6266043141694454734">Menentukan apakah Chrome Root Store dan pemverifikasi sertifikat bawaan akan digunakan untuk memverifikasi sertifikat server</translation> <translation id="6267130578410325007">Kebijakan ini mengizinkan pengelompokan cluster agen dengan kunci origin secara default. @@ -6216,6 +6261,9 @@ <translation id="6412352702230183710">Hanya izinkan host pesan native tingkat sistem</translation> <translation id="6416506846917150119">Nonaktifkan penulisan prediktif keyboard fisik saat pengguna mengetik</translation> <translation id="6417265370957905582">Asisten Google</translation> +<translation id="6421254653839955267">Jika kebijakan disetel ke Aktif, pencarian CNAME akan dilewati. Nama server akan digunakan sebagaimana dimasukkan saat menghasilkan SPN Kerberos. + +Jika kebijakan disetel ke Nonaktif atau tidak disetel, pencarian CNAME akan menentukan nama kanonis server saat menghasilkan SPN Kerberos.</translation> <translation id="6424485010103067949"><ph name="OMA_URI" />:</translation> <translation id="6424486395812679373">Lakukan pemeriksaan Safe Browsing pada semua file yang didownload</translation> <translation id="6433697627431665375">Cegah data <ph name="PRODUCT_NAME" /> disertakan dalam cadangan</translation> @@ -6344,6 +6392,11 @@ Nilai kebijakan harus ditentukan dalam milidetik. Nilai dikunci agar kurang dari penundaan waktu tidak ada aktivitas.</translation> <translation id="6497085755801788141">Gunakan pemverifikasi sertifikat bawaan</translation> +<translation id="6504720469162323184">Jika kebijakan disetel, jumlah waktu dalam milidetik tanpa aktivitas pengguna sebelum login otomatis ke akun lokal perangkat akan ditetapkan sebagaimana ditentukan oleh kebijakan <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_ID_POLICY_NAME" />. + +Jika kebijakan tidak disetel, 0 milidetik akan digunakan sebagai waktu tunggu. + +Jika kebijakan <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_ID_POLICY_NAME" /> tidak disetel, kebijakan ini tidak akan berpengaruh.</translation> <translation id="65055701428353978">Menyetel kebijakan ini akan menentukan, untuk setiap ekstensi yang terpengaruh, daftar URL alihan OAuth yang dapat digunakan oleh ekstensi dengan <ph name="IDENTITY_API_NAME" /> API (<ph name="IDENTITY_API_URL" />) @@ -6447,6 +6500,7 @@ Perlu diketahui bahwa kebijakan ini dapat diganti dengan EnabledPlugins dan DisabledPluginsExceptions. Jika kebijakan ini tidak ditetapkan, pengguna dapat menggunakan plugin mana pun yang diinstal di sistem kecuali plugin yang tidak kompatibel saat dilakukan hard code, usang, atau berbahaya.</translation> +<translation id="6571055160227165318">Izinkan WebSQL diaktifkan oleh tanda Chrome.</translation> <translation id="6574903167639386816">Hapus data profil di disk saat sesi pengguna berakhir</translation> <translation id="6575403002861093126">Jika kebijakan disetel, durasi cache Objek Kebijakan Grup (GPO) akan ditetapkan dalam hitungan jam. Durasi GPO maksimum dapat digunakan kembali sebelum didownload ulang. Daripada mendownload ulang GPO pada setiap pengambilan kebijakan, sistem akan menggunakan kembali GPO yang di-cache selama versinya tidak berubah. @@ -6575,6 +6629,11 @@ Jika kebijakan disetel ke Nonaktif atau tidak disetel, perintah cetak akan memicu layar pratinjau cetak.</translation> <translation id="6655274714135630366">Hash SHA-256 dengan enkode heksadesimal pada disk image.</translation> +<translation id="6655844456903132379">Jika kebijakan disetel ke Aktif, autentikasi HTTP akan mematuhi persetujuan dari kebijakan KDC. Dengan kata lain, <ph name="PRODUCT_NAME" /> akan mendelegasikan kredensial pengguna ke layanan yang sedang diakses jika KDC menyetel <ph name="OK_AS_DELEGATE" /> pada tiket layanan. Lihat RFC 5896 ( https://tools.ietf.org/html/rfc5896.html ). Layanan juga harus diizinkan oleh <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" />. + +Jika kebijakan disetel ke Nonaktif atau tidak disetel, kebijakan KDC akan diabaikan di platform yang didukung dan hanya <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> yang akan dipatuhi. + +Di <ph name="MS_WIN_NAME" />, kebijakan KDC selalu dipatuhi.</translation> <translation id="6658245400435704251">Menentukan jumlah waktu (dalam detik) sebuah perangkat dapat menunda download pembaruannya secara acak dari saat pembaruan tersebut pertama kali didorong ke server. Perangkat dapat menunggu dengan sebagian dari waktu ini dari segi prediksi waktu penyelesaian tugas dan sisa waktunya dari segi jumlah pemeriksaan pembaruan. Dalam keadaan apa pun, penyebaran dibatasi dengan jumlah waktu yang konstan sehingga perangkat tidak akan terus menunggu download pembaruan selamanya.</translation> <translation id="6659537776197644458">Jangan picu alur autentikasi untuk sinkronisasi sandi</translation> <translation id="6661178198729301029">Aktifkan pelaporan cloud profil terkelola</translation> @@ -7130,6 +7189,11 @@ Jika kebijakan disetel ke Salah (False), fungsi ini akan dinonaktifkan.</translation> <translation id="7123271473727774529">Mengaktifkan fitur aksesibilitas koreksi warna</translation> <translation id="7126716959063786004">Aktifkan proses diakhiri di Pengelola Tugas</translation> +<translation id="7126787606641224668">Mengontrol apakah fitur 'Ingat sandi' diaktifkan di dialog autentikasi Kerberos. Sandi disimpan dan dienkripsi di disk, serta hanya dapat diakses oleh daemon sistem Kerberos dan selama sesi pengguna. + +Jika kebijakan ini disetel ke aktif atau tidak disetel, pengguna dapat menentukan apakah sandi Kerberos akan diingat, sehingga pengguna tidak perlu memasukkannya lagi. Tiket Kerberos diambil secara otomatis, kecuali jika diperlukan autentikasi tambahan (autentikasi 2 langkah). + +Jika kebijakan ini disetel ke nonaktif, sandi tidak akan diingat dan semua sandi yang disimpan sebelumnya akan dihapus. Pengguna harus memasukkan sandinya setiap kali mereka perlu melakukan autentikasi dengan sistem Kerberos. Hal ini biasanya terjadi antara setiap 8 jam hingga beberapa bulan, tergantung pada setelan server.</translation> <translation id="7126928806195745404">Setelan JavaScript</translation> <translation id="7127980134843952133">Histori download</translation> <translation id="7128513247945602297">Mengaktifkan upgrade otomatis konten campuran di situs HTTPS</translation> @@ -7197,6 +7261,9 @@ <translation id="7157329428182136164">Aktifkan dukungan untuk 3D graphics API</translation> <translation id="7158358621906236999">Setelan default sensor</translation> <translation id="7161568070244869726">Paksa pengaktifan AppCache</translation> +<translation id="7165879643294314958">Jika kebijakan disetel ke Aktif atau tidak disetel, akun lokal perangkat akan disiapkan untuk login otomatis tanpa penundaan. <ph name="PRODUCT_OS_NAME" /> akan mematuhi pintasan keyboard Ctrl+Alt+S untuk melewati login otomatis dan menampilkan layar login. + +Jika kebijakan disetel ke Nonaktif, pengguna tidak dapat melewati login otomatis tanpa penundaan (jika dikonfigurasi).</translation> <translation id="7165882688932913315">Kebijakan ini mengontrol akses ke fitur yang dapat dikontrol di UI penemuan lokal (<ph name="CHROME_DEVICES_LINK" />) yang menampilkan perangkat yang dapat ditemukan di dekat pengguna serta perangkat cloud yang terdaftar atas nama mereka. Pada semua sistem operasi kecuali <ph name="PRODUCT_OS_NAME" />, UI penemuan lokal juga mengizinkan pengguna menambahkan printer klasik yang terhubung dengan komputer mereka ke <ph name="CLOUD_PRINT_NAME" />. Jika kebijakan disetel ke Aktif atau tidak disetel, penemuan perangkat lokal akan diizinkan. @@ -7312,6 +7379,11 @@ <translation id="7269263983506766969">Gunakan prioritas default untuk proses audio</translation> <translation id="7270001383428188269">ID untuk sertifikat klien ini.</translation> <translation id="7271085005502526897">Impor beranda dari browser default saat pertama kali dijalankan</translation> +<translation id="7272892848025145170">Mengontrol apakah fungsi Kerberos aktif. Kerberos adalah protokol autentikasi yang dapat digunakan untuk mengautentikasi ke aplikasi web dan berbagi file. + +Jika kebijakan ini diaktifkan, fungsi Kerberos akan diaktifkan. Akun Kerberos dapat ditambahkan melalui kebijakan 'Konfigurasi akun Kerberos' atau melalui Setelan akun Kerberos di halaman setelan Kerberos. + +Jika kebijakan ini dinonaktifkan atau tidak disetel, Setelan akun Kerberos akan dinonaktifkan. Tidak ada akun Kerberos yang dapat ditambahkan dan autentikasi Kerberos tidak dapat digunakan. Semua akun Kerberos yang ada dan sandi yang disimpan akan dihapus.</translation> <translation id="7273785848231509306">Jangan tampilkan nama dan foto pengguna</translation> <translation id="7274077256421167535">Mengaktifkan berbagi daya USB</translation> <translation id="7275334191706090484">Bookmark Terkelola</translation> @@ -7973,6 +8045,9 @@ Jika kebijakan ini tidak ditetapkan, kontras tinggi mula-mula akan dinonaktifkan di layar login, tetapi dapat diaktifkan oleh pengguna kapan saja.</translation> <translation id="7864539943188674973">Nonaktifkan Bluetooth</translation> <translation id="7869986671709030417">Mode pencetakan grafis latar belakang default</translation> +<translation id="7872692545596413465">Jika kebijakan disetel ke Aktif dan port non-standar dimasukkan (selain port 80 atau 443), port tersebut akan disertakan dalam SPN Kerberos yang dihasilkan. + +Jika kebijakan disetel ke Nonaktif atau tidak disetel, SPN Kerberos yang dihasilkan tidak akan menyertakan port.</translation> <translation id="7877924399554599110">Memungkinkan penggabungan kebijakan cloud tingkat pengguna ke kebijakan tingkat mesin</translation> <translation id="7881421274383404138">Menyetel kebijakan ini akan mengonfigurasi printer perusahaan. Formatnya cocok dengan kamus <ph name="PRINTERS_POLICY_NAME" />, dengan tambahan kolom <ph name="ID_FIELD" /> dan <ph name="GUID_FIELD" /> yang diperlukan agar setiap printer mengizinkan atau menolak daftar. Ukuran file tidak boleh lebih dari 5 MB dan dalam format JSON. File yang berisi sekitar 21.000 printer dienkode sebagai file 5 MB. Hash kriptografi membantu memverifikasi integritas download. File didownload, disimpan dalam cache, dan didownload ulang ketika URL atau hash berubah. <ph name="PRODUCT_OS_NAME" /> mendownload file untuk konfigurasi printer dan menyediakan printer beserta <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME" />, <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" />, dan <ph name="PRINTERS_BULK_BLOCKLIST_POLICY_NAME" />. @@ -8025,6 +8100,11 @@ Kebijakan perusahaan ini dibuat untuk memungkinkan administrator mengontrol apakah pengguna dapat mengaktifkan throttling tambahan atau tidak. Jika kebijakan disetel ke nonaktif, throttling tidak akan diaktifkan. Jika kebijakan disetel ke aktif atau tidak disetel, pengguna dapat memilih untuk menjalankan throttling, atau mungkin dapat diaktifkan melalui variasi Chrome.</translation> <translation id="793188693675675950">Nonaktifkan impor halaman beranda saat browser pertama kali dijalankan</translation> +<translation id="7932017046032784156">Jika kebijakan disetel ke Aktif, ikon toolbar Cast akan ditampilkan di toolbar atau menu tambahan, dan pengguna tidak dapat menghapusnya. + +Jika kebijakan disetel ke Nonaktif atau tidak disetel, pengguna akan dapat menyematkan atau menghapus ikon melalui menu kontekstualnya. + +Jika kebijakan <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> disetel ke Nonaktif, nilai kebijakan ini tidak akan berpengaruh dan ikon toolbar tidak akan ditampilkan.</translation> <translation id="7933141401888114454">Mengaktifkan pembuatan pengguna yang dilindungi</translation> <translation id="793473937901685727">Menyetel ketersediaan sertifikat untuk aplikasi ARC</translation> <translation id="7936302526928951356">String Agen Pengguna tidak akan membekukan versi utama.</translation> @@ -8792,6 +8872,9 @@ <translation id="8584279193368801689">Membatasi mode pencetakan PIN. Kebijakan yang tidak ditetapkan dianggap sebagai tidak ada batasan. Jika mode ini tidak tersedia, kebijakan ini akan diabaikan. Perhatikan bahwa fitur pencetakan PIN hanya diaktifkan untuk printer yang menggunakan salah satu dari protokol IPPS, HTTPS, USB, atau IPP-over-USB.</translation> <translation id="8587229956764455752">Mengizinkan pembuatan akun pengguna baru</translation> <translation id="8589285015138337712">Larang pengguna untuk menyesuaikan pintasan sistem</translation> +<translation id="8589346048177748110">Jika kebijakan disetel ke Benar (True), pengguna akan diizinkan untuk memainkan game dinosaurus. Jika kebijakan disetel ke Salah (False), pengguna tidak dapat memainkan game dinosaurus sebagai fitur tersembunyi saat perangkat offline. + +Jika kebijakan tidak disetel, pengguna tidak dapat memainkan game di <ph name="PRODUCT_OS_NAME" /> yang terdaftar, tetapi dapat memainkannya dalam kondisi lain.</translation> <translation id="8591713876665299827">Perhatikan bahwa kebijakan ini sudah tidak digunakan lagi dan akan dihapus di <ph name="PRODUCT_OS_NAME" /> versi 85. Sebagai gantinya, gunakan <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />. Menentukan durasi waktu tanpa masukan pengguna setelah tindakan tidak ada aktivitas diambil saat menggunakan daya AC.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index f0ed0d2f..956f730 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -1821,8 +1821,6 @@ Se il criterio non viene configurato, viene applicato il valore <ph name="PRINTERS_ALLOW_ALL" />.</translation> <translation id="2581338546762479588">Consenti il riavvio automatico dopo gli aggiornamenti</translation> -<translation id="2582855747769273665">Un URL che gli utenti possono visitare per saperne di più. Se lo schema non viene configurato, -nel programma di installazione non verrà visualizzato alcun URL "Scopri di più".</translation> <translation id="2586117300379904732">Consenti wakelock per la gestione dell'alimentazione</translation> <translation id="2586231026319371211">L'ora nel formato di tempo reale di 24 ore locale.</translation> <translation id="2587719089023392205">Imposta <ph name="PRODUCT_NAME" /> come browser predefinito</translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 14c3b3c5..a33b883 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -609,6 +609,11 @@ このポリシーを無効に設定した場合、保護されていない HTTP リクエストで <ph name="BASIC_AUTH" /> 認証スキームの使用を禁止し、安全な HTTPS のみが許可されます。 <ph name="AUTH_SCHEMES_POLICY_NAME" /> ポリシーが設定されていて、<ph name="BASIC_AUTH" /> が含まれていない場合、このポリシーの設定は無視されます(また、<ph name="BASIC_AUTH" /> は常に禁止されます)。</translation> +<translation id="1573074208167290576">特定のサイトで混合コンテンツを許可する例外をユーザーが追加できるかどうかを設定できます。 + +特定の URL パターンに対しては、このポリシーよりも「InsecureContentAllowedForUrls」ポリシーと「InsecureContentBlockedForUrls」ポリシーを優先できます。 + +このポリシーを設定しない場合、ユーザーは、ブロック可能な混合コンテンツを許可する例外を追加し、任意でブロック可能な混合コンテンツの自動アップグレードを無効にできます。</translation> <translation id="1573444493980402757">ウィンドウの配置に関する権限を自動的に拒否するサイトの URL パターンのリストを指定できます。デバイスの画面に関する情報の取得や、その情報を使用したウィンドウの表示と配置、特定の画面での全画面表示のリクエストといったサイトの機能が制限されます。 有効なサイトの URL パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。ワイルドカード(<ph name="WILDCARD_VALUE" />)を使用できます。このポリシーでは、オリジンのみが照合されるため、URL パターンのパスは無視されます。 @@ -876,6 +881,13 @@ このポリシーはサポートが終了しています。代わりに <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> を使用してください。 </translation> +<translation id="1825583118566970564">外部拡張機能のインストールを管理します。 + +このポリシーを有効に設定した場合は、外部拡張機能のインストールがブロックされます。 + +このポリシーを無効に設定するか未設定のままにした場合は、外部拡張機能のインストールが許可されます。 + +外部拡張機能とそのインストール方法については、https://developer.chrome.com/apps/external_extensions をご覧ください。</translation> <translation id="1827523283178827583">固定プロキシ サーバーを使用する</translation> <translation id="1829117241432374848">管理対象アカウントを予備のアカウントのないメイン アカウントのみとする(ユーザーはプロフィールの作成時に既存の閲覧データをインポートできる)</translation> <translation id="1829839214911753838">このポリシーを有効に設定した場合、リモート サポート ホストは <ph name="UIACCESS_PERMISSION_NAME" /> 権限付きのプロセスで実行されます。これにより、リモート ユーザーはローカル ユーザーのデスクトップ上の権限昇格ウィンドウとやり取りできるようになります。 @@ -948,6 +960,15 @@ <ph name="RUN_ON_OS_LOGIN_FIELD" /> フィールドでは、OS へのログイン時にウェブアプリが実行可能かどうかを指定します。このフィールドを <ph name="BLOCKED" /> に設定した場合、OS へのログイン時にウェブアプリは実行されません。ユーザーが後からこの設定を有効にすることはできません。このフィールドを <ph name="RUN_WINDOWED" /> に設定した場合、OS へのログイン時にウェブアプリが実行されます。ユーザーが後からこの設定を無効にすることはできません。このフィールドを <ph name="ALLOWED" /> に設定した場合、OS へのログイン時にウェブアプリを実行するかどうかをユーザーが設定できます。デフォルトの設定では、<ph name="ALLOWED" /> と <ph name="BLOCKED" /> の値のみが許可されています。 (バージョン 117 以降)<ph name="PREVENT_CLOSE_FIELD" /> フィールドでは、ウェブアプリがなんらかの方法で(ユーザー、タスク マネージャー、ウェブ API などによって)終了されるのを防止するかどうかを指定します。この動作は、<ph name="RUN_ON_OS_LOGIN_FIELD" /> が <ph name="RUN_WINDOWED" /> に設定されている場合にのみ有効にできます。アプリがすでに実行中の場合、このプロパティはアプリを再起動した後でのみ有効になります。このフィールドが定義されていない場合は、ユーザーがアプリを終了できます。 (バージョン 118 以降)<ph name="FORCE_UNREGISTER_OS_INTEGRATION" /> フィールドでは、ウェブアプリ向けのすべての OS 統合(ショートカット、ファイル ハンドラ、プロトコル ハンドラなど)を削除するかどうかを指定します。アプリがすでに実行中の場合、このプロパティはアプリを再起動した後に有効になります。ウェブ アプリケーション システムの起動時に自動的に設定される OS 統合がある場合、動作がオーバーライドされる可能性があるため、この設定は慎重に使用してください。現在、対応しているプラットフォームは Windows、Mac、Linux のみです。</translation> +<translation id="1874719875297132073">このポリシーでは、ユーザーを識別できる情報(OS のログイン、<ph name="PRODUCT_NAME" /> プロフィールのログイン、<ph name="PRODUCT_NAME" /> プロフィール名、<ph name="PRODUCT_NAME" /> プロフィールのパス、<ph name="PRODUCT_NAME" /> 実行ファイルのパスなど)について、レポートを作成するかどうかを管理します。 + +ポリシー <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> が未設定のまま、または無効に設定されている場合、このポリシーは無視されます。 + +このポリシーを未設定のままにするか True にすると、ユーザーを識別できる情報が収集されます。 +このポリシーを False にすると、ユーザーを識別できる情報は収集されません。 + +<ph name="PRODUCT_NAME" /> の場合、このポリシーは <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> で登録されたマシンでのみ有効です。 +<ph name="PRODUCT_OS_NAME" /> の場合、このポリシーは常に有効です。</translation> <translation id="1883274744253492031">混合コンテンツの自動アップグレードを有効にする</translation> <translation id="1885782360784839335">タブ全体にプロモーション コンテンツを表示する</translation> <translation id="1888871729456797026">パソコンでのクラウド ポリシーの登録トークン</translation> @@ -975,6 +996,9 @@ このポリシーが未設定の場合、起動時には新しいタブページが開きます。 <ph name="MS_WIN_NAME" /> では、<ph name="MS_AD_NAME" /> ドメインに追加されたインスタンス、<ph name="MS_AAD_NAME" /> に追加されたインスタンス、または <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> に登録されているインスタンスでのみこのポリシーを使用できます。</translation> +<translation id="1897095538209040086">このポリシーを有効に設定するか未設定のままにした場合、<ph name="PRODUCT_NAME" /> では代替ブラウザへの切り替え後も、少なくとも 1 つのタブが開いたままになります。 + +このポリシーを無効に設定した場合、<ph name="PRODUCT_NAME" /> では代替ブラウザへの切り替え後に、タブが最後のタブであっても閉じられます。その結果、<ph name="PRODUCT_NAME" /> は完全に終了します。</translation> <translation id="1897365952389968758">すべてのサイトに対して JavaScript の実行を許可する</translation> <translation id="1902043648529789224">シェルフの位置を管理する</translation> <translation id="1904323733389537794">このポリシーを True に設定した場合、オンライン <ph name="OCSP_CRL_LABEL" /> チェックが実行されます。 @@ -1398,6 +1422,9 @@ <translation id="225830954785359083">アンロード中にページでポップアップを表示することを許可しない</translation> <translation id="2261648512244797294">サポートが終了している Privet 印刷を無効にする</translation> <translation id="2266422599396179941">ユーザーにフィードバックの送信を許可する</translation> +<translation id="2268891553068901979">このポリシーを有効に設定した場合、モバイル接続時に <ph name="PRODUCT_OS_NAME" /> ファイルアプリで <ph name="GOOGLE_DRIVE_NAME" />の同期がオフになります。この場合、データは Wi-Fi またはイーサネット接続時にのみドライブに同期されます。 + +このポリシーを無効に設定するか未設定のままにした場合、ユーザーはモバイル接続時にドライブにファイルを転送できます。</translation> <translation id="2269319728625047531">ログイン時に同期の同意メッセージを表示する</translation> <translation id="2270747976331889601">ローカルの信頼済みアンカーで TLS 1.3 セキュリティ機能を有効にする。</translation> <translation id="22754818344448444">読み込むデスク テンプレートのレイアウトの選択をユーザーに許可する</translation> @@ -1711,7 +1738,6 @@ このポリシーを未設定のままにした場合、<ph name="PRINTERS_ALLOW_ALL" /> が適用されます。</translation> <translation id="2581338546762479588">更新後の自動再起動を許可する</translation> -<translation id="2582855747769273665">ユーザーがアクセスして詳細を確認するための URL。未設定のままにすると、インストーラに「詳細」URL は表示されません。</translation> <translation id="2586117300379904732">電源管理の wake lock を許可する</translation> <translation id="2586231026319371211">地域の実経過時間を 24 時間制で表示します。</translation> <translation id="2587719089023392205"><ph name="PRODUCT_NAME" /> を既定のブラウザに設定する</translation> @@ -1851,6 +1877,9 @@ <translation id="2727844239611930002"><ph name="PRODUCT_NAME" /> が <ph name="PRIVACY_SANDBOX_NAME" /> のプロンプトを表示するかどうかを決定できるようにする。</translation> <translation id="2730200383593984228">Android アプリの使用を外部のユーザーに許可する</translation> <translation id="2730419309754848345">「PDF を画像として印刷する」のデフォルト</translation> +<translation id="2730644640965800157">このポリシーを有効に設定した場合、<ph name="PRODUCT_OS_NAME" /> ファイルアプリで <ph name="GOOGLE_DRIVE_NAME" /> の同期がオフになり、データはドライブにアップロードされません。 + +このポリシーを無効に設定するか未設定のままにした場合、ユーザーはドライブにファイルを転送できます。</translation> <translation id="2731299561202635374">このポリシーでは、安全でない URL を検出するリアルタイムの URL チェックを管理します。 このポリシーを未設定のままにするか [無効] に設定した場合は、一般ユーザー向けのセーフ ブラウジング チェックが行われます。一般ユーザー向けのセーフ ブラウジングでも、[検索とブラウジングを改善する] の設定の値と UrlKeyedAnonymizedDataCollectionEnabled ポリシーの値に基づいて、リアルタイムのチェックが行われる可能性があります。このポリシーを [有効] に設定した場合、URL は企業の利用規約に基づき、リアルタイムのチェックを行うため送信されます。URL は Google Cloud または指定された第三者に送信され、リアルタイムのチェックが行われます。一般ユーザー向けのセーフ ブラウジングによるリアルタイムのチェックはオフになります。 @@ -1904,6 +1933,9 @@ ExternalStorageReadOnly を False に設定するか未設定のままにした場合は、外部ストレージをブロックしていない限り、ユーザーは物理的に書き込みが可能な外部ストレージ デバイスに対してファイルの作成や変更ができます(ExternalStorageDisable を True に設定すると外部ストレージをブロックできます)。</translation> <translation id="2789742777235177478">SAML を使用せず GAIA 経由で認証されたユーザーがロック画面でのログインをオフラインで行える期間を制限する</translation> +<translation id="2795923835422513629">このポリシーを 1 に設定した場合、ウェブサイトによるポップアップの表示が許可されます。このポリシーを 2 に設定した場合、ポップアップは拒否されます。 + +このポリシーを未設定のままにした場合、<ph name="BLOCK_POPUPS_POLICY_NAME" /> は適用されますが、ユーザーはこの設定を変更できます。</translation> <translation id="2796714419743648316">アプリごとの時間制限の許可リスト</translation> <translation id="2801065672151277034">証明書の管理設定</translation> <translation id="2801155097555584385">バッテリー充電のカスタムの充電開始設定(%)を行う</translation> @@ -2387,6 +2419,9 @@ 有効な URL パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。このポリシーの値に「<ph name="WILDCARD_VALUE" />」は使用できません。</translation> <translation id="3205825995289802549">初回実行時に最初に表示されるブラウザ ウィンドウを最大化する</translation> +<translation id="320607884987562184">このポリシーを 1 に設定した場合、ウェブサイトによる JavaScript の実行が許可されます。このポリシーを 2 に設定した場合、JavaScript は拒否されます。 + +このポリシーを未設定のままにした場合、JavaScript は許可されますが、ユーザーはこの設定を変更できます。</translation> <translation id="3206959584699016689">このポリシーでは、モーション センサーや光センサーなどのセンサーへのアクセスを許可するサイトの URL パターンリストを指定できます。 このポリシーを未設定のままにした場合、<ph name="DEFAULT_SENSORS_SETTING_POLICY_NAME" /> が設定されていればその設定がすべてのサイトで使用され、設定されていなければユーザーの個人設定が適用されます。 @@ -2564,6 +2599,10 @@ <translation id="3362584244602846824">ワイヤレス アクセス ポイントが対応していれば高速切り替えを使用する</translation> <translation id="3363360928811201045">管理対象アカウントに制限を追加する</translation> <translation id="3364400740222114778">アカウント復元</translation> +<translation id="3367361756115023251">このユーザーに対して Crostini コンテナへのルートアクセスを許可します。 + +このポリシーが true または未設定の場合、Crostini コンテナへのルートアクセスがユーザーに許可されます。 +このポリシーが false の場合、Crostini コンテナ(新規、既存の両方)へのルートアクセスはユーザーに許可されません。</translation> <translation id="3373381043600809954"><ph name="PRODUCT_NAME" /> を有効にする</translation> <translation id="3374587000313305002"><ph name="PRODUCT_NAME" /> でユーザーデータの保存に使用するディレクトリを設定します。 @@ -2827,6 +2866,15 @@ <translation id="3554498762428140109">ネイティブ ウィンドウ オクルージョンを有効にする</translation> <translation id="3554984410014457319">Google アシスタントで音声サービスの起動ワードを有効にする</translation> <translation id="3557586898458302131">生成された Kerberos SPN に非標準ポートを含める</translation> +<translation id="3558024517032824255">Stable バージョンから随時ロールバックできる <ph name="PRODUCT_OS_NAME" /> のマイルストーンの最小数を指定します。 + +デフォルト値は、一般ユーザーの場合は 0、企業の登録済みデバイスの場合は 4(6 か月前後)となります。 + +このポリシーを設定すると、少なくとも指定されたマイルストーン数において、ロールバックに対する保護が適用されなくなります。 + +このポリシーの設定値を下げた場合は、永続的な影響が生じます。つまり、このポリシーをより大きな値に設定し直しても、デバイスを以前のバージョンに戻せなくなる可能性があります。 + +実際にロールバックが可能かどうかは、モデルや、重要な脆弱性の修正が適用されているかどうかによっても変わります。</translation> <translation id="35668690622495904"> 許可リストにないコンテキストで発生したという理由で呼び出しをブロックしない (その他の理由によりブロックされる可能性はあります)。</translation> <translation id="3568762199045490351">タイムアウトを 0 ミリ秒に設定した JavaScript setTimeout() に 1 ミリ秒のタイムアウトを含める。</translation> @@ -2900,6 +2948,15 @@ <translation id="3637063789824963261">このポリシーを有効に設定した場合、登録済みのデバイスはデバイスのランタイム カウンタを報告します(Intel vPro Gen 14 以降のみ)。 このポリシーを無効に設定するか未設定のままにした場合、登録済みのデバイスはデバイスのランタイム カウンタを記録または報告しません。</translation> +<translation id="3640677352428533707">このポリシーでは、バージョン情報(OS バージョン、OS プラットフォーム、OS アーキテクチャ、<ph name="PRODUCT_NAME" /> のバージョン、<ph name="PRODUCT_NAME" /> のチャンネルなど)について、レポートを作成するかどうかを管理します。 + +ポリシー <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> が未設定のまま、または無効に設定されている場合、このポリシーは無視されます。 + +このポリシーを未設定のままにするか True にすると、バージョン情報が収集されます。 +このポリシーを False にすると、バージョン情報は収集されません。 + +<ph name="PRODUCT_NAME" /> の場合、このポリシーは <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> で登録されたマシンでのみ有効です。 +<ph name="PRODUCT_OS_NAME" /> の場合、このポリシーは常に有効です。</translation> <translation id="3642557248926713561">セーフ ブラウジングによる拡張機能の保護を無効にする</translation> <translation id="3644735978203799620">マルチ スクリーン キャプチャの自動選択を有効にする</translation> <translation id="3646859102161347133">画面拡大鏡のタイプを設定する</translation> @@ -3588,6 +3645,9 @@ デバイスが管理対象外またはユーザーが 1 人のみの場合、このポリシーは無視され、通知が常に表示されます。 管理対象デバイスに複数のユーザー アカウントがある場合は、このポリシーを有効に設定しているときのみ通知が表示されます。</translation> +<translation id="4297483555396496700">このポリシーが True に設定されている場合にのみ、ユーザーにデバイスのリリース チャンネルの変更が許可されます。このポリシーが False か未設定の場合、ユーザーはチャンネルを変更できません。 + +<ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> の設定は、<ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> が False に設定されている場合にのみ適用されます。</translation> <translation id="4298476374822550051">TLS の Kyber ポスト量子鍵交換を有効にする</translation> <translation id="4303167373847512281">デベロッパー モードを許可する</translation> <translation id="4307116964468610577">このポリシーでは、システムのバッテリーを 1 日に 1 回だけフル充電して、バッテリーの寿命を延ばすよう設定できます。それ以外の時間帯は、バッテリーの消耗を抑えるため、システムが電源に接続されていても低充電状態が維持されます。 @@ -3598,6 +3658,9 @@ ユーザーはこの設定を変更できません。</translation> <translation id="4309091698378414920">カーソルのハイライト表示を有効にする</translation> +<translation id="4311141497190183490">このポリシーを 1 に設定した場合、サイトはデフォルトの状態としてユーザーの物理的な現在地を追跡できます。このポリシーを 2 に設定した場合、この追跡はデフォルトで拒否されます。サイトがユーザーの物理的な現在地を追跡しようとしたときに毎回確認するよう、このポリシーを設定することもできます。 + +このポリシーを未設定のままにした場合、<ph name="ASK_GEOLOCATION_POLICY_NAME" /> ポリシーは適用されますが、ユーザーはこの設定を変更できます。</translation> <translation id="4311195029067684288">フル</translation> <translation id="4311662690937656540">ログイン画面とロック画面でオンライン ログインを強制適用する</translation> <translation id="4313767483634435271">デバイスで指定されたホルダーの MAC アドレス</translation> @@ -3733,6 +3796,15 @@ <translation id="445505634382262792">このポリシーを 3 に設定した場合、ウェブサイトは、ホスト オペレーティング システムのファイル システム内にあるファイルやディレクトリへの書き込みアクセスを要求することが許可されます。このポリシーを 2 に設定した場合、アクセスは拒否されます。 このポリシーを未設定のままにした場合、ウェブサイトによるアクセス要求は許可されますが、ユーザーはこの設定を変更できます。</translation> +<translation id="4455258118946528063">このポリシーでは、拡張機能とプラグインの情報について、レポートを作成するかどうかを管理します。 + +ポリシー <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> が未設定のまま、または無効に設定されている場合、このポリシーは無視されます。 + +このポリシーを未設定のままにするか True にすると、拡張機能とプラグインのデータが収集されます。 +このポリシーを False にすると、拡張機能とプラグインのデータは収集されません。 + +<ph name="PRODUCT_NAME" /> の場合、このポリシーは <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> で登録されたマシンでのみ有効です。 +<ph name="PRODUCT_OS_NAME" /> の場合、このポリシーは常に有効です。</translation> <translation id="4457113781439375078">このポリシーはサポートを終了しました。 このポリシーを有効に設定すると、登録済みデバイスは定期的に現在地を報告します。 @@ -3756,6 +3828,15 @@ <translation id="4467952432486360968">サードパーティの Cookie をブロックする</translation> <translation id="4472740647327683596">ページの幅(マイクロメートル)</translation> <translation id="4474167089968829729">パスワード マネージャーへのパスワード保存を有効にする</translation> +<translation id="4475131520521739161">このポリシーでは、<ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> ポリシーでタイムゾーンの自動検出がオフになっていない場合に適用する、タイムゾーンの自動検出方法を指定します。ユーザーはこの設定を変更できません。 + +次のいずれかを設定します。 + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONDISABLED" />: タイムゾーンの自動検出をオフの状態に維持します。 + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TTIMEZONEAUTOMATICDETECTIONIPONLY" />: タイムゾーンの自動検出をオンの状態に維持します。IP のみに基づく方法で検出を行います。 + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" />: タイムゾーンの自動検出をオンの状態に維持します。検出された Wi-Fi アクセス ポイントのリストを継続的に Geolocation API サーバーに送信して、精度の高いタイムゾーン検出を行います。 + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" />: タイムゾーンの自動検出をオンの状態に維持します。Wi-Fi アクセス ポイント、近くの携帯電話基地局、GPS といった位置情報を継続的にサーバーに送信して、最も精度の高いタイムゾーン検出を行います。 + +このポリシーを設定しないか、「Let users decide(ユーザーの指定による)」または「None(なし)」に設定した場合、ユーザーは chrome://settings にある通常の設定項目を使ってタイムゾーンの自動検出を制御できます。</translation> <translation id="4476769083125004742">このポリシーを <ph name="BLOCK_GEOLOCATION_SETTING" /> に設定した場合、Android アプリは位置情報にアクセスできません。このポリシーを他の値に設定するか未設定のままにした場合、Android アプリで位置情報へのアクセスが必要になったときには、ユーザーに同意が求められます。</translation> <translation id="4478248026668918517">ポリシー スコープの検出をブロックする。</translation> <translation id="4479671363221255277">このポリシーでは、ホスト オペレーティング システムのファイル システム内にあるファイルやディレクトリに File System API 経由で読み取りアクセスすることに関して、ユーザーに許可を要求できるサイトの URL パターンリストを指定できます。 @@ -3953,6 +4034,9 @@ <translation id="46321462262887935">最上段のキーをファンクション キーとして使用するが、ユーザーによる変更を許可する</translation> <translation id="4632343302005518762">リストで指定したコンテンツ タイプの処理を <ph name="PRODUCT_FRAME_NAME" /> に対して許可する</translation> <translation id="4636354638176939375">監視対象ユーザーを作成できないようにする</translation> +<translation id="46383668315040154">このデバイスを固定するリリース チャンネルを指定します。 + +<ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> の設定は、<ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> が False に設定されている場合にのみ適用されます。</translation> <translation id="4646626362889216307">このポリシーでは、選択したポリシーのソースが異なる場合に、これらのポリシーを同じスコープとレベルで統合できるようにします。この統合は各ソースの辞書の第 1 レベルのキーで行われ、優先度の最も高いソースのキーが優先されます。 ワイルドカード文字「*」を使用すると、サポートされている辞書ポリシーがすべて統合されます。 @@ -4289,6 +4373,14 @@ <translation id="499654521603185442">ウェブサイトのテレメトリー レポート</translation> <translation id="4997074784107449343">「画像として印刷する」オプションが使用可能な場合、「画像として印刷する」オプションは PDF ドキュメントの印刷プレビューでデフォルトで設定されません。</translation> <translation id="500149597848135831">すべてのバリエーションを有効にします</translation> +<translation id="5017157692744444035">このポリシーでは、マシンを識別できる情報(マシン名、ネットワーク アドレスなど)について、レポートを作成するかどうかを管理します。 + +ポリシー <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> が未設定のまま、または無効に設定されている場合、このポリシーは無視されます。 + +このポリシーを未設定のままにするか True にすると、マシンを識別できる情報が収集されます。 +このポリシーを False にすると、マシンを識別できる情報は収集されません。 + +<ph name="PRODUCT_NAME" /> の場合、このポリシーは <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> で登録されたマシンでのみ有効です。</translation> <translation id="5017369989680827157">このポリシーを True に設定するか未設定のままにした場合、ユーザーは UI で住所の自動入力を制御できます。このポリシーを False に設定した場合、住所情報が候補として表示されたり、自動入力されたりすることはありません。また、ユーザーがウェブの利用中に送信した住所情報が追加で保存されることもありません。</translation> <translation id="5017691827598069017">ファスト ペアリング(ファスト Bluetooth ペアリング)を有効にする</translation> <translation id="5021550478471824215">このポリシーでは、事前設定のネットワーク ファイル共有のリストを指定できます。個々の項目は、<ph name="SHARE_URL_FIELD_NAME" /> と <ph name="MODE_FIELD_NAME" /> の 2 つのプロパティで構成されるオブジェクトとなります。 @@ -4307,6 +4399,7 @@ <translation id="5036013147560568855">証明書のプロビジョニング プロトコルのバージョン。デフォルトは 1 です。1 は「静的」プロトコルです。2 は「動的」プロトコルです。</translation> <translation id="5039110755072335605">CORS 非ワイルドカード リクエスト ヘッダーのサポート</translation> <translation id="504116558738617678">デバイスが管理対象外またはユーザーが 1 人のみの場合に限り、ディスクの空き容量不足を通知する</translation> +<translation id="5041315457555330432">CastAllowAllIPs 機能がオンになっていない場合に、プライベート IP アドレスのデバイスにのみ <ph name="PRODUCT_NAME" /> の接続を許可する。</translation> <translation id="5046376406561077773"><ph name="GOOGLE_DRIVE_NAME" /> のファイル同期機能に関連する UI をユーザーに一切表示しない。</translation> <translation id="5055474681190962362">再起動する日付 [1-31](デバイスのローカル タイムゾーン)です。frequency が「MONTHLY」に指定されている場合にのみ使用されます。値が対象月の最大日数を上回った場合は、その月末日が使用されます。</translation> <translation id="5056708224511062314">画面拡大鏡を無効にする</translation> @@ -4518,6 +4611,9 @@ このポリシーを False に設定するか未設定のままにした場合、統合デスクトップはオフになり、ユーザーはこの設定をオンにすることはできません。</translation> <translation id="5255162913209987122">推奨ポリシーの表示</translation> <translation id="525543707238275321">デバイスの CPU 情報レポートを無効にする</translation> +<translation id="5255790642269910630">このポリシーを設定した場合、各ディスプレイは再起動のたびに、またポリシーの値を変更した後で初めて接続したときに、指定方向に回転します。ユーザーはログイン後に設定ページからディスプレイの回転方法を変更できますが、次に再起動するときには設定はポリシーの値に戻ります。このポリシーは、メインと予備のディスプレイに適用されます。 + +このポリシーを設定しない場合、デフォルト値として 0 度が使用され、ユーザーはこの値を自由に変更できます。この場合、再起動時にデフォルト値が再適用されることはありません。</translation> <translation id="5257395339965216304">ホストされているアプリデータ</translation> <translation id="5258445772095084618">Linux アプリのサポートに必要な仮想マシンの使用を関連付けられていないユーザーに許可する</translation> <translation id="5262320080678421295">Symantec Corporation の Legacy PKI によって発行された証明書への信頼を無効にする</translation> @@ -4936,6 +5032,9 @@ <translation id="5660228672907979869">サードパーティのストレージ パーティション分割を有効にできないようにする。</translation> <translation id="5660950553460381588">可能であれば、パスキーの作成にデフォルトで iCloud キーチェーンを使用します。</translation> <translation id="5666457529647159548">インストール済みクライアント証明書の管理をユーザーに許可する。</translation> +<translation id="5670249935663090320">このポリシーを有効に設定するか未設定のままにした場合、<ph name="PRODUCT_NAME" /> はオンになり、ユーザーはアプリメニュー、ページ コンテキスト メニュー、Cast 対応ウェブサイトのメディア コントロール、Cast ツールバー アイコン(表示されている場合)から起動できます。 + +このポリシーを無効に設定した場合、<ph name="PRODUCT_NAME" /> はオフになります。</translation> <translation id="567377007899266033">このポリシーを True に設定した場合、ポリシーによってトリガーされた主要な拡張機能インストールのイベント レポートが Google に送信されます。このポリシーを False に設定した場合、イベントはキャプチャされません。このポリシーを未設定のままにした場合、値はデフォルトで True に設定されます。</translation> <translation id="5676740747107495269">ログイン画面の通知領域(システムトレイ)メニューにユーザー補助オプションを表示する</translation> <translation id="5679540979548648200">このデバイスのユーザーによる ADB サイドローディングの使用を禁止し、以前にサイドローディングが有効になっていた場合はデバイスの Powerwash を強制的に実行します</translation> @@ -5783,7 +5882,21 @@ <translation id="6462604655173570082">このポリシーを未設定のままにするか有効に設定した場合、新しいタブページの検索ボックスに <ph name="GOOGLE_LENS_PRODUCT_NAME" /> のボタンが表示され、ユーザーが使用できるようになります。このポリシーを無効に設定した場合、新しいタブページの検索ボックスに <ph name="GOOGLE_LENS_PRODUCT_NAME" /> のボタンは表示されません。</translation> <translation id="6464074037294098618">住所の自動入力を有効にします</translation> <translation id="6467613372414922590">ユーザーレベルのネイティブ メッセージング ホスト(管理者権限なしでインストールされたホスト)を許可する</translation> +<translation id="6467707081687600148"><ph name="PRODUCT_OS_NAME" /> のアップデートを適用した後に自動で再起動するよう設定します。 + +このポリシーを true に設定した場合、<ph name="PRODUCT_OS_NAME" /> のアップデートが適用されて更新処理完了に再起動が必要な場合に、自動再起動が行われます。再起動のタイミングは直後、またはユーザーがデバイスを使用している場合は最大 24 時間後になります。 + +このポリシーを false に設定した場合、<ph name="PRODUCT_OS_NAME" /> のアップデート適用後に自動再起動は行われません。ユーザーが次にデバイスを再起動すると、更新処理が完了します。 + +このポリシーを設定した場合、ユーザーが設定を変更またはオーバーライドすることはできません。 + +注: 現在のところ、自動再起動はログイン画面が表示されているとき、またはキオスクアプリのセッション中のみ有効になります。</translation> <translation id="6471018476824827813">URL キーによる指標の収集を許可する</translation> +<translation id="6471927932956897852">P2P を OS 更新ペイロードに使用するかどうかを指定します。 +True に設定すると、デバイスは LAN 上で更新ペイロードを共有し、使用しようとするため、インターネット帯域幅の使用と混雑が削減される可能性があります。更新ペイロードが LAN 上で使用できない場合、デバイスは更新サーバーからのダウンロードにフォールバックします。 +False に設定すると、P2P は使用されません。 + +注: 一般ユーザー向けデバイスと企業向けデバイスのデフォルトの動作は異なります。管理対象デバイスでは P2P は有効になりますが、管理対象でないデバイスでは無効になります。</translation> <translation id="6473623140202114570">セーフ ブラウジングによる警告の表示を行わないドメインのリストを設定する。</translation> <translation id="6474194795370862403">従来の offsetParent の動作を使用する。</translation> <translation id="647645276885673708"><ph name="LACROS_NAME" /> を有効にし、メインのブラウザとして設定する</translation> @@ -6067,6 +6180,11 @@ <translation id="6670794785040100077"><ph name="CLOUD_PRINT_NAME" /> へのドキュメントの送信を無効にする</translation> <translation id="6672070613706645316">ユーザーに新しいタブページの背景のカスタマイズを許可する</translation> <translation id="6672630473862787247">通常セッション、シークレット モード、ゲスト セッションでアンビエント認証を有効にします。</translation> +<translation id="6676012253361586167">Crostini コンテナへのポート転送を許可するかどうかを指定します。 + +このポリシーを True にするか未設定のままにすると、ユーザーは Crostini コンテナへのポート転送を設定できます。 + +このポリシーを False にすると、Crostini コンテナへのポート転送は無効になります。</translation> <translation id="6677291257287862684">ログイン画面で固定キーを有効にする</translation> <translation id="6682305153467826752">マシン識別情報のレポートを有効にする</translation> <translation id="6685903773201985073">ゲスト セッションと標準セッションでアンビエント認証を有効にします。</translation> @@ -6412,6 +6530,9 @@ プロキシ ポリシーの設定で他のモードを選択した場合は、このポリシーを未設定のままにしてください。 注: 詳しい例については、Chromium プロジェクトの説明(https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett)をご覧ください。</translation> +<translation id="7001915679435065291">このポリシーを 1 に設定した場合、すべてのウェブサイトに対して画像の表示が許可されます。このポリシーを 2 に設定した場合、画像の表示は拒否されます。 + +このポリシーを未設定のままにした場合、画像は許可されますが、ユーザーはこの設定を変更できます。</translation> <translation id="7002040773317582266">メインフレームの URL のリアルタイム チェックが有効。</translation> <translation id="7003746348783715221"><ph name="PRODUCT_NAME" /> の設定</translation> <translation id="7007283257527015835">プロトコル ハンドラがデフォルトとして設定されている必要があるかどうかを示すブール値のフラグです。</translation> @@ -6954,6 +7075,9 @@ https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html </translation> +<translation id="7512514325152952954"><ph name="PRODUCT_OS_NAME" /> での自動更新ペイロードは HTTPS ではなく HTTP でダウンロードされます。これにより、HTTP ダウンロードの透過 HTTP キャッシングが可能になります。 + +このポリシーを true に設定すると、<ph name="PRODUCT_OS_NAME" /> は HTTP 経由で自動更新ペイロードをダウンロードしようとします。このポリシーを false に設定するか、設定しない場合は、自動更新ペイロードのダウンロードに HTTPS が使用されます。</translation> <translation id="7515953732107149296">このポリシーは、RC4 が <ph name="PRODUCT_NAME" /> から削除された後、M53 で削除されました。 このポリシーを設定しない場合や false に設定した場合は、TLS の RC4 暗号スイートは有効になりません。また、true に設定して古いサーバーとの互換性を維持できます。これは暫定的な措置であり、サーバーの再設定が必要です。</translation> @@ -6966,6 +7090,11 @@ このポリシーを設定しないか True に設定した場合、パスワード入力の前に全画面表示を終了するようユーザーに警告が表示されます。このポリシーを False に設定した場合、警告は表示されません。</translation> <translation id="7531630046107845550">Terminal System App の SSH 発信クライアント接続を許可する</translation> +<translation id="7533385610709354870"><ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> が無効に設定されていない場合に、<ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> を有効に設定すると、RFC1918 と RFC4193 のプライベート アドレスだけでなくすべての IP アドレスのキャスト デバイスに <ph name="PRODUCT_NAME" /> が接続されます。 + +このポリシーを無効に設定した場合は、RFC1918 と RFC4193 のキャスト デバイスにのみ <ph name="PRODUCT_NAME" /> が接続されます。 + +このポリシーを未設定のままにした場合は、CastAllowAllIPs 機能がオンになっていない限りにおいて、RFC1918 と RFC4193 のキャスト デバイスにのみ <ph name="PRODUCT_NAME" /> が接続されます。</translation> <translation id="7534199150025803530">このポリシーは Android Google ドライブアプリには適用されません。モバイルデータ通信時に Google ドライブを使用できないようにするには、Android Google ドライブアプリのインストールを禁止する必要があります。</translation> <translation id="7538583957913002726">このポリシーはデフォルトでは有効に設定されています。このポリシーは、CPU のモデル名、アーキテクチャ、最大クロック速度(M96 以降では CPU の使用量と温度も)を報告するように登録済みのデバイスを制御します。 @@ -7227,6 +7356,13 @@ このポリシーを未設定のままにした場合、<ph name="DEFAULT_CLIPBOARD_SETTING" /> が設定されていればその設定がすべてのサイトで使用され、設定されていなければユーザーの個人設定が適用されます。 有効な <ph name="URL_LABEL" /> パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。このポリシーの値に「<ph name="WILDCARD_VALUE" />」は使用できません。</translation> +<translation id="7790221177424764797">このポリシーでは、<ph name="IE_PRODUCT_NAME" /> のサイトリスト ポリシーからルールを読み込むかどうかを管理します。 + +このポリシーを true に設定した場合、<ph name="PRODUCT_NAME" /> は <ph name="IE_PRODUCT_NAME" /> の <ph name="IEEM_SITELIST_POLICY" /> を読み込み、サイトリストの URL を取得します。そして、<ph name="PRODUCT_NAME" /> がその URL からサイトリストをダウンロードし、<ph name="BROWSER_SWITCHER_URL_LIST_POLICY_NAME" /> ポリシーで設定されているものとしてルールを適用します。 + +このポリシーを未設定のままにするか false にすると、<ph name="PRODUCT_NAME" /> は <ph name="IE_PRODUCT_NAME" /> の <ph name="IEEM_SITELIST_POLICY" /> ポリシーをブラウザの切り替えを行うルールの参照元として使用しません。 + +Internet Explorer の <ph name="IEEM_SITELIST_POLICY" /> ポリシーについて詳しくは、https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode をご覧ください。</translation> <translation id="7791215522423893512">スクリーンショットと動画の撮影をユーザーに許可しない</translation> <translation id="7792796937016596423">ネットワーク パケット キャプチャの実行をユーザーに許可しない</translation> <translation id="7798441698807517880"><ph name="FLASH_PLUGIN_NAME" /> のサポートが終了したため、このポリシーは <ph name="PRODUCT_NAME" /> バージョン 89 以降で削除されています。 @@ -7519,6 +7655,11 @@ <translation id="8079544387901313374">このポリシーはサポートが終了し、<ph name="PRODUCT_OS_NAME" /> バージョン 88 で削除されました。公開セッションのサポートは終了しました。代わりに <ph name="DEVICE_LOCAL_ACCOUNTS_POLICY_NAME" /> を使用して管理対象のゲスト セッションを設定してください。 このポリシーを false に設定した場合、管理対象のゲスト セッションは、https://support.google.com/chrome/a/answer/3017014 の記事に記載されているとおりに動作します(標準の「公開セッション」)。このポリシーを true に設定するか未設定のままにした場合、管理対象のゲスト セッションは、通常の「公開セッション」で設けられている制限の多くが解除された「管理対象のセッション」として動作します。このポリシーを設定した場合、ユーザーは設定を変更したりオーバーライドしたりすることはできません。</translation> <translation id="8080200590486938727">プラグイン ファインダーを無効にする</translation> +<translation id="8086746212954621799">自動更新を無効にします(true に設定した場合)。 + +この設定を未設定のままにするか false に設定した場合、<ph name="PRODUCT_OS_NAME" /> デバイスでは更新が自動的にチェックされます。 + +警告: ユーザーが各自のデバイスでソフトウェアのアップデートや重要なセキュリティ修正を取得できるように、自動更新は有効のままにしておくことをおすすめします。自動更新を無効にすると、ユーザーが危険にさらされる恐れがあります。</translation> <translation id="8089200718228084417">サポートが終了している Privet 印刷を有効にする</translation> <translation id="8091982561085048989">プリンタの設定に IPP Everywhere を使用するかどうかを示すブール値のフラグです。このフラグは <ph name="PRODUCT_OS_NAME" /> バージョン 76 以降でサポートされています。</translation> <translation id="8094095107731619070">ユーザーの入力時に物理キーボードの自動修正を有効にする</translation> @@ -8098,6 +8239,15 @@ このポリシーを設定しない場合、レポートは 24 時間ごとにアップロードされます。 このポリシーを設定した場合、レポートは指定した時間ごとにアップロードされます。</translation> +<translation id="8618037841203431360">このポリシーでは、ポリシーデータとポリシーの取得日時について、レポートを作成するかどうかを管理します。 + +ポリシー <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> が未設定のまま、または無効に設定されている場合、このポリシーは無視されます。 + +このポリシーを未設定のままにするか True にすると、ポリシーデータとポリシーの取得日時が収集されます。 +このポリシーを False にすると、ポリシーデータとポリシーの取得日時は収集されません。 + +<ph name="PRODUCT_NAME" /> の場合、このポリシーは <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> で登録されたマシンでのみ有効です。 +<ph name="PRODUCT_OS_NAME" /> の場合、このポリシーは常に有効です。</translation> <translation id="8619748440665904084">初回実行時の自動入力フォームのデータのインポートを無効にする</translation> <translation id="8623672932476443039">このポリシーを有効に設定した場合、ユーザーは分離されたアプリのデベロッパー モードにアクセスできます。このポリシーを無効に設定した場合、ユーザーはこの機能を利用できません。このポリシーを未設定のままにした場合、デフォルトでは、Chrome OS 上で企業の管理対象ユーザーはこの機能を利用できず、他のすべてのユーザーと OS は利用できます。</translation> <translation id="862621549134406761">RSA 鍵用途の確認を有効にする</translation> @@ -8487,6 +8637,9 @@ このチェックは、ログイン画面が読み込まれるたびに行われ、デバイスにログイン画面が表示されたままとなっている場合はその後 1 時間ごとに行われます。エンドユーザーに問題が生じる可能性があるため、このようにユーザー セッション中に移行が開始されないようになっています。</translation> <translation id="9003823644527627017"><ph name="PRODUCT_OS_NAME" /> で Bruschetta VM を設定する</translation> +<translation id="9004469022085379212">このポリシーを有効に設定した場合、デバイスの <ph name="PRODUCT_OS_NAME" /> で仮想マシンの実行が許可されます。<ph name="PRODUCT_CROSTINI_NAME" /> を使用するには、<ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> と <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> が有効でなければなりません。このポリシーを無効に設定した場合、デバイスで仮想マシンの実行は許可されません。このポリシーを無効に変更すると、すでに実行されている仮想マシンではなく、新しい仮想マシンの開始に対してポリシーが適用されます。 + +管理対象のデバイスでこのポリシーを設定しない場合、デバイスで仮想マシンの実行は許可されません。管理対象以外のデバイスでは仮想マシンの実行が許可されます。</translation> <translation id="9007632512838819703">このポリシーはサポートが終了しています。代わりに <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" /> を使用してください。 言語のスペルチェックを自動的に無効にします。指定した言語のうち認識されないものは無視されます。 @@ -8626,6 +8779,9 @@ <translation id="9098409326885953506">背面にあるウィンドウを検出して、描画を一時停止する</translation> <translation id="9105265795073104888">Android アプリではプロキシ設定オプションの一部のみを使用できます。プロキシを使用するかどうかは Android アプリ側の選択となります。Android アプリにプロキシの使用を強制することはできません。</translation> <translation id="9106865192244721694">WebUSB を許可するサイト</translation> +<translation id="9107635531763682565">このポリシーを 1 に設定した場合、ウェブサイトによるデスクトップ通知の表示が許可されます。このポリシーを 2 に設定した場合、デスクトップ通知は拒否されます。 + +このポリシーを未設定のままにした場合、<ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> は適用されますが、ユーザーはこの設定を変更できます。</translation> <translation id="9110251436602897914">デバイスに接続されている周辺機器に関する情報を報告する</translation> <translation id="9111850884577810507">このフィールドは、<ph name="PRODUCT_NAME" /> 対応のプリンタを示す文字列のいずれかと一致する必要があります。この文字列は、プリンタに適した PPD の特定とインストールに使用されます。詳しくは、https://support.google.com/chrome?p=noncloudprint をご覧ください。</translation> <translation id="9112727953998243860">企業プリンタの設定ファイル</translation> @@ -8704,6 +8860,9 @@ <translation id="9191821120522935133">非表示のクロスオリジン iframe のスロットリングを有効にできるようにする</translation> <translation id="9192220384862917760">リモート アクセスホストのカーテンを有効にする</translation> <translation id="9195766455191826480">セキュリティ ステータスを報告しない</translation> +<translation id="9197238499850071076">デバイスでより新しいバージョンをすでに実行している場合に、<ph name="DEVICE_TARGET_VERSION_PREFIX_POLICY_NAME" /> で設定されているバージョンに戻すかどうかを指定します。 + +デフォルトは RollbackDisabled です。</translation> <translation id="9197740283131855199">画面が暗くなった後でユーザーが操作を行ったときに画面を暗くするまでの時間に掛ける倍率</translation> <translation id="9200828125069750521">POST を使用する画像 URL のパラメータ</translation> <translation id="9204863016826119209">このポリシーで指定されているインストール済みの Android アプリは企業キーを使用できます。</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index b6b897fb..574ece3 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -622,6 +622,11 @@ 사용 중지하면 <ph name="BASIC_AUTH" /> 인증 스키마를 사용한 비보안 HTTP 요청이 금지되고 보안 HTTPS만 허용됩니다. <ph name="AUTH_SCHEMES_POLICY_NAME" /> 정책이 설정되어 있고 <ph name="BASIC_AUTH" />을 포함하지 않으면 이 정책이 무시되며 <ph name="BASIC_AUTH" />이 항상 금지됩니다.</translation> +<translation id="1573074208167290576">사용자가 특정 사이트에 혼합 콘텐츠를 허용하는 예외를 추가할 수 있도록 할지 결정합니다. + +'InsecureContentAllowedForUrls' 정책 및 'InsecureContentBlockedForUrls' 정책을 사용하는 특정 URL 패턴의 경우, 이 정책을 재정의할 수 있습니다. + +정책이 설정되어 있지 않으면 사용자는 차단 가능한 혼합 콘텐츠를 허용하는 예외를 추가하고 선택적으로 차단 가능한 혼합 콘텐츠의 자동 업그레이드를 사용 중지할 수 있습니다.</translation> <translation id="1573444493980402757">창 배치 권한을 자동으로 거부하는 사이트를 지정하도록 사이트 URL 패턴 목록을 설정할 수 있습니다. 이렇게 하면 사이트에서 기기 화면에 관한 정보를 본 다음, 해당 정보를 사용하여 창을 열고 배치하거나 특정 화면에서는 전체 화면을 요청하는 기능이 제한됩니다. 유효한 사이트 URL 패턴에 관한 자세한 내용은 다음을 참고하세요. https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns 와일드 카드(<ph name="WILDCARD_VALUE" />)를 사용할 수 있습니다. 이 정책은 출처만 기준으로 일치 여부를 판단하므로 URL 패턴의 경로는 무시됩니다. @@ -900,6 +905,13 @@ 이 정책은 지원 중단되었으므로 <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> 정책을 대신 사용하세요. </translation> +<translation id="1825583118566970564">외부 확장 프로그램 설치를 제어합니다. + +정책을 사용 설정하면 외부 확장 프로그램이 설치되지 않습니다. + +정책을 사용 중지하거나 설정하지 않은 상태로 두면 외부 확장 프로그램을 설치할 수 있습니다. + +외부 확장 프로그램 및 설치 관련 문서는 다음 페이지에서 확인하세요. https://developer.chrome.com/apps/external_extensions</translation> <translation id="1827523283178827583">고정 프록시 서버 사용</translation> <translation id="1829117241432374848">관리 계정은 기본 계정이어야 하고 보조 계정이 없어야 하며 사용자는 계정 생성 시 기존 데이터를 가져올 수 있음</translation> <translation id="1829839214911753838">정책을 사용 설정하면 원격 지원 호스트가 <ph name="UIACCESS_PERMISSION_NAME" /> 권한이 있는 프로세스로 실행됩니다. 이를 통해 원격 사용자는 로컬 사용자의 데스크톱에서 관리자 창과 상호작용할 수 있습니다. @@ -954,6 +966,11 @@ <translation id="1861206724856734193">데이터 유출 방지 규칙 목록을 설정합니다.</translation> <translation id="1862267110714201519">고스트 창 기능 사용 안함</translation> <translation id="1865417998205858223">주요 권한</translation> +<translation id="1865867000796030567">정책을 사용으로 설정하면 지연 없이 자동 실행되는 키오스크 앱의 <ph name="REQUIRED_PLATFORM_VERSION" /> 매니페스트 키 값이 자동 업데이트 대상 버전 접두사로 사용됩니다. + +정책을 사용 안함으로 설정하거나 설정하지 않으면 <ph name="REQUIRED_PLATFORM_VERSION" /> 매니페스트 키가 무시되고 자동 업데이트가 정상적으로 진행됩니다. + +경고: 기기가 소프트웨어 업데이트와 중요 보안 수정사항을 받지 못할 수 있으므로 <ph name="PRODUCT_OS_NAME" /> 버전의 컨트롤을 키오스크 앱에 위임하지 마세요. <ph name="PRODUCT_OS_NAME" /> 버전의 컨트롤을 위임하면 사용자가 위험해질 수 있습니다.</translation> <translation id="186719019195685253">AC 전원으로 기기를 실행하는 동안 유휴 지연 시간에 도달했을 때 실행할 작업</translation> <translation id="1869688072690234823">정책을 설정하여 사용 가능한 WebAuthn 요소를 제어할 수 있습니다. @@ -972,6 +989,15 @@ <ph name="RUN_ON_OS_LOGIN_FIELD" /> 필드는 웹 앱을 OS 로그인 중에 실행할 수 있는지 지정합니다. 필드가 <ph name="BLOCKED" />로 설정되면 OS 로그인 시 웹 앱이 실행되지 않으며 사용자가 나중에 run_on_os_login을 사용 설정할 수 없습니다. 필드가 <ph name="RUN_WINDOWED" />로 설정되면 OS 로그인 시 웹 앱이 실행되며 사용자가 나중에 run_on_os_login을 사용 중지할 수 없습니다. 필드가 <ph name="ALLOWED" />로 설정되면 사용자가 OS 로그인 시 웹 앱이 실행되도록 구성할 수 있습니다. 기본 구성에서는 <ph name="ALLOWED" /> 및 <ph name="BLOCKED" /> 값만 허용됩니다. (버전 117부터) <ph name="PREVENT_CLOSE_FIELD" /> 필드는 웹 앱이 어떤 식으로든(예: 사용자, 작업 관리자, 웹 API에 의해) 닫히지 않도록 할지 지정합니다. 이 동작은 <ph name="RUN_ON_OS_LOGIN_FIELD" />가 <ph name="RUN_WINDOWED" />로 설정된 경우에만 사용 설정할 수 있습니다. 앱이 이미 실행 중인 경우 이 속성은 앱이 다시 시작된 후에만 적용됩니다. 이 필드가 정의되지 않으면 사용자가 앱을 종료할 수 있습니다. (버전 118부터) <ph name="FORCE_UNREGISTER_OS_INTEGRATION" /> 필드는 바로가기, 파일 핸들러, 프로토콜 핸들러 등 웹 앱의 모든 OS 통합을 삭제할지 지정합니다. 앱이 이미 실행 중인 경우 앱이 다시 시작된 후에 이 속성이 적용됩니다. 이 속성은 웹 애플리케이션 시스템 시작 중에 자동으로 설정된 모든 OS 통합을 재정의할 수 있으므로 주의해서 사용해야 합니다. 현재는 Windows, Mac, Linux 플랫폼에서만 작동합니다.</translation> +<translation id="1874719875297132073">이 정책은 OS 로그인 정보, <ph name="PRODUCT_NAME" /> 프로필 로그인 정보, <ph name="PRODUCT_NAME" /> 프로필 이름, <ph name="PRODUCT_NAME" /> 프로필 경로, <ph name="PRODUCT_NAME" /> 실행 경로와 같이 사용자 식별을 위해 사용할 수 있는 정보의 보고 여부를 제어합니다. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 정책이 설정되지 않거나 사용 중지되면 정책이 무시됩니다. + +정책이 설정되지 않거나 true로 설정되면 사용자 식별을 위해 사용할 수 있는 정보가 수집됩니다. +false로 설정되면 사용자 식별을 위해 사용할 수 있는 정보가 수집되지 않습니다. + +<ph name="PRODUCT_NAME" />의 경우 이 정책은 기기가 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />에 등록되어 있을 때만 적용됩니다. +<ph name="PRODUCT_OS_NAME" />의 경우 이 정책이 항상 적용됩니다.</translation> <translation id="1883274744253492031">혼합 콘텐츠 자동 업그레이드 사용 설정</translation> <translation id="1885782360784839335">전체 탭 프로모션 콘텐츠 표시 기능을 사용합니다.</translation> <translation id="1888871729456797026">데스크톱의 클라우드 정책 등록 토큰</translation> @@ -999,6 +1025,9 @@ 설정하지 않으면 시작 시 새 탭 페이지가 열립니다. <ph name="MS_WIN_NAME" />의 경우 이 정책은 <ph name="MS_AD_NAME" /> 도메인에 연결되거나, <ph name="MS_AAD_NAME" />에 연결되거나, <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />에 등록된 인스턴스에서만 사용할 수 있습니다.</translation> +<translation id="1897095538209040086">이 정책을 사용 설정하거나 설정하지 않은 상태로 두면 대체 브라우저로 전환한 후 <ph name="PRODUCT_NAME" />에서 최소 1개의 탭을 열어둡니다. + +정책을 사용 중지하면 대체 브라우저로 전환한 후 <ph name="PRODUCT_NAME" />에서 마지막 탭일지라도 모두 닫습니다. 따라서 <ph name="PRODUCT_NAME" />이 완전히 종료됩니다.</translation> <translation id="1897365952389968758">모든 사이트에서 자바스크립트 실행 허용</translation> <translation id="1902043648529789224">앱 표시줄 위치 제어</translation> <translation id="1904323733389537794">정책을 True로 설정하면 온라인 <ph name="OCSP_CRL_LABEL" /> 확인 검사가 진행됩니다. @@ -1190,6 +1219,11 @@ 정책을 설정하지 않거나 빈 목록으로 설정하면 관리 기기에서 빠른 잠금 해제 모드를 사용할 수 없습니다. 이 정책은 지원 중단되었으므로 <ph name="QUICK_UNLOCK_MODE_ALLOW_LIST_POLICY_NAME" /> 정책을 대신 사용하세요.</translation> +<translation id="2035995535603698706">정책을 사용으로 설정하면 페이지의 서드 파티 이미지에서 인증 프롬프트를 표시할 수 있습니다. + +사용 안함으로 설정하거나 설정하지 않으면 서드 파티 이미지에서 인증 프롬프트를 표시할 수 없습니다. + +이 정책은 일반적으로 피싱 차단을 위해 사용 중지되어 있습니다.</translation> <translation id="2036522553891755455">정책을 사용 설정하면 공유 검색(<ph name="PRODUCT_NAME" />의 네트워크 파일 공유 기능)에서 <ph name="NETBIOS_PROTOCOL" />을 사용해 네트워크에서 공유 항목을 검색합니다. 사용 중지하면 공유 검색에서 이 프로토콜을 사용해 공유 항목을 검색하지 않습니다. 정책이 설정되지 않으면 관리 대상인 사용자에게는 이 동작이 사용 중지되며 다른 사용자에게는 기본적으로 사용 설정됩니다.</translation> @@ -1357,6 +1391,19 @@ <ph name="WEBXR_AR_SESSION_ENUM_VALUE" /> 세션에 관한 자세한 정보는 <ph name="WEBXR_AR_MODULE_API_NAME" /> 사양에서 확인하세요.</translation> <translation id="2175353308236295184">앱별 JSON 설정 객체로, 키-값 쌍 세트를 포함합니다(예: '"managedConfiguration": { "key1": value1, "key2": value2 }'). 키는 앱 매니페스트에 정의됩니다.</translation> <translation id="2176115444876446233">사용자가 시스템 전체의 성능 흔적을 수집하지 못하도록 차단</translation> +<translation id="2177382213857119200"><ph name="PRODUCT_NAME" />의 세이프 브라우징 기능을 사용할지와 작동 모드를 제어할 수 있습니다. + + 정책을 'NoProtection'(값 0)으로 설정하면 세이프 브라우징이 활성화되지 않습니다. + + 정책을 'StandardProtection'(기본값인 값 1)으로 설정하면 세이프 브라우징이 표준 모드에서 항상 활성화됩니다. + + 정책을 'EnhancedProtection'(값 2)으로 설정하면 세이프 브라우징이 강화 모드에서 항상 활성화되어 보안이 강화되지만 Google과 인터넷 사용 정보를 더 많이 공유해야 합니다. + + 정책을 필수로 설정하면 사용자는 <ph name="PRODUCT_NAME" />에서 세이프 브라우징 설정을 변경하거나 재정의할 수 없습니다. + + 정책을 설정하지 않으면 세이프 브라우징이 표준 보호 모드에서 작동하지만 사용자가 설정을 변경할 수 있습니다. + + 세이프 브라우징에 관해 자세히 알아보려면 https://support.google.com/chrome?p=safe_browsing_preferences 페이지를 참고하세요.</translation> <translation id="2177696016354404697">항상 개인 정보 보호 화면 사용 중지</translation> <translation id="2178899310296064282">YouTube에서 최소한 보통 제한 모드 사용</translation> <translation id="2180958780733364832">헤드리스 모드 사용 제어</translation> @@ -1453,6 +1500,9 @@ <translation id="225830954785359083">로드 취소 중 페이지에서 팝업을 표시하지 않도록 차단</translation> <translation id="2261648512244797294">지원 중단된 Privet 인쇄 사용 중지</translation> <translation id="2266422599396179941">사용자가 의견을 제출하도록 허용</translation> +<translation id="2268891553068901979">정책을 사용 설정하면 모바일 데이터에 연결되어 있을 때 <ph name="PRODUCT_OS_NAME" /> 파일 앱에서 <ph name="GOOGLE_DRIVE_NAME" /> 동기화가 사용 중지됩니다. Wi-Fi 또는 이더넷으로 연결되어 있을 때만 데이터가 드라이브와 동기화됩니다. + +정책을 사용 중지하거나 설정하지 않은 상태로 두면 모바일 데이터에 연결되어 있을 때도 사용자가 드라이브로 파일을 전송하도록 허용합니다.</translation> <translation id="2269319728625047531">로그인 시 동기화 동의 표시 사용</translation> <translation id="2270113153862588648">정책을 사용 설정하면 기기의 원격 증명이 허용됩니다. 인증서가 자동으로 생성되고 기기 관리 서버에 업로드됩니다. @@ -1802,7 +1852,6 @@ 정책을 설정하지 않으면 <ph name="PRINTERS_ALLOW_ALL" />이 적용됩니다.</translation> <translation id="2581338546762479588">업데이트 후 자동 재부팅 허용</translation> -<translation id="2582855747769273665">사용자가 방문하여 자세히 알아볼 수 있는 URL입니다. 설정하지 않으면 설치 프로그램에 '자세히 알아보기' URL이 표시되지 않습니다.</translation> <translation id="2586117300379904732">전원 관리를 위해 wake lock 허용</translation> <translation id="2586231026319371211">시간은 실제 현지 시간(24시간 형식)으로 해석됩니다.</translation> <translation id="2587719089023392205"><ph name="PRODUCT_NAME" />을(를) 기본 브라우저로 설정</translation> @@ -1950,6 +1999,9 @@ <translation id="2727844239611930002"><ph name="PRODUCT_NAME" />에서 <ph name="PRIVACY_SANDBOX_NAME" /> 메시지를 표시할지 여부를 결정하도록 허용합니다.</translation> <translation id="2730200383593984228">독립적인 사용자가 Android 앱을 사용하도록 허용</translation> <translation id="2730419309754848345">PDF를 이미지로 인쇄 기본값</translation> +<translation id="2730644640965800157">정책을 사용 설정하면 <ph name="PRODUCT_OS_NAME" /> 파일 앱에서 <ph name="GOOGLE_DRIVE_NAME" /> 동기화가 사용 중지되며 드라이브에 데이터가 업로드되지 않습니다. + +정책을 사용 중지하거나 설정하지 않은 상태로 두면 사용자가 드라이브로 파일을 전송하도록 허용합니다.</translation> <translation id="2731299561202635374">이 정책은 안전하지 않은 URL을 파악할 수 있는 실시간 URL 확인을 제어합니다. 정책을 설정하지 않거나 '사용 중지됨'으로 설정하면 일반 세이프 브라우징 확인이 적용됩니다. '검색 및 탐색 기능 개선' 설정값과 UrlKeyedAnonymizedDataCollectionEnabled 정책값에 따라 일반 세이프 브라우징 확인에는 실시간 검색이 계속해서 포함될 수 있습니다. @@ -1991,6 +2043,11 @@ 정책을 False로 설정하면 PDF 뷰어에서 PDF에 주석을 작성할 수 없습니다.</translation> <translation id="2769952903507981510">원격 액세스 호스트에 대한 필수 도메인 이름 구성</translation> +<translation id="2770376586681635746">사용자의 Kerberos 계정 추가 여부를 제어합니다. + +정책이 사용 중지되거나 설정되지 않으면 사용자가 Kerberos 설정 페이지의 Kerberos 계정 설정을 통해 Kerberos 계정을 추가할 수 있습니다. 사용자는 자신이 추가한 계정을 완전히 제어할 수 있으며 수정하거나 삭제할 수도 있습니다. + +이 정책이 사용 중지되면 사용자는 Kerberos 계정을 추가할 수 없습니다. 계정은 'Kerberos 계정 구성' 정책을 통해서만 추가할 수 있습니다. 계정을 잠그는 데 효과적인 방법입니다.</translation> <translation id="2772231477628401250">업데이트 다운로드에 HTTP 사용</translation> <translation id="2772955711376920612">정책을 사용 설정하고 <ph name="DEVICE_POWER_PEAK_SHIFT_BATTERY_THRESHOLD_POLICY_NAME" /> 및 <ph name="DEVICE_POWER_PEAK_SHIFT_DAY_CONFIG_POLICY_NAME" />를 설정하면 기기에서 지원하는 경우 전원 피크 시프트가 사용 설정된 상태로 유지됩니다. 피크 시프트 전원 관리 정책은 사용량이 가장 많은 시간에 교류 전원 사용을 최소화하는 절전 정책입니다. 매주 평일 전원 피크 시프트 모드를 실행할 시작 시간과 종료 시간을 설정할 수 있습니다. 배터리가 지정된 기준점 이상인 한, 사용량이 가장 많은 시간에는 교류 전원이 연결되어 있더라도 기기가 배터리로 실행됩니다. 지정된 종료 시간이 지나면 교류 전원이 연결되어 있는 경우 기기가 교류 전원으로 실행되지만 배터리가 충전되지는 않습니다. 지정된 충전 시작 시간이 되면 기기가 다시 교류 전원을 사용하여 평소대로 작동하며 배터리가 충전됩니다. @@ -2005,6 +2062,9 @@ 외부 저장소가 차단되어 있지 않은 한 ExternalStorageReadOnly를 False로 설정하거나 설정하지 않으면 사용자가 실제로 작성 가능한 외부 저장소의 파일을 생성하고 수정할 수 있습니다. ExternalStorageDisable을 True로 설정하여 외부 저장소를 차단할 수 있습니다.</translation> <translation id="2789742777235177478">SAML 없이 GAIA를 통해 인증된 사용자가 잠금 화면에서 오프라인으로 로그인할 수 있는 기간 제한</translation> +<translation id="2795923835422513629">정책을 1로 설정하면 웹사이트에서 팝업을 표시하도록 허용합니다. 정책을 2로 설정하면 팝업을 거부합니다. + +정책을 설정하지 않으면 <ph name="BLOCK_POPUPS_POLICY_NAME" /> 정책이 적용되지만 사용자가 이 설정을 변경할 수 있습니다.</translation> <translation id="2796714419743648316">앱별 시간 제한 허용 목록</translation> <translation id="2801065672151277034">인증서 관리 설정</translation> <translation id="2801155097555584385">배터리 충전을 시작할 지점을 퍼센트로 맞춤설정합니다.</translation> @@ -2517,6 +2577,9 @@ 유효한 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참고하세요. <ph name="WILDCARD_VALUE" />는 이 정책에 허용되는 값이 아닙니다.</translation> <translation id="3205825995289802549">처음 실행 시 첫 번째 브라우저 창 최대화</translation> +<translation id="320607884987562184">정책을 1로 설정하면 웹사이트에서 JavaScript를 실행하도록 허용합니다. 정책을 2로 설정하면 JavaScript를 거부합니다. + +정책을 설정하지 않으면 JavaScript를 허용하지만 사용자가 이 설정을 변경할 수 있습니다.</translation> <translation id="3206959584699016689">정책을 설정하면 움직임 감지 센서, 조도 센서 등의 센서에 대한 액세스가 허용되는 사이트를 지정하는 URL 패턴 목록을 설정할 수 있습니다. 정책을 설정하지 않았을 때 <ph name="DEFAULT_SENSORS_SETTING_POLICY_NAME" />이 설정되어 있으면 모든 사이트에 적용되며 설정되어 있지 않다면 사용자의 개인 설정이 적용됩니다. @@ -2697,6 +2760,10 @@ <translation id="3362584244602846824">무선 액세스 포인트가 지원하는 경우 빠른 전환 사용</translation> <translation id="3363360928811201045">관리 계정에 제한사항 추가</translation> <translation id="3364400740222114778">계정 복구</translation> +<translation id="3367361756115023251">이 사용자에게 Crostini 컨테이너에 대한 루트 액세스 권한을 허용합니다. + +이 정책이 true로 설정되어 있거나 아무런 설정도 되어 있지 않은 경우 Crostini 컨테이너에 대한 루트 액세스 권한이 사용자에게 부여됩니다. +false로 설정된 경우 기존 및 신규 Crostini 컨테이너에 대한 루트 액세스 권한 모두가 사용자에게 부여되지 않습니다.</translation> <translation id="3373381043600809954"><ph name="PRODUCT_NAME" /> 사용</translation> <translation id="3374587000313305002"><ph name="PRODUCT_NAME" />에서 사용자 데이터를 저장하는 데 사용할 디렉터리를 설정합니다 @@ -2948,6 +3015,15 @@ <translation id="3554498762428140109">네이티브 창 오클루전 사용 설정</translation> <translation id="3554984410014457319">Google 어시스턴트가 음성 활성화 문구를 감지하도록 허용</translation> <translation id="3557586898458302131">생성된 Kerberos SPN에 비표준 포트 포함</translation> +<translation id="3558024517032824255">안정화 버전부터 항상 허용되어야 하는 <ph name="PRODUCT_OS_NAME" />의 최소 주요 롤백 수를 지정합니다. + +기본값은 소비자의 경우 0이며, 엔터프라이즈 등록 기기의 경우 4(약 반년)입니다. + +이 정책을 설정하면 최소 이 숫자만큼의 주요 롤백이 진행되는 동안에는 롤백 보호가 적용되지 않습니다. + +이 정책을 더 낮은 값으로 설정하면 영구적으로 적용됩니다. 정책을 더 높은 값으로 재설정해도 기기를 이전 버전으로 롤백하지 못할 수도 있습니다. + +실제 롤백 가능성 역시 보드와 주요 취약성 패치에 따라 달라질 수 있습니다.</translation> <translation id="35668690622495904"> 허용 목록에 없는 컨텍스트에서 발생한 계정의 통화가 거부되지 않습니다. 다른 이유로 통화가 거절될 수는 있습니다.</translation> @@ -3022,6 +3098,15 @@ <translation id="3637063789824963261">정책을 사용 설정하면 등록된 기기에서 기기 런타임 카운터를 보고합니다(Intel vPro Gen 14 이상만 해당). 정책을 사용 중지하거나 설정하지 않으면 등록된 기기에서 기기 런타임 카운터를 기록하거나 보고하지 않습니다.</translation> +<translation id="3640677352428533707">이 정책은 OS 버전, OS 플랫폼, OS 아키텍처, <ph name="PRODUCT_NAME" /> 버전, <ph name="PRODUCT_NAME" /> 채널과 같은 버전 정보의 보고 여부를 제어합니다. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 정책이 설정되지 않거나 사용 중지되면 정책이 무시됩니다. + +정책이 설정되지 않거나 true로 설정되면 버전 정보가 수집됩니다. +false로 설정되면 버전 정보가 수집되지 않습니다. + +<ph name="PRODUCT_NAME" />의 경우 이 정책은 기기가 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />에 등록되어 있을 때만 적용됩니다. +<ph name="PRODUCT_OS_NAME" />의 경우 이 정책이 항상 적용됩니다.</translation> <translation id="3642557248926713561">세이프 브라우징 확장 프로그램 보호 사용 중지</translation> <translation id="3644735978203799620">다중 화면 캡처를 위한 자동 선택 사용</translation> <translation id="3646859102161347133">화면 돋보기 유형 설정</translation> @@ -3685,6 +3770,9 @@ 정책을 설정하지 않으면 시스템 구성 및 기능 플래그에 따라 시스템 DNS 변환이 네트워크 서비스 내부에서 실행되거나, 네트워크 서비스 외부에서 실행되거나, 부분적으로 내부 및 외부에서 실행될 수 있습니다.</translation> <translation id="4239720644496144453">이 캐시는 Android 앱에 사용되지 않습니다. 여러 사용자가 동일한 Android 앱을 설치하는 경우 앱이 각 사용자마다 새로 다운로드됩니다.</translation> <translation id="424318624725112807">로그인 화면에서 캐럿 강조표시 사용</translation> +<translation id="4245159233848584683">정책을 사용으로 설정하거나 설정하지 않으면 기기가 오프라인일 때 기기 로컬 계정이 지연 없는 자동 로그인으로 설정된 경우 <ph name="PRODUCT_OS_NAME" />에 네트워크 구성 메시지가 표시됩니다. + +정책을 사용 안함으로 설정하면 오류 메시지가 대신 표시됩니다.</translation> <translation id="4248277954659222481">URL 패턴의 허용 목록에서 미디어 자동 재생 허용</translation> <translation id="4250680216510889253">아니요</translation> <translation id="4252522848899331223">사용자가 세이프 브라우징 경고를 무시하도록 허용</translation> @@ -3728,6 +3816,9 @@ 기기가 관리되지 않거나 사용자가 1명인 경우 이 정책은 무시되고 항상 알림이 표시됩니다. 관리 기기에 여러 개의 사용자 계정이 있으면 이 정책이 사용 설정되어 있는 경우에만 알림이 표시됩니다.</translation> +<translation id="4297483555396496700">정책을 true로 설정하면 사용자가 기기의 출시 채널만 변경할 수 있습니다. 정책을 false로 설정하거나 설정하지 않으면 사용자가 채널을 변경할 수 없습니다. + +<ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 설정은 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" />를 false로 설정하는 경우에만 적용됩니다.</translation> <translation id="4298476374822550051">TLS의 Kyber 포스트 퀀텀 키 계약 사용 설정</translation> <translation id="4303167373847512281">개발자 모드 허용</translation> <translation id="4307116964468610577">이 정책은 하루에 한 번만 완전 충전하여 시스템 배터리 수명을 연장합니다. 남은 시간 동안은 시스템이 전원에 연결되어 있더라도 배터리가 보관에 유리한 저충전 상태로 유지됩니다. @@ -3738,6 +3829,9 @@ 사용자가 이 설정을 변경할 수는 없습니다.</translation> <translation id="4309091698378414920">캐럿 강조표시 사용 설정</translation> +<translation id="4311141497190183490">정책을 1로 설정하면 사이트에서 기본 상태로 사용자의 실제 위치를 추적하도록 허용합니다. 정책을 2로 설정하면 이 추적을 기본적으로 거부합니다. 사이트에서 사용자의 실제 위치를 추적하려고 할 때마다 사용자에게 묻도록 정책을 설정할 수 있습니다. + +정책을 설정하지 않으면 <ph name="ASK_GEOLOCATION_POLICY_NAME" /> 정책이 적용되지만 사용자가 이 설정을 변경할 수 있습니다.</translation> <translation id="4311195029067684288">Full</translation> <translation id="4311662690937656540">로그인 및 잠금 화면에 온라인 로그인 시행</translation> <translation id="4313767483634435271">기기에서 지정된 도크 MAC 주소</translation> @@ -3829,6 +3923,11 @@ <translation id="4410236409016356088">네트워크 대역폭 조절 사용</translation> <translation id="4411734231900934213">자녀와 부모 기기의 시계 간에 허용되는 차이(초)입니다.</translation> <translation id="441217499641439905"><ph name="PRODUCT_OS_NAME" /> 파일 앱에서 모바일 데이터로 연결 시 Google Drive 사용 중지</translation> +<translation id="4412885120239670573">정책을 Enabled로 설정하면 <ph name="PRODUCT_NAME" />의 내부 PDF 뷰어를 사용 중지하고, PDF 파일을 다운로드 파일로 처리하며, 사용자가 기본 애플리케이션으로 PDF를 열 수 있습니다. + +정책을 Disabled로 설정하면 사용자가 PDF 플러그인을 사용 중지하지 않는 한 PDF 플러그인에서 PDF 파일을 엽니다. + +정책을 설정하면 사용자가 <ph name="PRODUCT_NAME" />에서 정책을 변경할 수 없습니다. 설정하지 않으면 사용자가 외부에서 PDF를 열지를 선택할 수 있습니다.</translation> <translation id="4413453659814156568">JIT(Just In Time) 컴파일러가 사용 설정된 자바스크립트를 실행할 수 있는 사이트를 지정하는 사이트 URL 패턴 목록을 설정할 수 있습니다. 유효한 사이트 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참고하세요. <ph name="WILDCARD_VALUE" /> 기호는 이 정책에 허용되는 값이 아닙니다. @@ -3880,6 +3979,15 @@ <translation id="445505634382262792">이 정책을 3으로 설정하면 웹사이트에서 호스트 운영체제의 파일 시스템 내 파일 및 디렉터리에 대한 쓰기 액세스 권한을 요청할 수 있습니다. 정책을 2로 설정하면 액세스가 거부됩니다. 정책을 설정하지 않으면 웹사이트에서 액세스 권한을 요청할 수 있지만, 사용자가 이 설정을 변경할 수 있습니다.</translation> +<translation id="4455258118946528063">이 정책은 확장 프로그램 및 플러그인 데이터의 보고 여부를 제어합니다. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 정책이 설정되지 않거나 사용 중지되면 정책이 무시됩니다. + +정책이 설정되지 않거나 true로 설정되면 확장 프로그램 및 플러그인 데이터가 수집됩니다. +false로 설정되면 확장 프로그램 및 플러그인 데이터가 수집되지 않습니다. + +<ph name="PRODUCT_NAME" />의 경우 이 정책은 기기가 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />에 등록되어 있을 때만 적용됩니다. +<ph name="PRODUCT_OS_NAME" />의 경우 이 정책이 항상 적용됩니다.</translation> <translation id="4457113781439375078">지원 중단된 정책입니다. 정책을 사용으로 설정하면 등록된 기기에서 주기적으로 위치를 보고합니다. @@ -3903,6 +4011,15 @@ <translation id="4467952432486360968">제3자 쿠키 차단</translation> <translation id="4472740647327683596">페이지의 너비(마이크로미터)입니다.</translation> <translation id="4474167089968829729">비밀번호 관리자에 비밀번호 저장 기능 사용</translation> +<translation id="4475131520521739161"><ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> 정책에서 자동 시간대 감지를 사용 중지하지 않을 경우 정책을 설정하면 자동 시간대 감지 방식에 관한 개요가 제공되며 이는 사용자가 변경할 수 없습니다. + +정책을 다음으로 설정합니다. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONDISABLED" />: 자동 시간대 감지를 계속 사용 중지합니다. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TTIMEZONEAUTOMATICDETECTIONIPONLY" />: 자동 시간대 감지를 계속 사용 설정하고, IP 전용 방식을 사용합니다. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" />: 자동 시간대 감지를 계속 사용 설정하고, 정밀한 시간대 감지를 위해 Geolocation API 서버에 공개된 Wi-Fi 액세스 포인트 목록을 지속적으로 전송합니다. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" />: 자동 시간대 감지를 계속 사용 설정하고, 정밀한 시간대 감지를 위해 위치 정보(예: Wi-Fi 액세스 포인트, 연결 가능한 기지국, GPS)를 지속적으로 서버에 전송합니다. + +설정하지 않거나, 사용자가 결정하도록 설정하거나, None으로 설정할 경우 사용자가 chrome://settings에서 일반 컨트롤을 사용하여 자동 시간대 감지를 조정합니다.</translation> <translation id="4476769083125004742">이 정책이 <ph name="BLOCK_GEOLOCATION_SETTING" />(으)로 설정되는 경우 Android 앱에서 위치 정보에 액세스할 수 없습니다. 이 정책을 다른 값으로 설정하거나 설정하지 않은 채로 두면 Android 앱에서 위치 정보에 액세스하려고 할 때 사용자에게 동의를 요청하는 메시지가 표시됩니다.</translation> <translation id="4478248026668918517">정책 범위 감지 차단</translation> <translation id="4479671363221255277">정책을 설정하면 URL 패턴 목록을 만들어 사용자에게 File System API를 통해 호스트 운영체제의 파일 시스템 내 파일 또는 디렉터리에 대한 읽기 액세스 권한을 요청할 수 있는 사이트를 지정하는 것이 가능합니다. @@ -3918,6 +4035,7 @@ <translation id="4482784169143060077">자동 HTTPS 업그레이드 사용 설정</translation> <translation id="4483120730995943109">시간 초과가 0ms인 자바스크립트 setTimeout()이 1ms로 클램프되지 않습니다.</translation> <translation id="4483649828988077221">자동 업데이트 사용 안함</translation> +<translation id="4483738129334574255">등록된 <ph name="PRODUCT_OS_NAME" /> 기기에서 공룡 이스터 에그 게임을 사용 중지하고 다른 상황에서는 사용 설정합니다.</translation> <translation id="4484515651939984695">액세스 코드 또는 QR 코드로 선택된 Cast 기기가 <ph name="PRODUCT_NAME" /> 메뉴의 Cast 기기 목록에 표시되는 기간 지정(단위: 초)</translation> <translation id="4485425108474077672">새 탭 페이지 URL 설정</translation> <translation id="4490420545181481759">X.509 인증서는 인증서의 확장 프로그램에 이름 제약조건과 같은 제약조건을 인코딩할 수 있습니다. RFC 5280은 신뢰 앵커 인증서에 이러한 제약조건을 적용하는 것이 선택사항임을 명시합니다. 이제 <ph name="PRODUCT_NAME" /> 112부터 플랫폼 인증서 저장소에서 로드된 인증서에 이러한 제약조건이 적용됩니다. @@ -4099,6 +4217,9 @@ <translation id="46321462262887935">맨 위 키를 기능 키로 사용하지만 사용자가 변경하도록 허용</translation> <translation id="4632343302005518762"><ph name="PRODUCT_FRAME_NAME" />이(가) 목록에 있는 콘텐츠 유형을 처리하도록 허용</translation> <translation id="4636354638176939375">관리 대상 사용자 만들기 사용 중지</translation> +<translation id="46383668315040154">기기에서 사용해야 할 특정 출시 채널을 지정합니다. + +<ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 설정은 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" />를 false로 설정하는 경우에만 적용됩니다.</translation> <translation id="4646626362889216307">정책을 설정하면 범위 및 수준이 같은 경우 출처가 서로 달라도 선택한 정책을 병합하도록 허용됩니다. 각 출처의 사전에 있는 첫 번째 수준 키를 병합합니다. 우선순위가 가장 높은 출처의 키가 우선 적용됩니다. '*' 와일드 카드를 사용하여 지원되는 모든 사전 정책의 병합을 허용합니다. @@ -4224,6 +4345,7 @@ <ph name="MAC_OS_NAME" /> 인스턴스의 경우 인스턴스가 MDM을 통해 관리되거나, MCX를 통해 도메인에 연결되거나, <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />에 등록된 경우에만 Chrome 웹 스토어 외부의 앱 및 확장 프로그램이 강제 설치될 수 있습니다.</translation> <translation id="4742973303930120836">배경 그래픽 인쇄 모드 제한</translation> +<translation id="4744467872051608680">M119부터 정책을 False로 설정하거나 설정하지 않으면 WebSQL이 사용 중지되지만 Chrome 신고 'web-sql-access'를 통해 사용 설정할 수 있습니다. 정책을 True로 설정하면 WebSQL 액세스가 사용 설정됩니다.</translation> <translation id="4745232963710538589">사용 측정항목 보고를 위한 통계 확장 프로그램 사용 설정</translation> <translation id="4749670563834935149">로그인 화면 및 잠금 화면의 URL 목록에 <ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" />을(를) 사용 설정합니다. @@ -4478,6 +4600,14 @@ <translation id="499654521603185442">웹사이트 텔레메트리 보고</translation> <translation id="4997074784107449343">이미지로 인쇄 옵션이 사용 가능한 경우 PDF 문서의 인쇄 미리보기로 기본적으로 설정되지 않습니다.</translation> <translation id="500149597848135831">모든 변형 허용</translation> +<translation id="5017157692744444035">이 정책은 기기 이름, 네트워크 주소 등 기기 식별을 위해 사용할 수 있는 정보의 보고 여부를 제어합니다. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 정책이 설정되지 않거나 사용 중지되면 정책이 무시됩니다. + +정책이 설정되지 않거나 true로 설정되면 기기 식별을 위해 사용할 수 있는 정보가 수집됩니다. +false로 설정되면 기기 식별을 위해 사용할 수 있는 정보가 수집되지 않습니다. + +<ph name="PRODUCT_NAME" />의 경우 이 정책은 기기가 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />에 등록되어 있을 때만 적용됩니다.</translation> <translation id="5017369989680827157">정책을 True로 설정하거나 설정하지 않으면 사용자가 UI의 주소 자동 완성을 제어할 수 있습니다. 정책을 False로 설정하면 자동 완성에서 주소 정보를 제안하거나 채워 넣지 않고, 사용자가 웹을 탐색하는 동안 제출한 추가 주소 정보도 저장하지 않습니다.</translation> @@ -4500,6 +4630,7 @@ <translation id="5036013147560568855">인증서 프로비저닝 프로토콜의 버전입니다. 기본값은 1입니다. 1은 '정적' 프로토콜이고, 2는 '동적' 프로토콜입니다.</translation> <translation id="5039110755072335605">와일드카드가 아닌 CORS 요청 헤더 지원</translation> <translation id="504116558738617678">기기가 관리되지 않거나 사용자가 1명만 있는 경우에만 디스크 공간 부족 경고 표시</translation> +<translation id="5041315457555330432">CastAllowAllIPs 기능이 사용 설정되지 않은 경우 <ph name="PRODUCT_NAME" />에서 비공개 IP 주소의 기기에만 연결하도록 허용합니다.</translation> <translation id="5046376406561077773">사용자가 <ph name="GOOGLE_DRIVE_NAME" /> 파일 동기화 기능과 관련된 UI를 볼 수 없음</translation> <translation id="5055474681190962362">재부팅이 이루어져야 하는 날짜[1~31일]로, 기기의 현지 시간대로 변환됩니다. 'frequency'가 'MONTHLY'인 경우에만 사용됩니다. 특정 월에 최대 일 수보다 큰 경우 해당 월의 마지막 날이 선택됩니다.</translation> <translation id="5056708224511062314">화면 돋보기 사용 중지됨</translation> @@ -4737,6 +4868,9 @@ 정책을 False로 설정하거나 설정하지 않으면 통합 바탕화면이 사용 중지되며 사용자가 사용 설정할 수 없습니다.</translation> <translation id="5255162913209987122">권장 가능</translation> <translation id="525543707238275321">기기 CPU 정보 보고 사용 중지</translation> +<translation id="5255790642269910630">이 정책을 설정하면 정책 값을 변경한 후 처음 연결할 때와 재부팅할 때마다 지정된 방향으로 각 화면이 회전합니다. 사용자는 로그인한 후 설정 페이지를 통해 화면 회전을 변경할 수 있으나, 다음 재부팅 시 원래 설정으로 다시 변경됩니다. 이 정책은 기본 및 보조 화면에 적용됩니다. + +설정하지 않으면 기본값은 0도이며 사용자가 자유롭게 변경할 수 있습니다. 이 경우 다시 시작할 때 기본값이 재적용되지 않습니다.</translation> <translation id="5257395339965216304">호스팅된 앱 데이터</translation> <translation id="5258445772095084618">제휴되지 않은 사용자가 Linux 앱을 지원하는 데 필요한 가상 머신을 사용하도록 허용</translation> <translation id="5262320080678421295">Symantec Corporation의 이전 PKI에서 발급된 인증서에 대한 트러스트 사용 중지</translation> @@ -4791,6 +4925,9 @@ 유효한 <ph name="URL_LABEL" /> 패턴에 관해 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참고하세요. 이 정책은 출처만 기준으로 일치 여부를 판단하므로 URL 패턴의 경로는 무시됩니다.</translation> <translation id="5318185076587284965">원격 액세스 호스트에 의한 릴레이 서버 사용 설정</translation> +<translation id="5321624917465764266">이 정책을 사용으로 설정하거나 설정하지 않으면 방문 기록 및 다운로드 기록이 Chrome에서 삭제될 수 있으며 사용자가 이 설정을 변경할 수 없습니다. + +정책을 사용 안함으로 설정하면 방문 기록 및 다운로드 기록이 삭제되지 않습니다. 정책을 사용 중지해도 방문 및 다운로드 기록이 반드시 보관되는 것은 아닙니다. 사용자는 기록 데이터베이스 파일을 직접 수정하거나 삭제할 수 있습니다. 또한 브라우저는 언제든지 기록 항목을 자체적으로 만료시키거나 보관처리할 수 있습니다.</translation> <translation id="5323200200131319468">로그인 화면에서 음성 피드백 사용 설정</translation> <translation id="5323271643727095577">beforeunload 이벤트에 대해 event.preventDefault()가 호출될 때 취소 대화상자를 표시하지 않습니다. beforeunload event.returnValue가 beforeunload 이벤트의 빈 문자열인 경우 취소 대화상자를 표시합니다.</translation> <translation id="5323355956693037267">로그인 화면에서 터치 키보드 사용 설정</translation> @@ -5031,6 +5168,9 @@ <translation id="5535256585099022933">다시 실행될 시간 간격 설정</translation> <translation id="553806128266843748">제한을 사용 설정할지 나타내는 부울 플래그입니다.</translation> <translation id="5540885720415375851">로컬 기기 검색 허용</translation> +<translation id="5542235730745104308">정책을 True로 설정하면 <ph name="PRODUCT_NAME" />에서 브라우저에 내장된 대체 오류 페이지(예: '페이지를 찾을 수 없습니다')를 사용합니다. 정책을 False로 설정하면 <ph name="PRODUCT_NAME" />에서 대체 오류 페이지를 사용하지 않습니다. + +정책을 설정하면 사용자가 변경할 수 없습니다. 설정하지 않으면 정책이 사용 설정되지만 사용자가 이 설정을 변경할 수 있습니다.</translation> <translation id="5544059132156503357">정책을 설정하면 <ph name="MS_AD_NAME" /> 서버에서 Kerberos 티켓을 요청할 때 어떤 암호화 유형이 허용되는지 지정됩니다. 정책을 다음과 같이 설정할 수 있습니다. @@ -5192,6 +5332,9 @@ <translation id="5660228672907979869">서드 파티 저장용량 파티셔닝이 사용 설정되지 않도록 차단합니다.</translation> <translation id="5660950553460381588">가능한 경우 기본적으로 iCloud 키체인에서 패스키를 만듭니다.</translation> <translation id="5666457529647159548">사용자가 설치된 클라이언트 인증서를 관리하도록 허용</translation> +<translation id="5670249935663090320">정책을 사용 설정하거나 설정하지 않은 상태로 두면 <ph name="PRODUCT_NAME" />가 사용 설정되며 사용자가 앱 메뉴, 페이지 컨텍스트 메뉴, Cast 지원 웹사이트의 미디어 컨트롤, Cast 툴바 아이콘(표시되는 경우)을 통해 실행할 수 있습니다. + +정책을 사용 중지하면 <ph name="PRODUCT_NAME" />가 사용 중지됩니다.</translation> <translation id="567377007899266033">정책을 True로 설정하면 정책에 의해 실행된 확장 프로그램 설치 중에 발생한 중요 이벤트의 보고서를 Google로 전송합니다. False로 설정하면 이벤트가 캡처되지 않습니다. 정책이 설정되지 않으면 기본값이 True로 설정됩니다.</translation> <translation id="5676740747107495269">로그인 화면 작업 표시줄 메뉴에 접근성 옵션 표시</translation> <translation id="5679540979548648200">기기의 사용자가 ADB 사이드로드를 사용하지 못하게 하고 이전에 사이드로드가 사용 설정된 경우 기기 파워워시를 강제 시행</translation> @@ -5792,6 +5935,9 @@ <translation id="625580680776945310">고효율 모드가 사용 설정됩니다.</translation> <translation id="6258658183356534534">User-Agent Client Hints GREASE 업데이트 기능을 제어합니다.</translation> <translation id="6261643884958898336">기기 식별 정보 보고</translation> +<translation id="6264247808139384018">정책을 사용 설정하거나 설정하지 않으면 비밀번호로 인증하는 사용자가 화면을 잠글 수 있습니다. + +정책을 사용 중지하면 사용자가 화면을 잠글 수 없습니다. (사용자 세션에서 로그아웃만 할 수 있음)</translation> <translation id="6265892395051519509">이 사이트에서 센서에 액세스하도록 허용</translation> <translation id="6266043141694454734">Chrome Root Store 및 내장된 인증서 확인 기능을 서버 인증서 확인에 사용할지 결정합니다.</translation> <translation id="6267130578410325007">이 정책은 기본적으로 출처 관련 에이전트 클러스터링을 허용합니다. @@ -6023,6 +6169,9 @@ <translation id="6412352702230183710">시스템 수준의 기본 메시지 호스트만 허용</translation> <translation id="6416506846917150119">사용자 입력 시 실제 키보드의 예측 작성 사용 중지</translation> <translation id="6417265370957905582">Google 어시스턴트</translation> +<translation id="6421254653839955267">정책을 사용으로 설정하면 CNAME 조회를 건너뜁니다. 서버 이름은 Kerberos SPN 생성 시 입력한 이름으로 사용됩니다. + +정책을 사용 안함으로 설정하거나 설정하지 않으면 Kerberos SPN 생성 시 CNAME 조회로 서버의 표준 이름이 결정됩니다.</translation> <translation id="6424485010103067949"><ph name="OMA_URI" />:</translation> <translation id="6424486395812679373">다운로드한 모든 파일에 대해 세이프 브라우징 확인 실행</translation> <translation id="6433697627431665375"><ph name="PRODUCT_NAME" /> 데이터가 백업에 포함되지 않도록 차단</translation> @@ -6087,7 +6236,21 @@ <translation id="6462604655173570082">정책을 설정하지 않거나 '사용'으로 설정하면 사용자가 새 탭 페이지의 검색창에서 <ph name="GOOGLE_LENS_PRODUCT_NAME" /> 버튼을 보고 사용할 수 있습니다. 정책을 '사용 안함'으로 설정하면 새 탭 페이지의 검색창에 <ph name="GOOGLE_LENS_PRODUCT_NAME" /> 버튼이 표시되지 않습니다.</translation> <translation id="6464074037294098618">주소 자동 완성 사용</translation> <translation id="6467613372414922590">관리자 권한 없이 설치된 사용자 수준의 기본 메시지 호스트를 허용합니다.</translation> +<translation id="6467707081687600148"><ph name="PRODUCT_OS_NAME" /> 업데이트 적용 후 자동 재부팅을 예약합니다. + +정책을 true로 설정하면 <ph name="PRODUCT_OS_NAME" /> 업데이트가 적용되고 업데이트 절차를 완료하기 위해 재부팅이 필요한 경우 자동 재부팅이 예약됩니다. 재부팅은 즉시 예약되지만 사용자가 현재 기기를 사용하고 있는 경우 최대 24시간까지 기기 재부팅이 지연될 수 있습니다. + +정책을 false로 설정하면 <ph name="PRODUCT_OS_NAME" /> 업데이트 적용 후 자동 재부팅이 예약되지 않습니다. 업데이트 절차는 사용자가 다음번 기기를 재부팅할 때 완료됩니다. + +이 정책을 설정하면 사용자가 변경하거나 재정의할 수 없습니다. + +참고: 현재 자동 재부팅은 로그인 화면이 표시되어 있거나 키오스크 앱 세션이 진행 중일 때만 사용 설정됩니다.</translation> <translation id="6471018476824827813">URL로 입력된 측정항목 수집이 허용됩니다</translation> +<translation id="6471927932956897852">OS 업데이트 페이로드에 P2P를 사용할지 지정합니다. +true로 설정하면 기기는 LAN에서 업데이트 페이로드를 공유한 후 소비하려고 시도하여 인터넷 대역폭 사용량 및 혼잡을 줄일 수 있습니다. LAN에서 업데이트 페이로드를 사용할 수 없는 경우 기기가 업데이트 서버로부터 다운로드하는 설정으로 대체됩니다. +false로 설정하면 P2P가 사용되지 않습니다. + +참고: 소비자 기기와 기업용 기기의 기본 동작은 서로 다릅니다. 관리 기기에서는 P2P가 사용 설정되지만 관리 기기가 아닌 기기에서는 사용 중지됩니다.</translation> <translation id="6473623140202114570">세이프 브라우징에서 경고를 표시하지 않는 도메인의 목록을 설정합니다.</translation> <translation id="6474194795370862403">이전 offsetParent 동작이 사용됩니다.</translation> <translation id="647645276885673708"><ph name="LACROS_NAME" />를 사용 설정하고 기본 브라우저로 지정</translation> @@ -6146,6 +6309,11 @@ 정책 값은 밀리초로 지정되어야 합니다. 유휴 지연 시간보다 작도록 값이 잘립니다.</translation> <translation id="6497085755801788141">내장된 인증서 확인 기능 사용</translation> +<translation id="6504720469162323184">정책을 설정하면 <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_ID_POLICY_NAME" /> 정책에서 지정한 기기 로컬 계정에 자동 로그인하기 전까지 사용자 활동이 없는 시간이 밀리초 단위로 결정됩니다. + +정책을 설정하지 않으면 0밀리초가 제한 시간으로 사용됩니다. + +<ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_ID_POLICY_NAME" /> 정책이 설정되어 있지 않으면 이 정책이 적용되지 않습니다.</translation> <translation id="65055701428353978">이 정책을 설정하면 표준 https://<extension id>.chromiumapp.org/ 리디렉션 URL 외에 <ph name="IDENTITY_API_NAME" /> API(<ph name="IDENTITY_API_URL" />)를 함께 사용하는 확장 프로그램의 OAuth 리디렉션 URL 목록이 영향을 받는 확장 프로그램별로 지정됩니다. 이 정책을 설정하지 않거나 빈 URL 목록을 제공하면 <ph name="IDENTITY_API_NAME" /> API를 사용할 때 모든 앱 또는 확장 프로그램에서 표준 리디렉션 URL만 사용할 수 있습니다.</translation> @@ -6245,6 +6413,7 @@ 이 정책은 EnabledPlugins 및 DisabledPluginsExceptions에 의해 재정의될 수 있습니다. 아 정책을 설정하지 않으면 사용자가 시스템에 설치된 플러그인 중 하드 코딩되었으며 호환되지 않거나, 오래되었거나, 위험한 플러인을 제외한 모든 플러그인을 사용할 수 있습니다.</translation> +<translation id="6571055160227165318">WebSQL이 Chrome 신고에 의해 사용 설정되도록 허용합니다.</translation> <translation id="6574903167639386816">사용자 세션 종료 시 디스크의 프로필 데이터 삭제</translation> <translation id="6575403002861093126">정책을 설정하면 그룹 정책 객체(GPO)의 전체 기간을 시간 단위로 지정합니다. 이는 GPO가 다시 다운로드되기 전에 다시 사용될 수 있는 최대 기간을 의미합니다. 정책을 가져올 때마다 GPO를 다시 다운로드하는 대신 시스템에서 캐시된 GPO를 재사용(버전이 바뀌지 않는다는 전제하에)합니다. @@ -6373,6 +6542,11 @@ 정책을 사용 중지하거나 설정하지 않으면 인쇄 명령으로 인쇄 미리보기 화면이 실행됩니다.</translation> <translation id="6655274714135630366">16진수로 인코딩된 디스크 이미지의 SHA-256 해시입니다.</translation> +<translation id="6655844456903132379">정책을 사용으로 설정하면 HTTP 인증에서 KDC 정책에 의한 인증을 승인합니다. 즉, <ph name="PRODUCT_NAME" />에서는 KDC가 서비스 티켓에 <ph name="OK_AS_DELEGATE" />를 설정한 경우에만 액세스할 서비스에 사용자 인증 정보를 위임합니다. RFC 5896( https://tools.ietf.org/html/rfc5896.html )을 참고하세요. 서비스는 <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" />에 의해 허용되어야 합니다. + +정책을 사용 안함으로 설정하거나 설정하지 않으면 지원되는 플랫폼에서 KDC 정책이 무시되고 <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> 정책만 인정됩니다. + +<ph name="MS_WIN_NAME" />에서는 KDC 정책이 항상 인정됩니다.</translation> <translation id="6658245400435704251">업데이트를 처음 서버로 푸시한 시점부터 기기가 몇 초까지 임의로 업데이트의 다운로드를 지연시킬 수 있는지 지정합니다. 기기가 이 시간의 일부를 일반 시계 시간 기준으로, 그리고 나머지 시간을 업데이트 확인 횟수 기준으로 지연시킵니다. 모든 경우, 기기가 고착되어 업데이트 다운로드를 계속 기다리지 않도록 분산의 상한이 일정 시간으로 제한되어 있습니다.</translation> <translation id="6659537776197644458">비밀번호 동기화를 위한 인증 흐름 트리거 안 함</translation> <translation id="6661178198729301029">관리 프로필 클라우드 보고 사용</translation> @@ -6394,6 +6568,11 @@ <translation id="6670794785040100077"><ph name="CLOUD_PRINT_NAME" />에 문서 제출 사용 안함</translation> <translation id="6672070613706645316">사용자가 새 탭 페이지의 배경을 맞춤설정하도록 허용</translation> <translation id="6672630473862787247">일반, 시크릿 모드, 게스트 세션에서 수동 인증을 사용 설정합니다.</translation> +<translation id="6676012253361586167">Crostini 컨테이너로 포트 전달 허용 여부를 지정합니다. + +정책이 true로 설정되거나 설정되지 않으면 사용자가 Crostini 컨테이너로 포트 전달을 구성할 수 있습니다. + +false로 설정되면 Crostini 컨테이너로 포트 전달이 사용 중지됩니다.</translation> <translation id="6677291257287862684">로그인 화면에서 고정키 사용</translation> <translation id="6682305153467826752">머신 식별 정보 보고 사용</translation> <translation id="6685903773201985073">게스트 세션과 일반 세션에서 수동 인증을 사용 설정합니다.</translation> @@ -6768,6 +6947,9 @@ 프록시 정책 설정에 다른 모드를 선택했다면 이 정책을 설정하지 마세요. 참고: 자세한 예시를 보려면 Chromium 프로젝트(https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett)를 참고하세요.</translation> +<translation id="7001915679435065291">정책을 1로 설정하면 모든 웹사이트에서 이미지 표시를 허용합니다. 정책을 2로 설정하면 이미지 표시를 거부합니다. + +설정하지 않으면 이미지를 허용하지만 사용자가 이 설정을 변경할 수 있습니다.</translation> <translation id="7002040773317582266">메인 프레임 URL의 실시간 확인이 사용 설정됩니다.</translation> <translation id="7003746348783715221"><ph name="PRODUCT_NAME" /> 환경설정</translation> <translation id="7007283257527015835">프로토콜 핸들러가 기본값으로 설정되어야 하는지 나타내는 부울 플래그입니다.</translation> @@ -6902,6 +7084,11 @@ False로 설정하면 기능이 사용 중지됩니다.</translation> <translation id="7123271473727774529">색상 보정 접근성 기능 사용 설정</translation> <translation id="7126716959063786004">작업 관리자의 종료 프로세스 사용</translation> +<translation id="7126787606641224668">Kerberos 인증 대화상자에서 '비밀번호 기억' 기능의 사용 여부를 제어합니다. 비밀번호는 암호화되어 디스크에 저장되며 사용자 세션 동안에 Kerberos 시스템 데몬에서만 액세스할 수 있습니다. + +이 정책이 사용 설정되거나 설정되지 않으면 다시 비밀번호를 입력하지 않아도 되도록 사용자가 Kerberos 비밀번호를 저장 여부를 결정할 수 있습니다. 추가 인증이 필요한 경우(2단계 인증)가 아니면 Kerberos 티켓을 자동으로 가져옵니다. + +이 정책이 사용 중지되면 비밀번호가 저장되지 않으며 이전에 저장된 모든 비밀번호는 삭제됩니다. 사용자는 Kerberos 시스템 인증이 필요할 때마다 비밀번호를 입력해야 합니다. 서버 설정에 따라 보통 8시간에서 몇 달마다 인증이 필요합니다.</translation> <translation id="7126928806195745404">자바스크립트 설정</translation> <translation id="7127980134843952133">다운로드 기록</translation> <translation id="7128513247945602297">HTTPS 사이트에서 혼합 콘텐츠 자동 업그레이드 사용 설정</translation> @@ -6968,6 +7155,9 @@ <translation id="7157329428182136164">3D 그래픽 API 지원 사용함</translation> <translation id="7158358621906236999">기본 센서 설정</translation> <translation id="7161568070244869726">AppCache 강제 사용</translation> +<translation id="7165879643294314958">정책을 사용으로 설정하거나 설정하지 않으면 기기 로컬 계정이 지연 없는 자동 로그인으로 설정됩니다. <ph name="PRODUCT_OS_NAME" />에서 자동 로그인을 우회하고 로그인 화면을 표시하는 데 Ctrl+Alt+S 키보드 단축키를 인식합니다. + +정책을 사용 안함으로 설정하면 지연 없는 자동 로그인이 구성된 경우 사용자가 이를 우회할 수 없습니다.</translation> <translation id="7165882688932913315">이 정책은 로컬 검색 UI(<ph name="CHROME_DEVICES_LINK" />)에서 제어 가능한 기능에 대한 액세스 권한을 제어합니다. 로컬 검색 UI는 사용자 근처의 검색 가능한 기기 및 이러한 기기에 등록된 클라우드 기기를 표시합니다. 사용자는 <ph name="PRODUCT_OS_NAME" /> 제품을 제외한 모든 운영체제에서 로컬 검색 UI를 통해 컴퓨터에 연결된 일반 프린터를 <ph name="CLOUD_PRINT_NAME" />에 추가할 수 있습니다. 정책을 사용 설정하거나 설정하지 않으면 로컬 기기 검색을 허용합니다. @@ -7084,6 +7274,11 @@ <translation id="7269263983506766969">오디오 프로세스에 기본 우선순위 사용</translation> <translation id="7270001383428188269">클라이언트 인증서의 식별자입니다.</translation> <translation id="7271085005502526897">처음 실행 시 기본 브라우저에서 홈페이지 가져오기</translation> +<translation id="7272892848025145170">Kerberos 기능 사용 여부를 제어합니다. Kerberos는 웹 앱 및 파일 공유 인증에 사용할 수 있는 인증 프로토콜입니다. + +이 정책이 사용 설정되면 Kerberos 기능이 사용 설정됩니다. Kerberos 계정은 'Kerberos 계정 구성' 정책 또는 Kerberos 설정 페이지의 Kerberos 계정 설정을 사용해 추가할 수 있습니다. + +정책이 사용 중지되거나 설정되지 않으면 Kerberos 계정 설정이 사용 중지됩니다. Kerberos 계정을 추가할 수 없으며 Kerberos 인증도 사용할 수 없습니다. 기존의 모든 Kerberos 계정은 삭제되며 저장된 모든 비밀번호도 삭제됩니다.</translation> <translation id="7273785848231509306">사용자 이름 및 사진 표시 안함</translation> <translation id="7274077256421167535">USB 전력 공유 사용</translation> <translation id="7275334191706090484">관리 북마크</translation> @@ -7365,6 +7560,9 @@ https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html </translation> +<translation id="7512514325152952954"><ph name="PRODUCT_OS_NAME" />의 자동 업데이트 페이로드는 HTTPS 대신 HTTP에서 다운로드할 수 있습니다. 이를 통해 HTTP 다운로드에 대한 투명한 HTTP 캐싱이 가능해집니다. + +이 정책을 true로 설정하면 <ph name="PRODUCT_OS_NAME" />에서 HTTP를 통해 자동 업데이트 페이로드를 다운로드하려고 시도합니다. 이 정책이 false로 설정되어 있거나 아무런 설정이 되지 않은 경우 자동 업데이트 페이로드 다운로드 시 HTTPS를 사용합니다.</translation> <translation id="7515953732107149296">이 정책은 RC4가 <ph name="PRODUCT_NAME" />에서 삭제된 후 M53에서 삭제되었습니다. 정책이 설정되지 않거나 False로 설정되면 TLS의 RC4 암호화 스위트가 사용 설정되지 않습니다. 아니면 오래된 서버와의 호환성을 유지하기 위해 True로 설정될 수 있습니다. 임시방편이므로 서버를 다시 구성해야 합니다.</translation> @@ -7377,6 +7575,11 @@ 정책을 설정하지 않거나 True로 설정하면 알림이 표시되어 사용자에게 비밀번호를 입력하기 전에 전체 화면을 종료하라고 안내합니다. False로 설정하면 알림이 표시되지 않습니다.</translation> <translation id="7531630046107845550">터미널 시스템 앱에서 SSH 발신 클라이언트 연결을 허용합니다.</translation> +<translation id="7533385610709354870"><ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> 정책이 사용 중지되어 있지 않은 한, <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" />를 사용 설정하면 <ph name="PRODUCT_NAME" />가 RFC1918/RFC4193 비공개 주소뿐 아니라 모든 IP 주소에서 Cast 기기에 연결됩니다. + +정책을 사용 중지하면 <ph name="PRODUCT_NAME" />가 RFC1918/RFC4193에서만 Cast 기기에 연결됩니다. + +정책을 설정하지 않으면 CastAllowAllIPs 기능이 사용 설정되어 있지 않은 한 <ph name="PRODUCT_NAME" />가 RFC1918/RFC4193에서만 Cast 기기에 연결됩니다.</translation> <translation id="7534199150025803530">이 정책은 Android Google Drive 앱에 아무런 영향도 미치지 않습니다. 모바일 연결을 통해 Google Drive를 사용하지 못하게 하려면 Android Google Drive 앱 설치를 허용하지 않아야 합니다.</translation> <translation id="7538583957913002726">이 정책은 기본적으로 사용으로 설정됩니다. 등록된 기기에서 CPU 모델 이름, 아키텍처, 최대 클럭 속도(M96 이상의 경우 CPU 사용률 및 온도 포함)를 보고하도록 제어합니다. @@ -7665,6 +7868,13 @@ 정책을 설정하지 않는 경우 <ph name="DEFAULT_CLIPBOARD_SETTING" />이 설정되어 있으면 DefaultClipboardSetting이 모든 사이트에 적용되며 설정되어 있지 않으면 사용자의 개인 설정이 적용됩니다. 유효한 <ph name="URL_LABEL" /> 패턴에 관해 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참고하세요. <ph name="WILDCARD_VALUE" />는 이 정책에 허용되는 값이 아닙니다.</translation> +<translation id="7790221177424764797">이 정책은 <ph name="IE_PRODUCT_NAME" />의 SiteList 정책으로부터 규칙을 로드할지 제어합니다. + +정책을 true로 설정하면 <ph name="PRODUCT_NAME" />에서 <ph name="IE_PRODUCT_NAME" />의 <ph name="IEEM_SITELIST_POLICY" /> 정책을 읽고 사이트 목록의 URL을 확보합니다. 그런 다음 <ph name="PRODUCT_NAME" />이 URL로부터 사이트 목록을 다운로드하며 <ph name="BROWSER_SWITCHER_URL_LIST_POLICY_NAME" /> 정책으로 규칙이 설정된 경우와 동일한 규칙을 적용합니다. + +정책을 false로 설정하거나 설정하지 않으면 <ph name="PRODUCT_NAME" />에서 브라우저를 전환하는 규칙의 출처로 <ph name="IE_PRODUCT_NAME" />의 <ph name="IEEM_SITELIST_POLICY" /> 정책을 사용하지 않습니다. + +Internet Explorer의 <ph name="IEEM_SITELIST_POLICY" /> 정책(https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)을 자세히 살펴보세요.</translation> <translation id="7791215522423893512">사용자가 스크린샷을 찍고 동영상을 녹화하도록 허용 안함</translation> <translation id="7792796937016596423">사용자가 네트워크 패킷 캡처를 실행할 수 없음</translation> <translation id="7798441698807517880">이 정책은 <ph name="FLASH_PLUGIN_NAME" />이(가) 지원 중단되어 <ph name="PRODUCT_NAME" /> 버전 89부터 삭제되었습니다. @@ -7735,6 +7945,9 @@ 설정되지 않으면 처음에는 로그인 화면에서 고대비가 사용되지 않지만 사용자가 언제든지 사용 설정할 수 있습니다.</translation> <translation id="7864539943188674973">블루투스 사용 안함</translation> <translation id="7869986671709030417">기본 배경 그래픽 인쇄 모드</translation> +<translation id="7872692545596413465">정책을 사용으로 설정하고 비표준 포트(즉, 80 또는 443이 아닌 포트)를 입력하면 생성된 Kerberos SPN에 포트가 포함됩니다. + +정책을 사용 안함으로 설정하거나 설정하지 않으면 생성된 Kerberos SPN에 포트가 포함되지 않습니다.</translation> <translation id="7877924399554599110">사용자 클라우드 정책과 시스템 수준 정책의 병합 사용</translation> <translation id="7881421274383404138">정책을 설정하면 회사 프린터가 구성됩니다. 형식은 <ph name="PRINTERS_POLICY_NAME" /> 사전과 일치하며 프린터마다 허용 목록 또는 차단 목록을 사용하려면 <ph name="ID_FIELD" /> 또는 <ph name="GUID_FIELD" /> 필드가 추가로 필요합니다. 파일 크기는 5MB를 초과할 수 없으며 JSON 형식입니다. 약 21,000대의 프린터가 포함된 파일은 5MB 크기의 파일로 인코딩됩니다. 암호화 해시로 다운로드 파일의 무결성을 확인할 수 있습니다. 파일이 다운로드되고 캐시되며 이후 URL 또는 해시가 변경되면 다시 다운로드됩니다. <ph name="PRODUCT_OS_NAME" />에서 프린터 설정 파일을 다운로드하고 <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME" />, <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" />, <ph name="PRINTERS_BULK_BLOCKLIST_POLICY_NAME" />에 따라 프린터를 사용할 수 있게 합니다. @@ -7787,6 +8000,11 @@ 이 엔터프라이즈 정책은 관리자가 사용자의 추가 제한 사용 설정 가능 여부를 제어할 수 있도록 하기 위해 존재합니다. 정책을 사용 안함으로 설정하면 제한이 사용 설정되지 않습니다. 정책을 사용으로 설정하거나 설정하지 않으면 사용자가 제한을 사용하거나 Chrome 변형을 통해 사용 설정할 수 있습니다.</translation> <translation id="793188693675675950">처음 실행 시 홈페이지 가져오기 사용 중지</translation> +<translation id="7932017046032784156">정책을 사용으로 설정하면 툴바 또는 더보기 메뉴에 Cast 툴바 아이콘이 표시되며, 사용자는 이를 삭제할 수 없습니다. + +정책을 사용 안함으로 설정하거나 설정하지 않으면 사용자가 컨텍스트 메뉴를 통해 아이콘을 고정하거나 삭제하도록 허용합니다. + +<ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> 정책이 사용 안함으로 설정된 경우 이 정책의 값은 적용되지 않으며, 툴바 아이콘도 표시되지 않습니다.</translation> <translation id="7933141401888114454">관리 대상 사용자 생성을 허용합니다.</translation> <translation id="793473937901685727">ARC 앱에 인증서 사용 가능 여부 설정</translation> <translation id="7936302526928951356">메이저 버전에서는 사용자 에이전트 문자열이 고정되지 않습니다.</translation> @@ -7977,6 +8195,11 @@ 정책을 설정하면 사용자가 이러한 작동을 변경하거나 재정의할 수 없습니다.</translation> <translation id="8080200590486938727">플러그인 파인더 사용 안함</translation> +<translation id="8086746212954621799">true로 설정되면 자동 업데이트가 사용 중지됩니다. + +설정이 구성되지 않거나 false로 설정되면 <ph name="PRODUCT_OS_NAME" /> 기기에서 자동으로 업데이트를 확인합니다. + +경고: 사용자가 소프트웨어 업데이트 및 주요 보안 수정사항을 받을 수 있도록 자동 업데이트를 사용 설정된 상태로 유지하는 것이 좋습니다. 자동 업데이트를 사용 중지하면 사용자가 위험에 노출될 수 있습니다.</translation> <translation id="8089200718228084417">사용하지 않는 Privet 인쇄 사용 중지</translation> <translation id="8091982561085048989">프린터 설정 시 IPP Everywhere의 사용 여부를 나타내는 부울 플래그입니다. 이 플래그는 <ph name="PRODUCT_OS_NAME" /> 버전 76 이상에서 지원됩니다.</translation> <translation id="8094095107731619070">사용자 입력 시 실제 키보드의 자동 수정 사용 설정</translation> @@ -8548,6 +8771,9 @@ <translation id="8584279193368801689">PIN 인쇄 모드를 제한합니다. 정책이 설정되지 않은 경우 제한이 없는 것으로 간주됩니다. 이 모드를 사용할 수 없는 경우 이 정책은 무시됩니다. PIN 인쇄 기능은 IPPS, HTTPS, USB 또는 IPP-over-USB 프로토콜을 사용하는 프린터에서만 지원됩니다.</translation> <translation id="8587229956764455752">새로운 사용자 계정 생성 허용</translation> <translation id="8589285015138337712">사용자가 시스템 바로가기를 맞춤설정하도록 허용 안함</translation> +<translation id="8589346048177748110">정책을 True로 설정하면 사용자가 공룡 게임을 플레이할 수 있습니다. 정책을 False로 설정하면 기기가 오프라인 상태일 때는 사용자가 공룡 이스터 에그 게임을 플레이할 수 없습니다. + +정책을 설정하지 않으면 사용자가 등록한 <ph name="PRODUCT_OS_NAME" />에서 게임을 플레이할 수 없지만 다른 상황에서는 플레이할 수 있습니다.</translation> <translation id="8591713876665299827">이 정책은 지원이 중단되었으며 <ph name="PRODUCT_OS_NAME" /> 버전 85에서 삭제될 예정입니다. 대신 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> 정책을 사용하세요. AC 전원으로 실행할 때 사용자 입력이 없어서 유휴 작업이 실행되기까지 걸리는 시간을 지정합니다. @@ -8592,6 +8818,15 @@ 정책이 설정되지 않으면 보고서가 24시간마다 업로드됩니다. 정책이 설정되면 보고서가 이 정책으로 정의된 시간만큼 간격을 두고 업로드됩니다.</translation> +<translation id="8618037841203431360">이 정책은 정책 데이터 및 정책을 가져오는 시간의 보고 여부를 제어합니다. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 정책이 설정되지 않거나 사용 중지되면 정책이 무시됩니다. + +정책이 설정되지 않거나 true로 설정되면 정책 데이터 및 정책을 가져오는 시간이 수집됩니다. +false로 설정되면 정책 데이터 및 정책을 가져오는 시간이 수집되지 않습니다. + +<ph name="PRODUCT_NAME" />의 경우 이 정책은 기기가 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />에 등록되어 있을 때만 적용됩니다. +<ph name="PRODUCT_OS_NAME" />의 경우 이 정책이 항상 적용됩니다.</translation> <translation id="8619748440665904084">처음 실행 시 양식 자동 완성 데이터 가져오기 사용 중지</translation> <translation id="8623672932476443039">정책을 사용으로 설정하면 사용자가 분리된 앱 개발자 모드를 사용할 수 있습니다. 정책을 사용 안함으로 설정하면 사용자가 해당 기능에 액세스할 수 없게 됩니다. @@ -8985,6 +9220,9 @@ 이 검사는 로그인 화면이 로드될 때마다 트리거되고 매시간 다시 재시도됩니다(기기의 로그인 화면이 유지되는 경우). 이로써 사용자 세션 도중에 이전이 시작되어 최종 사용자에게 문제가 생기지 않도록 합니다.</translation> <translation id="9003823644527627017"><ph name="PRODUCT_OS_NAME" />에서 Broschetta VM 구성하기</translation> +<translation id="9004469022085379212">정책을 사용 설정하면 기기가 <ph name="PRODUCT_OS_NAME" />에서 가상 머신을 실행할 수 있습니다. <ph name="PRODUCT_CROSTINI_NAME" />를 사용하려면 <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> 및 <ph name="CROSTINI_ALLOWED_POLICY_NAME" />가 사용 설정되어 있어야 합니다. 정책을 사용 중지하면 기기에서 가상 머신을 실행할 수 없습니다. 사용 중지하면 기존에 실행 중이던 가상 머신이 아닌 새로 시작되는 가상 머신에 정책 적용이 시작됩니다. + +관리 기기에 이 정책을 설정하지 않으면 기기에서 가상 머신을 실행할 수 없습니다. 관리되지 않는 기기에서는 가상 머신을 실행할 수 있습니다.</translation> <translation id="9007632512838819703">이 정책은 지원 중단되었으므로 <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" /> 정책을 대신 사용하세요. 맞춤법 검사 언어를 강제로 사용 중지합니다. 목록에서 인식할 수 없는 언어는 무시됩니다. @@ -9132,6 +9370,9 @@ <translation id="9098409326885953506">가려진 창을 감지하여 색상 설정 정지</translation> <translation id="9105265795073104888">프록시 설정 옵션 중 일부만 Android 앱에서 사용할 수 있습니다. Android 앱에서는 자발적으로 프록시를 사용하도록 선택할 수 있습니다. 강제로 Android 앱에서 프록시를 사용하도록 할 수 없습니다.</translation> <translation id="9106865192244721694">이 사이트에서 WebUSB 허용</translation> +<translation id="9107635531763682565">정책을 1로 설정하면 웹사이트에서 데스크톱 알림을 표시하도록 허용합니다. 정책을 2로 설정하면 데스크톱 알림을 거부합니다. + +정책을 설정하지 않으면 <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> 정책이 적용되지만 사용자가 이 설정을 변경할 수 있습니다.</translation> <translation id="9110251436602897914">기기에 연결된 주변기기 관련 정보 보고</translation> <translation id="9111850884577810507">이 필드는 <ph name="PRODUCT_NAME" /> 지원 프린터를 나타내는 문자열 중 하나와 일치해야 합니다. 이 문자열은 프린터에 맞는 PPD를 식별하고 설치하는 데 사용됩니다. https://support.google.com/chrome?p=noncloudprint에서 자세한 내용을 확인하세요.</translation> <translation id="9112727953998243860">엔터프라이즈 프린터 설정 파일</translation> @@ -9255,6 +9496,9 @@ <translation id="9191821120522935133">표시되지 않는 교차 출처 iframe 제한 허용</translation> <translation id="9192220384862917760">원격 액세스 호스트 차단을 사용 설정</translation> <translation id="9195766455191826480">보안 상태 보고 안함</translation> +<translation id="9197238499850071076">기기가 이미 이후 버전을 실행하는 경우 기기를 <ph name="DEVICE_TARGET_VERSION_PREFIX_POLICY_NAME" />에 설정된 버전으로 롤백할지 지정합니다. + +기본값은 RollbackDisabled입니다.</translation> <translation id="9197740283131855199">화면이 어두워진 후 사용자의 활동이 감지될 때 화면 어둡게 하기 지연 시간이 조정되는 비율</translation> <translation id="9200828125069750521">POST를 사용하는 이미지 URL용 매개변수</translation> <translation id="9204863016826119209">회사 키가 설치되고 이 정책 목록에 포함된 Android 애플리케이션에서 사용할 수 있습니다.</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index e62c629..0bc765d 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -620,6 +620,11 @@ Als je het beleid uitzet, mogen niet-beveiligde HTTP-verzoeken het <ph name="BASIC_AUTH" />-verificatieschema niet gebruiken. Alleen beveiligde HTTPS is toegestaan. De instelling voor dit beleid wordt genegeerd (en <ph name="BASIC_AUTH" /> is altijd verboden) als het beleid <ph name="AUTH_SCHEMES_POLICY_NAME" /> is ingesteld en niet <ph name="BASIC_AUTH" /> bevat.</translation> +<translation id="1573074208167290576">Hiermee kun je instellen of gebruikers uitzonderingen kunnen toevoegen om gecombineerde content toe te staan voor specifieke sites. + +Dit beleid kan worden overschreven voor specifieke URL-patronen met het beleid InsecureContentAllowedForUrls en InsecureContentBlockedForUrls. + +Als je dit beleid niet instelt, kunnen gebruikers uitzonderingen toevoegen om blokkeerbare gecombineerde content toe te staan en automatische upgrades voor optioneel blokkeerbare gemengde content uitzetten.</translation> <translation id="1573444493980402757">Hiermee kun je een lijst met URL-patronen opgeven van sites waarvoor het recht voor vensterplaatsing automatisch wordt geweigerd. Dit beperkt de mogelijkheid van sites om informatie over de schermen van het apparaat te bekijken en die informatie te gebruiken om vensters te openen en te plaatsen of om een volledig scherm voor bepaalde schermen aan te vragen. Ga naar https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns voor gedetailleerde informatie over geldige site-URL-patronen. Jokertekens, <ph name="WILDCARD_VALUE" />, zijn toegestaan. Dit beleid zoekt alleen overeenkomsten op basis van de herkomst, dus elk pad in het URL-patroon wordt genegeerd. @@ -899,6 +904,13 @@ Dit beleid is verouderd. Gebruik in plaats daarvan <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. </translation> +<translation id="1825583118566970564">Beheert de installatie van externe extensies. + +Als je dit beleid toepast, kunnen externe extensies niet worden geïnstalleerd. + +Als je dit beleid niet toepast of niet instelt, kunnen externe extensies worden geïnstalleerd. + +Externe extensies en de installatie daarvan worden beschreven op https://developer.chrome.com/apps/external_extensions.</translation> <translation id="1827523283178827583">Vaste proxyservers gebruiken</translation> <translation id="1829117241432374848">Een beheerd account moet een primair account zijn, mag geen secundaire accounts hebben en de gebruiker kan bestaande gegevens importeren bij het maken van een profiel</translation> <translation id="1829839214911753838">Als je dit beleid toepast, wordt de host voor hulp op afstand uitgevoerd met <ph name="UIACCESS_PERMISSION_NAME" />-rechten. Hierdoor kunnen externe gebruikers vensters met verhoogde bevoegdheid gebruiken op de lokale desktop van de gebruiker. @@ -971,6 +983,15 @@ Het veld <ph name="RUN_ON_OS_LOGIN_FIELD" /> geeft aan of een web-app kan worden uitgevoerd tijdens de OS-login. Als dit veld is ingesteld op <ph name="BLOCKED" />, wordt de web-app niet uitgevoerd tijdens de OS-login en kan de gebruiker dit later niet aanzetten. Als dit veld is ingesteld op <ph name="RUN_WINDOWED" />, wordt de web-app uitgevoerd tijdens de OS-login en kan de gebruiker dit later niet uitzetten. Als dit veld is ingesteld op <ph name="ALLOWED" />, kan de gebruiker instellen dat de web-app wordt uitgevoerd tijdens de OS-login. De standaardconfiguratie staat alleen de waarden <ph name="ALLOWED" /> en <ph name="BLOCKED" /> toe. (Sinds versie 117) Het veld <ph name="PREVENT_CLOSE_FIELD" /> geeft aan of het sluiten van een web-app op een bepaalde manier wordt voorkomen (bijvoorbeeld door de gebruiker, taakbeheer, web-API's). Dit gedrag kan alleen worden aangezet als <ph name="RUN_ON_OS_LOGIN_FIELD" /> is ingesteld op <ph name="RUN_WINDOWED" />. Als de app al actief was, wordt deze property pas van kracht nadat de app opnieuw is opgestart. Als dit veld niet is gedefinieerd, kunnen gebruikers apps sluiten. (Sinds versie 118) Het veld <ph name="FORCE_UNREGISTER_OS_INTEGRATION" /> geeft aan of alle OS-integratie voor een web-app (zoals snelkoppelingen, bestandshandlers, protocolhandlers) wel of niet wordt verwijderd. Als er al een app actief is, wordt deze property van kracht nadat de app opnieuw is opgestart. Wees voorzichtig bij het gebruik, omdat hierdoor elke OS-integratie kan worden overschreven die automatisch wordt ingesteld tijdens het opstarten van het systeem met web-apps. Werkt op dit moment alleen op Windows-, Mac- en Linux-platforms.</translation> +<translation id="1874719875297132073">Met dit beleid wordt bepaald of er informatie moet worden gerapporteerd die kan worden gebruikt om gebruikers te identificeren, zoals de OS-inloggegevens, de inloggegevens voor het <ph name="PRODUCT_NAME" />-profiel, de profielnaam voor <ph name="PRODUCT_NAME" />, het profielpad voor <ph name="PRODUCT_NAME" /> en het uitvoerbare pad voor <ph name="PRODUCT_NAME" />. + +Als je het beleid <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> niet instelt of niet toepast, wordt dit beleid genegeerd. + +Als je dit beleid niet instelt of instelt op True, worden er gegevens verzameld die kunnen worden gebruikt om gebruikers te identificeren. +Als je dit beleid instelt op False, worden er geen gegevens verzameld die kunnen worden gebruikt om gebruikers te identificeren. + +Dit beleid is alleen van kracht als de machine is ingeschreven met <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> voor <ph name="PRODUCT_NAME" />. +Dit beleid is altijd van kracht voor <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="1883274744253492031">Automatisch upgraden van gemengde content aanzetten</translation> <translation id="1885782360784839335">Promotiecontent op volledig tabblad tonen</translation> <translation id="1888871729456797026">De inschrijvingstoken van het cloudbeleid op een desktop</translation> @@ -998,6 +1019,9 @@ Als je het beleid niet instelt, wordt de pagina 'Nieuw tabblad' geopend als de browser wordt opgestart. In <ph name="MS_WIN_NAME" /> is dit beleid alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, aan <ph name="MS_AAD_NAME" /> of zijn ingeschreven voor <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />.</translation> +<translation id="1897095538209040086">Als je het beleid toepast of niet instelt, houdt <ph name="PRODUCT_NAME" /> minstens één tabblad open nadat er is overgeschakeld naar een alternatieve browser. + +Als je het beleid niet toepast, sluit <ph name="PRODUCT_NAME" /> het tabblad nadat er is overgeschakeld naar een alternatieve browser, ook als dit het laatste tabblad was. Hierdoor wordt <ph name="PRODUCT_NAME" /> volledig gesloten.</translation> <translation id="1897365952389968758">Alle sites toestaan JavaScript uit te voeren</translation> <translation id="1902043648529789224">De positie van de plank bepalen</translation> <translation id="1904323733389537794">Als je het beleid instelt op True, worden er online <ph name="OCSP_CRL_LABEL" />-checks uitgevoerd. @@ -1450,6 +1474,9 @@ <translation id="225830954785359083">Voorkomen dat pagina's pop-ups tonen tijdens het unloaden</translation> <translation id="2261648512244797294">Verouderde Privet-afdrukken uitzetten</translation> <translation id="2266422599396179941">Toestaan dat gebruikers feedback indienen</translation> +<translation id="2268891553068901979">Als je het beleid toepast, wordt <ph name="GOOGLE_DRIVE_NAME" />-synchronisatie uitgezet in de Bestanden-app van <ph name="PRODUCT_OS_NAME" /> als de gebruiker een mobiele verbinding gebruikt. Gegevens worden alleen naar Drive gesynchroniseerd bij een verbinding met wifi of ethernet. + +Als je het beleid niet toepast of niet instelt, kunnen gebruikers bestanden overzetten naar Drive via een mobiele verbinding.</translation> <translation id="2269319728625047531">Synchronisatietoestemming tonen tijdens het inloggen</translation> <translation id="2270113153862588648">Als je het beleid toepast, wordt attest op afstand voor het apparaat toegestaan. Er wordt automatisch een certificaat gemaakt en naar de Device Management Server geüpload. @@ -1798,7 +1825,6 @@ Als het beleid niet wordt ingesteld, wordt <ph name="PRINTERS_ALLOW_ALL" /> toegepast.</translation> <translation id="2581338546762479588">Automatisch opnieuw opstarten na updates toestaan</translation> -<translation id="2582855747769273665">Een URL die gebruikers kunnen bezoeken voor meer informatie. Als je dit beleid niet instelt, bevat het installatieprogramma geen URL met meer informatie.</translation> <translation id="2586117300379904732">Wake locks voor stroombeheer toestaan</translation> <translation id="2586231026319371211">Tijd geïnterpreteerd als lokale tijd in 24-uursnotatie op wandklok.</translation> <translation id="2587719089023392205"><ph name="PRODUCT_NAME" /> instellen als standaardbrowser</translation> @@ -1946,6 +1972,9 @@ <translation id="2727844239611930002">Sta <ph name="PRODUCT_NAME" /> toe te bepalen of de <ph name="PRIVACY_SANDBOX_NAME" />-prompt wordt getoond.</translation> <translation id="2730200383593984228">Toestaan dat niet-gelieerde gebruikers Android-apps gebruiken</translation> <translation id="2730419309754848345">Pdf standaard afdrukken als afbeelding</translation> +<translation id="2730644640965800157">Als je het beleid toepast, wordt <ph name="GOOGLE_DRIVE_NAME" />-synchronisatie in de Bestanden-app van <ph name="PRODUCT_OS_NAME" /> uitgezet. Er worden geen gegevens geüpload naar Drive. + +Als je het beleid niet toepast of niet instelt, kunnen gebruikers bestanden overzetten naar Drive.</translation> <translation id="2731299561202635374">Dit beleid beheert realtime checks om niet-beveiligde URL's te identificeren. Als dit beleid niet is ingesteld of niet wordt toegepast, worden de Safe Browsing-checks van de consument toegepast. Safe Browsing-checks van de consument kunnen nog steeds realtime lookups bevatten, afhankelijk van de waarde van de instelling 'Zoekopdrachten en browsefunctionaliteit verbeteren' en de waarde van het beleid UrlKeyedAnonymizedDataCollectionEnabled. @@ -2001,6 +2030,9 @@ Als je 'ExternalStorageReadOnly' instelt op 'False' of niet instelt, kunnen gebruikers bestanden voor externe opslagapparaten met schrijffunctie maken en wijzigen, tenzij de externe opslag is geblokkeerd. (Je kunt externe opslag blokkeren door 'ExternalStorageDisable' in te stellen op 'True'.)</translation> <translation id="2789742777235177478">Beperken hoelang een gebruiker die via GAIA zonder SAML is geverifieerd offline kan inloggen op het vergrendelscherm</translation> +<translation id="2795923835422513629">Als je het beleid instelt op 1, kunnen websites pop-ups tonen. Als je het beleid instelt op 2, worden pop-ups geblokkeerd. + +Als je het beleid niet instelt, is <ph name="BLOCK_POPUPS_POLICY_NAME" /> van toepassing maar kunnen gebruikers deze instelling wijzigen.</translation> <translation id="2796714419743648316">Toelatingslijst voor tijdslimieten per app</translation> <translation id="2801065672151277034">Instellingen voor certificaatbeheer</translation> <translation id="2801155097555584385">Een custom startpunt voor batterijoplading opgeven in procenten</translation> @@ -2512,6 +2544,9 @@ Ga naar https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns voor gedetailleerde informatie over geldige URL-patronen. <ph name="WILDCARD_VALUE" /> is geen geaccepteerde waarde voor dit beleid.</translation> <translation id="3205825995289802549">Het eerste browservenster maximaliseren bij eerste uitvoering</translation> +<translation id="320607884987562184">Als je het beleid instelt op 1, mogen websites JavaScript uitvoeren. Als je het beleid instelt op 2, wordt JavaScript geblokkeerd. + +Als je het beleid niet instelt, is JavaScript toegestaan maar kunnen gebruikers deze instelling wijzigen.</translation> <translation id="3206959584699016689">Als je het beleid instelt, kun je een lijst met URL-patronen instellen van sites met toegang tot sensoren, zoals bewegingssensoren en lichtsensoren. Als je het beleid niet instelt, is <ph name="DEFAULT_SENSORS_SETTING_POLICY_NAME" /> (indien ingesteld) van toepassing op alle sites. Zo niet, dan gelden de persoonlijke instellingen van de gebruiker. @@ -2692,6 +2727,10 @@ <translation id="3362584244602846824">Fast Transition gebruiken als dit wordt ondersteund door het draadloze toegangspunt</translation> <translation id="3363360928811201045">Beperkingen op beheerde accounts beheren</translation> <translation id="3364400740222114778">Accountherstel</translation> +<translation id="3367361756115023251">De gebruiker toestemming geven voor roottoegang tot Crostini-containers. + +Als je het beleid instelt op True of niet instelt, krijgt de gebruiker toestemming voor roottoegang tot Crostini-containers. +Als je het beleid instelt op False, krijgt de gebruiker geen toestemming voor toegang tot zowel bestaande als nieuwe Crostini-containers.</translation> <translation id="3373381043600809954"><ph name="PRODUCT_NAME" /> aanzetten</translation> <translation id="3374587000313305002">Hiermee wordt de directory geconfigureerd die <ph name="PRODUCT_NAME" /> gebruikt voor het opslaan van gebruikersgegevens. @@ -2941,6 +2980,13 @@ <translation id="3554498762428140109">Native occlusie van vensters aanzetten</translation> <translation id="3554984410014457319">De Google Assistent laten luisteren naar de spraakactiveringszin</translation> <translation id="3557586898458302131">Niet-standaardpoort in gemaakte Kerberos-SPN opnemen</translation> +<translation id="3558024517032824255">Geeft het minimumaantal <ph name="PRODUCT_OS_NAME" />-mijlpalen aan waarvoor rollback op elk moment moet worden toegestaan vanaf de stabiele versie. + +De standaardinstelling is 0 voor consumentenapparaten of 4 (circa een half jaar) voor bedrijfsapparaten. Door dit beleid in te stellen, wordt er voor minstens dit aantal mijlpalen geen rollbackbeveiliging toegepast. + +Als er een lagere waarde wordt ingesteld voor dit beleid, heeft dit een permanent effect: het apparaat kan mogelijk niet worden teruggezet naar oudere versies, zelfs nadat het beleid weer wordt ingesteld op een hogere waarde. + +De werkelijke rollbackmogelijkheden zijn ook afhankelijk van het moederbord en patches voor kritieke risico's.</translation> <translation id="35668690622495904"> Aanroepen worden niet geweigerd als ze afkomstig zijn van contexten die niet op de toelatingslijst staan. (Aanroepen kunnen wel worden geweigerd om andere redenen).</translation> <translation id="3568762199045490351">JavaScript-functie setTimeout() met een time-out van 0 ms wordt vastgezet op 1 ms.</translation> @@ -3014,6 +3060,15 @@ <translation id="3637063789824963261">Als je het beleid toepast, rapporteren ingeschreven apparaten runtime-tellers voor het apparaat (alleen Intel vPro Gen 14+). Als je het beleid niet toepast of niet instelt, kunnen ingeschreven apparaten geen runtime-tellers voor het apparaat registreren of rapporteren.</translation> +<translation id="3640677352428533707">Met dit beleid wordt bepaald of er versiegegevens moeten worden gerapporteerd, zoals OS-versie, OS-platform, OS-architectuur, <ph name="PRODUCT_NAME" />-versie en <ph name="PRODUCT_NAME" />-kanaal. + +Als je het beleid <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> niet instelt of niet toepast, wordt dit beleid genegeerd. + +Als je dit beleid niet instelt of instelt op True, worden er versiegegevens verzameld. +Als je dit beleid instelt op False, worden er geen versiegegevens verzameld. + +Dit beleid is alleen van kracht als de machine is ingeschreven met <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> voor <ph name="PRODUCT_NAME" />. +Dit beleid is altijd van kracht voor <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="3642557248926713561">Safe Browsing-extensiebeveiliging uitzetten</translation> <translation id="3644735978203799620">Zet automatisch selecteren aan voor opnamen van meerdere schermen</translation> <translation id="3646859102161347133">Het type vergrootglas instellen</translation> @@ -3719,6 +3774,9 @@ Dit beleid wordt genegeerd en de melding wordt altijd getoond als het apparaat onbeheerd is of er slechts één gebruiker is. Als er meerdere gebruikersaccounts zijn op een beheerd apparaat, wordt de melding alleen getoond als dit beleid is toegepast.</translation> +<translation id="4297483555396496700">Gebruikers mogen het releasekanaal van het apparaat alleen wijzigen als je dit beleid hebt ingesteld op True. Als je dit beleid hebt ingesteld op False of niet hebt ingesteld, mogen gebruikers het kanaal niet wijzigen. + +Het instellen van <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> heeft alleen effect als je <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> hebt ingesteld op False.</translation> <translation id="4298476374822550051">Post-quantum sleutelovereenkomst van Kyber voor TLS aanzetten</translation> <translation id="4303167373847512281">Ontwikkelaarsmodus toestaan</translation> <translation id="4307116964468610577">Het beleid verlengt de bruikbare levensduur van de systeembatterijen door ze maar één keer per dag volledig op te laden. De rest van de dag worden de batterijen in een lagere oplaadstatus gehouden, wat beter is voor opslag, ook als het systeem is aangesloten op een voedingsbron. @@ -3729,6 +3787,9 @@ Gebruikers kunnen deze instelling niet wijzigen.</translation> <translation id="4309091698378414920">Inlastekenmarkering aanzetten</translation> +<translation id="4311141497190183490">Als je het beleid instelt op 1, kunnen sites de fysieke locatie van gebruikers standaard bijhouden. Als je het beleid instelt op 2, wordt het bijhouden van de fysieke locatie van gebruikers standaard geblokkeerd. Je kunt het beleid zo instellen dat om goedkeuring wordt gevraagd als een site de fysieke locatie van gebruikers wil bijhouden. + +Als je het beleid niet instelt, is het beleid <ph name="ASK_GEOLOCATION_POLICY_NAME" /> van toepassing maar kunnen gebruikers deze instelling wijzigen.</translation> <translation id="4311195029067684288">Full</translation> <translation id="4311662690937656540">Online inloggen afdwingen op de inlog- en vergrendelschermen</translation> <translation id="4313767483634435271">Toegewezen MAC-adres van dock van apparaat</translation> @@ -3870,6 +3931,15 @@ <translation id="445505634382262792">Als je het beleid instelt op 3, kunnen websites schrijftoegang vragen tot bestanden en directory's in het bestandssysteem van het besturingssysteem van de host. Als je het beleid instelt op 2, wordt toegang geblokkeerd. Als je het beleid niet instelt, vragen websites om toegang maar kunnen gebruikers deze instelling wijzigen.</translation> +<translation id="4455258118946528063">Met dit beleid wordt bepaald of informatie over extensies en plug-ins moet worden gerapporteerd. + +Als je het beleid <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> niet instelt of niet toepast, wordt dit beleid genegeerd. + +Als je dit beleid niet instelt of instelt op True, worden gegevens over extensies en plug-ins verzameld. +Als je dit beleid instelt op False, worden er geen gegevens over extensies en plug-ins verzameld. + +Dit beleid is alleen van kracht als de machine is ingeschreven met <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> voor <ph name="PRODUCT_NAME" />. +Dit beleid is altijd van kracht voor <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="4457113781439375078">Dit beleid is beëindigd. Als je het beleid toepast, rapporteren ingeschreven apparaten periodiek hun locatie. @@ -3893,6 +3963,15 @@ <translation id="4467952432486360968">Cookies van derden blokkeren</translation> <translation id="4472740647327683596">Breedte van de pagina in micrometers</translation> <translation id="4474167089968829729">Opslag van wachtwoorden in Wachtwoordmanager aanzetten</translation> +<translation id="4475131520521739161">Tenzij het beleid <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> de automatische tijdzonedetectie uitzet, wordt de methode voor automatische tijdzonedetectie uiteengezet als het beleid wordt ingesteld. Gebruikers kunnen deze methode niet wijzigen. + +Je kunt het beleid instellen op: +* <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONDISABLED" />: Automatische tijdzonedetectie blijft uit. +* <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TTIMEZONEAUTOMATICDETECTIONIPONLY" />: Automatische tijdzonedetectie blijft aan, via de methode die gebaseerd is op IP-adressen. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" />: Automatische tijdzonedetectie blijft aan. De lijst met zichtbare wifi-toegangspunten wordt voortdurend naar de Geolocation API-server gestuurd voor gedetailleerdere tijdzonedetectie. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" />: Automatische tijdzonedetectie blijft aan. Locatiegegevens (zoals wifi-toegangspunten, bereikbare zendmasten, gps) worden voortdurend naar een server gestuurd voor de meest gedetailleerde tijdzonedetectie. + +Als je het beleid niet instelt, Gebruikers laten bepalen instelt of het beleid instelt op Geen, bepalen gebruikers de automatische tijdzonedetectie via de normale opties in chrome://settings.</translation> <translation id="4476769083125004742">Als dit beleid wordt ingesteld op <ph name="BLOCK_GEOLOCATION_SETTING" />, hebben de Android-apps geen toegang tot locatiegegevens. Als je een andere waarde voor dit beleid instelt of het beleid niet instelt, wordt de gebruiker om toestemming gevraagd wanneer een Android-app toegang tot locatiegegevens probeert te krijgen.</translation> <translation id="4478248026668918517">Detectie van beleidsbereik blokkeren.</translation> <translation id="4479671363221255277">Als je het beleid instelt, kun je een lijst met URL-patronen maken om op te geven welke sites gebruikers mogen vragen om hun leestoegang te geven tot bestanden en directory's in het bestandssysteem van het besturingssysteem van de host via de File System API. @@ -4079,6 +4158,9 @@ <translation id="46321462262887935">Toetsen op de bovenste rij gebruiken als functietoetsen, maar de gebruiker toestaan dit te wijzigen</translation> <translation id="4632343302005518762"><ph name="PRODUCT_FRAME_NAME" /> toestaan de vermelde soorten content te verwerken.</translation> <translation id="4636354638176939375">Gebruikers met beperkte rechten maken uitzetten</translation> +<translation id="46383668315040154">Geeft het releasekanaal aan waarmee dit apparaat moet worden vergrendeld. + +Het instellen van <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> heeft alleen effect als je <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> hebt ingesteld op False.</translation> <translation id="4646626362889216307">Als je het beleid instelt, kunnen de geselecteerde beleidsregels worden samengevoegd als ze afkomstig zijn van verschillende bronnen en hetzelfde bereik en niveau hebben. Dit samenvoegen vindt plaats in de sleutels op het eerste niveau van het woordenboek uit elke bron. De waarde die afkomstig is van de bron met de hoogste prioriteit, krijgt voorrang. Gebruik het jokerteken '*' om samenvoeging van alle ondersteunde woordenboekbeleidsregels toe te staan. @@ -4455,6 +4537,14 @@ <translation id="499654521603185442">Rapportage van websitetelemetrie</translation> <translation id="4997074784107449343">Als de optie Afdrukken als afbeelding beschikbaar is, wordt deze standaard niet ingesteld voor afdrukvoorbeelden van pdf-documenten.</translation> <translation id="500149597848135831">Alle varianten aanzetten</translation> +<translation id="5017157692744444035">Met dit beleid wordt bepaald of er informatie moet worden gerapporteerd die kan worden gebruikt om machines te identificeren, zoals machinenaam en netwerkadressen. + +Als je het beleid <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> niet instelt of niet toepast, wordt dit beleid genegeerd. + +Als je dit beleid niet instelt of instelt op True, worden er gegevens verzameld die kunnen worden gebruikt om machines te identificeren. +Als je dit beleid instelt op False, worden er geen gegevens verzameld die kunnen worden gebruikt om machines te identificeren. + +Dit beleid is alleen van kracht als de machine is ingeschreven met <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> voor <ph name="PRODUCT_NAME" />.</translation> <translation id="5017369989680827157">Als je het beleid instelt op 'True' of niet instelt, krijgen gebruikers de controle over 'Automatisch invullen' voor adressen in de UI. Als je het beleid instelt op 'False', wordt er nooit adresinformatie voorgesteld of ingevuld door 'Automatisch invullen'. Ook wordt er geen aanvullende adresinformatie opgeslagen die gebruikers opgeven als ze internetten.</translation> @@ -4477,6 +4567,7 @@ <translation id="5036013147560568855">Versie van het certificaatregistratieprotocol. De standaardinstelling is 1. 1 is het 'statische' protocol. 2 is het 'dynamische' protocol.</translation> <translation id="5039110755072335605">Ondersteuning voor CORS-verzoekheaders zonder jokertekens</translation> <translation id="504116558738617678">Waarschuwingen voor weinig schijfruimte alleen tonen als het apparaat onbeheerd is of er slechts 1 gebruiker is</translation> +<translation id="5041315457555330432">Toestaan dat <ph name="PRODUCT_NAME" /> alleen verbinding maakt met apparaten op privé-IP-adressen, tenzij de functie CastAllowAllIPs aanstaat.</translation> <translation id="5046376406561077773">De gebruiker kan de UI voor de functie Bestandssynchronisatie van <ph name="GOOGLE_DRIVE_NAME" /> niet zien.</translation> <translation id="5055474681190962362">Dag van de maand [1-31] waarop opnieuw moet worden opgestart, geïnterpreteerd in de lokale tijdzone van het apparaat. Alleen gebruikt als 'frequency' is ingesteld op MONTHLY. Is dit meer dan het maximumaantal dagen in een bepaalde maand, dan wordt de laatste dag van de maand gekozen.</translation> <translation id="5056708224511062314">Vergrootglas staat uit</translation> @@ -4714,6 +4805,9 @@ Als je het beleid instelt op False of niet instelt, wordt 'Geïntegreerde desktop' uitgezet. Gebruikers kunnen deze functie dan niet aanzetten.</translation> <translation id="5255162913209987122">Kan worden aanbevolen</translation> <translation id="525543707238275321">Rapportage van CPU-informatie van apparaat uitzetten</translation> +<translation id="5255790642269910630">Als je het beleid instelt, wordt elk scherm naar de aangegeven stand gedraaid: elke keer dat er opnieuw wordt opgestart en de eerste keer dat het scherm wordt verbonden nadat de beleidswaarde is gewijzigd. Gebruikers kunnen na inloggen de rotatie van het scherm wijzigen op de pagina met instellingen, maar de rotatie wordt bij de volgende keer opnieuw opstarten weer teruggezet. Dit beleid is van toepassing op primaire en secundaire schermen. + +Als je het beleid niet instelt, is de standaardwaarde 0 graden en kunnen gebruikers dit wijzigen. In dat geval wordt de standaardwaarde niet opnieuw toegepast bij opnieuw opstarten.</translation> <translation id="5257395339965216304">Gegevens van gehoste apps</translation> <translation id="5258445772095084618">Niet-aangesloten gebruikers toestaan virtuele machines te gebruiken die nodig zijn om Linux-apps te ondersteunen</translation> <translation id="5262320080678421295">Vertrouwen in certificaten van de verouderde PKI van Symantec Corporation uitzetten</translation> @@ -5169,6 +5263,9 @@ <translation id="5660228672907979869">Voorkomen dat partitionering van opslag door derden kan worden aangezet.</translation> <translation id="5660950553460381588">Toegangssleutels waar mogelijk standaard maken in iCloud Sleutelhanger.</translation> <translation id="5666457529647159548">Gebruikers toestaan geïnstalleerde clientcertificaten te beheren.</translation> +<translation id="5670249935663090320">Als je het beleid toepast of niet instelt, wordt <ph name="PRODUCT_NAME" /> aangezet en kunnen gebruikers dit starten via het app-menu, de paginacontextmenu's, mediabediening op websites die werken met Cast en (als dit wordt getoond) het Cast-icoon op de werkbalk. + +Als je het beleid niet toepast, wordt <ph name="PRODUCT_NAME" /> uitgezet.</translation> <translation id="567377007899266033">Als het beleid wordt ingesteld op True, worden rapporten over belangrijke, op basis van beleid geactiveerde installatiegebeurtenissen voor extensies naar Google gestuurd. Er worden geen gebeurtenissen geregistreerd als het beleid is ingesteld op False. Als het beleid niet is ingesteld, is True de standaardwaarde.</translation> <translation id="5676740747107495269">Toegankelijkheidsopties tonen in het systeemvakmenu op het inlogscherm</translation> <translation id="5679540979548648200">Voorkomen dat gebruikers van dit apparaat ADB-sideloading gebruiken en een Powerwash van het apparaat afdwingen als sideloading eerder was aangezet</translation> @@ -5517,6 +5614,7 @@ <translation id="6042407236638640864">Toestaan dat pagina's met de koptekst <ph name="CACHE_CONTROL_NO_STORE_NAME" /> worden opgeslagen in Back-Forward Cache.</translation> <translation id="604243460476563291">Bestandsoverdracht in verbindingen voor externe support van bedrijfsbeheerders uitzetten</translation> <translation id="6042629184389251062">Verzameling van URL-sleutelstatistieken is niet toegestaan</translation> +<translation id="6045733613334942660">Scannerstuurprogramma's</translation> <translation id="6046615715547751255">Opties voor gedetailleerde rapportage niet toestaan</translation> <translation id="6048199181629830227">Stroombeheer voor piekuren aanzetten</translation> <translation id="6048690591359317353">De gebruiker niet toestaan een VPN handmatig te ontkoppelen of aan te passen</translation> @@ -6049,7 +6147,21 @@ <translation id="6462604655173570082">Als je dit beleid toepast of niet instelt, kunnen gebruikers de <ph name="GOOGLE_LENS_PRODUCT_NAME" />-knop zien en gebruiken in het zoekvak op de pagina Nieuw tabblad. Als je dit beleid niet toepast, zien gebruikers de <ph name="GOOGLE_LENS_PRODUCT_NAME" />-knop niet in het zoekvak op de pagina Nieuw tabblad.</translation> <translation id="6464074037294098618">Automatisch invullen voor adressen aanzetten</translation> <translation id="6467613372414922590">Hosts voor native berichten op gebruikersniveau toestaan (geïnstalleerd zonder beheerdersrechten)</translation> +<translation id="6467707081687600148">Plan automatisch opnieuw opstarten in nadat een <ph name="PRODUCT_OS_NAME" />-update is toegepast. + +Als je dit beleid instelt op True, wordt automatisch opnieuw opstarten ingepland als een <ph name="PRODUCT_OS_NAME" />-update is toegepast. Opnieuw opstarten is vereist om het updateproces af te ronden. Opnieuw opstarten wordt onmiddellijk ingepland, maar kan op het apparaat tot 24 uur worden vertraagd als een gebruiker het apparaat op dat moment gebruikt. + +Als je dit beleid instelt op False, wordt automatisch opnieuw opstarten niet ingepland nadat een <ph name="PRODUCT_OS_NAME" />-update is toegepast. Het updateproces wordt afgerond als de gebruiker het apparaat opnieuw opstart. + +Als je dit beleid instelt, kunnen gebruikers dit niet wijzigen of negeren. + +Opmerking: Automatisch opnieuw opstarten staat alleen aan terwijl het inlogscherm wordt getoond of er een kiosk-app-sessie wordt uitgevoerd.</translation> <translation id="6471018476824827813">Verzameling van URL-sleutelstatistieken is toegestaan</translation> +<translation id="6471927932956897852">Geeft aan of P2P wordt gebruikt voor OS-updatepayloads. +Als je dit beleid instelt op True, delen apparaten updatepayloads via het LAN en proberen ze deze te verbruiken. Hierdoor kunnen het bandbreedtegebruik en de overbelasting van internet misschien worden beperkt. Als de updatepayload niet beschikbaar is via het LAN, gaat het apparaat over tot downloaden via een updateserver. +Als je dit beleid instelt op False, wordt P2P niet gebruikt. + +OPMERKING: Het standaardgedrag voor consumenten- en zakelijke apparaten verschilt. P2P staat aan op beheerde apparaten maar niet op niet-beheerde apparaten.</translation> <translation id="6473623140202114570">Configureer de lijst met domeinen waar Safe Browsing geen waarschuwingen activeert.</translation> <translation id="6474194795370862403">Het oude offsetParent-gedrag wordt gebruikt.</translation> <translation id="647645276885673708"><ph name="LACROS_NAME" /> aanzetten en instellen als primaire browser</translation> @@ -6355,6 +6467,11 @@ <translation id="6670794785040100077">Indienen van documenten bij <ph name="CLOUD_PRINT_NAME" /> uitzetten</translation> <translation id="6672070613706645316">Gebruikers toestaan de achtergrond van de pagina 'Nieuw tabblad' aan te passen</translation> <translation id="6672630473862787247">Ambient-verificatie in normale, incognito- en gastsessies aanzetten.</translation> +<translation id="6676012253361586167">Geeft aan of poortdoorschakeling naar Crostini-containers is toegestaan. + +Als je dit beleid instelt op True of niet instelt, kunnen gebruikers poortdoorschakeling naar hun Crostini-containers instellen. + +Als je dit beleid instelt op False, staat poortdoorschakeling naar Crostini-containers uit.</translation> <translation id="6677291257287862684">Plaktoetsen op het inlogscherm aanzetten</translation> <translation id="6682305153467826752">Rapportage van informatie over machine-identificatie aanzetten</translation> <translation id="6685903773201985073">Ambient-verificatie in normale en gastsessies aanzetten.</translation> @@ -6726,6 +6843,9 @@ Stel dit beleid niet in als je een andere modus hebt geselecteerd om proxybeleid in te stellen. Opmerking: Voor gedetailleerde voorbeelden ga je naar The Chromium Projects ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett ).</translation> +<translation id="7001915679435065291">Als je het beleid instelt op 1, mogen alle websites afbeeldingen tonen. Als je het beleid instelt op 2, wordt de weergave van afbeeldingen geblokkeerd. + +Als je het beleid niet instelt, is de weergave van afbeeldingen toegestaan maar kunnen gebruikers deze instelling wijzigen.</translation> <translation id="7002040773317582266">Realtime check voor mainframe-URL's is aangezet.</translation> <translation id="7003746348783715221">Voorkeuren voor <ph name="PRODUCT_NAME" /></translation> <translation id="7007283257527015835">Een Booleaanse markering die aangeeft of de protocolhandler moet worden ingesteld als de standaardwaarde.</translation> @@ -7317,12 +7437,16 @@ Als het beleid niet is ingesteld, is <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" /> de standaard voor gebruikers die op ondernemingsniveau worden beheerd en <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> voor niet-beheerde gebruikers. In de toekomst kun je van <ph name="LACROS_NAME" /> de enige beschikbare browser in <ph name="PRODUCT_OS_NAME" /> maken met de waarde <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation> +<translation id="751071954873065775">DLC's (downloadbare content) selecteren die vooraf moeten worden gedownload</translation> <translation id="7512065400265675158">De <ph name="USER_AGENT_HEADER_NAME" /> HTTP-verzoekheader wordt volgens planning ingekort. Dit beleid kan de inkortfunctie voor alle websites aanzetten of de mogelijkheid uitzetten dat origin trials of field trials de functie aanzetten. Dit wordt gedaan om tests en compatibiliteit mogelijk te maken. Lees het volgende voor meer informatie over <ph name="USER_AGENT_REDUCTION_FEATURE_NAME" /> en de bijbehorende tijdlijn: https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html </translation> +<translation id="7512514325152952954">Payloads voor automatische updates voor <ph name="PRODUCT_OS_NAME" /> kunnen worden gedownload via HTTP in plaats van HTTPS. Hierdoor kunnen HTTP-downloads transparant in het HTTP-cachegeheugen worden opgeslagen. + +Als je dit beleid instelt op True, probeert <ph name="PRODUCT_OS_NAME" /> payloads voor automatische updates te downloaden via HTTP. Als je het beleid instelt op False of niet instelt, wordt HTTPS gebruikt om payloads voor automatische updates te downloaden.</translation> <translation id="7515953732107149296">Dit beleid is verwijderd in M53 nadat RC4 is verwijderd uit <ph name="PRODUCT_NAME" />. Als je het beleid niet instelt of instelt op False, worden RC4 cipher suites in TLS niet aangezet. Anders kun je het instellen op True om compatibiliteit met een verouderde server te behouden. Dit is een tijdelijke oplossing. De server moet opnieuw worden ingesteld.</translation> @@ -7335,6 +7459,11 @@ Als je het beleid niet instelt of instelt op True, zien gebruikers een melding om ze eraan te herinneren dat ze het volledige scherm moeten verlaten voordat ze een wachtwoord opgeven. Als je het beleid instelt op False, zien gebruikers geen melding.</translation> <translation id="7531630046107845550">Uitgaande SSH-clientverbindingen toestaan in Terminal System App</translation> +<translation id="7533385610709354870">Als je <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> toepast, maakt <ph name="PRODUCT_NAME" /> verbinding met cast-apparaten op alle IP-adressen en niet alleen op RFC1918/RFC4193-privéadressen, tenzij je <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> niet toepast. + +Als je het beleid niet toepast, maakt <ph name="PRODUCT_NAME" /> alleen verbinding met cast-apparaten op RFC1918/RFC4193. + +Als je het beleid niet instelt, maakt <ph name="PRODUCT_NAME" /> alleen verbinding met cast-apparaten op RFC1918/RFC4193, tenzij de functie CastAllowAllIPs aanstaat.</translation> <translation id="7534199150025803530">Dit beleid is niet van invloed op de Google Drive-app voor Android. Als je wilt voorkomen dat Google Drive kan worden gebruikt via een mobiele verbinding, moet je de installatie van de Google Drive-app voor Android blokkeren.</translation> <translation id="7538583957913002726">Dit beleid wordt standaard toegepast. Het beheert de ingeschreven apparaten om de CPU-modelnaam, architectuur en maximale kloksnelheid (en CPU-gebruik en -temperatuur voor M96 en hoger) te rapporteren. @@ -7618,6 +7747,13 @@ Als je het beleid niet instelt, is <ph name="DEFAULT_CLIPBOARD_SETTING" /> (indien ingesteld) van toepassing op alle sites. Zo niet, dan gelden de persoonlijke instellingen van de gebruiker. Ga naar https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns voor gedetailleerde informatie over geldige <ph name="URL_LABEL" />-patronen. <ph name="WILDCARD_VALUE" /> is geen geaccepteerde waarde voor dit beleid.</translation> +<translation id="7790221177424764797">Met dit beleid wordt bepaald of de regels van het SiteList-beleid van <ph name="IE_PRODUCT_NAME" /> moeten worden geladen. + +Als je dit beleid instelt op True, leest <ph name="PRODUCT_NAME" /> het <ph name="IEEM_SITELIST_POLICY" />-beleid van <ph name="IE_PRODUCT_NAME" /> om de URL van de lijst met sites op te halen. Daarna downloadt <ph name="PRODUCT_NAME" /> de lijst met sites van die URL en worden de regels toegepast alsof ze zijn ingesteld met het <ph name="BROWSER_SWITCHER_URL_LIST_POLICY_NAME" />-beleid. + +Als je dit beleid instelt op False of niet instelt, gebruikt <ph name="PRODUCT_NAME" /> het beleid <ph name="IEEM_SITELIST_POLICY" /> van <ph name="IE_PRODUCT_NAME" /> niet als bron van regels die overschakeling naar een andere browser regelen. + +Ga naar https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode voor meer informatie over het <ph name="IEEM_SITELIST_POLICY" />-beleid van Internet Explorer</translation> <translation id="7791215522423893512">Niet toestaan dat gebruikers screenshots en video-opnamen maken</translation> <translation id="7792796937016596423">De gebruiker kan geen opnamen van netwerkpakketten uitvoeren</translation> <translation id="7798441698807517880">Dit beleid is verwijderd vanaf <ph name="PRODUCT_NAME" /> versie 89 omdat <ph name="FLASH_PLUGIN_NAME" /> is beëindigd. @@ -7928,6 +8064,11 @@ Als dit beleid is ingesteld, kan de gebruiker het niet wijzigen of overschrijven.</translation> <translation id="8080200590486938727">Plug-inzoeker uitzetten</translation> +<translation id="8086746212954621799">Als je dit instelt op True, zet je automatische updates uit. + +<ph name="PRODUCT_OS_NAME" />-apparaten checken automatisch op updates als deze instelling niet is ingesteld of is ingesteld op False. + +Waarschuwing: Het wordt aanbevolen automatische updates aangezet te laten, zodat gebruikers software-updates en essentiële beveiligingsoplossingen krijgen. Als je automatische updates uitzet, kunnen gebruikers gevaar lopen.</translation> <translation id="8089200718228084417">Verouderde Privet-afdrukken aanzetten</translation> <translation id="8091982561085048989">Booleaanse markering die aangeeft of IPP Everywhere moet worden gebruikt om de printer in te stellen. Deze markering wordt ondersteund in versie 76 en hoger van <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="8094095107731619070">Autocorrectie op fysiek toetsenbord als gebruikers typen aanzetten</translation> @@ -8534,6 +8675,15 @@ Als het beleid niet is ingesteld, worden rapporten elke 24 uur geüpload. Als het beleid is ingesteld, wordt het aantal uren tussen 2 opeenvolgende rapportuploads gedefinieerd door dit beleid.</translation> +<translation id="8618037841203431360">Met dit beleid wordt bepaald of beleidsgegevens en het tijdstip van de beleidsfetch worden gerapporteerd. + +Als je het beleid <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> niet instelt of niet toepast, wordt dit beleid genegeerd. + +Als je dit beleid niet instelt of instelt op True, worden beleidsgegevens en het tijdstip van de beleidsfetch verzameld. +Als je dit beleid instelt op False, worden de beleidsgegevens en het tijdstip van de beleidsfetch niet verzameld. + +Dit beleid is alleen van kracht als de machine is ingeschreven met <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> voor <ph name="PRODUCT_NAME" />. +Dit beleid is altijd van kracht voor <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="8619748440665904084">Import van formuliergegevens voor automatisch invullen bij eerste uitvoering uitzetten</translation> <translation id="8623672932476443039">Als je het beleid toepast, hebben gebruikers toegang tot de ontwikkelaarsmodus voor geïsoleerde apps. Als je het beleid niet toepast, hebben gebruikers geen toegang tot deze mogelijkheden. @@ -8785,6 +8935,9 @@ Als je dit beleid niet toepast, is <ph name="SEARCH_SIDE_PANEL_FEATURE_NAME" /> op geen enkele webpagina beschikbaar.</translation> <translation id="8860894781631833477">Gebruikers kunnen het releasekanaal voor <ph name="PRODUCT_OS_NAME" /> instellen</translation> +<translation id="8862086508140571198">Met dit beleid kun je een lijst met DLC's (downloadbare content) instellen die zo snel mogelijk moeten worden gedownload. De gedownloade DLC's zijn dan beschikbaar voor alle gebruikers op het apparaat. + +Dit is handig als de beheerder weet dat de gebruikers van het apparaat een functie waarvoor de aanwezigheid van de DLC is vereist, waarschijnlijk gebruiken.</translation> <translation id="8864975621965365890">Hiermee onderdruk je de prompt die je ziet als een site wordt weergegeven door <ph name="PRODUCT_FRAME_NAME" />.</translation> <translation id="8865404058177794289">De standaardinstelling gebruiken voor controle van het RSA-sleutelgebruik</translation> <translation id="8866430022832109569">Rapportage van app-voorraad</translation> @@ -8926,6 +9079,9 @@ Deze check wordt geactiveerd als het inlogscherm wordt geladen en wordt daarna elk uur opnieuw geprobeerd (als het inlogscherm actief blijft op het apparaat). Hierdoor wordt voorkomen dat de migratie middenin een gebruikerssessie start, wat problemen kan veroorzaken voor eindgebruikers.</translation> <translation id="9003823644527627017">Bruschetta-VM's instellen op <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="9004469022085379212">Als je dit beleid toepast, kan het apparaat virtuele machines uitvoeren op <ph name="PRODUCT_OS_NAME" />. <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> en <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> moeten aanstaan om <ph name="PRODUCT_CROSTINI_NAME" /> te gebruiken. Als je het beleid niet toepast, kan het apparaat geen virtuele machines uitvoeren. Als je het beleid niet toepast, wordt het beleid toegepast op startende nieuwe virtuele machines en niet op virtuele machines die al actief zijn. + +Als je dit beleid niet instelt op een beheerd apparaat, kan het apparaat geen virtuele machines uitvoeren. Niet-beheerde apparaten kunnen virtuele machines uitvoeren.</translation> <translation id="9007632512838819703">Dit beleid is verouderd. Gebruik in plaats daarvan <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />. De spellingcontrole voor talen wordt verplicht uitgezet. Niet-herkende talen in de lijst worden genegeerd. @@ -9073,6 +9229,9 @@ <translation id="9098409326885953506">Afgedekt venster detecteren en de weergave ervan opschorten</translation> <translation id="9105265795073104888">Er is slechts een subset van de configuratieopties voor de proxy beschikbaar voor Android-apps. Android-apps kunnen op vrijwillige basis gebruikmaken van de proxy. Je kunt Android-apps niet dwingen een proxy te gebruiken.</translation> <translation id="9106865192244721694">WebUSB toestaan op deze sites</translation> +<translation id="9107635531763682565">Als je het beleid instelt op 1, kunnen websites bureaubladmeldingen tonen. Als je het beleid instelt op 2, worden bureaubladmeldingen geblokkeerd. + +Als je het beleid niet instelt, is <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> van toepassing maar kunnen gebruikers deze instelling wijzigen.</translation> <translation id="9110251436602897914">Informatie rapporteren over randapparaten die zijn aangesloten op het apparaat</translation> <translation id="9111850884577810507">Dit veld moet overeenkomen met een van de tekenreeksen die een door <ph name="PRODUCT_NAME" /> ondersteunde printer vertegenwoordigen. De tekenreeks wordt gebruikt om de juiste PPD voor de printer te identificeren en te installeren. Meer informatie hierover vind je op https://support.google.com/chrome?p=noncloudprint.</translation> <translation id="9112727953998243860">Configuratiebestand voor bedrijfsprinters</translation> @@ -9176,6 +9335,9 @@ <translation id="9191821120522935133">Hiermee kun je throttling van niet-zichtbare, cross-origin-iframes aanzetten</translation> <translation id="9192220384862917760">Afscherming van de host voor externe toegang aanzetten</translation> <translation id="9195766455191826480">Beveiligingsstatus niet rapporteren</translation> +<translation id="9197238499850071076">Geeft aan of het apparaat moet terugkeren naar de versie die is ingesteld met <ph name="DEVICE_TARGET_VERSION_PREFIX_POLICY_NAME" /> als er al een latere versie is geïnstalleerd. + +De standaardinstelling is RollbackDisabled.</translation> <translation id="9197740283131855199">Percentage waarmee de dimvertraging van het scherm wordt geschaald als de gebruiker actief wordt na het dimmen</translation> <translation id="9200828125069750521">Parameters voor afbeeldings-URL die POST gebruikt</translation> <translation id="9204863016826119209">Zakelijke sleutels kunnen worden gebruikt door Android-apps die zijn geïnstalleerd en in dit beleid worden vermeld.</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index c0cef26..1771c57 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -1852,8 +1852,6 @@ Se a política não for definida, <ph name="PRINTERS_ALLOW_ALL" /> será aplicado.</translation> <translation id="2581338546762479588">Permitir a reinicialização automática após atualizações</translation> -<translation id="2582855747769273665">Um URL que os usuários podem acessar para saber mais. Se essa propriedade não for configurada, não -haverá um URL do tipo "saiba mais" no instalador.</translation> <translation id="2586117300379904732">Permitir wake locks para gerenciamento de energia</translation> <translation id="2586231026319371211">Horário interpretado no formato local convencional de 24h.</translation> <translation id="2587719089023392205">Definir o <ph name="PRODUCT_NAME" /> como meu navegador padrão</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index 76368a8..596b1a40 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -1827,7 +1827,6 @@ Если правило не настроено, используется параметр <ph name="PRINTERS_ALLOW_ALL" />.</translation> <translation id="2581338546762479588">Разрешить автоматическую перезагрузку после обновления</translation> -<translation id="2582855747769273665">URL сайта с дополнительной информацией. Если свойство не задано, в установщике не будет такого URL.</translation> <translation id="2586117300379904732">Разрешить использование запретов блокировки через API расширения управления питанием</translation> <translation id="2586231026319371211">Указывается местное время в 24-часовом формате.</translation> <translation id="2587719089023392205">Сделать <ph name="PRODUCT_NAME" /> браузером по умолчанию</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index d927b10..df8e48e2 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -1825,7 +1825,6 @@ หากไม่ตั้งค่านโยบาย ระบบจะใช้ <ph name="PRINTERS_ALLOW_ALL" /></translation> <translation id="2581338546762479588">อนุญาตให้รีบูตโดยอัตโนมัติหลังจากการอัปเดต</translation> -<translation id="2582855747769273665">URL สำหรับให้ผู้ใช้เข้าชมเพื่อดูข้อมูลเพิ่มเติม หากไม่ได้ตั้งค่าไว้ จะไม่มี URL สำหรับ "ดูข้อมูลเพิ่มเติม" ในโปรแกรมติดตั้ง</translation> <translation id="2586117300379904732">อนุญาต Wake Lock เพื่อการจัดการพลังงาน</translation> <translation id="2586231026319371211">เวลาที่ตีความในรูปแบบ 24 ชั่วโมงตามนาฬิกาติดผนังในท้องถิ่น</translation> <translation id="2587719089023392205">ตั้ง <ph name="PRODUCT_NAME" /> เป็นเบราว์เซอร์เริ่มต้น</translation> @@ -5622,6 +5621,7 @@ <translation id="6042407236638640864">อนุญาตให้หน้าที่มีส่วนหัว <ph name="CACHE_CONTROL_NO_STORE_NAME" /> ป้อน Back-Forward Cache ได้</translation> <translation id="604243460476563291">ปิดใช้การโอนไฟล์ในการเชื่อมต่อเพื่อรับการสนับสนุนจากระยะไกลโดยผู้ดูแลระบบขององค์กร</translation> <translation id="6042629184389251062">ไม่อนุญาตการรวบรวมเมตริกซึ่งผูกกับ URL</translation> +<translation id="6045733613334942660">ไดรเวอร์เครื่องสแกน</translation> <translation id="6046615715547751255">ไม่อนุญาตการควบคุมการรายงานแบบละเอียด</translation> <translation id="6048199181629830227">เปิดใช้การจัดการการใช้ไฟจากแบตเตอรี่</translation> <translation id="6048690591359317353">ไม่อนุญาตให้ผู้ใช้ยกเลิกการเชื่อมต่อหรือแก้ไข VPN ด้วยตนเอง</translation> @@ -7445,6 +7445,7 @@ หากไม่ได้ตั้งค่านโยบาย ค่าเริ่มต้นจะเป็น <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" /> สำหรับผู้ใช้ที่มีองค์กรเป็นผู้จัดการและ <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> สำหรับผู้ใช้ที่ไม่มีการจัดการ ในอนาคตคุณจะกำหนดให้ <ph name="LACROS_NAME" /> เป็นเพียงเบราว์เซอร์เดียวที่มีให้ใช้ใน <ph name="PRODUCT_OS_NAME" /> ได้ด้วยค่า <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" /></translation> +<translation id="751071954873065775">เลือก DLC (เนื้อหาที่ดาวน์โหลดได้) ที่ต้องดาวน์โหลดล่วงหน้า</translation> <translation id="7512065400265675158">กำหนดเวลาลดส่วนหัวของคำขอ HTTP <ph name="USER_AGENT_HEADER_NAME" /> แล้ว นโยบายนี้สามารถเปิดใช้ฟีเจอร์การลดส่วนหัวสำหรับเว็บไซต์ทั้งหมด หรือปิดไม่ให้เปิดใช้ฟีเจอร์นี้ผ่านช่วงทดลองใช้จากต้นทางหรือช่วงทดลองใช้งานภาคสนาม เพื่อให้เอื้อต่อการทดสอบและความเข้ากันได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ <ph name="USER_AGENT_REDUCTION_FEATURE_NAME" /> และไทม์ไลน์ได้ที่นี่ https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html @@ -8939,6 +8940,9 @@ หากตั้งค่าเป็น "ปิดใช้" <ph name="SEARCH_SIDE_PANEL_FEATURE_NAME" /> จะใช้งานไม่ได้ในหน้าเว็บทุกหน้า</translation> <translation id="8860894781631833477">ผู้ใช้จะกำหนดค่าเวอร์ชันการเผยแพร่ <ph name="PRODUCT_OS_NAME" /> ได้</translation> +<translation id="8862086508140571198">นโยบายนี้ช่วยให้ตั้งค่ารายการ DLC (เนื้อหาที่ดาวน์โหลดได้) ให้ดาวน์โหลดโดยเร็วที่สุด จากนั้น DLC ที่ดาวน์โหลดมาจะพร้อมให้ผู้ใช้ทุกคนในอุปกรณ์ใช้งานได้ + +วิธีนี้มีประโยชน์เมื่อผู้ดูแลระบบทราบว่าผู้ใช้อุปกรณ์มีแนวโน้มที่จะใช้ฟีเจอร์ที่ต้องมี DLC</translation> <translation id="8864975621965365890">ระงับการแจ้งเรื่องการปฏิเสธ ซึ่งจะปรากฏขึ้นเมื่อไซต์แสดงผลโดย <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8865404058177794289">ใช้การตั้งค่าเริ่มต้นสําหรับการตรวจสอบการใช้งานคีย์ RSA</translation> <translation id="8866430022832109569">การรายงานพื้นที่โฆษณาในแอป</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index eb65a5b..72e28eb 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -622,6 +622,11 @@ Politika, Devre Dışı değerine ayarlanırsa güvenli olmayan HTTP isteklerinin <ph name="BASIC_AUTH" /> kimlik doğrulama düzenini kullanmasına verilmez. Yalnızca güvenli HTTPS'ye izin verilir <ph name="AUTH_SCHEMES_POLICY_NAME" /> politikası ayarlanırsa ve <ph name="BASIC_AUTH" /> içermiyorsa bu politika ayarı yok sayılır (ve <ph name="BASIC_AUTH" /> her zaman yasaklanır).</translation> +<translation id="1573074208167290576">Belirli sitelerle ilgili karma içeriğe izin vermek için kullanıcıların istisnalar ekleyip ekleyemeceklerini ayarlamanıza olanak tanır. + +Bu politika "InsecureContentAllowedForUrls" ve "InsecureContentBlockedForUrls" politikaları kullanılarak belirli URL kalıpları için geçersiz kılınabilir. + +Bu politika ayarlanmadan bırakılırsa kullanıcıların, engellenebilir karma içeriğe izin vermek için istisnalar eklemelerine ve isteğe bağlı olarak engellenebilir karma içerik için otomatik yükseltmeleri devre dışı bırakmalarına izin verilir.</translation> <translation id="1573444493980402757">Pencere yerleşimi izninin otomatik olarak reddedileceği siteleri belirten site URL kalıplarından oluşan bir liste oluşturmanıza imkan verir. Bu durumda sitelerin, cihazların ekranlarıyla ilgili bilgileri görme ve pencere açıp yerleştirmek ya da belirli ekranlarda tam ekran isteği iletmek için bu bilgileri kullanma imkanı kısıtlanmış olur. Geçerli site URL kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. Joker karakterlere (<ph name="WILDCARD_VALUE" />) izin verilir. Bu politika, yalnızca kaynağa göre eşleşir. Dolayısıyla, URL kalıbındaki yollar yok sayılır. @@ -900,6 +905,13 @@ Bu politika kullanımdan kaldırıldı, bunun yerine lütfen <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> politikasını kullanın. </translation> +<translation id="1825583118566970564">Harici uzantıların yüklenmesini kontrol eder. + +Bu politika Etkin değerine ayarlanırsa harici uzantıların yüklenmesi engellenir. + +Bu politika Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa harici uzantılar yüklenebilir. + +Harici uzantılar ve yüklenmeleri hakkında bilgiyi https://developer.chrome.com/apps/external_extensions adresinde bulabilirsiniz.</translation> <translation id="1827523283178827583">Sabit proxy sunucuları kullan</translation> <translation id="1829117241432374848">Yönetilen hesapların birincil hesap olması ve ikincil hesaplarının bulunmaması zorunlu tutulur. Ayrıca hesap oluşturulurken kullanıcının mevcut verileri içe aktarmasına izin verilir.</translation> <translation id="1829839214911753838">Politika, Etkin değerine ayarlanırsa uzaktan yardım ana makinesi bir işlemde <ph name="UIACCESS_PERMISSION_NAME" /> izinleriyle çalıştırılır. Bu durum, uzak kullanıcıların yerel kullanıcının masaüstünde yükseltilmiş pencerelerle etkileşimde bulunmasına olanak tanır. @@ -972,6 +984,15 @@ <ph name="RUN_ON_OS_LOGIN_FIELD" /> alanı bir web uygulamasının OS girişi sırasında çalıştırılıp çalıştırılamayacağını belirtir. Bu alan, <ph name="BLOCKED" /> değerine ayarlanırsa OS girişi sırasında web uygulaması çalıştırılmaz. Kullanıcı, bu ayarı daha sonra etkinleştiremez. Bu alan, <ph name="RUN_WINDOWED" /> değerine ayarlanırsa OS girişi sırasında web uygulaması çalıştırılır. Kullanıcı, bu ayarı daha sonra devre dışı bırakamaz. Bu alan, <ph name="ALLOWED" /> değerine ayarlanırsa kullanıcı, OS girişi sırasında web uygulamasını çalışacak şekilde yapılandırabilir. Varsayılan yapılandırma, yalnızca <ph name="ALLOWED" /> ve <ph name="BLOCKED" /> değerlerine izin verir. (Sürüm 117'den itibaren) <ph name="PREVENT_CLOSE_FIELD" /> alanı, bir web uygulamasının herhangi bir şekilde (ör. kullanıcı, görev yöneticisi veya web API'leri tarafından) kapatılmasının engellenip engellenmeyeceğini belirtir. Bu çalışma biçimi yalnızca <ph name="RUN_ON_OS_LOGIN_FIELD" />, <ph name="RUN_WINDOWED" /> olarak ayarlandıysa mümkündür. Uygulama zaten çalışıyorsa bu özellik ancak uygulama yeniden başlatıldıktan sonra etkinleşir. Bu alan tanımlanmazsa uygulamalar kullanıcılar tarafından kapatılabilir. (Sürüm 118'den itibaren) <ph name="FORCE_UNREGISTER_OS_INTEGRATION" /> alanında, bir web uygulaması için tüm işletim sistemi entegrasyonlarının (ör. kısayollar, dosya işleyiciler, protokol işleyiciler vb.) kaldırılıp kaldırılmayacağı belirtilir. Bir uygulama halihazırda çalışıyorsa bu özellik, uygulama yeniden başlatıldıktan sonra etkinleşir. Bu özellik, web uygulamaları sistemi başlatılırken otomatik olarak ayarlanan tüm işletim sistemi entegrasyonlarını geçersiz kılabileceğinden dikkatli kullanılmalıdır. Şu anda yalnızca Windows, Mac ve Linux platformlarında kullanılabilir.</translation> +<translation id="1874719875297132073">Bu politika; OS giriş bilgileri, <ph name="PRODUCT_NAME" /> Profil giriş bilgileri, <ph name="PRODUCT_NAME" /> Profil adı, <ph name="PRODUCT_NAME" /> Profil yolu ve <ph name="PRODUCT_NAME" /> yürütülebilir dosya yolu gibi kullanıcıları tanımlamak için kullanılabilecek bilgilerin bildirilip bildirilmeyeceğini kontrol eder. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> politikası ayarlanmadan bırakıldığında veya devre dışı değerine ayarlandığında bu politika yok sayılır. + +Bu politika ayarlanmadan bırakıldığında veya Doğru değerine ayarlandığında kullanıcıları tanımlamak için kullanılabilecek bilgiler toplanır. +Bu politika Yanlış değerine ayarlandığında kullanıcıları tanımlamak için kullanılabilecek bilgiler toplanmaz. + +Bu politika yalnızca <ph name="PRODUCT_NAME" /> için makinenin <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> kaydı yapıldığında geçerli olur. +<ph name="PRODUCT_OS_NAME" /> için bu politika her zaman geçerlidir.</translation> <translation id="1883274744253492031">Karma içerik otomatik yükseltmesini etkinleştir</translation> <translation id="1885782360784839335">Tap sekme tanıtım içeriğini göstermeyi etkinleştir</translation> <translation id="1888871729456797026">Masaüstünde bulut politikasının kayıt jetonu</translation> @@ -999,6 +1020,9 @@ Politika ayarlanmadan bırakılırsa başlangıçta Yeni Sekme sayfası açılır. <ph name="MS_WIN_NAME" /> işletim sisteminde bu politika yalnızca bir <ph name="MS_AD_NAME" /> veya <ph name="MS_AAD_NAME" /> alan adına katılmış ya da <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> öğesine kaydolmuş örneklerde kullanılabilir.</translation> +<translation id="1897095538209040086">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" />, alternatif tarayıcıya geçtikten sonra en az bir sekmeyi açık tutar. + +Politika, Devre dışı değerine ayarlanırsa alternatif tarayıcıya son sekmeden geçilmiş olsa bile <ph name="PRODUCT_NAME" /> o sekmeyi kapatır. Bu da <ph name="PRODUCT_NAME" /> tarayıcısının tamamen çıkış yapmasına neden olur.</translation> <translation id="1897365952389968758">Tüm sitelerin JavaScript çalıştırmasına izin ver</translation> <translation id="1902043648529789224">Raf konumunu kontrol et</translation> <translation id="1904323733389537794">Politika True (Doğru) değerine ayarlandığında online <ph name="OCSP_CRL_LABEL" /> denetimleri yapılır. @@ -1453,6 +1477,9 @@ <translation id="225830954785359083">Sayfaların yüklemesi kaldırılırken pop-up göstermesini engelle</translation> <translation id="2261648512244797294">Kullanımdan kaldırılan privet yazdırmayı devre dışı bırak</translation> <translation id="2266422599396179941">Kullanıcıların geri bildirim göndermelerine izin ver</translation> +<translation id="2268891553068901979">Politika, Etkin değerine ayarlanırsa hücresel bağlantı kullanılırken <ph name="PRODUCT_OS_NAME" /> Dosyalar uygulamasında <ph name="GOOGLE_DRIVE_NAME" /> senkronizasyonu devre dışı bırakılır. Yalnızca kablosuz ağ veya Ethernet bağlantısı kullanılırken veriler Drive ile senkronize edilir. + +Politika, Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa kullanıcılar hücresel bağlantı kullanırken Drive'a dosya aktarabilir.</translation> <translation id="2269319728625047531">Oturum açma sırasında Senkronizasyon İzni'nin görüntülenmesini etkinleştir</translation> <translation id="2270113153862588648">Politika, Etkin değerine ayarlanırsa cihaz için uzaktan onaya izin verilir. Otomatik olarak bir sertifika oluşturulup Cihaz Yönetim Sunucusu'na yüklenir. @@ -1810,8 +1837,6 @@ Politika ayarlanmadan bırakılırsa <ph name="PRINTERS_ALLOW_ALL" /> uygulanır.</translation> <translation id="2581338546762479588">Güncellemelerden sonra otomatik yeniden başlatmaya izin ver</translation> -<translation id="2582855747769273665">Kullanıcıların daha fazla bilgi edinmek için ziyaret edebileceği bir URL. Ayarlanmadan bırakılırsa -yükleyicide "daha fazla bilgi" URL'si görünmez.</translation> <translation id="2586117300379904732">Güç yönetimi için uyanık kalma kilitlerine izin ver</translation> <translation id="2586231026319371211">Zaman, 24 saatlik yerel duvar saati biçiminde değerlendirilir.</translation> <translation id="2587719089023392205"><ph name="PRODUCT_NAME" /> ürününü varsayılan tarayıcım olarak ayarla</translation> @@ -1959,6 +1984,9 @@ <translation id="2727844239611930002"><ph name="PRIVACY_SANDBOX_NAME" /> isteminin gösterilip gösterilmeyeceğine <ph name="PRODUCT_NAME" /> tarafından karar verilmesine izin ver.</translation> <translation id="2730200383593984228">İlişkili olmayan kullanıcıların Android uygulamalarını kullanmasına izin ver</translation> <translation id="2730419309754848345">PDF'yi Resim Olarak Yazdır Varsayılan Ayar</translation> +<translation id="2730644640965800157">Politika, Etkin değerine ayarlanırsa <ph name="PRODUCT_OS_NAME" /> Dosyalar uygulamasında <ph name="GOOGLE_DRIVE_NAME" /> senkronizasyonu devre dışı bırakılır. Drive'a veri yüklenmez. + +Politika, Devre dışı değerine ayarlanır veya ayarlanmadan bırakılırsa kullanıcılar Drive'a dosya aktarabilir.</translation> <translation id="2731299561202635374">Bu politika, güvenli olmayan URL'leri belirlemek için URL'lerin gerçek zamanlı olarak kontrol edilmesini denetler. Bu politika ayarlanmadan bırakılırsa veya "Devre Dışı" değerine ayarlanırsa tüketici Güvenli Tarama kontrolleri uygulanır. Tüketici Güvenli Tarama kontrolleri hem "Aramaları ve göz atmayı daha iyi yap" ayarının değerine hem de UrlKeyedAnonymizedDataCollectionEnabled politikasının değerine bağlı olarak gerçek zamanlı aramaları içermeye devam edebilir. @@ -2014,6 +2042,9 @@ Harici depolama engellenmedikçe ExternalStorageReadOnly politikasını Yanlış (False) değerine ayarlarsanız veya ayarlamadan bırakırsanız, kullanıcılar fiziksel olarak yazılabilir harici depolama cihazlarının dosyalarını oluşturup değiştirebilirler. (ExternalStorageDisable politikasını Doğru (True) değerine ayarlayarak harici depolamayı engelleyebilirsiniz.)</translation> <translation id="2789742777235177478">SAML olmadan GAIA ile kimlik doğrulaması yapmış kullanıcının, kilit ekranında çevrimdışı olarak giriş yapabileceği süreyi sınırla</translation> +<translation id="2795923835422513629">Politikayı 1 değerine ayarlamak web sitelerinde pop-up'lara izin verir. Politikayı 2 değerine ayarlamak pop-up'ları engeller. + +Politikayı ayarlamadan bırakırsanız <ph name="BLOCK_POPUPS_POLICY_NAME" /> politikası geçerli olur. Kullanıcılar bu ayarı değiştirebilir.</translation> <translation id="2796714419743648316">Uygulama Başına Süre Sınırları İzin Verilenler Listesi</translation> <translation id="2801065672151277034">Sertifika yönetim ayarları</translation> <translation id="2801155097555584385">Pil şarjı için özel şarj başlatma değerini yüzde olarak ayarla</translation> @@ -2534,6 +2565,9 @@ Geçerli URL kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. <ph name="WILDCARD_VALUE" />, bu politikada kabul edilen bir değer değildir.</translation> <translation id="3205825995289802549">İlk çalıştırmada ilk tarayıcı penceresini ekranı kaplayacak şekilde büyüt</translation> +<translation id="320607884987562184">Politikayı Doğru değerine ayarlamak web sitelerinin JavaScript çalıştırmasına izin verir. Politikayı Yanlış değerine ayarlamak web sitelerinin JavaScript çalıştırmasını engeller. + +Politikayı ayarlamadan bırakırsanız JavaScript'e izin verilir. Kullanıcılar bu ayarı değiştirebilir.</translation> <translation id="3206959584699016689">Politikayı ayarlamak, hareket ve ışık sensörleri gibi sensörlere erişebilen siteleri belirten URL kalıpları için bir liste yapmanıza olanak tanır. Politika ayarlanmadan bırakılırsa <ph name="DEFAULT_SENSORS_SETTING_POLICY_NAME" /> (etkinse) bütün siteler için geçerli olur. Aksi takdirde kullanıcının kişisel ayarları geçerlidir. @@ -2716,6 +2750,10 @@ <translation id="3362584244602846824">Kablosuz erişim noktası desteklerse hızlı geçişi kullan</translation> <translation id="3363360928811201045">Yönetilen hesaplara kısıtlama ekleme</translation> <translation id="3364400740222114778">Hesap kurtarma</translation> +<translation id="3367361756115023251">Bu kullanıcının, Crostini kapsayıcılarına root erişimine izin verilir. + +Politika, Doğru değerine ayarlanırsa veya ayarlanmadan bırakılırsa kullanıcıya Crostini kapsayıcılarına root erişimi izni verilir. +Politika, Yanlış değerine ayarlanırsa kullanıcıya hem mevcut hem de yeni Crostini kapsayıcılara root erişimi izni verilmez.</translation> <translation id="3373381043600809954"><ph name="PRODUCT_NAME" /> özelliğini etkinleştir</translation> <translation id="3374587000313305002"><ph name="PRODUCT_NAME" /> uygulamasının kullanıcı verilerini depolamak için kullanacağı dizini yapılandırır. @@ -2996,6 +3034,15 @@ <translation id="3554498762428140109">Yerel Pencere Kapamayı etkinleştir</translation> <translation id="3554984410014457319">Google Asistan'ın sesli etkinleştirme ifadesini dinlemesine izin ver</translation> <translation id="3557586898458302131">Oluşturulan Kerberos SPN'sine standart dışı bağlantı noktasını dahil et</translation> +<translation id="3558024517032824255">Herhangi bir zamanda sabit sürümden başlayarak minimum kaç <ph name="PRODUCT_OS_NAME" /> dönüm noktasında geri almaya izin verileceğini belirler. + + Varsayılan sayı, tüketici için 0, kurumsal olarak kaydedilen cihazlar için 4'tür (yaklaşık yarım yıl). + + Bu politika ayarlanırsa en azından bu sayıda dönüm noktasında geri alma korumasının uygulanması engellenir. + + Bu politikanın daha düşük bir değere ayarlanması kalıcı etki bırakır: Cihaz, politika daha büyük bir değere sıfırlandıktan sonra bile önceki sürümlere geri DÖNEMEYEBİLİR. + + Gerçek geri alma olasılıkları ayrıca pano ve önemli güvenlik açığı yamalarına da bağlı olabilir.</translation> <translation id="35668690622495904"> Çağrılar, izin verilenler listesi dışındaki bağlamlardan kaynaklandığı için reddedilmez. (Çağrılar yine de başka nedenlerle reddedilebilir.)</translation> @@ -3071,6 +3118,15 @@ <translation id="3637063789824963261">Politika, Etkin değerine ayarlanırsa kayıtlı cihazlar, cihaz çalışma zamanı sayaçlarını bildirir (yalnızca Intel vPro 14 ve sonraki sürümler). Politika, Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa kayıtlı cihazlar, cihaz çalışma zamanı sayaçlarını kaydetmez veya bildirmez.</translation> +<translation id="3640677352428533707">Bu politika OS sürümü, OS platformu, OS mimarisi, <ph name="PRODUCT_NAME" /> sürümü ve <ph name="PRODUCT_NAME" /> kanalı gibi sürüm bilgilerinin bildirilip bildirilmeyeceğini kontrol eder. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> politikası ayarlanmadan bırakıldığında veya devre dışı değerine ayarlandığında bu politika yok sayılır. + +Bu politika ayarlanmadan bırakıldığında veya Doğru değerine ayarlandığında sürüm bilgileri toplanır. +Bu politika Yanlış değerine ayarlandığında sürüm bilgileri toplanmaz. + +Bu politika yalnızca <ph name="PRODUCT_NAME" /> için makinenin <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> kaydı yapıldığında geçerli olur. +<ph name="PRODUCT_OS_NAME" /> için bu politika her zaman geçerlidir.</translation> <translation id="3642557248926713561">Güvenli Tarama Uzantı Korumasını Devre Dışı Bırak</translation> <translation id="3644735978203799620">Çoklu ekran görüntüleri için otomatik seçimi etkinleştirir</translation> <translation id="3646859102161347133">Ekran büyüteci türünü ayarla</translation> @@ -3781,6 +3837,9 @@ Cihaz yönetilmiyorsa veya yalnızca bir kullanıcı varsa bu politika yok sayılır ve bildirim her zaman gösterilir. Yönetilen cihazda birden fazla kullanıcı hesabı varsa bildirim yalnızca bu politika etkinleştirildiğinde gösterilir.</translation> +<translation id="4297483555396496700">Yalnızca bu politika Doğru değerine ayarlanırsa kullanıcıların cihazın sürüm kanalını değiştirmesine izin verilir. Bu politika Yanlış değerine ayarlanır veya ayarlanmadan bırakılırsa kullanıcıların kanalı değiştirmesine izin verilmez. + +<ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> politikasının etkili olabilmesi için <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> politikasının Yanlış değerine ayarlanması şarttır.</translation> <translation id="4298476374822550051">TLS'de etkinleştirilen Kyber kuantum sonrası anahtar anlaşmasını etkinleştir</translation> <translation id="4303167373847512281">Geliştirici moduna izin ver</translation> <translation id="4307116964468610577">Politika, günde yalnızca bir kez tam kapasitede şarj ederek sistem pillerinin kullanım ömrünü uzatır. Sistem bir güç kaynağına takılı olsa bile, günün geri kalanında da piller daha düşük bir şarj durumunda tutulur. Bu da depolama açısından daha iyidir. @@ -3791,6 +3850,9 @@ Kullanıcılar bu ayarı değiştiremez.</translation> <translation id="4309091698378414920">İmleç vurgulamayı etkinleştir</translation> +<translation id="4311141497190183490">Politikayı 1 değerine ayarlamak sitelerin kullanıcının fiziksel konumunu izlemesine izin verir. Politikayı 2 değerine ayarlamak izlemeyi varsayılan olarak kapatır. Politikayı, web siteleri fiziksel konumunuzu izlemek istediğinde sorması için ayarlayabilirsiniz. + +Politikayı ayarlamadan bırakırsanız <ph name="ASK_GEOLOCATION_POLICY_NAME" /> politikası geçerli olur. Kullanıcılar bu ayarı değiştirebilir.</translation> <translation id="4311195029067684288">Tam</translation> <translation id="4311662690937656540">Giriş ve kilit ekranlarında çevrimiçi girişleri zorunlu kıl</translation> <translation id="4313767483634435271">Cihazın atanmış yuva MAC adresi</translation> @@ -3932,6 +3994,15 @@ <translation id="445505634382262792">Politika 3 değerine ayarlanırsa web siteleri, ana makine işletim sisteminin dosya sistemindeki dosya ve dizinlere yazma erişimi isteyebilir. Politikayı 2 değerine ayarlamak erişimi engeller. Politikayı ayarlanmadan bırakırsanız web siteleri erişim izni isteyebilir. Kullanıcılar bu ayarı değiştirebilirler.</translation> +<translation id="4455258118946528063">Bu politika, uzantı ve eklenti bilgilerinin bildirilip bildirilmeyeceğini kontrol eder. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> politikası ayarlanmadan bırakıldığında veya devre dışı değerine ayarlandığında bu politika yok sayılır. + +Bu politika ayarlanmadan bırakıldığında veya Doğru değerine ayarlandığında uzantı ve eklenti verileri toplanır. +Bu politika Yanlış değerine ayarlandığında uzantı ve eklenti verileri toplanmaz. + +Bu politika yalnızca <ph name="PRODUCT_NAME" /> için makinenin <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> kaydı yapıldığında geçerli olur. +<ph name="PRODUCT_OS_NAME" /> için bu politika her zaman geçerlidir.</translation> <translation id="4457113781439375078">Bu politika kullanımdan kaldırılmıştır. Politika, Etkin değerine ayarlanırsa kayıtlı cihazlar düzenli aralıklarla konumlarını bildirir. @@ -3955,6 +4026,15 @@ <translation id="4467952432486360968">Üçüncü taraf çerezlerini engelle</translation> <translation id="4472740647327683596">Mikrometre cinsinden sayfanın genişliği</translation> <translation id="4474167089968829729">Şifrelerin, şifre yöneticisine kaydedilmesini etkinleştir</translation> +<translation id="4475131520521739161"><ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> politikası otomatik saat dilimi algılama ayarını kapatmadıkça, politikayı ayarlamak kullanıcıların değiştiremeyeceği otomatik saat dilimi algılama yöntemini belirtir. + +Politika ayarları: + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONDISABLED" /> otomatik saat dilimi algılama seçeneğini kapalı tutar. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TTIMEZONEAUTOMATICDETECTIONIPONLY" /> yalnızca IP yöntemini kullanarak otomatik saat dilimi algılama seçeneğini açık tutar. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" /> saat diliminin daha hassas algılanması için görünür kablosuz erişim noktalarının listesini düzenli olarak Geolocation API sunucusuna göndererek otomatik saat dilimi algılama seçeneğini açık tutar. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" /> saat diliminin en hassas seviyede algılanması için konum bilgilerini (kablosuz bağlantı erişim noktaları, ulaşılabilen baz istasyonları, GPS gibi) düzenli olarak bir sunucuya gönderir. + +Ayarlanmaz, Kullanıcıların karar vermesine izin ver veya Yok olarak ayarlanırsa kullanıcılar otomatik saat dilimi algılama seçeneğini chrome://settings sayfasındaki normal kontrolleri kullanarak ayarlar.</translation> <translation id="4476769083125004742">Bu politika <ph name="BLOCK_GEOLOCATION_SETTING" /> seçeneğine ayarlanırsa Android uygulamaları konum bilgisine erişemez. Bu politikayı başka bir değere ayarlar veya ayarlamadan bırakırsanız, bir Android uygulaması konum bilgisine erişmek istediğinde kullanıcıdan izin istenir.</translation> <translation id="4478248026668918517">Politika kapsamını algılamayı engelle.</translation> <translation id="4479671363221255277">Bu politika ayarlanırsa kullanıcılardan ana makine işletim sisteminin dosya sisteminde bulunan dosya veya dizinlere File System API üzerinden okuma erişimi vermelerini isteyebilecek sitelerin belirtildiği URL kalıpları listesini oluşturabilirsiniz. @@ -4152,6 +4232,9 @@ <translation id="46321462262887935">Üst sıradaki tuşlara işlev tuşu olarak davran, ancak kullanıcının değişiklik yapmasına izin ver</translation> <translation id="4632343302005518762"><ph name="PRODUCT_FRAME_NAME" /> için listelenen içerik türlerini işlemeye izin ver</translation> <translation id="4636354638176939375">Gözetimli kullanıcı oluşturmayı devre dışı bırak</translation> +<translation id="46383668315040154">Bu cihazın kilitlenmesi gereken yayın kanalını belirtir. + +<ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> politikasının etkili olabilmesi için <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> politikasının Yanlış değerine ayarlanması şarttır.</translation> <translation id="4646626362889216307">Politikanın ayarlanması, farklı kaynaklardan seçilen politikaların aynı kapsamda ve düzeyde birleştirilmesine olanak tanır. Bu birleştirme, her kaynaktaki sözlüğün ilk düzey anahtarlarında meydana gelir. En yüksek öncelikli kaynaktan gelen anahtar tercih edilir. Desteklenen tüm sözlük politikalarının birleştirilmesine izin vermek için "*" joker karakterini kullanın. @@ -4531,6 +4614,14 @@ <translation id="499654521603185442">Web sitesi telemetri raporlaması</translation> <translation id="4997074784107449343">Resim olarak yazdır, PDF dokümanların yazdırma önizlemelerinde kullanılabildiği durumlarda varsayılan olarak seçilmez.</translation> <translation id="500149597848135831">Tüm varyasyonları etkinleştirme</translation> +<translation id="5017157692744444035">Bu politika, makine adı ve ağ adresleri gibi makineleri tanımlamak için kullanılabilen bilgilerin bildirilip bildirilmeyeceğini kontrol eder. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> politikası ayarlanmadan bırakıldığında veya devre dışı değerine ayarlandığında bu politika yok sayılır. + +Bu politika ayarlanmadan bırakıldığında veya Doğru değerine ayarlandığında makineleri tanımlamak için kullanılabilecek bilgiler toplanır. +Bu politika Yanlış değerine ayarlandığında makineleri tanımlamak için kullanılabilecek bilgiler toplanmaz. + +Bu politika yalnızca <ph name="PRODUCT_NAME" /> için makinenin <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> kaydı yapıldığında geçerli olur.</translation> <translation id="5017369989680827157">Politikayı True (Doğru) değerine ayarlamak veya ayarlamadan bırakmak, kullanıcı arayüzünde adresler için Otomatik doldurma kontrolünü kullanıcıya verir. Politikayı False (Yanlış) değerine ayarlamak, Otomatik doldurmanın hiçbir zaman öneride bulunmayacağı, adres bilgilerini doldurmayacağı ve kullanıcının web'e göz atarken gönderdiği ek adres bilgilerini kaydetmeyeceği anlamına gelir.</translation> @@ -4553,6 +4644,7 @@ <translation id="5036013147560568855">Sertifika temel hazırlığı protokolünün sürümü. Varsayılan olarak 1 değerine ayarlanır. 1, "statik" protokoldür. 2, "dinamik" protokoldür.</translation> <translation id="5039110755072335605">CORS joker karakter olmayan istek başlıkları desteği</translation> <translation id="504116558738617678">Düşük disk alanı uyarılarını, yalnızca cihaz yönetilmiyorsa veya yalnızca 1 kullanıcı varsa göster</translation> +<translation id="5041315457555330432">CastAllowAllIPs özelliği etkinleştirilmediği sürece <ph name="PRODUCT_NAME" /> ürününün yalnızca özel IP adreslerindeki cihazlara bağlanmasına izin ver.</translation> <translation id="5046376406561077773">Kullanıcı, <ph name="GOOGLE_DRIVE_NAME" /> Dosya Senkronizasyonu özelliğiyle ilgili kullanıcı arayüzünü göremez.</translation> <translation id="5055474681190962362">Cihazın ayın hangi gününde [1-31] yeniden başlatılması gerektiği (cihazın yerel saat dilimine göre). Yalnızca "sıklık", "AYLIK" olarak ayarlandığında kullanılır. Bu sayı, belirli bir aydaki maksimum gün sayısından fazlaysa ayın son günü seçilir.</translation> <translation id="5056708224511062314">Ekran büyüteci devre dışı</translation> @@ -4791,6 +4883,9 @@ Politikayı Yanlış (False) değerine ayarlar veya ayarlamadan bırakırsanız Birleşik Masaüstü kapatılır ve kullanıcılar açamazlar.</translation> <translation id="5255162913209987122">Önerilebilir</translation> <translation id="525543707238275321">Cihazın CPU bilgileri raporlamasını devre dışı bırak</translation> +<translation id="5255790642269910630">Bu politikanın ayarlanması, her ekranın her yeniden başlatmada ve politika değeri değiştikten sonraki ilk bağlantısında belirtilen yöne döndürülmesini sağlar. Kullanıcılar oturum açtıktan sonra ayarlar sayfasında ekran döndürmeyi değiştirebilir, ancak ayar bir sonraki yeniden başlatmada eski haline döner. Bu politika, birincil ve ikincil ekranlar için geçerlidir. + +Politika ayarlanmazsa varsayılan değer 0 derece olur ve kullanıcılar bu değeri istedikleri gibi değiştirebilir. Bu durumda, varsayılan değer yeniden başlatma sırasında tekrar uygulanmaz.</translation> <translation id="5257395339965216304">Barındırılan uygulama verileri</translation> <translation id="5258445772095084618">Bağlı olmayan kullanıcıların, Linux uygulamalarını desteklemek için gerekli olan sanal makineleri kullanmasına izin ver</translation> <translation id="5262320080678421295">Symantec Corporation'ın Eski PKI altyapısı tarafından verilen sertifikalara güveni devre dışı bırak</translation> @@ -5252,6 +5347,9 @@ <translation id="5660228672907979869">Üçüncü taraf depolama bölümlendirme işlevinin etkinleştirilmesini engelle.</translation> <translation id="5660950553460381588">Mümkün olduğunda varsayılan olarak iCloud Anahtar Zinciri'nde geçiş anahtarı oluştur.</translation> <translation id="5666457529647159548">Kullanıcıların yüklü sertifikaları yönetmelerine izin ver.</translation> +<translation id="5670249935663090320">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" /> açılır. Kullanıcılar cihazı uygulama menüsünden, sayfaların içerik menüsünden, Cast uyumlu web sitelerindeki medya kontrollerinden ve (gösteriliyorsa) Cast araç çubuğu simgesinden başlatabilir. + +Politika, Devre dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" /> kapatılır.</translation> <translation id="567377007899266033">Politika True (Doğru) değerine ayarlandığında politika tarafından tetiklenen, önemli eklenti yükleme etkinliklerinin raporları Google'a gönderilir. Politikanın False (Yanlış) değerine ayarlanması, hiçbir etkinliğin yakalanmayacağı anlamına gelir. Bu politika ayarlanmadan bırakıldığında varsayılan değer True (Doğru) değerine ayarlanır.</translation> <translation id="5676740747107495269">Erişilebilirlik seçeneklerini giriş ekranında sistem tepsisi menüsünde gösterme</translation> <translation id="5679540979548648200">Bu cihaz kullanıcılarının ADB başka cihazdan yükleme işlevini kullanmalarını engelleyin ve başka cihazdan yükleme daha önce etkinleştirildiyse cihazda Powerwash işlemi uygulayın</translation> @@ -6152,7 +6250,21 @@ <translation id="6462604655173570082">Politika ayarlanmadan bırakılır veya Etkin değerine ayarlanırsa kullanıcıların, yeni sekme sayfasındaki arama kutusunda <ph name="GOOGLE_LENS_PRODUCT_NAME" /> düğmesini görüntüleyip kullanmasına izin verilir. Politika, Devre Dışı değerine ayarlanırsa kullanıcılar, yeni sekme sayfasındaki arama kutusunda <ph name="GOOGLE_LENS_PRODUCT_NAME" /> düğmesini görmez.</translation> <translation id="6464074037294098618">Adresleri otomatik doldurmayı etkinleştir</translation> <translation id="6467613372414922590">Kullanıcı düzeyinde Yerel Mesajlaşma ana makinelerine izin ver (yönetici şifreleri olmadan yüklenir)</translation> +<translation id="6467707081687600148"><ph name="PRODUCT_OS_NAME" /> güncellemesi uygulandıktan sonra otomatik yeniden başlatma planlayın. + +Bu politika Doğru değerine ayarlanırsa <ph name="PRODUCT_OS_NAME" /> güncellemesi uygulandıktan sonra otomatik yeniden başlatma planlanır ve güncelleme işleminin tamamlanması için yeniden başlatma gerekir. Yeniden başlatma hemen planlanır ancak kullanıcı o anda cihazı kullanıyorsa cihazda 24 saate kadar gecikme yaşanabilir. + +Bu politika Yanlış değerine ayarlanırsa <ph name="PRODUCT_OS_NAME" /> güncellemesi uygulandıktan sonra otomatik yeniden başlatma planlanmaz. Güncelleme işlemi, kullanıcı cihazı yeniden başlattığında tamamlanır. + +Bu politikayı ayarlarsanız kullanıcılar değiştiremez veya geçersiz kılamaz. + +Not: Otomatik yeniden başlatmalar şu anda yalnızca giriş ekranı gösterilirken veya bir kiosk uygulaması oturumu devam ederken etkinleştirilir.</translation> <translation id="6471018476824827813">URL içeren veya URL'lerle ilişkili metrik toplamaya izin verilir</translation> +<translation id="6471927932956897852">İşletim sistemi güncelleme yükleri için P2P kullanılıp kullanılmayacağını belirler. +Doğru değerine ayarlanırsa cihazlar, LAN üzerindeki güncelleme yüklerini paylaşıp tüketmeye çalışarak internet bant genişliği kullanımını ve sıkışıklığı potansiyel olarak azaltır. Güncelleme yükü LAN'da mevcut değilse cihaz, bir güncelleme sunucusundan indirme işlemine geçer. +Yanlış değerine ayarlanırsa P2P kullanılmaz. + +NOT: Tüketici cihazlarıyla kurumsal cihazların varsayılan davranışı farklıdır: P2P; yönetilen cihazlarda etkin, yönetilmeyen cihazlarda devre dışıdır.</translation> <translation id="6473623140202114570">Güvenli Tarama'nın uyarıları tetiklemeyeceği alan adlarının listesini yapılandırır.</translation> <translation id="6474194795370862403">Eski offsetParent davranışı kullanılacak.</translation> <translation id="647645276885673708"><ph name="LACROS_NAME" /> tarayıcısını etkinleştir ve birincil tarayıcı yap</translation> @@ -6459,6 +6571,11 @@ <translation id="6670794785040100077">Dokümanların <ph name="CLOUD_PRINT_NAME" /> adresine gönderilmesini devre dışı bırak</translation> <translation id="6672070613706645316">Kullanıcıların Yeni Sekme sayfasındaki arka planı özelleştirmelerin izin ver.</translation> <translation id="6672630473862787247">Ambiyans kimlik doğrulamasını normal, gizli ve misafir oturumlarında etkinleştir.</translation> +<translation id="6676012253361586167">Crostini kapsayıcılarına bağlantı noktası yönlendirmeye izin verilip verilmediğini belirtir. + +Bu politika Doğru değerine ayarlanır veya ayarlanmadan bırakılırsa kullanıcılar Crostini kapsayıcılarına bağlantı noktası yönlendirme yapabilir. + +Bu politika Yanlış değerine ayarlanırsa Crostini kapsayıcılara bağlantı noktası yönlendirme devre dışı bırakılır.</translation> <translation id="6677291257287862684">Giriş ekranında yapışkan tuşları etkinleştir</translation> <translation id="6682305153467826752">Makine tanımlama bilgilerinin raporlanmasını etkinleştir</translation> <translation id="6685903773201985073">Ambiyans kimlik doğrulamasını misafir oturumlarında ve normal oturumlarda etkinleştir.</translation> @@ -6840,6 +6957,9 @@ Proxy politikalarının ayarlanmasıyla ilgili olarak başka bir mod seçtiyseniz bu politikayı ayarlamadan bırakın. Not: Ayrıntılı örnekler için Chromium Projeleri'ni ziyaret edin ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett ).</translation> +<translation id="7001915679435065291">Politikayı 1 değerine ayarlamak tüm web sitelerde görsellere izin verir. Politikayı 2 değerine ayarlamak görselleri engeller. + +Politikayı ayarlamadan bırakırsanız görsellere izin verilir. Kullanıcılar bu ayarı değiştirebilir.</translation> <translation id="7002040773317582266">Ana çerçeve URL'lerin gerçek zamanlı kontrolü etkinleştirildi.</translation> <translation id="7003746348783715221"><ph name="PRODUCT_NAME" /> tercihleri</translation> <translation id="7007283257527015835">Protokol işleyicinin varsayılan olarak ayarlanıp ayarlanmayacağını gösteren bir boole flag'i.</translation> @@ -7437,6 +7557,9 @@ https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html </translation> +<translation id="7512514325152952954"><ph name="PRODUCT_OS_NAME" /> üzerindeki otomatik güncelleme verileri, HTTPS yerine HTTP üzerinden indirilebilir. Bu kullanım, indirilen HTTP öğelerinin şeffaf bir şekilde HTTP önbelleğine alınmasına olanak sağlar. + +Bu politika Doğru seçeneğine ayarlanırsa <ph name="PRODUCT_OS_NAME" /> otomatik güncelleme verilerini HTTP aracılığıyla indirmeye çalışır. Politika, Yanlış değerine ayarlanırsa veya hiç ayarlanmazsa otomatik güncelleme verilerini indirmek için HTTPS kullanılır.</translation> <translation id="7515953732107149296">Bu politika, <ph name="PRODUCT_NAME" /> ürünündeki RC4 kaldırıldıktan sonra M53 sürümünde kaldırılmıştır. Politika ayarlanmazsa veya yanlış değerine ayarlanırsa TLS'deki RC4 şifre paketleri etkinleştirilmez. Aksi takdirde, eski bir sunucuyla uyumluluğu korumak için doğru değerine ayarlanabilir. Bu geçici bir tedbir olup sunucu yeniden yapılandırılmalıdır.</translation> @@ -7449,6 +7572,11 @@ Politika ayarlanmazsa veya Doğru değerine ayarlanırsa kullanıcılara şifreyi girmeden önce tam ekrandan çıkmalarını hatırlatmak için bir uyarı gösterilir. Politika Yanlış değerine ayarlanırsa herhangi bir uyarı gösterilmez.</translation> <translation id="7531630046107845550">Terminal Sistem Uygulaması'nda SSH giden istemci bağlantılarına izin ver</translation> +<translation id="7533385610709354870"><ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> politikası Devre dışı değerine ayarlanmadığı sürece, <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> politikası Etkin değerine ayarlanırsa <ph name="PRODUCT_NAME" /> yalnızca RFC1918/RFC4193 özel adreslerinde değil tüm IP adreslerinde yayın cihazlarına bağlanır. + +Politika, Devre Dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" /> yalnızca RFC1918/RFC4193 adreslerinde yayın cihazlarına bağlanır. + +Politika ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" /> yalnızca RFC1918/RFC4193 adreslerinde yayın cihazlarına bağlanır (CastAllowAllIPs özelliği açılmazsa).</translation> <translation id="7534199150025803530">Bu politikanın Android Google Drive uygulaması üzerinde hiçbir etkisi yoktur. Google Drive'ın hücresel bağlantılarda kullanılmasını engellemek isterseniz, Android Google Drive uygulamasının yüklenmesine izin vermemeniz gerekir.</translation> <translation id="7538583957913002726">Bu politika varsayılan olarak Etkin değerine ayarlıdır. CPU model adı, mimarisi ve maksimum saat hızını (M96 ve sonraki sürümlerde ayrıca CPU kullanımı ve sıcaklığını) bildirecek kayıtlı cihazları kontrol eder. @@ -7737,6 +7865,13 @@ Politikayı ayarlamadan bırakırsanız <ph name="DEFAULT_CLIPBOARD_SETTING" /> (etkinse) bütün siteler için geçerli olur. Aksi takdirde kullanıcının kişisel ayarları geçerlidir. Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. <ph name="WILDCARD_VALUE" />, bu politikada kabul edilen bir değer değildir.</translation> +<translation id="7790221177424764797">Bu politika, <ph name="IE_PRODUCT_NAME" /> tarayıcısının SiteList politikasından kuralların yüklenip yüklenmeyeceğini kontrol eder. + +Bu politika Doğru değerine ayarlanırsa <ph name="PRODUCT_NAME" />, site listesinin URL'sini almak için <ph name="IE_PRODUCT_NAME" /> tarayıcısının <ph name="IEEM_SITELIST_POLICY" /> politikasını okur. <ph name="PRODUCT_NAME" />, site listesini o URL'den indirir ve kuralları, <ph name="BROWSER_SWITCHER_URL_LIST_POLICY_NAME" /> politikasıyla yapılandırılmışlar gibi uygular. + +Bu politika Yanlış değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" />, <ph name="IE_PRODUCT_NAME" /> tarayıcısının <ph name="IEEM_SITELIST_POLICY" /> politikasını tarayıcılar arasında geçiş yapmak için bir kural kaynağı olarak kullanmaz. + +Internet Explorer'ın <ph name="IEEM_SITELIST_POLICY" /> politikası hakkında daha fazla bilgiyi https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode adresinde bulabilirsiniz.</translation> <translation id="7791215522423893512">Kullanıcıların ekran görüntüsü almasına veya video kaydı yapmasına izin verme</translation> <translation id="7792796937016596423">Kullanıcı, ağ paketi yakalama işlemleri gerçekleştiremez</translation> <translation id="7798441698807517880"><ph name="FLASH_PLUGIN_NAME" /> kullanımdan kaldırıldığı için bu politika, <ph name="PRODUCT_NAME" /> sürüm 89 itibariyle kaldırılmıştır. @@ -8063,6 +8198,11 @@ Bu politika ayarlanırsa kullanıcı tarafından değiştirilemez veya geçersiz kılınamaz.</translation> <translation id="8080200590486938727">Eklenti bulucuyu devre dışı bırak</translation> +<translation id="8086746212954621799">Doğru değerine ayarlandığında otomatik güncellemeleri devre dışı bırakır. + +Bu ayar yapılandırılmadığında veya Yanlış değerine ayarlandığında <ph name="PRODUCT_OS_NAME" /> cihazlar güncellemeleri otomatik olarak kontrol eder. + +Uyarı: Kullanıcıların yazılım güncellemelerini ve kritik güvenlik düzeltmelerini alabilmesi için otomatik güncellemelerin etkin durumda tutulması önerilir. Otomatik güncellemelerin devre dışı bırakılması kullanıcıları riske atabilir.</translation> <translation id="8089200718228084417">Kullanımdan kaldırılan privet yazdırmayı etkinleştir</translation> <translation id="8091982561085048989">Yazıcıyı kurmak için IPP Everywhere'in kullanılıp kullanılmayacağını belirten boole flag'i. Bu işaret, <ph name="PRODUCT_OS_NAME" /> sürüm 76 ve sonrasındaki sürümlerde desteklenir.</translation> <translation id="8094095107731619070">Kullanıcılar yazarken fiziksel klavyede otomatik düzeltme özelliğini etkinleştir</translation> @@ -8668,6 +8808,15 @@ Bu politika ayarlanmadığında raporlar her 24 saatte bir yüklenir. Politika ayarlanmışsa birbirini izleyen iki rapor yüklemesi arasındaki saat sayısı bu politika tarafından belirlenir.</translation> +<translation id="8618037841203431360">Bu politika; politika verilerinin ve politika getirme zamanının bildirilip bildirilmeyeceğini kontrol eder. + +<ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> politikası ayarlanmadan bırakıldığında veya devre dışı değerine ayarlandığında bu politika yok sayılır. + +Bu politika ayarlanmadan bırakıldığında veya Doğru değerine ayarlandığında politika verileri ve politika getirme zamanı toplanır. +Bu politika Yanlış değerine ayarlandığında politika verileri ve politika getirme zamanı toplanmaz. + +Bu politika yalnızca <ph name="PRODUCT_NAME" /> için makinenin <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> kaydı yapıldığında geçerli olur. +<ph name="PRODUCT_OS_NAME" /> için bu politika her zaman geçerlidir.</translation> <translation id="8619748440665904084">İlk çalıştırmada form otomatik doldurma verilerinin içe aktarılmasını devre dışı bırak</translation> <translation id="8623672932476443039">Politika, etkin değerine ayarlanırsa kullanıcılar erişime kapalı uygulamalar için geliştirici moduna erişebilir. Politika, devre dışı değerine ayarlanırsa kullanıcılar bu özelliklere erişemez. @@ -9070,6 +9219,9 @@ Bu denetim, giriş ekranı her yüklendiğinde tetiklenir. Cihazda giriş ekranı açık kalırsa denetim saatte bir yeniden tetiklenir. Böylece, taşıma işlemi kullanıcı oturumunun ortasında başlamaz ve son kullanıcıların bundan dolayı sorun yaşama ihtimali ortadan kalkar.</translation> <translation id="9003823644527627017"><ph name="PRODUCT_OS_NAME" /> hizmetindeki Bruschetta sanal makinelerini yapılandır</translation> +<translation id="9004469022085379212">Politikanın Etkin değerine ayarlanması cihazın, <ph name="PRODUCT_OS_NAME" /> işletim sistemi üstünde sanal makineleri çalıştırmasına olanak tanır. <ph name="PRODUCT_CROSTINI_NAME" /> kullanılabilmesi için <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> ve <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> politikalarının Etkin değerine ayarlanması gerekir. Politika, Devre Dışı değerine ayarlanırsa cihaz, sanal makineleri çalıştıramaz. Politika, Devre Dışı olarak değiştirilirse halihazırda çalışan sanal makinelere değil, başlatılan yeni sanal makinelere uygulanmaya başlar. + +Yönetilen bir cihazda bu politika ayarlanmadığında cihaz, sanal makineleri çalıştıramaz. Yönetilmeyen cihazlar, sanal makineleri çalıştırabilir.</translation> <translation id="9007632512838819703">Bu politika kullanımdan kaldırıldı, lütfen bunun yerine <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" /> politikasını kullanın. Yazım denetimi dillerini zorla devre dışı bırakır. Bu listedeki tanınmayan diller yoksayılır. @@ -9217,6 +9369,9 @@ <translation id="9098409326885953506">Kapalı pencereyi tespit edip boyamasını askıya al</translation> <translation id="9105265795073104888">Sadece proxy yapılandırma seçeneklerinin bir alt kümesi Android uygulamalarında kullanılabilir. Android uygulamaları proxy kullamayı kendi tercihleriyle seçebilir. Uygulamaları proxy kullanmaya zorlayamazsınız.</translation> <translation id="9106865192244721694">Bu sitelerde WebUSB'ye izin ver</translation> +<translation id="9107635531763682565">Politikayı 1 değerine ayarlamak web sitelerinin masaüstü bildirimlerine izin verir. Politikayı 2 değerine ayarlamak masaüstü bildirimlerini engeller. + +Politikayı ayarlamadan bırakırsanız <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> politikası geçerli olur. Kullanıcılar bu ayarı değiştirebilir.</translation> <translation id="9110251436602897914">Cihaza takılı çevre birimleri hakkında bilgi rapor et</translation> <translation id="9111850884577810507">Bu alan, <ph name="PRODUCT_NAME" /> tarafından desteklenen bir yazıcıyı temsil eden dizelerden biriyle eşleşmelidir. Dize, yazıcıya uygun PPD'yi tanımlamak ve yüklemek için kullanılır. Daha fazla bilgiye https://support.google.com/chrome?p=noncloudprint adresinden ulaşılabilir.</translation> <translation id="9112727953998243860">Kurumsal yazıcı yapılandırma dosyası</translation> @@ -9330,6 +9485,9 @@ <translation id="9191821120522935133">Görünür olmayan, çapraz kaynak iframe'lerin etkinleştirilmesine izin verir</translation> <translation id="9192220384862917760">Uzaktan erişim ana makinesinin perdelenmesini etkinleştir</translation> <translation id="9195766455191826480">Güvenlik durumunu raporlama</translation> +<translation id="9197238499850071076">Bu cihazın sonraki bir sürümü çalıştırıyor olması halinde, <ph name="DEVICE_TARGET_VERSION_PREFIX_POLICY_NAME" /> tarafından ayarlanan sürüme geri döndürülüp döndürülmeyeceğini belirler. + + Varsayılan, RollbackDisabled şeklindedir.</translation> <translation id="9197740283131855199">Kullanıcı, ekran kararmasından sonra etkin duruma gelirse ekranın kararma gecikmesinin ölçekleneceği yüzde</translation> <translation id="9200828125069750521">POST kullanan resim URL'si için parametreler</translation> <translation id="9204863016826119209">Şirket anahtarları, yüklenmiş ve bu politikada listelenmiş olan Android uygulamaları tarafından kullanılabilir.</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index 4c4aa6f5..254ba8d 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -621,6 +621,11 @@ Якщо це правило вимкнено, незахищені запити HTTP не можуть використовувати схему автентифікації <ph name="BASIC_AUTH" />; дозволяється лише захищене з'єднання HTTPS. Якщо встановлено правило <ph name="AUTH_SCHEMES_POLICY_NAME" /> і воно не містить <ph name="BASIC_AUTH" />, це налаштування правила не застосовується (а <ph name="BASIC_AUTH" /> завжди заборонятиметься).</translation> +<translation id="1573074208167290576">Дає змогу вказати, чи можуть користувачі додавати винятки, щоб дозволити змішаний контент для певних сайтів. + +Це правило можна перевизначити для конкретних шаблонів URL-адрес за допомогою правил InsecureContentAllowedForUrls і InsecureContentBlockedForUrls. + +Якщо це правило не налаштувати, користувачі зможуть додавати винятки, щоб дозволити змішаний контент, який можна блокувати, і вимкнути його автоматичне оновлення.</translation> <translation id="1573444493980402757">Дає змогу налаштовувати список шаблонів URL-адрес сайтів, яким буде автоматично заборонено розміщувати вікна. Таким чином сайти не зможуть переглядати інформацію про екрани пристрою та використовувати її, щоб відкривати й розміщувати вікна чи надсилати запити на повноекранний режим на певних екранах. Докладніше про дійсні шаблони URL-адрес сайтів можна дізнатися на сторінці https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Дозволяються символи підстановки (<ph name="WILDCARD_VALUE" />). Це правило враховує тільки джерела, тож шляхи в шаблонах URL-адрес ігноруються. @@ -899,6 +904,13 @@ Це правило більше не підтримується. Натомість використовуйте правило <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. </translation> +<translation id="1825583118566970564">Визначає, чи можна встановлювати зовнішні розширення. + +Якщо ввімкнути це правило, зовнішні розширення не можна буде встановлювати. + +Якщо вимкнути або не налаштувати це правило, зовнішні розширення можна буде встановлювати. + +Дізнатися про зовнішні розширення, зокрема їх встановлення, можна на сторінці https://developer.chrome.com/apps/external_extensions.</translation> <translation id="1827523283178827583">Використовувати фіксовані проксі-сервери</translation> <translation id="1829117241432374848">Керований обліковий запис має бути основним і не містити додаткових; користувач може імпортувати наявні дані в момент створення такого облікового запису</translation> <translation id="1829839214911753838">Якщо це правило ввімкнено, хост віддаленої допомоги запускається з дозволами <ph name="UIACCESS_PERMISSION_NAME" />. Тоді віддалений користувач зможе працювати з робочим столом локального користувача в режимі адміністратора. @@ -971,6 +983,15 @@ Поле <ph name="RUN_ON_OS_LOGIN_FIELD" /> визначає, чи можна запускати веб-додаток під час входу в ОС. Якщо вибрати для цього поля значення <ph name="BLOCKED" />, веб-додаток не запускатиметься під час входу в ОС і користувач не зможе пізніше ввімкнути такий запуск. Якщо вибрати для цього поля значення <ph name="RUN_WINDOWED" />, веб-додаток запускатиметься під час входу в ОС і користувач не зможе пізніше вимкнути такий запуск. Якщо вибрати для цього поля значення <ph name="ALLOWED" />, користувач зможе самостійно ввімкнути запуск веб-додатка під час входу в ОС. Для налаштування за умовчанням допускаються лише значення <ph name="ALLOWED" /> і <ph name="BLOCKED" />. (Починаючи з версії 117) Поле <ph name="PREVENT_CLOSE_FIELD" /> визначає, чи потрібно запобігати закриттю веб-додатка в будь-який спосіб (наприклад, користувачем, через диспетчер завдань або API веб-сервісів тощо). Цю поведінку можна ввімкнути, лише якщо в полі <ph name="RUN_ON_OS_LOGIN_FIELD" /> указано значення <ph name="RUN_WINDOWED" />. Якщо додаток уже запущено, ця властивість почне діяти лише після перезапуску додатка. Якщо значення в цьому полі не вказано, користувачі зможуть закривати додатки. (Починаючи з версії 118) Поле <ph name="FORCE_UNREGISTER_OS_INTEGRATION" /> визначає, чи буде вилучено всю інтеграцію ОС з веб-додатком, наприклад ярлики, обробники файлів і протоколів тощо. Якщо додаток уже запущено, ця властивість почне діяти після його перезапуску. Цю функцію слід використовувати обачно, оскільки вона може перевизначити будь-яку інтеграцію ОС, налаштовану автоматично під час запуску системи веб-додатків. Зараз додаток працює лише на платформах Windows, Mac і Linux.</translation> +<translation id="1874719875297132073">Це правило визначає, чи повідомляти інформацію, яка може використовуватися для ідентифікації користувачів, зокрема дані входу в ОС і профіль <ph name="PRODUCT_NAME" />, ім’я профілю <ph name="PRODUCT_NAME" />, шлях до профілю <ph name="PRODUCT_NAME" /> і виконуваний шлях <ph name="PRODUCT_NAME" />. + +Якщо правило <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> вимкнути або не налаштувати, це правило ігноруватиметься. + +Якщо це правило не налаштувати або вибрати для нього значення "правда", інформація, за якою можна ідентифікувати користувачів, збиратиметься. +Якщо вибрати значення "неправда", ця інформація не збиратиметься. + +Це правило працює, лише коли комп’ютер зареєстровано відповідно до правила <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> для <ph name="PRODUCT_NAME" />. +Для <ph name="PRODUCT_OS_NAME" /> це правило діє завжди.</translation> <translation id="1883274744253492031">Увімкнути автоматичне оновлення змішаного контенту</translation> <translation id="1885782360784839335">Дозволяє показувати рекламний вміст на всю вкладку</translation> <translation id="1888871729456797026">Маркер реєстрації правила використання хмарних служб на комп’ютері</translation> @@ -998,6 +1019,9 @@ Якщо це правило не налаштувати, після запуску відкривається сторінка нової вкладки. У <ph name="MS_WIN_NAME" /> це правило застосовується лише для екземплярів, які зареєстровано в доменах <ph name="MS_AD_NAME" /> чи <ph name="MS_AAD_NAME" /> або в <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />.</translation> +<translation id="1897095538209040086">Якщо це правило ввімкнути або не налаштувати, <ph name="PRODUCT_NAME" /> залишає відкритою принаймні одну вкладку після переходу на альтернативний веб-переглядач. + +Якщо це правило вимкнути, <ph name="PRODUCT_NAME" /> закриває вкладку після переходу на альтернативний веб-переглядач, навіть якщо це була остання вкладка. Після цього <ph name="PRODUCT_NAME" /> повністю закриється.</translation> <translation id="1897365952389968758">Дозволяти всім сайтам запускати JavaScript</translation> <translation id="1902043648529789224">Керувати розташуванням полиці</translation> <translation id="1904323733389537794">Якщо для цього правила вибрано значення True, онлайн-перевірки <ph name="OCSP_CRL_LABEL" /> будуть здійснюватися. @@ -1452,6 +1476,9 @@ <translation id="225830954785359083">Заборонити показ спливаючих вікон під час вивантаження сторінок</translation> <translation id="2261648512244797294">Вимкнути непідтримуваний друк Privet</translation> <translation id="2266422599396179941">Дозволити користувачам надсилати відгуки</translation> +<translation id="2268891553068901979">Якщо ввімкнути це правило, синхронізація між сервісом <ph name="GOOGLE_DRIVE_NAME" /> і додатком Файли в <ph name="PRODUCT_OS_NAME" /> вимикається, коли використовується мобільний Інтернет. Дані синхронізуються з Диском, лише коли пристрій під’єднано до мережі Wi-Fi або Ethernet. + +Якщо це правило вимкнути або не налаштувати, користувачі можуть переносити файли на Диск через мобільний Інтернет.</translation> <translation id="2269319728625047531">Вмикає запит згоди на синхронізацію під час входу</translation> <translation id="2270113153862588648">Якщо ввімкнути це правило, дозволяється віддалена атестація для пристрою. Сертифікат автоматично створюється й завантажується на сервер керування пристроями. @@ -1803,8 +1830,6 @@ Якщо це правило не налаштовано, застосовується параметр <ph name="PRINTERS_ALLOW_ALL" />.</translation> <translation id="2581338546762479588">Дозволити автоматичний перезапуск після оновлення</translation> -<translation id="2582855747769273665">URL-адреса, за якою користувачі можуть отримати більше інформації. Якщо властивість schema не налаштувати, у програмі встановлення не буде -такої URL-адреси.</translation> <translation id="2586117300379904732">Дозволити розширенням керування живленням блокувати переходи в режим сну</translation> <translation id="2586231026319371211">Використовується місцевий час (у 24-годинному форматі).</translation> <translation id="2587719089023392205">Зробити <ph name="PRODUCT_NAME" /> веб-переглядачем за умовчанням</translation> @@ -1963,6 +1988,9 @@ <translation id="2727844239611930002">Дозволити <ph name="PRODUCT_NAME" /> визначати, чи показувати запит для <ph name="PRIVACY_SANDBOX_NAME" />.</translation> <translation id="2730200383593984228">Дозволити неафілійованим користувачам застосовувати додатки для Android</translation> <translation id="2730419309754848345">Друкувати файли PDF як зображення за умовчанням</translation> +<translation id="2730644640965800157">Якщо це правило ввімкнути, синхронізація між сервісом <ph name="GOOGLE_DRIVE_NAME" /> і додатком Файли в <ph name="PRODUCT_OS_NAME" /> деактивується. Дані не завантажуються на Диск. + +Якщо це правило вимкнути або не налаштувати, користувачі зможуть переносити файли на Диск.</translation> <translation id="2731299561202635374">Це правило керує перевіркою URL-адрес у реальному часі. Якщо його не налаштувати або вимкнути, застосовуватимуться перевірки користувацького Безпечного перегляду. При цьому залежно від значень параметра "Покращувати пошук і веб-перегляд" і правила UrlKeyedAnonymizedDataCollectionEnabled можуть виконуватися перевірки в реальному часі. @@ -2018,6 +2046,9 @@ Якщо зовнішній пристрій пам'яті не заблокований, а для правила ExternalStorageReadOnly вибрано значення False або його не налаштовано, користувачі можуть створювати та змінювати файли на зовнішніх пристроях пам'яті, на яких це можна робити. (Щоб заблокувати зовнішні пристрої пам'яті, укажіть для правила ExternalStorageDisable значення True.)</translation> <translation id="2789742777235177478">Обмежити час, упродовж якого автентифікований через GAIA без SAML користувач може входити в режимі офлайн на заблокованому екрані</translation> +<translation id="2795923835422513629">Якщо для цього правила вибрати значення 1, веб-сайти зможуть показувати спливаючі вікна. Якщо вибрати значення 2, спливаючі вікна блокуватимуться. + +Якщо це правило не налаштувати, застосовуватиметься правило <ph name="BLOCK_POPUPS_POLICY_NAME" />, але користувачі зможуть змінити цей параметр.</translation> <translation id="2796714419743648316">Білий список для обмежень на час використання додатка</translation> <translation id="2801065672151277034">Параметри керування сертифікатами</translation> <translation id="2801155097555584385">Налаштувати рівень початку заряджання акумулятора у відсотках</translation> @@ -2530,6 +2561,9 @@ Докладніше про дійсні шаблони URL-адрес можна дізнатися на сторінці https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> – недопустиме значення для цього правила.</translation> <translation id="3205825995289802549">Розгортати перше вікно веб-переглядача під час запуску</translation> +<translation id="320607884987562184">Якщо для цього правила вибрати значення 1, веб-сайти зможуть запускати JavaScript. Якщо вибрати значення 2, JavaScript буде заблоковано. + +Якщо це правило не налаштувати, JavaScript буде дозволено, але користувачі зможуть змінити цей параметр.</translation> <translation id="3206959584699016689">За допомогою цього правила можна створити список шаблонів URL-адрес, що визначають сайти, які мають доступ до датчиків, зокрема руху та світла. Якщо це правило не налаштовано, до всіх сайтів застосовуватиметься правило <ph name="DEFAULT_SENSORS_SETTING_POLICY_NAME" /> за умови, що воно налаштоване. Якщо ні, використовуються особисті налаштування користувачів. @@ -2714,6 +2748,10 @@ <translation id="3362584244602846824">Використовувати швидкий перехід, якщо бездротова точка доступу підтримує його</translation> <translation id="3363360928811201045">Додати обмеження для керованих облікових записів</translation> <translation id="3364400740222114778">Відновлення облікового запису</translation> +<translation id="3367361756115023251">Надати цьому користувачу доступ до контейнерів Crostini на кореневому рівні. + +Якщо це правило не налаштувати або вибрати для нього значення "правда", доступ надаватиметься. +Якщо для цього правила вибрати значення "неправда", доступ до наявних і нових контейнерів Crostini не надаватиметься.</translation> <translation id="3373381043600809954">Увімкнути функцію "<ph name="PRODUCT_NAME" />".</translation> <translation id="3374587000313305002">Налаштовує каталог, у якому <ph name="PRODUCT_NAME" /> зберігає дані користувачів. @@ -2963,6 +3001,15 @@ <translation id="3554498762428140109">Увімкнути перекривання вікон Chrome</translation> <translation id="3554984410014457319">Дозволити Google Асистенту розпізнавати фразу для активації голосом</translation> <translation id="3557586898458302131">Включати нестандартний порт у створену назву SPN для протоколу Kerberos</translation> +<translation id="3558024517032824255">Указує мінімальну кількість версій <ph name="PRODUCT_OS_NAME" />, які можна відновлювати, починаючи зі стабільної версії. + +За умовчанням для споживача встановлено значення 0, для зареєстрованих корпоративних пристроїв – 4 (приблизно півроку). + +Якщо налаштувати це правило, то заборона відновлення попередніх версій не застосовуватиметься для цих версій. + +Нижнє значення цього правила встановлюється назавжди: пристрій МОЖЕ не відновлювати попередні версії, навіть якщо пізніше вибрати для правила більше значення. + +Реальні можливості відновлення версій можуть залежати від апаратного забезпечення й виправлень критичних загроз.</translation> <translation id="35668690622495904"> Виклики не відхиляються на основі того, що вони надходять із контекстів, які не належать до білого списку. (Проте їх усе одно може бути відхилено через інші причини.)</translation> @@ -3037,6 +3084,15 @@ <translation id="3637063789824963261">Якщо ввімкнути це правило, зареєстровані пристрої надсилатимуть дані зі своїх лічильників часу виконання (лише для Intel vPro Gen 14 і новіших версій). Якщо його вимкнути або не налаштувати, зареєстровані пристрої не записуватимуть і не надсилатимуть такі дані.</translation> +<translation id="3640677352428533707">Це правило визначає, чи повідомляти інформацію про версію, зокрема версію, платформу й архітектуру ОС, а також версію <ph name="PRODUCT_NAME" /> і канал <ph name="PRODUCT_NAME" />. + +Якщо правило <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> вимкнути або не налаштувати, це правило ігноруватиметься. + +Якщо це правило не налаштувати або вибрати для нього значення "правда", інформація про версію збиратиметься. +Якщо вибрати значення "неправда", інформація про версію не збиратиметься. + +Це правило працює, лише коли комп’ютер зареєстровано відповідно до правила <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> для <ph name="PRODUCT_NAME" />. +Для <ph name="PRODUCT_OS_NAME" /> це правило діє завжди.</translation> <translation id="3642557248926713561">Вимкнути захист від шкідливих розширень за допомогою Безпечного перегляду</translation> <translation id="3644735978203799620">Вмикає автоматичний вибір для записів екрана на різних пристроях</translation> <translation id="3646859102161347133">Установити тип лупи</translation> @@ -3742,6 +3798,9 @@ Якщо пристрій не керований або має лише одного користувача, це правило ігнорується й сповіщення завжди відображається. Якщо на керованому пристрої є кілька облікових записів користувача, сповіщення відображається, лише коли це правило ввімкнено.</translation> +<translation id="4297483555396496700">Якщо для цього правила вибрати значення "правда", користувачі зможуть змінювати лише версію оновлення для цього пристрою. Якщо вибрати для цього правила значення "неправда" або не налаштувати його, користувачі не зможуть змінювати цю версію. + +Налаштування правила <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> діють, лише якщо для <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> вибрано значення "неправда".</translation> <translation id="4298476374822550051">Увімкнути постквантовий алгоритм узгодження ключів Kyber для TLS</translation> <translation id="4303167373847512281">Дозволити режим розробника</translation> <translation id="4307116964468610577">Це правило дає змогу подовжити строк експлуатації системних акумуляторів, заряджаючи їх повністю лише раз на день. До кінця дня заряд підтримуватиметься на нижчому рівні, щоб захистити акумулятор від зносу (навіть якщо пристрій підключено до джерела живлення). @@ -3752,6 +3811,9 @@ Користувачі не можуть змінювати це налаштування.</translation> <translation id="4309091698378414920">Увімкнути виділення курсора</translation> +<translation id="4311141497190183490">Якщо для цього правила вибрати значення 1, сайти можуть за умовчанням відстежувати місцезнаходження користувачів. Якщо вибрати значення 2, відстеження буде вимкнено за умовчанням. У правилі можна налаштувати, щоб сайти запитували дозвіл на відстеження місцезнаходження користувачів. + +Якщо це правило не налаштувати, застосовуватиметься правило <ph name="ASK_GEOLOCATION_POLICY_NAME" />, але користувачі зможуть змінити цей параметр.</translation> <translation id="4311195029067684288">Full</translation> <translation id="4311662690937656540">Вимагати ввійти через Інтернет на екрані входу й заблокованому екрані</translation> <translation id="4313767483634435271">Призначена пристрою MAC-адреса док-станції</translation> @@ -3894,6 +3956,15 @@ <translation id="445505634382262792">Якщо для цього правила вибрано значення 3, веб-сайти можуть запитувати дозвіл на редагування файлів чи каталогів у файловій системі ОС хосту. Якщо для нього вибрано значення 2, доступ буде заблоковано. Якщо це правило не налаштовано, веб-сайти зможуть запитувати дозвіл, але користувачі матимуть можливість змінити цей параметр.</translation> +<translation id="4455258118946528063">Це правило визначає, чи повідомляти дані розширень і плагінів. + +Якщо правило <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> вимкнути або не налаштувати, це правило ігноруватиметься. + +Якщо це правило не налаштувати або вибрати для нього значення "правда", дані розширень і плагінів збиратимуться. +Якщо вибрати значення "неправда", дані розширень і плагінів не збиратимуться. + +Це правило працює, лише коли комп’ютер зареєстровано відповідно до правила <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> для <ph name="PRODUCT_NAME" />. +Для <ph name="PRODUCT_OS_NAME" /> це правило діє завжди.</translation> <translation id="4457113781439375078">Це правило не підтримується. Якщо ввімкнути це правило, зареєстровані пристрої періодично надсилатимуть геодані. @@ -3917,6 +3988,15 @@ <translation id="4467952432486360968">Блокувати файли cookie третьої сторони</translation> <translation id="4472740647327683596">Ширина сторінки в мікрометрах</translation> <translation id="4474167089968829729">Дозволити зберігати паролі в диспетчері паролів</translation> +<translation id="4475131520521739161">Якщо правило <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> не вимкне автоматичне визначення часового поясу, тоді налаштування цього правила вказують метод автоматичного визначення часового поясу, і користувачі не можуть змінити його. + +Нижче наведено можливі значення. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONDISABLED" />: автоматичне визначення часового поясу буде вимкнено. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TTIMEZONEAUTOMATICDETECTIONIPONLY" />: автоматичне визначення часового поясу буде ввімкнено й воно працюватиме лише на основі IP-адреси. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" />: автоматичне визначення часового поясу буде ввімкнено й воно постійно надсилатиме список видимих точок доступу Wi-Fi на сервер Geolocation API, щоб чіткіше визначати часовий пояс. + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" />: автоматичне визначення часового поясу буде ввімкнено й воно постійно надсилатиме дані про місцезнаходження (наприклад, інформацію про точки доступу Wi-Fi, доступні вишки мобільного зв’язку, GPS) на сервер, щоб чіткіше визначати часовий пояс. + +Якщо це правило не налаштувати або вибрати для нього значення "Дозволити користувачам вирішувати" чи "Немає", користувачі контролюють автоматичне визначення часового поясу за допомогою звичайних елементів керування в chrome://settings.</translation> <translation id="4476769083125004742">Якщо для правила вибрано значення "<ph name="BLOCK_GEOLOCATION_SETTING" />", додатки Android не матимуть доступу до геоданих. Якщо це правило не налаштовано або має інше значення, користувачеві пропонуватиметься надати дозвіл, коли додатки Android запитуватимуть доступ до геоданих.</translation> <translation id="4478248026668918517">Блокувати виявлення області дії правил.</translation> <translation id="4479671363221255277">За допомогою цього правила можна вказати список шаблонів URL-адрес, що визначають сайти, яким дозволено запитувати дозвіл на перегляд файлів чи каталогів у файловій системі ОС хосту через File System API. @@ -4119,6 +4199,9 @@ <translation id="46321462262887935">Вважати клавіші верхнього рядка функціональними, але дозволити користувачу змінювати налаштування</translation> <translation id="4632343302005518762">Дозволити <ph name="PRODUCT_FRAME_NAME" /> обробляти перелічені типи вмісту</translation> <translation id="4636354638176939375">Вимкнути створення контрольованих користувачів</translation> +<translation id="46383668315040154">Указує версію оновлення, з якою потрібно пов’язати цей пристрій. + +Налаштування правила <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> діють, лише якщо для <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> вибрано значення "неправда".</translation> <translation id="4646626362889216307">За допомогою цього правила можна об’єднати вибрані правила з різних джерел, якщо вони мають однакові області дії й рівень. Суть полягає в об’єднанні ключів першого рівня зі словників у кожному джерелі. Перевагу мають ключі з джерела з найвищим пріоритетом. Щоб об’єднувати правила зі всіх підтримуваних словників, використовуйте символ підстановки ( * ). @@ -4496,6 +4579,14 @@ <translation id="499654521603185442">Надсилання звітів про телеметричні дані веб-сайту</translation> <translation id="4997074784107449343">Не налаштовувати опцію "Друкувати як зображення" за умовчанням для попереднього перегляду під час друку документів PDF (коли вона доступна).</translation> <translation id="500149597848135831">Увімкнути всі варіанти</translation> +<translation id="5017157692744444035">Це правило визначає, чи повідомляти інформацію, яка може використовуватися для ідентифікації комп’ютерів, зокрема назву й мережеві адреси. + +Якщо правило <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> вимкнути або не налаштувати, це правило ігноруватиметься. + +Якщо це правило не налаштувати або вибрати для нього значення "правда", інформація, за допомогою якої можна ідентифікувати комп’ютери, збиратиметься. +Якщо вибрати значення "неправда", ця інформація не збиратиметься. + +Це правило працює, лише коли комп’ютер зареєстровано відповідно до правила <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> для <ph name="PRODUCT_NAME" />.</translation> <translation id="5017369989680827157">Якщо для цього правила вибрано значення True або його не налаштовано, користувачі можуть контролювати автозаповнення адрес в інтерфейсі. Якщо для нього вибрано значення False, функція автозаповнення не пропонуватиме та не вводитиме адресу, а також не зберігатиме додаткові дані про неї, які користувач вводить під час веб-перегляду.</translation> @@ -4518,6 +4609,7 @@ <translation id="5036013147560568855">Версія протоколу надання сертифікатів. Значення за умовчанням – 1. Значення 1 – це статичний протокол, тоді як 2 – динамічний.</translation> <translation id="5039110755072335605">Підтримка заголовків запитів CORS без символів підстановки</translation> <translation id="504116558738617678">Показувати сповіщення про те, що на диску замало пам'яті, тільки коли пристроєм не керують або є лише один користувач</translation> +<translation id="5041315457555330432">Дозволити функції <ph name="PRODUCT_NAME" /> підключатися лише до пристроїв із приватними ІР-адресами, якщо не ввімкнено функцію CastAllowAllIPs.</translation> <translation id="5046376406561077773">Користувачам не показується інтерфейс, пов’язаний із функцією синхронізації файлів у сервісі <ph name="GOOGLE_DRIVE_NAME" />.</translation> <translation id="5055474681190962362">День місяця [1–31], коли має відбутися перезапуск (за встановленим на пристрої місцевим часовим поясом). Використовується, лише якщо для параметра frequency вибрано значення MONTHLY. Якщо значення більше за максимальну кількість днів у певному місяці, буде вибрано його останній день.</translation> <translation id="5056708224511062314">Лупу вимкнено</translation> @@ -4755,6 +4847,9 @@ Якщо для цього правила вибрано значення False або його не налаштовано, уніфікований режим робочого столу буде вимкнено, і користувачі не зможуть увімкнути його.</translation> <translation id="5255162913209987122">Може рекомендуватися</translation> <translation id="525543707238275321">Вимкнути звітування щодо інформації про ЦП пристрою</translation> +<translation id="5255790642269910630">Якщо налаштувати це правило, на всіх дисплеях застосовуватиметься вказана орієнтація після кожного перезапуску, а також коли дисплеї підключатимуть уперше після зміни значень цього правила. Увійшовши в обліковий запис, користувачі можуть змінити орієнтацію дисплея на сторінці налаштувань, але після наступного перезапуску відновлюватиметься задане в правилі значення. Це правило застосовується до основних і додаткових дисплеїв. + +Якщо його не налаштувати, діє значення за умовчанням – 0 градусів, але користувачі можуть змінити його. У такому випадку значення за умовчанням не відновлюватиметься після перезапуску.</translation> <translation id="5257395339965216304">Дані розміщених додатків</translation> <translation id="5258445772095084618">Дозволити неафілійованим користувачам використовувати віртуальні машини, потрібні для підтримки додатків Linux</translation> <translation id="5262320080678421295">Не довіряти сертифікатам, виданим застарілою інфраструктурою відкритих ключів корпорації Symantec</translation> @@ -5209,6 +5304,9 @@ <translation id="5660228672907979869">Заборонити вмикати розділення сторонніх сховищ.</translation> <translation id="5660950553460381588">За умовчанням створювати ключі доступу в iCloud Keychain, якщо це можливо.</translation> <translation id="5666457529647159548">Дозволити користувачам керувати встановленими сертифікатами клієнта.</translation> +<translation id="5670249935663090320">Якщо це правило ввімкнути або не налаштувати, активується функція <ph name="PRODUCT_NAME" />, яку користувачі можуть запустити з меню додатка, контекстних меню на сторінці, елементів керування медіаконтентом на веб-сайтах із підтримкою Google Cast, а також через значок на панелі інструментів Cast (якщо відображається). + +Якщо це правило вимкнути, функція <ph name="PRODUCT_NAME" /> деактивується.</translation> <translation id="567377007899266033">Якщо для цього правила вибрано значення True, у Google надсилатимуться звіти про основні події під час встановлень розширень, які було активовано правилом. Якщо для цього правила вибрано значення False, події не реєструватимуться. Якщо це правило не налаштовано, значенням за умовчанням буде вибрано True.</translation> <translation id="5676740747107495269">Показувати параметри спеціальних можливостей в меню панелі завдань на екрані входу</translation> <translation id="5679540979548648200">Забороняє користувачам цього пристрою завантажувати додатки з невідомого джерела через ADB та примусово активовує функцію Powerwash, якщо завантаження з невідомого джерела було раніше дозволене</translation> @@ -6131,7 +6229,21 @@ <translation id="6462604655173570082">Якщо це правило не налаштувати або ввімкнути, користувачі зможуть бачити й використовувати кнопку сервісу <ph name="GOOGLE_LENS_PRODUCT_NAME" /> у полі пошуку на сторінці нової вкладки. Якщо правило вимкнути, користувачі не бачитимуть кнопку сервісу <ph name="GOOGLE_LENS_PRODUCT_NAME" />.</translation> <translation id="6464074037294098618">Увімкнути функцію автозаповнення адрес</translation> <translation id="6467613372414922590">Дозволити хости на рівні користувача для обміну повідомленнями з оригінальними додатками (установлені без дозволів адміністратора)</translation> +<translation id="6467707081687600148">Заплануйте автоматичний перезапуск після оновлення <ph name="PRODUCT_OS_NAME" />. + +Виберіть для цього правила значення "правда", щоб запланувати автоматичний перезапуск після того, як оновиться <ph name="PRODUCT_OS_NAME" /> і потрібно буде перезапустити пристрій. Перезапуск буде заплановано негайно, однак його можна відкласти щонайбільше на 24 години, якщо пристрій використовується. + +Якщо для цього правила вибрати значення "неправда", після оновлення <ph name="PRODUCT_OS_NAME" /> не буде заплановано автоматичний перезапуск. Оновлення завершиться, коли користувач перезапустить пристрій. + +Якщо це правило налаштувати, користувачі не можуть змінювати або перевизначати його. + +Примітка. Зараз автоматичний перезапуск увімкнено, лише коли відображається екран входу або триває сеанс додатка-термінала.</translation> <translation id="6471018476824827813">Збирання показників за допомогою URL-адрес дозволено</translation> +<translation id="6471927932956897852">Указує, чи однорангова мережа має використовуватися для даних оновлення ОС. +Якщо вибрати значення "правда", пристрої обмінюватимуться даними й намагатимуться використовувати дані оновлення в LAN, що потенційно може знижувати використання пропускної спроможності й перевантаження каналів інтернет-зв’язку. Якщо дані оновлення не доступні через LAN, пристрій завантажуватиме їх із сервера оновлення. +Якщо вибрати значення "неправда", однорангова мережа не використовуватиметься. + +ПРИМІТКА. Поведінка за умовчанням для приватних і корпоративних пристроїв відрізняється: однорангову мережу буде ввімкнено лише на керованих пристроях.</translation> <translation id="6473623140202114570">Налаштувати список доменів, у яких Безпечний перегляд не показуватиме застережень.</translation> <translation id="6474194795370862403">Застосовуватиметься стара поведінка offsetParent.</translation> <translation id="647645276885673708">Увімкнути <ph name="LACROS_NAME" /> і зробити його основним веб-переглядачем</translation> @@ -6442,6 +6554,11 @@ <translation id="6670794785040100077">Вимкнути надсилання документів у сервіс <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="6672070613706645316">Дозволити користувачам змінювати фон сторінки нової вкладки</translation> <translation id="6672630473862787247">Увімкнути фонову автентифікацію у звичайних, анонімних та гостьових сеансах.</translation> +<translation id="6676012253361586167">Указує, чи дозволено переадресацію портів у контейнери Crostini. + +Якщо для цього правила вибрати значення "правда" або не налаштувати його, користувачі зможуть налаштовувати переадресацію портів у свої контейнери Crostini. + +Якщо вибрати значення "неправда", переадресацію портів у контейнери Crostini буде вимкнено.</translation> <translation id="6677291257287862684">Увімкнути залипання клавіш на екрані входу</translation> <translation id="6682305153467826752">Увімкнути звіти про ідентифікаційну інформацію комп’ютера</translation> <translation id="6685903773201985073">Увімкнути фонову автентифікацію у звичайних і гостьових сеансах.</translation> @@ -6816,6 +6933,9 @@ Якщо ви вибрали інший режим, це правило не потрібно налаштовувати. Примітка: щоб переглянути детальніші приклади, відвідайте веб-сайт проектів Chromium (https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett).</translation> +<translation id="7001915679435065291">Якщо для цього правила вибрати значення 1, усі веб-сайти зможуть показувати зображення. Якщо вибрати значення 2, показ зображень блокуватиметься. + +Якщо це правило не налаштувати, показ зображень дозволяється, але користувачі зможуть змінити цей параметр.</translation> <translation id="7002040773317582266">Перевірки основних фреймів URL-адрес у реальному часі ввімкнено.</translation> <translation id="7003746348783715221">Налаштування <ph name="PRODUCT_NAME" /></translation> <translation id="7007283257527015835">Логічне значення експериментального параметра, яке вказує, чи застосовувати певний обробник протоколів за умовчанням.</translation> @@ -7423,6 +7543,9 @@ https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html </translation> +<translation id="7512514325152952954">Дані автоматичного оновлення в <ph name="PRODUCT_OS_NAME" /> можна завантажувати через HTTP, а не HTTPS. Це дає змогу кешувати завантаження HTTP через прозорий протокол HTTP. + +Якщо для цього правила вибрати значення "правда", <ph name="PRODUCT_OS_NAME" /> намагатиметься завантажити дані автоматичного оновлення через HTTP. Якщо вибрати для цього правила значення "неправда" або не налаштувати його, для завантаження даних автоматичного оновлення використовуватиметься протокол HTTPS.</translation> <translation id="7515953732107149296">Це правило було вилучено у версії M53 після того, як у <ph name="PRODUCT_NAME" /> було видалено шифри RC4. Якщо це правило не налаштувати або вибрати для нього значення "неправда", набори шифрів RC4 в TLS не буде ввімкнено. Ви можете вибрати значення "правда", якщо хочете підтримувати сумісність із застарілим сервером. Це тимчасовий захід, налаштування сервера потрібно змінити.</translation> @@ -7435,6 +7558,11 @@ Коли це правило не налаштовано або для нього вибрано значення True, з'являтиметься сповіщення з нагадуванням вийти з повноекранного режиму, перш ніж вводити пароль. Коли для цього правила вибрано значення False, сповіщення не з'являтиметься.</translation> <translation id="7531630046107845550">Дозволити вихідні клієнтські підключення за протоколом SSH у системному додатку Термінал</translation> +<translation id="7533385610709354870">Якщо ввімкнути правило <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> і не вимкнути правило <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" />, функція <ph name="PRODUCT_NAME" /> підключається до пристроїв для трансляції за всіма IP-адресами, а не лише за приватними адресами RFC1918/RFC4193. + +Якщо це правило вимкнути, функція <ph name="PRODUCT_NAME" /> підключається до пристроїв для трансляції лише за адресами RFC1918/RFC4193. + +Якщо це правило не налаштувати, функція <ph name="PRODUCT_NAME" /> підключається до пристроїв для трансляції лише за адресами RFC1918/RFC4193 (якщо не ввімкнути функцію CastAllowAllIPs).</translation> <translation id="7534199150025803530">Це правило не впливає на додаток Google Диск на пристрої Android. Щоб Google Диск не використовувався через мобільну мережу, забороніть встановлення додатка Google Диск на пристрої Android.</translation> <translation id="7538583957913002726">Це правило ввімкнено за умовчанням. За його допомогою на зареєстрованих пристроях можна визначити, чи ви хочете отримувати дані про назву моделі, архітектуру й максимальну тактову частоту ЦП (а також навантаження на ЦП та його температуру для версії M96 і новіших). @@ -7724,6 +7852,13 @@ Якщо це правило не налаштовано, до всіх сайтів застосовуватиметься правило <ph name="DEFAULT_CLIPBOARD_SETTING" /> за умови, що воно налаштоване. Якщо ні, використовуються особисті налаштування користувачів. Докладніше про дійсні шаблони <ph name="URL_LABEL" />-адрес можна дізнатися на сторінці https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> – недопустиме значення для цього правила.</translation> +<translation id="7790221177424764797">Це правило визначає, чи завантажувати правила відповідно до списку SiteList в <ph name="IE_PRODUCT_NAME" />. + +Якщо для цього правила вибрати значення "правда", <ph name="PRODUCT_NAME" /> переглядає правило <ph name="IEEM_SITELIST_POLICY" /> в <ph name="IE_PRODUCT_NAME" />, щоб отримати URL-адресу списку сайтів. Потім <ph name="PRODUCT_NAME" /> завантажує список сайтів за цією URL-адресою і застосовує правила так, наче їх налаштовано за допомогою правила <ph name="BROWSER_SWITCHER_URL_LIST_POLICY_NAME" />. + +Якщо це правило не налаштувати або вибрати для нього значення "неправда", <ph name="PRODUCT_NAME" /> не використовує правило <ph name="IEEM_SITELIST_POLICY" /> в <ph name="IE_PRODUCT_NAME" /> як джерело правил, що ініціюють перехід в інший веб-переглядач. + +Докладніше про правило <ph name="IEEM_SITELIST_POLICY" /> в Internet Explorer читайте на сторінці https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="7791215522423893512">Заборонити користувачам робити знімки екрана та записувати відео</translation> <translation id="7792796937016596423">Користувач не зможе виконувати захоплення мережевих пакетів</translation> <translation id="7798441698807517880">Це правило не працює з 89 версії <ph name="PRODUCT_NAME" />, оскільки <ph name="FLASH_PLUGIN_NAME" /> більше не підтримується. @@ -8029,6 +8164,11 @@ Якщо налаштувати це правило, користувач не може змінити чи перевизначити його.</translation> <translation id="8080200590486938727">Вимкнути інструмент пошуку плагінів</translation> +<translation id="8086746212954621799">Якщо вибрати значення "правда", автоматичні оновлення буде вимкнено. + +Якщо це правило не налаштувати або вибрати для нього значення "неправда", пристрої з <ph name="PRODUCT_OS_NAME" /> автоматично перевірятимуть наявність оновлень. + +Застереження: радимо ввімкнути автоматичні оновлення, щоб користувачі отримували оновлення програмного забезпечення й важливі виправлення системи безпеки. Вимкнувши автоматичні оновлення, ви можете наразити користувачів на небезпеку.</translation> <translation id="8089200718228084417">Увімкнути непідтримуваний друк Privet</translation> <translation id="8091982561085048989">Логічне значення експериментального параметра, яке вказує, чи потрібно налаштовувати принтер за допомогою IPP Everywhere. Цей експериментальний параметр підтримується у версіях <ph name="PRODUCT_OS_NAME" /> 76 і новіших.</translation> <translation id="8094095107731619070">Увімкнути автовиправлення під час введення тексту на фізичній клавіатурі</translation> @@ -8649,6 +8789,15 @@ Якщо не налаштувати це правило, звіти завантажуватимуться кожні 24 години. Якщо його налаштувати, воно визначатиме проміжок (у годинах) між двома послідовними звітами.</translation> +<translation id="8618037841203431360">Це правило визначає, чи повідомляти дані й час завантаження правила. + +Якщо правило <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> вимкнути або не налаштувати, це правило ігноруватиметься. + +Якщо це правило не налаштувати або вибрати для нього значення "правда", дані й час завантаження правила збиратимуться. +Якщо вибрати значення "неправда", дані й час завантаження правила не збиратимуться. + +Це правило працює, лише коли комп’ютер зареєстровано відповідно до правила <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> для <ph name="PRODUCT_NAME" />. +Для <ph name="PRODUCT_OS_NAME" /> це правило діє завжди.</translation> <translation id="8619748440665904084">Вимкнути імпортування даних автозаповнення форм під час першого запуску</translation> <translation id="8623672932476443039">Якщо ввімкнути це правило, користувачі отримають доступ до режиму розробника для ізольованих додатків. Якщо його вимкнути, користувачі не отримають такий доступ. @@ -9049,6 +9198,9 @@ Ця перевірка активується щоразу після завантаження екрана входу й повторюється щогодини (якщо на пристрої відображається екран входу). Через це перенесення не розпочинається під час сеансу, спричиняючи можливі проблеми для кінцевих користувачів.</translation> <translation id="9003823644527627017">Налаштувати віртуальні машини Bruschetta в <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="9004469022085379212">Якщо ввімкнути це правило, пристрій зможе запускати віртуальні машини в <ph name="PRODUCT_OS_NAME" />. Щоб дозволити використання <ph name="PRODUCT_CROSTINI_NAME" />, потрібно ввімкнути правила <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> і <ph name="CROSTINI_ALLOWED_POLICY_NAME" />. Якщо це правило вимкнути, пристрій не зможе запускати віртуальні машини. У такому разі змінені налаштування стосуватимуться запуску нових машин, а не вже активних. + +Якщо це правило не налаштувати на керованому пристрої, він не зможе запускати віртуальні машини. Некеровані пристрої можуть запускати віртуальні машини.</translation> <translation id="9007632512838819703">Це правило більше не підтримується. Натомість використовуйте <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />. Примусово вимикає мови перевірки правопису Нерозпізнані мови в цьому списку ігноруються. @@ -9196,6 +9348,9 @@ <translation id="9098409326885953506">Виявляти перекривання вікон та призупиняти їх візуалізацію</translation> <translation id="9105265795073104888">Додаткам Android доступні лише варіанти конфігурації проксі. Додатки Android можуть вибирати, чи використовувати проксі. Ви не можете вплинути на це.</translation> <translation id="9106865192244721694">Дозволити WebUSB на цих сайтах</translation> +<translation id="9107635531763682565">Якщо для цього правила вибрати значення 1, веб-сайти зможуть показувати сповіщення на робочому столі. Якщо вибрати значення 2, сповіщення на робочому столі блокуватимуться. + +Якщо це правило не налаштувати, застосовуватиметься правило <ph name="ASK_NOTIFICATIONS_POLICY_NAME" />, але користувачі зможуть змінити цей параметр.</translation> <translation id="9110251436602897914">Повідомляти інформацію про підключені периферійні пристрої</translation> <translation id="9111850884577810507">Значення в цьому полі має відповідати одному з принтерів із підтримкою <ph name="PRODUCT_NAME" />. Воно допомагає знайти й установити потрібний файл PPD для принтера. Докладніше читайте на сторінці https://support.google.com/chrome?p=noncloudprint.</translation> <translation id="9112727953998243860">Файл конфігурації принтерів підприємства</translation> @@ -9312,6 +9467,9 @@ <translation id="9191821120522935133">Дозволяє вмикати обмеження пропускної спроможності невидимих міждоменних елементів iframe</translation> <translation id="9192220384862917760">Увімкнути приховування хосту віддаленого доступу</translation> <translation id="9195766455191826480">Не повідомляти дані про статус безпеки</translation> +<translation id="9197238499850071076">Указує, чи потрібно відкочувати пристрій до версії, яку зазначено в правилі <ph name="DEVICE_TARGET_VERSION_PREFIX_POLICY_NAME" />, якщо поточна версія новіша. + +За умовчанням вибрано значення RollbackDisabled.</translation> <translation id="9197740283131855199">Відсоток, за яким масштабують затримку затемнення екрана, якщо користувач стає активним після затемнення</translation> <translation id="9200828125069750521">Параметри URL-адреси зображення, яка використовує метод POST</translation> <translation id="9204863016826119209">Корпоративні ключі можуть використовуватися встановленими та вказаними в цьому правилі додатками Android.</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index e58c1ad..f10b0c5 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -1837,7 +1837,6 @@ Nếu bạn không đặt chính sách này, <ph name="PRINTERS_ALLOW_ALL" /> sẽ được áp dụng.</translation> <translation id="2581338546762479588">Cho phép tự động khởi động lại sau khi cập nhật</translation> -<translation id="2582855747769273665">Đây là URL để người dùng truy cập khi cần tìm hiểu thêm. Nếu bạn không đặt thì trình cài đặt sẽ không có URL "tìm hiểu thêm".</translation> <translation id="2586117300379904732">Cho phép khóa chế độ thức để quản lý nguồn điện</translation> <translation id="2586231026319371211">Giờ địa phương ở định dạng 24 giờ theo thời gian thực đã qua.</translation> <translation id="2587719089023392205">Đặt <ph name="PRODUCT_NAME" /> làm trình duyệt mặc định</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index ca500fe..9c431dcab 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -617,6 +617,11 @@ 如果此政策已停用,不安全的 HTTP 请求将无法使用<ph name="BASIC_AUTH" />身份验证方案,只有安全的 HTTPS 能使用该方案。 在以下情况下,系统会忽略这项政策设置(一律禁止使用“<ph name="BASIC_AUTH" />”):<ph name="AUTH_SCHEMES_POLICY_NAME" /> 政策已设置,且其中不包含“<ph name="BASIC_AUTH" />”。</translation> +<translation id="1573074208167290576">让您能够设置用户可否添加例外情况以允许在特定网站中显示混合内容。 + +您可以使用“InsecureContentAllowedForUrls”和“InsecureContentBlockedForUrls”政策为特定网址格式覆盖此政策。 + +如果此政策未设置,用户将能添加例外情况以允许显示可屏蔽的混合内容,并能为可选的可屏蔽混合内容停用自动升级功能。</translation> <translation id="1573444493980402757">您可用来设置一个网站网址格式列表,指定要系统自动拒绝向哪些网站授予窗口放置权限。此设置会限制网站的以下功能:查看设备屏幕的相关信息,以及使用该信息在特定屏幕上打开并放置窗口或者请求进入全屏模式。 如需详细了解有效网站网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。允许使用通配符 <ph name="WILDCARD_VALUE" />。此政策只能根据源进行匹配,因此网址格式中的任何路径都会被忽略。 @@ -892,6 +897,13 @@ 此政策已被弃用,请改用 <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />。 </translation> +<translation id="1825583118566970564">控制外部扩展程序的安装。 + +如果此政策已启用,系统会阻止安装外部扩展程序; + +如果已停用或未设置,则系统会允许安装外部扩展程序。 + +如需查看外部扩展程序及其安装方法,请参阅 https://developer.chrome.com/apps/external_extensions 上的文档。</translation> <translation id="1827523283178827583">使用固定的代理服务器</translation> <translation id="1829117241432374848">受管理的账号必须是主账号,无任何辅助账号,而且允许用户在创建它时导入现有数据</translation> <translation id="1829839214911753838">如果此政策已启用,远程协助主机会在具有 <ph name="UIACCESS_PERMISSION_NAME" /> 权限的进程中运行。这样,远程用户就能与本地用户的桌面设备上需有较高权限才能使用的窗口交互。 @@ -962,6 +974,15 @@ <ph name="RUN_ON_OS_LOGIN_FIELD" /> 字段用于指明 Web 应用能否在用户登录操作系统期间运行。如果此字段设为“<ph name="BLOCKED" />”,相应 Web 应用将不会在用户登录操作系统期间运行,用户后续也无法启用此字段。如果此字段设为“<ph name="RUN_WINDOWED" />”,相应 Web 应用将会在用户登录操作系统期间运行,且用户后续无法停用此字段。如果此字段设为“<ph name="ALLOWED" />”,则用户可以将相应 Web 应用配置为在登录操作系统期间运行。默认配置仅接受“<ph name="ALLOWED" />”值和“<ph name="BLOCKED" />”值。 (自 117 版起)<ph name="PREVENT_CLOSE_FIELD" /> 字段用于指明是否应阻止以任何方式(例如由用户、任务管理器、Web API)关闭 Web 应用。只有在 <ph name="RUN_ON_OS_LOGIN_FIELD" /> 设为“<ph name="RUN_WINDOWED" />”时,才能允许这种行为。如果应用已经在运行,只有在重启应用后,此属性才会生效。如果未指定此字段,用户将可以关闭应用。 (自 118 版起)<ph name="FORCE_UNREGISTER_OS_INTEGRATION" /> 字段用于指明是否要移除 Web 应用的所有操作系统集成,即快捷方式、文件处理程序、协议处理程序等。如果应用已经在运行,只有在重启应用后,此属性才会生效。请谨慎使用此字段,因为这可能会覆盖在 Web 应用系统启动期间自动设置的所有操作系统集成。目前仅适用于 Windows、Mac 和 Linux 平台。</translation> +<translation id="1874719875297132073">此政策旨在控制是否报告可用于识别用户身份的信息,例如操作系统登录、<ph name="PRODUCT_NAME" /> 个人资料登录、<ph name="PRODUCT_NAME" /> 个人资料名称、<ph name="PRODUCT_NAME" /> 个人资料路径和 <ph name="PRODUCT_NAME" /> 可执行文件路径。 + +如果 <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 政策未设置或已停用,系统将忽略此政策; + +如果未设置或设为 True,系统会收集可用于识别用户身份的信息; +如果设为 False,则系统不会收集可用于识别用户身份的信息。 + +对于 <ph name="PRODUCT_NAME" />,此政策仅在已使用 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> 注册相应设备后才有效。 +对于 <ph name="PRODUCT_OS_NAME" />,此政策一直有效。</translation> <translation id="1883274744253492031">允许混合内容自动升级</translation> <translation id="1885782360784839335">允许使用整个标签页显示宣传内容</translation> <translation id="1888871729456797026">云政策在桌面设备上的注册令牌</translation> @@ -989,6 +1010,9 @@ 如果未设置此政策,“新标签页”页面会在 Chrome 启动时打开。 在 <ph name="MS_WIN_NAME" /> 上,此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、已加入 <ph name="MS_AAD_NAME" /> 的实例,或已注册 <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />的实例。</translation> +<translation id="1897095538209040086">如果此政策已启用或未设置,当切换到备用浏览器后,<ph name="PRODUCT_NAME" /> 会使至少一个标签页保持打开状态。 + +如果此政策已停用,当切换到备用浏览器后,<ph name="PRODUCT_NAME" /> 会关闭所含的标签页(即使仅剩下此标签页)。这会导致 <ph name="PRODUCT_NAME" /> 彻底关闭。</translation> <translation id="1897365952389968758">允许所有网站运行 JavaScript</translation> <translation id="1902043648529789224">控制文件架位置</translation> <translation id="1904323733389537794">如果此政策设为 True,系统会执行在线 <ph name="OCSP_CRL_LABEL" /> 检查。 @@ -1442,6 +1466,9 @@ <translation id="225830954785359083">禁止页面在卸载期间显示弹出式窗口</translation> <translation id="2261648512244797294">停用已弃用的 Privet 本地打印</translation> <translation id="2266422599396179941">允许用户提交反馈</translation> +<translation id="2268891553068901979">如果此政策已启用,系统会在使用移动网络连接时在 <ph name="PRODUCT_OS_NAME" /> 的“文件”应用中关闭 <ph name="GOOGLE_DRIVE_NAME" />同步功能。仅当通过 Wi-Fi 或以太网连接时,系统才会将数据同步到 Google 云端硬盘。 + +如果此政策已停用或未设置,用户便可在使用移动网络连接时将文件传输到 Google 云端硬盘。</translation> <translation id="2269319728625047531">在登录期间允许显示同步同意声明</translation> <translation id="2270113153862588648">如果已启用此政策,系统会允许对设备执行远程证明。系统会自动生成一个证书,并将其上传到设备管理服务器。 @@ -1791,7 +1818,6 @@ 如果您未设置此政策,系统将会应用 <ph name="PRINTERS_ALLOW_ALL" />。</translation> <translation id="2581338546762479588">允许在更新后自动重新启动</translation> -<translation id="2582855747769273665">一个网址,供用户访问以了解详情。如果未设置此政策,安装程序中就不会显示“了解详情”网址。</translation> <translation id="2586117300379904732">允许使用唤醒锁定以便进行电源管理</translation> <translation id="2586231026319371211">以当地 24 小时制显示时间。</translation> <translation id="2587719089023392205">将 <ph name="PRODUCT_NAME" /> 设为默认浏览器</translation> @@ -1939,6 +1965,9 @@ <translation id="2727844239611930002">允许 <ph name="PRODUCT_NAME" /> 确定是否显示 <ph name="PRIVACY_SANDBOX_NAME" /> 提示。</translation> <translation id="2730200383593984228">允许独立用户使用 Android 应用</translation> <translation id="2730419309754848345">默认以图片形式打印 PDF 文件</translation> +<translation id="2730644640965800157">如果此政策已启用,系统会在 <ph name="PRODUCT_OS_NAME" /> 的“文件”应用中关闭 <ph name="GOOGLE_DRIVE_NAME" />同步功能,所以任何数据都不会上传到 Google 云端硬盘。 + +如果此政策已停用或未设置,用户便可将文件传输到 Google 云端硬盘。</translation> <translation id="2731299561202635374">此政策旨在控制实时的网址检查以识别不安全的网址。 如果此政策未设置或设为“已停用”,系统会应用个人用户的安全浏览检查设置。个人用户的安全浏览检查设置或许仍包含实时查找,具体取决于“改善搜索和浏览体验”设置的值以及 UrlKeyedAnonymizedDataCollectionEnabled 政策的值。 @@ -1993,6 +2022,9 @@ 除非外部存储设备已被禁用,否则如果您将 ExternalStorageReadOnly 设为 False 或不设置它,用户便能在没有使用防写入保护的外部存储设备上创建和修改文件。(您可以通过将 ExternalStorageDisable 设为 True 来禁用外部存储设备。)</translation> <translation id="2789742777235177478">限制通过 GAIA(不使用 SAML)验证身份的用户可在锁定屏幕上离线登录的时长</translation> +<translation id="2795923835422513629">如果此政策设为 1,系统会允许网站显示弹出式窗口;如果设为 2,系统会禁止网站显示弹出式窗口; + +如果未设置,则意味着 <ph name="BLOCK_POPUPS_POLICY_NAME" /> 政策适用,但用户可以更改此设置。</translation> <translation id="2796714419743648316">针对应用级使用时限的许可名单</translation> <translation id="2801065672151277034">证书管理设置</translation> <translation id="2801155097555584385">设定电池充电自定义开始充电值(以百分比表示)</translation> @@ -2504,6 +2536,9 @@ 如需详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是此政策可接受的值。</translation> <translation id="3205825995289802549">首次运行时,将第一个浏览器窗口最大化</translation> +<translation id="320607884987562184">如果此政策设为 1,系统会允许网站运行 JavaScript;如果设为 2,系统会禁止网站运行 JavaScript; + +如果未设置,则系统会允许运行 JavaScript,但用户可以更改此设置。</translation> <translation id="3206959584699016689">通过设置此政策,您可以创建一个网址格式列表,从而指定哪些网站可以使用传感器(例如动作传感器和光传感器)。 如果您未设置此政策,那么,倘若 <ph name="DEFAULT_SENSORS_SETTING_POLICY_NAME" /> 已设置,系统便会将它应用于所有网站,否则就会应用用户的个人设置。 @@ -2683,6 +2718,10 @@ <translation id="3362584244602846824">使用快速切换功能(如果无线接入点支持该功能的话)</translation> <translation id="3363360928811201045">针对受管理的账号添加限制</translation> <translation id="3364400740222114778">账号恢复</translation> +<translation id="3367361756115023251">允许此用户拥有 Crostini 容器的 root 权限。 + +如果此政策设为 true 或未设置,用户会获得对 Crostini 容器的 root 权限; +如果设为 false,用户将不会获得对现有以及新的 Crostini 容器的 root 权限。</translation> <translation id="3373381043600809954">启用“<ph name="PRODUCT_NAME" />”。</translation> <translation id="3374587000313305002">配置供 <ph name="PRODUCT_NAME" /> 用于存储用户数据的目录。 @@ -2930,6 +2969,15 @@ <translation id="3554498762428140109">启用原生窗口遮挡</translation> <translation id="3554984410014457319">允许 Google 助理听取语音启动词组</translation> <translation id="3557586898458302131">在生成的 Kerberos SPN 中加入非标准端口</translation> +<translation id="3558024517032824255">指定 <ph name="PRODUCT_OS_NAME" /> 随时可从稳定版回滚到的里程碑的数量下限。 + +对于由消费者注册的设备,默认值为 0;对于由企业注册的设备,默认值为 4(大约半年)。 + +设置此政策可使回滚防护机制在至少这么多个里程碑内不起作用。 + +降低此政策的值会产生永久性影响:即使之后再提高此政策的值,设备可能也无法回滚到更早的版本。 + +实际的回滚可能性或许还取决于设备型号和关键的漏洞补丁。</translation> <translation id="35668690622495904"> 对 getDisplayMedia 的调用不会因源自未被列入许可名单的上下文而遭到拒绝。(但是,这类调用仍可能会由于别的原因被拒。)</translation> <translation id="3568762199045490351">超时设置为 0 毫秒的 JavaScript setTimeout() 将会延迟到 1 毫秒。</translation> @@ -3003,6 +3051,15 @@ <translation id="3637063789824963261">如果此政策已启用,已注册的设备会报告设备运行时计数器数据(仅限 Intel vPro 第 14 代处理器及更高版本)。 如果此政策已停用或未设置,已注册的设备将不会记录或报告设备运行时计数器数据。</translation> +<translation id="3640677352428533707">此政策旨在控制是否报告版本信息,例如操作系统版本、操作系统平台、操作系统架构、<ph name="PRODUCT_NAME" /> 版本号和 <ph name="PRODUCT_NAME" /> 渠道。 + +如果 <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 政策未设置或已停用,系统将忽略此政策; + +如果未设置或设为 True,系统会收集版本信息; +如果设为 False,则系统不会收集版本信息。 + +对于 <ph name="PRODUCT_NAME" />,此政策仅在已使用 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> 注册相应设备后才有效。 +对于 <ph name="PRODUCT_OS_NAME" />,此政策一直有效。</translation> <translation id="3642557248926713561">停用安全浏览扩展程序保护功能</translation> <translation id="3644735978203799620">允许自动选择多个屏幕截图</translation> <translation id="3646859102161347133">设置放大镜类型</translation> @@ -3708,6 +3765,9 @@ 如果相应设备不受管理或只有 1 个用户,此政策会被忽略,并且系统始终都会显示通知。 如果受管理的设备上有多个用户账号,仅当此政策已启用时,系统才会显示通知。</translation> +<translation id="4297483555396496700">如果此政策设为 True,用户只能更改设备的发布渠道;如果设为 False 或未设置,则用户将无法更改渠道。 + +仅当 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> 设为 False 时,设置 <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 才会产生影响。</translation> <translation id="4298476374822550051">为 TLS 启用 Kyber 后量子密钥协议</translation> <translation id="4303167373847512281">允许使用开发者模式</translation> <translation id="4307116964468610577">此政策允许系统电池每天只充满 1 次,以延长它的使用寿命。除了用来将电池充满的时间,在当天的其余时间内,电池始终都不会充到 100%,即使系统已接通电源也是如此,这样更利于储电。 @@ -3718,6 +3778,9 @@ 用户无法更改此设置。</translation> <translation id="4309091698378414920">允许使用光标突出显示</translation> +<translation id="4311141497190183490">如果此政策设为 1,系统会默认允许网站跟踪用户的实际位置;如果设为 2,则系统会默认禁止此类跟踪。您可通过设置此政策,让网站在每次想要跟踪用户的实际位置时都先询问用户的意见。 + +如果此政策未设置,则意味着 <ph name="ASK_GEOLOCATION_POLICY_NAME" /> 政策适用,但用户可以更改此设置。</translation> <translation id="4311195029067684288">Full</translation> <translation id="4311662690937656540">强制在登录屏幕和锁定的屏幕上执行在线登录</translation> <translation id="4313767483634435271">设备的指定基座 MAC 地址</translation> @@ -3860,6 +3923,15 @@ <translation id="445505634382262792">如果此政策设为 3,系统会允许网站请求对主机操作系统的文件系统中的文件和目录的写入权限。如果此政策设为 2,系统会禁止网站请求访问。 如果此政策未设置,系统会允许网站请求访问,但用户可以更改此设置。</translation> +<translation id="4455258118946528063">此政策旨在控制是否报告扩展程序和插件信息。 + +如果 <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 政策未设置或已停用,系统将忽略此政策; + +如果未设置或设为 True,系统会收集扩展程序和插件数据; +如果设为 False,则系统不会收集扩展程序和插件数据。 + +对于 <ph name="PRODUCT_NAME" />,此政策仅在已使用 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> 注册相应设备后才有效。 +对于 <ph name="PRODUCT_OS_NAME" />,此政策一直有效。</translation> <translation id="4457113781439375078">此政策已被弃用。 如果此政策已启用,已注册的设备会定期报告其位置信息。 @@ -3883,6 +3955,15 @@ <translation id="4467952432486360968">阻止第三方 Cookie</translation> <translation id="4472740647327683596">页面的宽度(以微米为单位)</translation> <translation id="4474167089968829729">允许将密码保存到密码管理器</translation> +<translation id="4475131520521739161">设置此政策可指定用于自动检测时区的方法,且无法由用户更改,除非 <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> 政策关闭了“自动检测时区”功能。 + +如果此政策设为: + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONDISABLED" />,“自动检测时区”功能会保持关闭状态。 + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TTIMEZONEAUTOMATICDETECTIONIPONLY" />,“自动检测时区”功能会保持开启状态,且会使用仅限 IP 的方法。 +* <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" />,“自动检测时区”功能会保持开启状态,并会不断将可见 Wi-Fi 接入点的列表发送至 Geolocation API 服务器,以便实现更精确的时区检测。 + * <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" />,“自动检测时区”功能会保持开启状态,并会不断将位置信息(例如 Wi-Fi 接入点、可连接到的手机基站、GPS)发送至服务器,以便实现最精确的时区检测。 + +如果此政策未设置、设为“由用户决定”或设为“无”,用户便可使用 chrome://settings 页面中的常规控件来控制“自动检测时区”功能。</translation> <translation id="4476769083125004742">如果此政策设为 <ph name="BLOCK_GEOLOCATION_SETTING" />,Android 应用将无法使用位置信息。如果此政策设为任何其他值或未设置,那么当 Android 应用想使用位置信息时,它会询问用户是否同意。</translation> <translation id="4478248026668918517">屏蔽政策范围检测。</translation> <translation id="4479671363221255277">通过设置此政策,您可以罗列一些网址格式,从而指定哪些网站可以通过 File System API 请求用户向其授予对主机操作系统的文件系统中的文件或目录的读取权限。 @@ -4069,6 +4150,9 @@ <translation id="46321462262887935">将顶行中的按键用作功能键,但允许用户更改此设置</translation> <translation id="4632343302005518762">允许 <ph name="PRODUCT_FRAME_NAME" />处理列出的内容类型</translation> <translation id="4636354638176939375">禁止创建受监督用户</translation> +<translation id="46383668315040154">指定该设备应锁定到的发布渠道。 + +仅当 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> 设为 False 时,设置 <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 才会产生影响。</translation> <translation id="4646626362889216307">通过设置此政策,您可以允许合并来自多个不同来源并具有相同范围及级别的所选政策。这项合并操作会涵盖每个来源中的字典的第一级密钥。系统会优先应用来自优先级最高的来源的密钥。 若要允许合并所有受支持的字典政策,请使用通配符“*”。 @@ -4445,6 +4529,14 @@ <translation id="499654521603185442">网站遥测数据报告</translation> <translation id="4997074784107449343">在 PDF 文档的打印预览中,“以图片形式打印”选项(若有)默认处于未选中状态。</translation> <translation id="500149597848135831">启用所有变体</translation> +<translation id="5017157692744444035">此政策旨在控制是否报告可用于识别设备身份的信息,例如设备名称和网络地址。 + +如果 <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 政策未设置或已停用,系统将忽略此政策; + +如果未设置或设为 True,系统会收集可用于识别设备的信息; +如果设为 False,则系统不会收集可用于识别设备的信息。 + +对于 <ph name="PRODUCT_NAME" />,此政策仅在已使用 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> 注册相应设备后才有效。</translation> <translation id="5017369989680827157">如果此政策设为 True 或未设置,用户可以控制是否在界面中自动填充地址。 如果此政策设为 False,“自动填充”功能一律不会建议或填充地址信息,也不会保存用户在浏览网页时提交的其他地址信息。</translation> @@ -4467,6 +4559,7 @@ <translation id="5036013147560568855">证书配置协议的版本。默认是 1。1 表示“静态”协议。2 表示“动态”协议。</translation> <translation id="5039110755072335605">对 CORS 非通配符式请求标头的支持情况</translation> <translation id="504116558738617678">仅在相应设备不受管理或只有 1 个用户时显示磁盘空间不足警告</translation> +<translation id="5041315457555330432">允许 <ph name="PRODUCT_NAME" /> 仅连接到位于专用 IP 地址的设备,除非 CastAllowAllIPs 功能已开启。</translation> <translation id="5046376406561077773">用户看不到与 <ph name="GOOGLE_DRIVE_NAME" />的文件同步功能相关的任何界面。</translation> <translation id="5055474681190962362">应在每月的哪一天 [1-31](以设备的本地时区表示)重新启动设备。仅在“频率”设为“MONTHLY”时使用。如果此值超出给定月份的天数上限,系统将选择该月的最后一天。</translation> <translation id="5056708224511062314">放大镜已停用</translation> @@ -4704,6 +4797,9 @@ 如果此政策设为 False 或未设置,系统将关闭“统一桌面”,而且用户无法开启该功能。</translation> <translation id="5255162913209987122">可推荐</translation> <translation id="525543707238275321">停用设备 CPU 信息报告功能</translation> +<translation id="5255790642269910630">如果此政策已设置,那么每当重新启动时或在此政策的值更改后首次连接时,每个显示屏都会旋转到指定方向。用户可在登录后通过“设置”页面更改显示屏旋转角度,但下次重新启动时显示屏仍会恢复为更改前的设置。此政策适用于主要显示屏和次要显示屏。 + +如果此政策未设置,默认值便是 0 度,但用户可以随意更改此值。如果用户更改了默认值,显示屏在重启时将不会重新应用此值。</translation> <translation id="5257395339965216304">托管的应用数据</translation> <translation id="5258445772095084618">允许独立用户使用所需的虚拟机来支持 Linux 应用</translation> <translation id="5262320080678421295">不信任 Symantec Corporation 旧版 PKI 颁发的证书</translation> @@ -5156,6 +5252,9 @@ <translation id="5660228672907979869">禁止启用第三方存储分区。</translation> <translation id="5660950553460381588">默认尽可能在 iCloud 钥匙串中创建通行密钥。</translation> <translation id="5666457529647159548">允许用户管理已安装的客户端证书。</translation> +<translation id="5670249935663090320">如果此政策已启用或未设置,系统将会开启 <ph name="PRODUCT_NAME" /> 以供用户从以下位置启动:应用菜单、页面上下文菜单、支持 Cast 的网站上的媒体控件,以及(如果显示的话)Cast 工具栏图标。 + +如果此政策已停用,系统会关闭 <ph name="PRODUCT_NAME" />。</translation> <translation id="567377007899266033">如果此政策设为 True,系统便会向 Google 报告由政策触发的主要扩展程序安装事件。将此政策设为 False 意味着系统不会记录任何事件。如果此政策未设置,系统会将默认值设为 True。</translation> <translation id="5676740747107495269">在登录屏幕的系统任务栏菜单中显示无障碍选项</translation> <translation id="5679540979548648200">禁止此设备的用户使用 ADB 旁加载;如果先前已启用旁加载,就对设备强制执行 Powerwash</translation> @@ -6038,7 +6137,21 @@ <translation id="6462604655173570082">如果此政策未设置或已启用,用户便可在“新标签页”页面上的搜索框中查看和使用 <ph name="GOOGLE_LENS_PRODUCT_NAME" />按钮。如果此政策已停用,用户将不会在“新标签页”页面上的搜索框中看到 <ph name="GOOGLE_LENS_PRODUCT_NAME" />按钮。</translation> <translation id="6464074037294098618">自动填充地址信息</translation> <translation id="6467613372414922590">允许使用用户级本地消息传递主机(安装时没有管理员权限)</translation> +<translation id="6467707081687600148">安排在应用 <ph name="PRODUCT_OS_NAME" /> 更新之后进行一次自动重新启动。 + +如果此政策设为 true,当已应用 <ph name="PRODUCT_OS_NAME" /> 更新但需重新启动才能完成更新过程时,系统会立即安排一次自动重新启动。但如果用户正在使用相应设备,重启操作时间最多可能会延迟 24 小时。 + +如果此政策设为 false,系统不会安排在应用 <ph name="PRODUCT_OS_NAME" /> 更新之后自动重新启动,而是在用户下次重新启动设备时完成更新。 + +如果您设置此政策,用户便无法对其更改或覆盖。 + +请注意:目前,系统仅会在显示登录屏幕或使用自助服务终端应用期间启用自动重新启动。</translation> <translation id="6471018476824827813">允许进行以网址为键的指标收集</translation> +<translation id="6471927932956897852">指定是否为操作系统更新载荷使用点对点技术。 +如果设为 True,设备将共享并试图消耗 LAN 中的更新载荷,从而可能会减少互联网带宽使用量和拥塞。如果 LAN 中没有更新载荷,设备将回退到从更新服务器下载。 +如果设为 False,则不会使用点对点技术。 + +请注意,消费者设备和企业设备的默认行为有所不同:系统会在受管设备上启用点对点技术,而在非受管设备上停用该技术。</translation> <translation id="6473623140202114570">配置安全浏览功能在哪些网域中不会触发警告。</translation> <translation id="6474194795370862403">系统将使用旧的 offsetParent 行为。</translation> <translation id="647645276885673708">启用 <ph name="LACROS_NAME" /> 并将其设为主要浏览器</translation> @@ -6345,6 +6458,11 @@ <translation id="6670794785040100077">禁止将文档提交到 <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="6672070613706645316">允许用户在“新标签页”页面上自定义背景</translation> <translation id="6672630473862787247">为常规会话、无痕会话和访客会话启用静默身份验证。</translation> +<translation id="6676012253361586167">此政策用于指定是否允许将端口转发到 Crostini 容器。 + +如果此政策设为 True 或未设置,用户将能够配置端口转发,以便将端口转发到他们的 Crostini 容器。 + +如果此政策设为 False,系统会禁止将端口转发到 Crostini 容器。</translation> <translation id="6677291257287862684">为登录屏幕启用粘滞键</translation> <translation id="6682305153467826752">启用关于机器标识信息的报告</translation> <translation id="6685903773201985073">为访客会话和常规会话启用静默身份验证。</translation> @@ -6719,6 +6837,9 @@ 如果您选择了任何其他用于设置代理政策的模式,请勿设置此政策。 注意:如需查看详细示例,请访问 Chromium 项目 ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett )。</translation> +<translation id="7001915679435065291">如果此政策设为 1,系统会允许所有网站显示图片;如果设为 2,系统会禁止网站显示图片; + +如果未设置,系统会允许网站显示图片,但用户可以更改此设置。</translation> <translation id="7002040773317582266">已为主帧网址启用实时检查功能。</translation> <translation id="7003746348783715221">“<ph name="PRODUCT_NAME" />”偏好设置</translation> <translation id="7007283257527015835">一个布尔值标记,用于表明是否应将该协议处理程序设为默认处理程序。</translation> @@ -7313,6 +7434,9 @@ https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html </translation> +<translation id="7512514325152952954"><ph name="PRODUCT_OS_NAME" /> 上的自动更新载荷可通过 HTTP 而非 HTTPS 下载。这允许对 HTTP 下载内容进行透明 HTTP 缓存。 + +如果此政策设置为 True,<ph name="PRODUCT_OS_NAME" /> 将尝试通过 HTTP 下载自动更新载荷。如果此政策设置为 False 或未设置,操作系统将使用 HTTPS 下载自动更新载荷。</translation> <translation id="7515953732107149296">在 RC4 从 <ph name="PRODUCT_NAME" /> 中移除后,此政策已从 M53 中移除。 如果此政策设为 false 或未设置,系统将不会启用 TLS 中的 RC4 加密套件。您也可将此政策设为 true,以便与过时的服务器保持兼容。这只是一种权宜之计,正确的做法是重新配置服务器。</translation> @@ -7325,6 +7449,11 @@ 如果此政策未设置或设为 True,系统会显示一条提醒,以提醒用户在输入密码之前先退出全屏。如果此政策设为 False,系统将不会显示任何提醒。</translation> <translation id="7531630046107845550">允许终端系统应用中的 SSH 出站客户端连接</translation> +<translation id="7533385610709354870">除非 <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> 设为“已停用”,否则,如果 <ph name="MEDIA_ROUTER_CAST_ALLOW_ALL_IPS_POLICY_NAME" /> 已启用,<ph name="PRODUCT_NAME" /> 将会连接到位于所有 IP 地址的投放设备,而不是只连接到位于 RFC1918/RFC4193 私有地址的投放设备。 + +如果此政策已停用,<ph name="PRODUCT_NAME" /> 将会只连接到位于 RFC1918/RFC4193 的投放设备。 + +如果此政策未设置,<ph name="PRODUCT_NAME" /> 将会只连接到位于 RFC1918/RFC4193 的投放设备,除非 CastAllowAllIPs 功能已开启。</translation> <translation id="7534199150025803530">此政策对 Android 版“Google 云端硬盘”应用没有任何影响。如果您想阻止通过移动网络连接使用 Google 云端硬盘,则应禁止安装 Android 版“Google 云端硬盘”应用。</translation> <translation id="7538583957913002726">此政策默认处于已启用状态。它可让控制已注册的设备,使其报告 CPU 的型号名称、架构和最快时钟速度(对于 M96 及更高版本,还会报告 CPU 利用率和温度)。 @@ -7608,6 +7737,13 @@ 如果您未设置此政策,那么,倘若 <ph name="DEFAULT_CLIPBOARD_SETTING" /> 已设置,系统便会将它应用于所有网站,否则就会应用用户的个人设置。 如需详细了解有效的<ph name="URL_LABEL" />格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是此政策可接受的值。</translation> +<translation id="7790221177424764797">此政策旨在控制是否从 <ph name="IE_PRODUCT_NAME" /> 的 SiteList 政策中加载规则。 + +如果此政策设为 true,<ph name="PRODUCT_NAME" /> 将会读取 <ph name="IE_PRODUCT_NAME" /> 的 <ph name="IEEM_SITELIST_POLICY" /> 政策来获取网站列表的网址。然后,<ph name="PRODUCT_NAME" /> 会从该网址下载网站列表,并参照 <ph name="BROWSER_SWITCHER_URL_LIST_POLICY_NAME" /> 政策的配置应用相应规则。 + +如果此政策设为 false 或未设置,<ph name="PRODUCT_NAME" /> 便不会将 <ph name="IE_PRODUCT_NAME" /> 的 <ph name="IEEM_SITELIST_POLICY" /> 政策用作浏览器切换规则的来源。 + +如需详细了解 Internet Explorer 的 <ph name="IEEM_SITELIST_POLICY" /> 政策,请访问 https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="7791215522423893512">不允许用户截图或录屏</translation> <translation id="7792796937016596423">用户将无法执行网络数据包捕获流程</translation> <translation id="7798441698807517880">自 <ph name="PRODUCT_NAME" /> 89 版起,此政策已被移除,因为 <ph name="FLASH_PLUGIN_NAME" /> 已被弃用。 @@ -7913,6 +8049,11 @@ 如果您设置了此政策,用户将无法更改或覆盖它。</translation> <translation id="8080200590486938727">停用插件查找器</translation> +<translation id="8086746212954621799">将此政策设为 true 即可停用自动更新功能。 + +如果此政策设为 false 或未配置,<ph name="PRODUCT_OS_NAME" /> 设备就会自动检查更新。 + +警告:建议您让自动更新功能始终处于启用状态,以便您的用户接收软件更新和重要的安全修补程序。停用自动更新功能可能会将用户置于风险之中。</translation> <translation id="8089200718228084417">启用已弃用的 Privet 本地打印</translation> <translation id="8091982561085048989">一个布尔值标记,用于表明是否应该使用 IPP Everywhere 来设置打印机。<ph name="PRODUCT_OS_NAME" /> 76 版及更高版本支持该标记。</translation> <translation id="8094095107731619070">在用户输入内容时启用实体键盘自动更正功能</translation> @@ -8515,6 +8656,15 @@ 如果此政策未设置,系统每 24 小时会上传一次此类报告。 如果此政策已设置,所设值便决定了两次连续的报告上传操作之间应间隔的小时数。</translation> +<translation id="8618037841203431360">此政策旨在控制是否报告政策数据和政策提取时间。 + +如果 <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 政策未设置或已停用,系统将忽略此政策; + +如果未设置或设为 True,系统会收集政策数据和政策提取时间; +如果设为 False,则系统不会收集政策数据和政策提取时间。 + +对于 <ph name="PRODUCT_NAME" />,此政策仅在已使用 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> 注册相应设备后才有效。 +对于 <ph name="PRODUCT_OS_NAME" />,此政策一直有效。</translation> <translation id="8619748440665904084">禁止在首次运行时导入自动填充表单数据</translation> <translation id="8623672932476443039">如果启用此政策,用户可以访问已隔离应用的开发者模式。 如果停用此政策,用户将无法使用这些功能。 @@ -8907,6 +9057,9 @@ 此项检查会在系统每次加载登录屏幕时触发,然后每小时重试一次(如果相应设备停留在登录屏幕上)。这会阻止从用户会话期间开始迁移,进而给最终用户带来潜在问题。</translation> <translation id="9003823644527627017">在 <ph name="PRODUCT_OS_NAME" /> 上配置 Bruschetta 虚拟机</translation> +<translation id="9004469022085379212">如果此政策已启用,系统会允许设备在 <ph name="PRODUCT_OS_NAME" /> 下运行虚拟机。<ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> 和 <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> 必须均已启用,才能使用 <ph name="PRODUCT_CROSTINI_NAME" />。如果此政策已停用,意味着设备无法运行虚拟机。如果将此政策的状态改为已停用,此政策将开始应用于新启动的虚拟机,而非应用于已在运行的虚拟机。 + +如果某部受管理的设备未设置此政策,该设备便无法运行虚拟机。不受管理的设备可以运行虚拟机。</translation> <translation id="9007632512838819703">此政策已被弃用,请改用 <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />。 此政策旨在强制停用语言拼写检查。语言列表中所有无法识别的语言都会被忽略。 @@ -9053,6 +9206,9 @@ <translation id="9098409326885953506">检测被遮挡的窗口并暂停其渲染进程</translation> <translation id="9105265795073104888">仅一小部分代理配置选项已可供 Android 应用使用。Android 应用可能会主动选择使用相应代理。您无法强制此类应用使用该代理。</translation> <translation id="9106865192244721694">允许这些网站使用 WebUSB</translation> +<translation id="9107635531763682565">如果此政策设为 1,系统会允许网站显示桌面通知;如果设为 2,系统会禁止网站显示桌面通知; + +如果未设置,则意味着 <ph name="ASK_NOTIFICATIONS_POLICY_NAME" /> 政策适用,但用户可以更改此设置。</translation> <translation id="9110251436602897914">报告相应设备所插接的外围设备的相关信息</translation> <translation id="9111850884577810507">此字段必须与某个代表 <ph name="PRODUCT_NAME" />所支持打印机的字符串匹配。该字符串将用于识别和为打印机安装相应的 PPD。如需了解详情,请访问:https://support.google.com/chrome?p=noncloudprint。</translation> <translation id="9112727953998243860">企业打印机配置文件</translation> @@ -9151,6 +9307,9 @@ <translation id="9191821120522935133">允许针对不可见的跨源 iframe 启用节流功能</translation> <translation id="9192220384862917760">启用远程访问主机的幕布模式</translation> <translation id="9195766455191826480">不报告安全状态</translation> +<translation id="9197238499850071076">指定是否要将已在运行较新版本的设备回滚到 <ph name="DEVICE_TARGET_VERSION_PREFIX_POLICY_NAME" /> 所设定的版本。 + +默认值为 RollbackDisabled。</translation> <translation id="9197740283131855199">系统在屏幕变暗后察觉到用户活动时,屏幕变暗延迟时间的调整幅度(百分比)</translation> <translation id="9200828125069750521">在使用 POST 的图片网址中所需的参数</translation> <translation id="9204863016826119209">已安装完毕且列在此政策中的 Android 应用可以使用企业密钥。</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index 6379be3..16f8307 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -945,6 +945,11 @@ <translation id="1861206724856734193">設定防止資料外洩的規則清單。</translation> <translation id="1862267110714201519">停用 ghost 視窗功能。</translation> <translation id="1865417998205858223">金鑰權限</translation> +<translation id="1865867000796030567">如果將這項政策設為啟用,系統會使用零延遲、自動啟動的資訊站應用程式 <ph name="REQUIRED_PLATFORM_VERSION" /> 資訊清單鍵值,做為自動更新的目標版本前置字元。 + +如果將這項政策設為停用或不設定,系統會忽略 <ph name="REQUIRED_PLATFORM_VERSION" /> 資訊清單鍵值,且自動更新會照常運作。 + +警告:請勿將 <ph name="PRODUCT_OS_NAME" /> 版本的控制權委派給資訊站應用程式。如果這麼做,裝置可能會無法取得軟體更新和重大安全性修正項目。假如委派 <ph name="PRODUCT_OS_NAME" /> 版本的控制權,使用者可能會因此面臨風險。</translation> <translation id="186719019195685253">使用 AC 電源的情況下,系統在達到閒置延遲時間時所採取的動作</translation> <translation id="1869688072690234823">你可以透過這項政策,控管可使用哪些 WebAuthn 要素。 @@ -1177,6 +1182,11 @@ 如果不設定這項政策或設為空白清單,受管理的裝置將無法使用任何快速解鎖模式。 這項政策已遭淘汰,請改用 <ph name="QUICK_UNLOCK_MODE_ALLOW_LIST_POLICY_NAME" /></translation> +<translation id="2035995535603698706">如果將這項政策設為啟用,網頁上的第三方圖示即可顯示驗證提示。 + +如果將這項政策設為停用或不設定,第三方圖示將無法顯示驗證提示。 + +為防範網路釣魚,這項政策通常會設為停用。</translation> <translation id="2036522553891755455">如果將這項政策設為啟用,共用檔案搜尋功能 (在 <ph name="PRODUCT_NAME" />上為「網路檔案共用區」功能) 會使用 <ph name="NETBIOS_PROTOCOL" /> 搜尋網路上的共用檔案。如果設為停用,共用檔案搜尋功能就不會使用這項通訊協定搜尋共用檔案。 如果不設定這項政策,系統預設會為受管理的使用者停用此通訊協定,其他使用者則會設為啟用。</translation> <translation id="2039801473506609891">在非預設連接埠停用 HTTP/0.9 支援功能</translation> @@ -1339,6 +1349,19 @@ 如要進一步瞭解 <ph name="WEBXR_AR_SESSION_ENUM_VALUE" /> 工作階段,請參閱 <ph name="WEBXR_AR_MODULE_API_NAME" />規範。</translation> <translation id="2175353308236295184">應用程式專屬的 JSON 設定物件及一個鍵/值組合,例如「"managedConfiguration": { "key1": value1, "key2": value2 }」。應用程式資訊清單會定義這些鍵。</translation> <translation id="2176115444876446233">禁止使用者收集整個系統的效能追蹤記錄。</translation> +<translation id="2177382213857119200">可讓你控管是否要啟用 <ph name="PRODUCT_NAME" /> 的安全瀏覽功能,以及這項功能要在哪種模式下運作。 + + 如果將這項政策設為「NoProtection」(值為 0),系統一律不會啟用安全瀏覽功能。 + + 如果將這項政策設為「StandardProtection」(值為 1,系統預設值),系統一律會啟用標準模式的安全瀏覽功能。 + + 如果將這項政策設為「EnhancedProtection」(值為 2),系統一律會啟用強化模式的安全瀏覽功能,這個模式可提供更完善的安全防護機制,但使用者必須提供更多瀏覽資訊給 Google。 + + 如果將這項政策設為強制套用,使用者即無法變更或覆寫 <ph name="PRODUCT_NAME" /> 中的安全瀏覽功能設定。 + + 如果不設定這項政策,安全瀏覽功能會以標準防護模式運作,但使用者可以變更這項設定。 + + 如要進一步瞭解安全瀏覽功能,請前往 https://support.google.com/chrome?p=safe_browsing_preferences。</translation> <translation id="2177696016354404697">一律停用隱私保護功能</translation> <translation id="2178899310296064282">強制執行中度以上的 YouTube 嚴格篩選模式</translation> <translation id="2180958780733364832">控管無頭模式的使用權限</translation> @@ -1784,7 +1807,6 @@ 如果不設定這項政策,系統將套用 <ph name="PRINTERS_ALLOW_ALL" />。</translation> <translation id="2581338546762479588">允許在更新完成後自動重新啟動</translation> -<translation id="2582855747769273665">此網址可讓使用者點選以瞭解詳情。如果未設定,安裝程式中就不會顯示「瞭解詳情」網址。</translation> <translation id="2586117300379904732">允許電源管理的 Wake Lock</translation> <translation id="2586231026319371211">以當地時間為準,格式為 24 時制。</translation> <translation id="2587719089023392205">將 <ph name="PRODUCT_NAME" /> 設為預設瀏覽器</translation> @@ -1971,6 +1993,11 @@ 如果將這項政策設為 False,PDF 檢視器將無法為PDF 加註。</translation> <translation id="2769952903507981510">設定遠端存取主機所需的網域名稱</translation> +<translation id="2770376586681635746">控管使用者能否新增 Kerberos 帳戶。 + +如果將這項政策設為啟用或不設定,使用者或許可以透過 Kerberos 設定頁面中的「Kerberos 帳戶」設定新增 Kerberos 帳戶。使用者可以完全控管自己新增的帳戶,也可以修改或移除帳戶。 + +如果停用這項政策,使用者就無法新增 Kerberos 帳戶,只能透過「設定 Kerberos 帳戶」政策新增帳戶。這個方法可以有效地鎖定帳戶。</translation> <translation id="2772231477628401250">透過 HTTP 下載更新</translation> <translation id="2772955711376920612">如果將這項政策設為啟用,同時設定 <ph name="DEVICE_POWER_PEAK_SHIFT_BATTERY_THRESHOLD_POLICY_NAME" /> 和 <ph name="DEVICE_POWER_PEAK_SHIFT_DAY_CONFIG_POLICY_NAME" />,電源尖峰轉移功能將保持在開啟狀態,前提是裝置提供相關支援。尖峰轉移電源管理政策是一項節電政策,能夠在用電尖峰時段將交流電的使用量降到最低。你可以針對每個平日,個別設定「電源尖峰轉移」模式的開始和結束時間。在這些時間範圍內,只要電池電量高於指定閾值,即使裝置已連接到交流電源,也仍會使用電池的電力。到達指定的結束時間後,如果裝置已連接到交流電源,則將改用交流電源,但不會為電池充電。到達指定的充電開始時間後,如果裝置已連接到交流電源,裝置一樣會使用交流電源運作,並為電池充電。 @@ -3648,6 +3675,9 @@ 如果未設定這項政策,系統 DNS 解析可能會在網路服務內部或外部執行,也可能部分在內部執行,部分在外部執行,實際情況取決於系統設定和功能旗標。</translation> <translation id="4239720644496144453">這個快取不會供 Android 應用程式使用。如有多位使用者安裝同一個 Android 應用程式,則會針對每位使用者重新下載快取。</translation> <translation id="424318624725112807">在登入畫面上啟用插入點醒目顯示功能</translation> +<translation id="4245159233848584683">如果將這項政策設為啟用或不設定,當裝置處於離線狀態且裝置本機帳戶設為零延遲自動登入時,<ph name="PRODUCT_OS_NAME" /> 會顯示網路設定提示。 + +如果將這項政策設為停用,系統會改為顯示錯誤訊息。</translation> <translation id="4248277954659222481">允許符合網址模式許可清單的網頁自動播放媒體</translation> <translation id="4250680216510889253">否</translation> <translation id="4252522848899331223">允許使用者略過安全瀏覽警告</translation> @@ -3789,6 +3819,11 @@ <translation id="4410236409016356088">允許節流網路頻寬</translation> <translation id="4411734231900934213">兒童和家長的裝置之間容許的時間差 (以秒為單位)。</translation> <translation id="441217499641439905">連上行動網路時,禁止在 <ph name="PRODUCT_OS_NAME" />的「檔案」應用程式中使用 Google 雲端硬碟</translation> +<translation id="4412885120239670573">如果將這項政策設為啟用,系統會停用 <ph name="PRODUCT_NAME" /> 中的內部 PDF 檢視器、將 PDF 檔案視為下載內容,並且讓使用者以預設的應用程式開啟 PDF。 + +如果將這項政策設為停用,則表示除非使用者停用 PDF 外掛程式,否則系統一律會使用 PDF 外掛程式開啟 PDF 檔案。 + +如果設定這項政策,使用者將無法在 <ph name="PRODUCT_NAME" /> 中進行變更。如果不設定這項政策,使用者可以選擇是否要從外部開啟 PDF。</translation> <translation id="4413453659814156568">你可以設定網站網址模式清單,指定哪些網站能夠在啟用 JIT (Just In Time) 編譯器的情況下執行 JavaScript。 如要進一步瞭解有效的網站網址模式,請前往 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是這項政策許可的值。 @@ -3875,6 +3910,7 @@ <translation id="4482784169143060077">啟用 HTTPS 自動升級功能</translation> <translation id="4483120730995943109">逾時 0 毫秒的 JavaScript setTimeout() 將不會延遲到 1 毫秒。</translation> <translation id="4483649828988077221">停用自動更新</translation> +<translation id="4483738129334574255">在已註冊的 <ph name="PRODUCT_OS_NAME" /> 裝置上停用恐龍彩蛋遊戲,但其他環境不受此限</translation> <translation id="4484515651939984695">針對透過存取碼或 QR 圖碼選取的投放裝置,指定其在 <ph name="PRODUCT_NAME" /> 選單的投放裝置清單中停留的時間 (以秒為單位)。</translation> <translation id="4485425108474077672">設定新分頁網址</translation> <translation id="4490420545181481759">X.509 憑證可能會對限制進行編碼,例如憑證擴充功能中的名稱限制。RFC 5280 會指定是否要選擇在信任錨點憑證上強制執行這類限制。自 <ph name="PRODUCT_NAME" /> 112 起,系統將對從平台憑證商店載入的此類憑證強制執行這類限制。 @@ -4169,6 +4205,7 @@ 在 <ph name="MAC_OS_NAME" /> 執行個體上,執行個體必須透過行動裝置管理 (MDM) 進行管理、透過 MCX 加入網域或是註冊 <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />,系統才能強制安裝來自 Chrome 線上應用程式商店以外的應用程式和擴充功能。</translation> <translation id="4742973303930120836">限制背景圖形列印模式</translation> +<translation id="4744467872051608680">自 M119 起,如果將這項政策設為 False 或未設定,WebSQL 就會停用,但可以透過 Chrome 旗標「web-sql-access」啟用。如果將這項政策設為 True,系統就會啟用 WebSQL 存取。</translation> <translation id="4745232963710538589">啟用深入分析擴充功能以回報用量指標</translation> <translation id="4749670563834935149">在登入畫面和螢幕鎖定畫面上針對清單中的網址啟用「<ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" />」。 @@ -4729,6 +4766,9 @@ 想進一步瞭解有效的<ph name="URL_LABEL" />模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。這項政策只會根據來源進行比對,因此會忽略網址模式中的路徑。</translation> <translation id="5318185076587284965">啟用遠端存取主機所使用的轉送伺服器</translation> +<translation id="5321624917465764266">如果將這項政策設為啟用或不設定,系統將可刪除 Chrome 中的瀏覽記錄和下載記錄,且使用者無法變更這項設定。 + +如果將這項政策設為停用,系統就無法刪除瀏覽記錄和下載記錄。即使關閉這項政策,瀏覽及下載記錄也不一定會保留。使用者或許可以直接編輯或刪除歷史記錄資料庫檔案,而瀏覽器本身也可能隨時清除或封存部分或所有歷史記錄項目。</translation> <translation id="5323200200131319468">在登入畫面上啟用互動朗讀功能</translation> <translation id="5323271643727095577">針對 beforeunload 事件呼叫 event.preventDefault() 時,不要顯示取消對話方塊。如果 beforeunload event.returnValue 是 beforeunload 事件的空白字串,顯示取消對話方塊。</translation> <translation id="5323355956693037267">在登入畫面上啟用螢幕小鍵盤</translation> @@ -4967,6 +5007,9 @@ <translation id="5535256585099022933">設定重新啟動的時間間隔</translation> <translation id="553806128266843748">布林值標記,表示是否已啟用節流功能。</translation> <translation id="5540885720415375851">允許本機裝置搜尋</translation> +<translation id="5542235730745104308">如果將這項政策設為 True,<ph name="PRODUCT_NAME" /> 會使用內建的替代錯誤頁面 (例如「找不到網頁」)。如果將這項政策設為 False,<ph name="PRODUCT_NAME" /> 一律不會使用替代錯誤頁面。 + +如果設定這項政策,使用者將無法變更設定。如果未設定,系統會啟用這項政策,但使用者可以變更這項設定。</translation> <translation id="5544059132156503357">你可以透過這項政策,指定從 <ph name="MS_AD_NAME" /> 伺服器提出 Kerberos 票證要求時可使用哪些加密類型。 如果將這項政策的值設為: @@ -5702,6 +5745,9 @@ <translation id="625580680776945310">系統將啟用高效率模式。</translation> <translation id="6258658183356534534">控制 User-Agent Client Hints GREASE Update 功能。</translation> <translation id="6261643884958898336">回報裝置識別資訊</translation> +<translation id="6264247808139384018">如果將這項政策設為啟用或不設定,使用密碼驗證的使用者可以鎖定螢幕。 + +如果將這項政策設為停用,使用者將無法鎖定螢幕,只能從使用者工作階段登出。</translation> <translation id="6265892395051519509">允許在這些網站上存取感應器</translation> <translation id="6266043141694454734">決定是否要使用 Chrome Root Store 和內建的憑證驗證器來驗證伺服器憑證</translation> <translation id="6267130578410325007">這項政策預設允許使用 origin-keyed 代理程式叢集。 @@ -5927,6 +5973,9 @@ <translation id="6412352702230183710">僅允許系統層級的原生訊息傳遞主機</translation> <translation id="6416506846917150119">不在使用者輸入內容時提供實體鍵盤的預測書寫建議</translation> <translation id="6417265370957905582">Google 助理</translation> +<translation id="6421254653839955267">如果將這項政策設為啟用,系統會略過 CNAME 查詢。系統產生 Kerberos SPN 時會使用先前輸入的伺服器名稱。 + +如果將這項政策設為停用或不設定,系統產生 Kerberos SPN 時,CNAME 查詢會決定伺服器的標準名稱。</translation> <translation id="6424485010103067949"><ph name="OMA_URI" />:</translation> <translation id="6424486395812679373">對所有下載檔案執行安全瀏覽檢查</translation> <translation id="6433697627431665375">不允許將 <ph name="PRODUCT_NAME" /> 資料納入備份內容</translation> @@ -6044,6 +6093,11 @@ 指定政策值時需以毫秒為單位。設定值必須小於閒置延遲時間。</translation> <translation id="6497085755801788141">使用內建憑證驗證器</translation> +<translation id="6504720469162323184">這項政策可決定使用者多久沒有活動 (單位為毫秒),才會自動登入由 <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_ID_POLICY_NAME" /> 政策指定的裝置本機帳戶。 + +如果不設定,逾時時間就會設為 0 毫秒。 + +如果不設定 <ph name="DEVICE_LOCAL_ACCOUNT_AUTO_LOGIN_ID_POLICY_NAME" /> 政策,這項政策不會有作用。</translation> <translation id="65055701428353978">如果設定這項政策,系統會為每個受影響的擴充功能指定 OAuth 重新導向網址清單。當擴充功能使用 <ph name="IDENTITY_API_NAME" /> API (<ph name="IDENTITY_API_URL" />) 時,除了標準 https://<擴充功能 ID>.chromiumapp.org/ 重新導向網址網址外,還能搭配使用上述清單。 如果不設定這項政策,或提供空白網址清單,所有應用程式或擴充功能在使用 <ph name="IDENTITY_API_NAME" /> API 時,只能使用標準重新導向網址。</translation> @@ -6142,6 +6196,7 @@ 如果啟用這項設定,<ph name="PRODUCT_NAME" /> 一律不會使用清單中指定的外掛程式,並且會在「about:plugins」中將這些外掛程式標示為已停用,使用者將無法予以啟用。請注意,EnabledPlugins 和 DisabledPluginsExceptions 可覆寫這項政策。 如果不設定這項政策,使用者可以使用系統上安裝的任何外掛程式 (不含與硬式編碼不相容、過舊或危險的外掛程式)。</translation> +<translation id="6571055160227165318">允許透過 Chrome 旗標啟用 WebSQL。</translation> <translation id="6574903167639386816">在使用者工作階段結束後清除磁碟上的設定檔資料</translation> <translation id="6575403002861093126">你可以透過這項政策,指定群組政策物件 (GPO) 快取的生命週期 (以小時為單位),也就是 GPO 在重新下載前可供重複使用的時間長度上限。只要快取 GPO 的版本沒有改變,系統就能重複使用這些快取 GPO,不必在每次擷取政策時重新下載 GPO。 @@ -6271,6 +6326,11 @@ 如果將這項政策設為停用或不設定,則列印指令會觸發列印預覽畫面。</translation> <translation id="6655274714135630366">磁碟映像檔的十六進位編碼 SHA-256 雜湊。</translation> +<translation id="6655844456903132379">如果將這項政策設為啟用,HTTP 驗證會遵循 KDC 政策的核准結果。也就是說,當 KDC 為服務票證設定 <ph name="OK_AS_DELEGATE" /> 時,<ph name="PRODUCT_NAME" /> 會委派使用者憑證給正在存取的服務。請參閱 RFC 5896,網址為 https://tools.ietf.org/html/rfc5896.html。<ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> 也應該允許這項服務。 + +如果將這項政策設為停用或不設定,支援平台會忽略 KDC 政策,只遵循 <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> 政策。 + +<ph name="MS_WIN_NAME" /> 一律遵循 KDC 政策。</translation> <translation id="6658245400435704251">指定裝置可以任意延遲下載某項更新的秒數上限 (以該項更新初次被推送到伺服器的時間為準)。你可以將這項裝置等待時間的其中一部分設定為等待的時間長度,剩下的部分則設定為檢查更新的次數。不論採取哪種方式,分散時間皆不得超過固定時間長度,這樣就可以避免裝置由於持續等待下載某項更新而停止回應。</translation> <translation id="6659537776197644458">不觸發驗證流程,也不同步處理密碼</translation> <translation id="6661178198729301029">啟用受管理設定檔的雲端報告功能</translation> @@ -6791,6 +6851,11 @@ 如果將這項政策設為 False,則可停用此功能。</translation> <translation id="7123271473727774529">啟用色彩校正無障礙功能</translation> <translation id="7126716959063786004">允許在工作管理員中結束處理程序</translation> +<translation id="7126787606641224668">控管是否在 Kerberos 驗證對話方塊中啟用「記住密碼」功能。密碼會加密儲存在磁碟上,且只能在使用者工作階段中透過 Kerberos 系統 Daemon 存取。 + +如果啟用或不設定這項政策,使用者可以決定系統是否要記住 Kerberos 密碼,這樣日後就不必再輸入。除非使用者需要進行其他驗證 (雙重驗證),否則系統會自動擷取 Kerberos 票證。 + +如果停用這項政策,系統不會記住任何密碼,並且會將先前儲存的所有密碼移除。每次使用者需要透過 Kerberos 系統進行驗證時,都必須輸入密碼。根據伺服器的設定而定,通常每 8 小時到數個月需要輸入一次密碼。</translation> <translation id="7126928806195745404">JavaScript 設定</translation> <translation id="7127980134843952133">下載記錄</translation> <translation id="7128513247945602297">在 HTTPS 網站上啟用複合型內容自動升級</translation> @@ -6856,6 +6921,9 @@ <translation id="7157329428182136164">允許支援 3D 圖形 API</translation> <translation id="7158358621906236999">預設感應器設定</translation> <translation id="7161568070244869726">強制啟用 AppCache</translation> +<translation id="7165879643294314958">如果將這項政策設為啟用或不設定,系統會將裝置本機帳戶設為零延遲自動登入。按下鍵盤快速鍵 Ctrl + Alt + S 鍵後,<ph name="PRODUCT_OS_NAME" /> 會略過自動登入並顯示登入畫面。 + +如果將這項政策設為停用,使用者就無法略過零延遲自動登入 (如果已設定)。</translation> <translation id="7165882688932913315">這項政策可控管本機搜尋使用者介面 (<ph name="CHROME_DEVICES_LINK" />) 中可操控功能的存取權。本機搜尋使用者介面會顯示使用者附近的可搜尋裝置,以及註冊於這些可搜尋裝置的雲端裝置。在所有作業系統上 (<ph name="PRODUCT_OS_NAME" />除外),本機搜尋使用者介面也能讓使用者將連接至電腦的傳統印表機新增至 <ph name="CLOUD_PRINT_NAME" />。 如將這項政策設為「啟用」或不設定,會開啟本機裝置搜尋功能。 @@ -6971,6 +7039,11 @@ <translation id="7269263983506766969">以預設優先順序執行音訊程序</translation> <translation id="7270001383428188269">這個用戶端憑證的 ID。</translation> <translation id="7271085005502526897">第一次執行時從預設瀏覽器匯入首頁</translation> +<translation id="7272892848025145170">控管是否要啟用 Kerberos 功能。Kerberos 是一種驗證通訊協定,可用於驗證網頁應用程式和檔案共用區。 + +如果啟用這項政策,Kerberos 功能就會啟用。你可以透過「設定 Kerberos 帳戶」政策或 Kerberos 設定頁面中的「Kerberos 帳戶」設定新增 Kerberos 帳戶。 + +如果將這項政策設為停用或不設定,「Kerberos 帳戶」設定就會停用。使用者無法新增 Kerberos 帳戶,也無法使用 Kerberos 驗證。系統會刪除所有現有的 Kerberos 帳戶和所有已儲存的密碼。</translation> <translation id="7273785848231509306">一律不顯示使用者名稱和相片</translation> <translation id="7274077256421167535">啟用 USB 電力共享功能</translation> <translation id="7275334191706090484">受管理書籤</translation> @@ -7604,6 +7677,9 @@ 如果不設定這項政策,系統會在初次顯示登入畫面時停用高對比模式,但使用者隨時可以啟用。</translation> <translation id="7864539943188674973">停用藍牙</translation> <translation id="7869986671709030417">預設的背景圖形列印模式</translation> +<translation id="7872692545596413465">如果將這項政策設為啟用並輸入非標準通訊埠 (也就是 80 或 443 以外的通訊埠),系統會在已產生的 Kerberos SPN 中加入該通訊埠。 + +如果將這項政策設為停用或不設定,已產生的 Kerberos SPN 不會包含通訊埠。</translation> <translation id="7877924399554599110">允許將使用者雲端政策合併至裝置層級政策</translation> <translation id="7881421274383404138">你可以透過這項政策設定企業印表機。其格式與 <ph name="PRINTERS_POLICY_NAME" /> 條目相符,且針對每台印表機另外設有 <ph name="ID_FIELD" /> 或 <ph name="GUID_FIELD" /> 必填欄位,用於指明要加入許可清單或拒絕清單。相關檔案大小不得超過 5 MB,且必須採用 JSON 格式。一個 5 MB 的編碼檔案可包含約 21,000 台印表機的資料。加密編譯雜湊的作用是驗證下載內容的完整性。系統會下載及快取這個檔案,而且只要網址或雜湊一有變動,就會重新下載檔案。<ph name="PRODUCT_OS_NAME" />會下載這個檔案來設定印表機,並依據 <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME" />、<ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" /> 和 <ph name="PRINTERS_BULK_BLOCKLIST_POLICY_NAME" /> 開放使用印表機。 @@ -7654,6 +7730,11 @@ 這項企業政策可讓系統管理員控管使用者是否能開啟額外的節流功能。如果將這項政策設為停用,系統將禁止啟用節流功能。如果將這項政策設為啟用或未設定,使用者就可以選擇使用節流功能,也或許可以透過其他 Chrome 版本啟用。</translation> <translation id="793188693675675950">不允許在第一次執行時匯入首頁</translation> +<translation id="7932017046032784156">如果將這項政策設為啟用,系統會在工具列或溢位選單上顯示 Cast 工具列圖示,且使用者無法將其移除。 + +如將這項政策設為停用或不設定,使用者可透過內容選單固定或移除該圖示。 + +如果將 <ph name="ENABLE_MEDIA_ROUTER_POLICY_NAME" /> 政策設為停用,則這項政策的值不會有任何作用,且工具列圖示不會顯示。</translation> <translation id="7933141401888114454">啟用建立受監管使用者的功能</translation> <translation id="793473937901685727">設定 ARC 應用程式的憑證可用性</translation> <translation id="7936302526928951356">User-Agent 字串不會凍結主要版本。</translation> @@ -8386,6 +8467,9 @@ <translation id="8584279193368801689">限制 PIN 碼列印模式。如果不設定這項政策,系統會視為未設限制。如果設定的模式不適用,系統會忽略這項政策。請注意,印表機使用的通訊協定必須是 IPPS、HTTPS、USB 或 IPP 型 USB 的其中一種,才能啟用 PIN 碼列印功能。</translation> <translation id="8587229956764455752">允許建立新的使用者帳戶</translation> <translation id="8589285015138337712">不允許使用者自訂系統捷徑</translation> +<translation id="8589346048177748110">如果將這項政策設為 True,使用者可以玩恐龍遊戲。如果將這項政策設為 False,使用者無法在裝置離線時玩恐龍彩蛋遊戲。 + +如果未設定這項政策,使用者無法在已註冊的 <ph name="PRODUCT_OS_NAME" /> 上玩恐龍彩蛋遊戲,但其他環境不受此限。</translation> <translation id="8591713876665299827">請注意,這項政策已遭淘汰,並將在 <ph name="PRODUCT_OS_NAME" />第 85 版中移除。請改用 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />。 指定 AC 供電時的閒置時間長度。如果使用者在這段時間內沒有任何動作,系統就會執行閒置動作。
diff --git a/components/policy/resources/templates/policies.yaml b/components/policy/resources/templates/policies.yaml index 67ab54a..b627c97d 100644 --- a/components/policy/resources/templates/policies.yaml +++ b/components/policy/resources/templates/policies.yaml
@@ -1163,6 +1163,7 @@ 1162: DeviceEphemeralNetworkPoliciesEnabled 1163: PPAPISharedImagesForVideoDecoderAllowed 1164: ProfileReauthPrompt + 1165: RelatedWebsiteSetsEnabled atomic_groups: 1: Homepage 2: RemoteAccess
diff --git a/components/policy/resources/templates/policy_definitions/Miscellaneous/DataControlsRules.yaml b/components/policy/resources/templates/policy_definitions/Miscellaneous/DataControlsRules.yaml index 71df6a8..9c4ab03 100644 --- a/components/policy/resources/templates/policy_definitions/Miscellaneous/DataControlsRules.yaml +++ b/components/policy/resources/templates/policy_definitions/Miscellaneous/DataControlsRules.yaml
@@ -1,4 +1,4 @@ -caption: Sets a list Data Controls rules. +caption: Sets a list of Data Controls rules. desc: |- Configures a list of Data Control rules to prevent data leaks. Data leaks can happen by copying and pasting data, attaching files to web pages, printing, downloading, ...etc.
diff --git a/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativePrintersBlacklist.yaml b/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativePrintersBlacklist.yaml index 5722917..32ab1324 100644 --- a/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativePrintersBlacklist.yaml +++ b/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativePrintersBlacklist.yaml
@@ -12,7 +12,8 @@ features: dynamic_refresh: true owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: items:
diff --git a/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativePrintersWhitelist.yaml b/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativePrintersWhitelist.yaml index df637882..d08a0fb 100644 --- a/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativePrintersWhitelist.yaml +++ b/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativePrintersWhitelist.yaml
@@ -13,7 +13,8 @@ dynamic_refresh: true per_profile: false owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: items:
diff --git a/components/policy/resources/templates/policy_definitions/Miscellaneous/PrintingAPIExtensionsWhitelist.yaml b/components/policy/resources/templates/policy_definitions/Miscellaneous/PrintingAPIExtensionsWhitelist.yaml index 10cd5277..0e68a0f7 100644 --- a/components/policy/resources/templates/policy_definitions/Miscellaneous/PrintingAPIExtensionsWhitelist.yaml +++ b/components/policy/resources/templates/policy_definitions/Miscellaneous/PrintingAPIExtensionsWhitelist.yaml
@@ -13,7 +13,8 @@ dynamic_refresh: true per_profile: true owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: items:
diff --git a/components/policy/resources/templates/policy_definitions/Network/DnsOverHttpsSalt.yaml b/components/policy/resources/templates/policy_definitions/Network/DnsOverHttpsSalt.yaml index b6110d1..25b4064 100644 --- a/components/policy/resources/templates/policy_definitions/Network/DnsOverHttpsSalt.yaml +++ b/components/policy/resources/templates/policy_definitions/Network/DnsOverHttpsSalt.yaml
@@ -13,7 +13,6 @@ - chrome_os:110- owners: - chromeos-commercial-networking@google.com -- srad@google.com - pmarko@chromium.org schema: type: string
diff --git a/components/policy/resources/templates/policy_definitions/Network/DnsOverHttpsTemplatesWithIdentifiers.yaml b/components/policy/resources/templates/policy_definitions/Network/DnsOverHttpsTemplatesWithIdentifiers.yaml index 75cd9841..5f34893 100644 --- a/components/policy/resources/templates/policy_definitions/Network/DnsOverHttpsTemplatesWithIdentifiers.yaml +++ b/components/policy/resources/templates/policy_definitions/Network/DnsOverHttpsTemplatesWithIdentifiers.yaml
@@ -17,7 +17,6 @@ - chrome_os:110- owners: - chromeos-commercial-networking@google.com -- srad@google.com - pmarko@chromium.org schema: type: string
diff --git a/components/policy/resources/templates/policy_definitions/Printing/DeviceNativePrinters.yaml b/components/policy/resources/templates/policy_definitions/Printing/DeviceNativePrinters.yaml index 878d34a..d9ab94a 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/DeviceNativePrinters.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/DeviceNativePrinters.yaml
@@ -21,7 +21,8 @@ per_profile: false max_size: 5242880 owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: properties:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/DeviceNativePrintersAccessMode.yaml b/components/policy/resources/templates/policy_definitions/Printing/DeviceNativePrintersAccessMode.yaml index 5d0544c3..097d386 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/DeviceNativePrintersAccessMode.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/DeviceNativePrintersAccessMode.yaml
@@ -17,7 +17,8 @@ name: AllowAll value: 2 owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/DevicePrinters.yaml b/components/policy/resources/templates/policy_definitions/Printing/DevicePrinters.yaml index 606c6467..b38a005f 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/DevicePrinters.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/DevicePrinters.yaml
@@ -18,7 +18,8 @@ per_profile: false max_size: 5242880 owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: properties:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersAccessMode.yaml b/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersAccessMode.yaml index 417536f..4534df3 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersAccessMode.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersAccessMode.yaml
@@ -25,7 +25,8 @@ name: AllowAll value: 2 owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersAllowlist.yaml b/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersAllowlist.yaml index 19e6954..48c9a47 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersAllowlist.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersAllowlist.yaml
@@ -15,7 +15,8 @@ dynamic_refresh: true per_profile: false owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: items:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersBlocklist.yaml b/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersBlocklist.yaml index 792bd179..674bb6f 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersBlocklist.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/DevicePrintersBlocklist.yaml
@@ -13,7 +13,8 @@ features: dynamic_refresh: true owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: items:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/DevicePrintingClientNameTemplate.yaml b/components/policy/resources/templates/policy_definitions/Printing/DevicePrintingClientNameTemplate.yaml index c3a32ea5..d2d0c2f8b 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/DevicePrintingClientNameTemplate.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/DevicePrintingClientNameTemplate.yaml
@@ -37,7 +37,8 @@ per_profile: false owners: - ust@google.com -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com schema: type: string supported_on:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintJobHistoryExpirationPeriod.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintJobHistoryExpirationPeriod.yaml index 61f209446..cd5ceda7 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintJobHistoryExpirationPeriod.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintJobHistoryExpirationPeriod.yaml
@@ -12,7 +12,8 @@ dynamic_refresh: true per_profile: true owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: minimum: -1
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingAPIExtensionsAllowlist.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingAPIExtensionsAllowlist.yaml index e8827455a..c72e12b 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingAPIExtensionsAllowlist.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingAPIExtensionsAllowlist.yaml
@@ -10,7 +10,8 @@ dynamic_refresh: true per_profile: true owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: items:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedBackgroundGraphicsModes.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedBackgroundGraphicsModes.yaml index 2be8bb4a..0883b71 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedBackgroundGraphicsModes.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedBackgroundGraphicsModes.yaml
@@ -18,7 +18,8 @@ name: disabled value: disabled owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedColorModes.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedColorModes.yaml index dd6a23c..1d4cfac 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedColorModes.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedColorModes.yaml
@@ -17,7 +17,8 @@ name: monochrome value: monochrome owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedDuplexModes.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedDuplexModes.yaml index daf24e3..4d8f847d 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedDuplexModes.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedDuplexModes.yaml
@@ -19,7 +19,8 @@ name: duplex value: duplex owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedPinModes.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedPinModes.yaml index 87a942a..1ac4fb7 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedPinModes.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingAllowedPinModes.yaml
@@ -18,7 +18,8 @@ name: no_pin value: no_pin owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingBackgroundGraphicsDefault.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingBackgroundGraphicsDefault.yaml index 6a0b8ea7..bd96e4d 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingBackgroundGraphicsDefault.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingBackgroundGraphicsDefault.yaml
@@ -15,7 +15,8 @@ name: disabled value: disabled owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingColorDefault.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingColorDefault.yaml index a8b915b..2917fe4 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingColorDefault.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingColorDefault.yaml
@@ -14,7 +14,8 @@ name: monochrome value: monochrome owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingDuplexDefault.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingDuplexDefault.yaml index 0a572c0..a85cfb2 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingDuplexDefault.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingDuplexDefault.yaml
@@ -17,7 +17,8 @@ name: long-edge value: long-edge owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingMaxSheetsAllowed.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingMaxSheetsAllowed.yaml index 3af60bb..a891033 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingMaxSheetsAllowed.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingMaxSheetsAllowed.yaml
@@ -8,7 +8,8 @@ dynamic_refresh: true per_profile: true owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: minimum: 1
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingPaperSizeDefault.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingPaperSizeDefault.yaml index 82c8a16..2c440bf 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingPaperSizeDefault.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingPaperSizeDefault.yaml
@@ -17,7 +17,8 @@ future_on: - fuchsia owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: properties:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingPinDefault.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingPinDefault.yaml index 36815bf..9ff0b57 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingPinDefault.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingPinDefault.yaml
@@ -14,7 +14,8 @@ name: no_pin value: no_pin owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: enum:
diff --git a/components/policy/resources/templates/policy_definitions/Printing/PrintingSendUsernameAndFilenameEnabled.yaml b/components/policy/resources/templates/policy_definitions/Printing/PrintingSendUsernameAndFilenameEnabled.yaml index e646b20..31c2c1a2 100644 --- a/components/policy/resources/templates/policy_definitions/Printing/PrintingSendUsernameAndFilenameEnabled.yaml +++ b/components/policy/resources/templates/policy_definitions/Printing/PrintingSendUsernameAndFilenameEnabled.yaml
@@ -14,7 +14,8 @@ - caption: Disable sending username and filename to native printers value: false owners: -- srad@google.com +- ust@google.com +- chromeos-commercial-printing@google.com - pawliczek@chromium.org schema: type: boolean
diff --git a/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/.group.details.yaml b/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/.group.details.yaml new file mode 100644 index 0000000..7a5ec2a --- /dev/null +++ b/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/.group.details.yaml
@@ -0,0 +1,2 @@ +caption: Related Website Sets Settings +desc: Controls policies for the Related Website Sets feature.
diff --git a/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsEnabled.yaml b/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsEnabled.yaml new file mode 100644 index 0000000..ca8b3d0 --- /dev/null +++ b/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsEnabled.yaml
@@ -0,0 +1,31 @@ +caption: Enable Related Website Sets +default: true +desc: |- + This policy allows to control the Related Website Sets feature enablement. + + This policy overrides the <ph name="FIRST_PARTY_SETS_ENABLED_POLICY_NAME">FirstPartySetsEnabled</ph> policy. + + When this policy is unset or set to True, the Related Website Sets feature is enabled. + + When this policy is set to False, the Related Website Sets feature is disabled. +example_value: false +features: + dynamic_refresh: true + per_profile: true +future_on: +- chrome.* +- chrome_os +- android +- fuchsia +items: +- caption: Enable Related Website Sets + value: true +- caption: Disable Related Website Sets + value: false +owners: +- sandormajor@google.com +- chrome-first-party-sets@chromium.org +schema: + type: boolean +tags: [] +type: main
diff --git a/components/policy/test/data/policy_test_cases.json b/components/policy/test/data/policy_test_cases.json index 69254da..e1203371 100644 --- a/components/policy/test/data/policy_test_cases.json +++ b/components/policy/test/data/policy_test_cases.json
@@ -25047,5 +25047,75 @@ } } ] + }, + "RelatedWebsiteSetsEnabled": { + "os": [ + "win", + "linux", + "mac", + "chromeos_ash", + "chromeos_lacros", + "android", + "fuchsia" + ], + "policy_pref_mapping_tests": [ + { + "note": "Check default values (no policies set)", + "prefs": { + "privacy_sandbox.first_party_sets_enabled": { + "location": "user_profile", + "default_value": true + } + } + }, + { + "note": "Check value when RelatedWebsiteSetsEnabled policy is set to true", + "policies": { + "RelatedWebsiteSetsEnabled": true + }, + "prefs": { + "privacy_sandbox.first_party_sets_enabled": { + "location": "user_profile", + "value": true + } + } + }, + { + "note": "Check value when RelatedWebsiteSetsEnabled policy is set to false", + "policies": { + "RelatedWebsiteSetsEnabled": false + }, + "prefs": { + "privacy_sandbox.first_party_sets_enabled": { + "location": "user_profile", + "value": false + } + } + }, + { + "note": "Check value when FirstPartySetsEnabled policy is set to true", + "policies": { + "FirstPartySetsEnabled": true + }, + "prefs": { + "privacy_sandbox.first_party_sets_enabled": { + "location": "user_profile", + "value": true + } + } + }, + { + "note": "Check value when FirstPartySetsEnabled policy is set to false", + "policies": { + "FirstPartySetsEnabled": false + }, + "prefs": { + "privacy_sandbox.first_party_sets_enabled": { + "location": "user_profile", + "value": false + } + } + } + ] } }
diff --git a/components/privacy_sandbox/DEPS b/components/privacy_sandbox/DEPS index 3857b30..033b532 100644 --- a/components/privacy_sandbox/DEPS +++ b/components/privacy_sandbox/DEPS
@@ -11,6 +11,7 @@ "+content/public/common/content_features.h", "+net/base", "+net/cookies/site_for_cookies.h", + "+content/public/android", "+content/public/test", "+content/public/browser/interest_group_api_operation.h", "+content/public/browser/render_frame_host.h",
diff --git a/components/privacy_sandbox/android/BUILD.gn b/components/privacy_sandbox/android/BUILD.gn index cb54a92..c63a89d 100644 --- a/components/privacy_sandbox/android/BUILD.gn +++ b/components/privacy_sandbox/android/BUILD.gn
@@ -13,6 +13,7 @@ deps = [ ":java_resources", "//components/browser_ui/settings/android:java", + "//components/browser_ui/site_settings/android:java", "//components/prefs/android:java", "//components/strings:components_strings_grd", "//components/user_prefs/android:java",
diff --git a/components/privacy_sandbox/android/java/res/xml/tracking_protection_preferences.xml b/components/privacy_sandbox/android/java/res/xml/tracking_protection_preferences.xml index c4a08a8..970cdd3 100644 --- a/components/privacy_sandbox/android/java/res/xml/tracking_protection_preferences.xml +++ b/components/privacy_sandbox/android/java/res/xml/tracking_protection_preferences.xml
@@ -42,4 +42,7 @@ </PreferenceCategory> + <org.chromium.components.browser_ui.settings.ExpandablePreferenceGroup + android:key="allowed_group" /> + </PreferenceScreen>
diff --git a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java index be85b41e7..54de725 100644 --- a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java +++ b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java
@@ -4,6 +4,8 @@ package org.chromium.components.privacy_sandbox; +import org.chromium.content_public.browser.BrowserContextHandle; + /** Interface implemented by the embedder to access embedder-specific logic. */ public interface TrackingProtectionDelegate { /** @return whether block all 3PCD pref is enabled. */ @@ -17,4 +19,7 @@ /** Set the value of the Do Not Track Pref. */ void setDoNotTrack(boolean enabled); + + /** @return the browser context associated with the settings page. */ + BrowserContextHandle getBrowserContext(); }
diff --git a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionSettings.java b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionSettings.java index fd08381b..0feeca0 100644 --- a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionSettings.java +++ b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionSettings.java
@@ -8,14 +8,27 @@ import androidx.preference.PreferenceFragmentCompat; +import org.chromium.components.browser_ui.settings.ChromeImageViewPreference; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +import org.chromium.components.browser_ui.settings.ExpandablePreferenceGroup; import org.chromium.components.browser_ui.settings.SettingsUtils; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; +import org.chromium.components.browser_ui.site_settings.Website; +import org.chromium.components.browser_ui.site_settings.WebsitePermissionsFetcher; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; /** Fragment to manage settings for tracking protection. */ public class TrackingProtectionSettings extends PreferenceFragmentCompat { // Must match keys in tracking_protection_preferences.xml. private static final String PREF_BLOCK_ALL_TOGGLE = "block_all_3pcd_toggle"; private static final String PREF_DNT_TOGGLE = "dnt_toggle"; + private static final String ALLOWED_GROUP = "allowed_group"; + + // The number of sites that are on the Allowed list. + private int mAllowedSiteCount; private TrackingProtectionDelegate mDelegate; @@ -42,9 +55,43 @@ mDelegate.setDoNotTrack((boolean) newValue); return true; }); + + mAllowedSiteCount = 0; + getBlockingExceptions(); } public void setTrackingProtectionDelegate(TrackingProtectionDelegate delegate) { mDelegate = delegate; } + + private void getBlockingExceptions() { + SiteSettingsCategory cookiesCategory = SiteSettingsCategory.createFromType( + mDelegate.getBrowserContext(), SiteSettingsCategory.Type.THIRD_PARTY_COOKIES); + new WebsitePermissionsFetcher(mDelegate.getBrowserContext()) + .fetchPreferencesForCategory(cookiesCategory, this::onExceptionsFetched); + } + + private void onExceptionsFetched(Collection<Website> sites) { + List<ChromeImageViewPreference> websites = new ArrayList<>(); + for (Website site : sites) { + ChromeImageViewPreference preference = new ChromeImageViewPreference(getContext()); + preference.setTitle(site.getTitle()); + websites.add(preference); + } + + ExpandablePreferenceGroup allowedGroup = + getPreferenceScreen().findPreference(ALLOWED_GROUP); + for (ChromeImageViewPreference website : websites) { + allowedGroup.addPreference(website); + mAllowedSiteCount++; + } + updateExceptionsHeader(); + } + + private void updateExceptionsHeader() { + ExpandablePreferenceGroup allowedGroup = + getPreferenceScreen().findPreference(ALLOWED_GROUP); + allowedGroup.setTitle(String.format( + getString(R.string.tracking_protection_allowed_group_title), mAllowedSiteCount)); + } }
diff --git a/components/privacy_sandbox_strings.grdp b/components/privacy_sandbox_strings.grdp index cbf3bd91..fe7cc8f 100644 --- a/components/privacy_sandbox_strings.grdp +++ b/components/privacy_sandbox_strings.grdp
@@ -2205,4 +2205,7 @@ <message name="IDS_TRACKING_PROTECTION_DNT_TOGGLE_SUMMARY" desc="" translateable="false" formatter_data="android_java"> Sites use their discretion when responding to this request </message> + <message name="IDS_TRACKING_PROTECTION_ALLOWED_GROUP_TITLE" desc="" translateable="false" formatter_data="android_java"> + Sites allowed to use third-party cookies - <ph name="NUM_WEBSITES">%1$s<ex>3</ex></ph> + </message> </grit-part>
diff --git a/components/remote_cocoa/app_shim/select_file_dialog_bridge.mm b/components/remote_cocoa/app_shim/select_file_dialog_bridge.mm index 8a81c61..a146ef6 100644 --- a/components/remote_cocoa/app_shim/select_file_dialog_bridge.mm +++ b/components/remote_cocoa/app_shim/select_file_dialog_bridge.mm
@@ -403,10 +403,17 @@ // Ensure that |callback| (rather than |this|) be retained by the block. auto callback = base::BindRepeating(&SelectFileDialogBridge::OnPanelEnded, weak_factory_.GetWeakPtr()); + // In immersive fullscreen, `panel_` might be shown behind`owning_window_`. + // Adding `panel_` as a child of `owning_window_` seems to force `panel_` on + // top. See crbug.com/1484058. + [owning_window_ addChildWindow:panel_ ordered:NSWindowAbove]; [panel_ beginSheetModalForWindow:owning_window_ completionHandler:^(NSInteger result) { callback.Run(result != NSModalResponseOK); }]; + // Per crbug.com/605098, a sheet should not have a parentWindow (it should + // have only sheetParent), so remove it from its window parent. + [owning_window_ removeChildWindow:panel_]; } void SelectFileDialogBridge::SetAccessoryView(
diff --git a/components/safe_browsing/content/resources/real_time_url_checks_allowlist/README.md b/components/safe_browsing/content/resources/real_time_url_checks_allowlist/README.md index 722c8d1b..50fa11a 100644 --- a/components/safe_browsing/content/resources/real_time_url_checks_allowlist/README.md +++ b/components/safe_browsing/content/resources/real_time_url_checks_allowlist/README.md
@@ -44,8 +44,8 @@ * It will ask you to double check its actions before proceeding. It will fail if you're not a member of `chrome-counter-abuse-core@google.com`, since that's required for access to the GCS bucket. - * The Component Updater system will notice those files and push them to users within ~6 hours. - If not, contact `waffles@.` + * The Component Updater system will notice those files and gradually push them to users + over a 3 day period. If not, contact the Omaha support team. ## Procedure for rollback While Omaha allows rollback through the release manager, the Chrome client will
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h index 0bee0b5f..ff903e9b 100644 --- a/components/search_engines/search_engine_type.h +++ b/components/search_engines/search_engine_type.h
@@ -9,6 +9,8 @@ // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // +// This should be kept aligned with OmniboxSearchEngineType in enums.xml. +// // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.search_engines enum SearchEngineType {
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb index 2c87587..40ff9de 100644 --- a/components/strings/components_strings_af.xtb +++ b/components/strings/components_strings_af.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Vee blaaierdata uit …</translation> <translation id="362276910939193118">Wys hele geskiedenis</translation> <translation id="3624292976554877583">Etikette (mat)</translation> -<translation id="3625929652356389713">Kan vra om prent-in-prent-vensters outomaties oop te maak</translation> <translation id="3628905806504633297">{0,plural, =1{Administrateursbeleid beveel aan dat jy nie hierdie lêer na <ph name="DESTINATION_NAME" /> toe oordra nie}other{Administrateursbeleid beveel aan dat jy nie hierdie lêers na <ph name="DESTINATION_NAME" /> toe oordra nie}}</translation> <translation id="3630155396527302611">As dit reeds gelys is as 'n program wat by die netwerk mag ingaan, probeer om dit van die lys af te verwyder en dit weer by te voeg.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Monitering is bespeur</translation> <translation id="3886948180919384617">Stapelaar 3</translation> <translation id="3890664840433101773">Voeg e-posadres by</translation> -<translation id="3893306401511601929">Outomatiese prent-in-prent</translation> <translation id="3897092660631435901">Kieslys</translation> <translation id="3901925938762663762">Die kaart het verval</translation> <translation id="390391808978419508">Oopmaak het uitgetel</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Bedryfstelsels</translation> <translation id="4854853140771946034">Skep vinnig 'n nuwe nota in Google Keep</translation> <translation id="485902285759009870">Verifieer tans kode …</translation> -<translation id="4862630594858951805">Wil jy e-posse kry wanneer die prys daal?</translation> <translation id="4864406669374375262">Weergawestring na knipbord gekopieer</translation> <translation id="486459320933704969">’n Ouer of voog moet sê dat dit aanvaarbaar is vir jou om hierdie webwerf te besoek</translation> <translation id="4866506163384898554">Druk |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| om jou skermpyltjie te wys</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Tik soekterm in></translation> <translation id="671076103358959139">Inskrywingtoken:</translation> <translation id="6711464428925977395">Daar is iets verkeerd met hierdie instaanbediener of die adres is verkeerd.</translation> -<translation id="6716013836112872184">Kry e-posse wat na <ph name="EMAIL" /> toe gestuur word wanneer die prys op enige werf daal.</translation> <translation id="6716672519412350405"><ph name="URL" /> wil 'n 3D-kaart van jou omgewing skep en kameraposisie naspoor.</translation> <translation id="6718612893943028815">Gebruik kamera?</translation> <translation id="6721164594124191969">Etikette (glas)</translation> @@ -4035,6 +4031,5 @@ <li>Probeer om aan 'n ander netwerk te koppel</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">outomatiese prent-in-prent</translation> <translation id="997986563973421916">Van Google Pay af</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb index e84885b8..6aa2ff7 100644 --- a/components/strings/components_strings_am.xtb +++ b/components/strings/components_strings_am.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">የአሰሳ ውሂብ አስወግድ…</translation> <translation id="362276910939193118">ሙሉ ታሪክ አሳይ</translation> <translation id="3624292976554877583">መሰየሚያዎች (ድብዳብ)</translation> -<translation id="3625929652356389713">በራስ-ሰር የስዕል-ላይ-ስዕል መስኮቶችን ለመክፈት መጠየቅ ይችላል</translation> <translation id="3628905806504633297">{0,plural, =1{የአስተዳዳሪ መመሪያ ይህን ፋይል ወደ <ph name="DESTINATION_NAME" /> ማስተላለፍን አይመክርም}one{የአስተዳዳሪ መመሪያ ይህን ፋይል ወደ <ph name="DESTINATION_NAME" /> ማስተላለፍን አይመክርም}other{የአስተዳዳሪ መመሪያ እነዚህን ፋይሎች ወደ <ph name="DESTINATION_NAME" /> ማስተላለፍን አይመክርም}}</translation> <translation id="3630155396527302611">አውታረ መረቡ እንዲደርስ የተፈቀደለት መሣሪያ ነው ተብሎ አስቀድሞ ከተዘረዘረ ከዝርዝሩ አስወግደው እንደገና ለማከል ይሞክሩ።</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">ክትትል እንዳለ ተደርሶበታል</translation> <translation id="3886948180919384617">ቁልል 3</translation> <translation id="3890664840433101773">ኢሜይል ያክሉ</translation> -<translation id="3893306401511601929">ራስ-ሰር ስዕል-ላይ-ስዕል</translation> <translation id="3897092660631435901">ምናሌ</translation> <translation id="3901925938762663762">ካርዱ አገልግሎት ጊዜው አብቅቷል</translation> <translation id="390391808978419508">የእረፍት ጊዜን በመክፈት ላይ</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">ስርዓተ ክወናዎች</translation> <translation id="4854853140771946034">በGoogle Keep ውስጥ አዲስ ማስታወሻ በፍጥነት ፍጠር</translation> <translation id="485902285759009870">ኮድ በማረጋገጥ ላይ...</translation> -<translation id="4862630594858951805">ዋጋው ሲቀንስ ኢሜይሎች እንዲደርሱዎት ይፈልጋሉ?</translation> <translation id="4864406669374375262">ወደ ቅንጥብ ሰሌዳ የተቀዳ ስሪት ሕብረቁምፊ</translation> <translation id="486459320933704969">ወላጅ ወይም አሳዳጊ ይህን ድር ጣቢያ ቢጎበኙ ምንም ችግር የለውም ማለት አለባቸው</translation> <translation id="4866506163384898554">የእርስዎን ጠቋሚ ለማሳየት |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ይጫኑ</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><የፍለጋ ቃል ይተይቡ></translation> <translation id="671076103358959139">የምዝገባ ማስመሰያ፦</translation> <translation id="6711464428925977395">በተኪ አገልጋዩ ላይ የሆነ ችግር አለ ወይም አድራሻው ትክክል አይደለም።</translation> -<translation id="6716013836112872184">በማንኛውም ጣቢያ ላይ ዋጋው ሲቀንስ ኢሜይሎች ወደ <ph name="EMAIL" /> እንዲላኩ ያድርጉ።</translation> <translation id="6716672519412350405"><ph name="URL" /> የዙሪያዎ የ3ል ካርታ መፍጠር እና የካሜራ ቦታን መከታተል ይፈልጋል</translation> <translation id="6718612893943028815">ካሜራ ይጠቀም?</translation> <translation id="6721164594124191969">መሰየሚያዎች (አንጸባራቂ)</translation> @@ -4035,6 +4031,5 @@ <li>ከሌላ አውታረ መረብ ጋር ለመገናኘት ይሞክሩ</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ራስ-ሰር ስዕል-ላይ-ስዕል</translation> <translation id="997986563973421916">ከGoogle Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index 7738411..a9ad8ee 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -1264,7 +1264,6 @@ <translation id="36224234498066874">محو بيانات التصفّح...</translation> <translation id="362276910939193118">عرض السجلّ بكامله</translation> <translation id="3624292976554877583">تصنيفات (غير لامعة)</translation> -<translation id="3625929652356389713">يمكن للموقع الإلكتروني طلب فتح النوافذ على وضع "نافذة ضمن النافذة" تلقائيًا.</translation> <translation id="3628905806504633297">{0,plural, =1{لا تنصح سياسة المشرف بنقل هذا الملف إلى <ph name="DESTINATION_NAME" />.}zero{لا تنصح سياسة المشرف بنقل هذه الملفات إلى <ph name="DESTINATION_NAME" />.}two{لا تنصح سياسة المشرف بنقل هذين الملفَّين إلى <ph name="DESTINATION_NAME" />.}few{لا تنصح سياسة المشرف بنقل هذه الملفات إلى <ph name="DESTINATION_NAME" />.}many{لا تنصح سياسة المشرف بنقل هذه الملفات إلى <ph name="DESTINATION_NAME" />.}other{لا تنصح سياسة المشرف بنقل هذه الملفات إلى <ph name="DESTINATION_NAME" />.}}</translation> <translation id="3630155396527302611">إذا تم بالفعل إدراج صفحة الويب كبرنامج مسموح له بالدخول إلى الشبكة، فجرّب إزالتها من القائمة وإضافتها مرةً أخرى.</translation> @@ -1400,7 +1399,6 @@ <translation id="388632593194507180">تم رصد المراقبة</translation> <translation id="3886948180919384617">المكدِّس 3</translation> <translation id="3890664840433101773">إضافة بريد إلكتروني</translation> -<translation id="3893306401511601929">أدوات ضبط إعدادات وضع "نافذة ضمن النافذة" تلقائيًا</translation> <translation id="3897092660631435901">قائمة</translation> <translation id="3901925938762663762">انتهت صلاحية البطاقة</translation> <translation id="390391808978419508">انتهت مهلة الفتح</translation> @@ -1871,7 +1869,6 @@ <translation id="4852429274334674023">أنظمة تشغيل</translation> <translation id="4854853140771946034">إنشاء ملاحظة جديدة في Google Keep بسرعة</translation> <translation id="485902285759009870">جارٍ التحقّق من الرمز…</translation> -<translation id="4862630594858951805">هل تريد تلقّي رسائل إلكترونية عند انخفاض السعر؟</translation> <translation id="4864406669374375262">تم نسخ سلسلة الإصدار إلى الحافظة.</translation> <translation id="486459320933704969">يجب أن يوافق الوصي عليك أو أحد والديَك على طلبك بزيارة هذا الموقع الإلكتروني.</translation> <translation id="4866506163384898554">اضغط على |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| لعرض المؤشر.</translation> @@ -2760,7 +2757,6 @@ <translation id="6710594484020273272"><إدخال عبارة البحث></translation> <translation id="671076103358959139">الرمز المميّز للتسجيل:</translation> <translation id="6711464428925977395">هناك خطأ ما في الخادم الوكيل، أو العنوان غير صحيح.</translation> -<translation id="6716013836112872184">يمكنك تلقّي رسائل إلكترونية على <ph name="EMAIL" /> عند انخفاض الأسعار على أي موقع إلكتروني.</translation> <translation id="6716672519412350405">يريد الموقع الإلكتروني <ph name="URL" /> إنشاء خريطة ثلاثية الأبعاد للبيئة المحيطة بك وتتبُّع موضع الكاميرا.</translation> <translation id="6718612893943028815">هل تريد استخدام الكاميرا؟</translation> <translation id="6721164594124191969">تصنيفات (لامعة)</translation> @@ -4042,6 +4038,5 @@ <li>حاوِل الاتصال بشبكة أخرى</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">أدوات ضبط إعدادات وضع "نافذة ضمن النافذة" تلقائيًا</translation> <translation id="997986563973421916">من Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb index 29d735ae..f475910c 100644 --- a/components/strings/components_strings_as.xtb +++ b/components/strings/components_strings_as.xtb
@@ -1260,7 +1260,6 @@ <translation id="36224234498066874">ব্ৰাউজিং ডেটা মচক...</translation> <translation id="362276910939193118">সম্পূৰ্ণ ইতিহাস দেখুৱাওক</translation> <translation id="3624292976554877583">লেবেল (মেট)</translation> -<translation id="3625929652356389713">স্বয়ংক্ৰিয়ভাৱে picture-in-picture ৱিণ্ড’ খুলিবলৈ বিচাৰিব পাৰে</translation> <translation id="3628905806504633297">{0,plural, =1{প্ৰশাসকৰ নীতিয়ে এই ফাইলটো <ph name="DESTINATION_NAME" />লৈ স্থানান্তৰ কৰাটো চুপাৰিছ নকৰে}one{প্ৰশাসকৰ নীতিয়ে এই ফাইলসমূহ <ph name="DESTINATION_NAME" />লৈ স্থানান্তৰ কৰাটো চুপাৰিছ নকৰে}other{প্ৰশাসকৰ নীতিয়ে এই ফাইলসমূহ <ph name="DESTINATION_NAME" />লৈ স্থানান্তৰ কৰাটো চুপাৰিছ নকৰে}}</translation> <translation id="3630155396527302611">যদি ইয়াক ইতিমধ্যে এটা নেটৱৰ্কটো এক্সেছ কৰিব পৰা প্ৰ‘গ্ৰেম হিচাপে তালিকাভুক্ত কৰি থোৱা থাকে, তেন্তে সেই তালিকাখনৰ পৰা ইয়াক আঁতৰাই পুনৰ যোগ কৰি চাওক</translation> @@ -1395,7 +1394,6 @@ <translation id="388632593194507180">নিৰীক্ষণ কৰি থকা বুলি চিনাক্ত কৰা হৈছে</translation> <translation id="3886948180919384617">ষ্টেকাৰ ৩</translation> <translation id="3890664840433101773">ইমেইল যোগ কৰক</translation> -<translation id="3893306401511601929">স্বয়ংক্ৰিয় picture-in-picture</translation> <translation id="3897092660631435901">মেনু</translation> <translation id="3901925938762663762">কার্ডখনৰ ম্যাদ উকলিল</translation> <translation id="390391808978419508">খোলাৰ সময় উকলিছে</translation> @@ -1863,7 +1861,6 @@ <translation id="4852429274334674023">অপাৰেটিং ছিষ্টেম</translation> <translation id="4854853140771946034">Google Keepত ক্ষিপ্ৰভাৱে এটা নতুন টোকা সৃষ্টি কৰক</translation> <translation id="485902285759009870">ক’ডটো সত্যাপন কৰি থকা হৈছে...</translation> -<translation id="4862630594858951805">মূল্য হ্ৰাস হ'লে ইমেইল বিচাৰে নেকি?</translation> <translation id="4864406669374375262">সংস্কৰণৰ ষ্ট্ৰিং ক্লিপব’ৰ্ডলৈ প্ৰতিলিপি কৰা হৈছে</translation> <translation id="486459320933704969">আ্ৰপুনি এই ৱেবছাইটটো চোৱাত আপত্তি নাই বুলি এগৰাকী অভিভাৱক অথবা প্ৰাপ্তবয়স্ক পৰিয়ালৰ লোকে জনাব লাগিব</translation> <translation id="4866506163384898554">আপোনাৰ কাৰ্ছৰটো দেখুৱাবলৈ |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| টিপক</translation> @@ -2751,7 +2748,6 @@ <translation id="6710594484020273272"><সন্ধান কৰিবলগীয়া শব্দ টাইপ কৰক></translation> <translation id="671076103358959139">পঞ্জীয়নৰ ট’কেন:</translation> <translation id="6711464428925977395">প্ৰ’ক্সি ছার্ভাৰত কিবা আসোঁৱাহ আছে বা ঠিকনাটো শুদ্ধ নহয়।</translation> -<translation id="6716013836112872184">কোনো ছাইটত মূল্য হ্ৰাস হ'লে <ph name="EMAIL" />লৈ ইমেইল পঠিয়াওক।</translation> <translation id="6716672519412350405"><ph name="URL" />এ আপোনাৰ চৌপাশৰ এখন 3D মেপ সৃষ্টি কৰিবলৈ আৰু কেমেৰাৰ স্থান ট্ৰেক কৰিবলৈ বিচাৰিছে</translation> <translation id="6718612893943028815">কেমেৰা ব্যৱহাৰ কৰিবনে?</translation> <translation id="6721164594124191969">লেবেল (গ্লছযুক্ত)</translation> @@ -4029,6 +4025,5 @@ <li>অন্য নেটৱৰ্কত সংযোগ কৰি চাওক</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">স্বয়ংক্ৰিয় picture-in-picture</translation> <translation id="997986563973421916">Google Payৰ পৰা</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb index bb2b257..3ee53ac 100644 --- a/components/strings/components_strings_az.xtb +++ b/components/strings/components_strings_az.xtb
@@ -1260,7 +1260,6 @@ <translation id="36224234498066874">Axtarış Datasını Silin...</translation> <translation id="362276910939193118">Tam tarixçəni göstərin</translation> <translation id="3624292976554877583">Etiket (mat)</translation> -<translation id="3625929652356389713">Şəkildə şəkil pəncərələrini avtomatik açmaq istəyə bilər</translation> <translation id="3628905806504633297">{0,plural, =1{Administrator siyasəti bu faylı <ph name="DESTINATION_NAME" /> bölməsinə ötürməyi tövsiyə etmir}other{Administrator siyasəti bu faylları <ph name="DESTINATION_NAME" /> bölməsinə ötürməyi tövsiyə etmir}}</translation> <translation id="3630155396527302611">Şəbəkəyə girmək icazəsi olan proqram olaraq siyahılanıb, onu siyahıdan silin və yenidən əlavə edin.</translation> <translation id="3630426379756188722">"Cihazın tapılması" düyməsi, aktivləşdirərək Google Hesabında cihazın tapılması bölməsinə keçin</translation> @@ -1394,7 +1393,6 @@ <translation id="388632593194507180">Nəzarət Aşkarlanıb</translation> <translation id="3886948180919384617">Yığıcı 3</translation> <translation id="3890664840433101773">E-poçt ünvanı əlavə edin</translation> -<translation id="3893306401511601929">Avtomatik şəkildə şəkil</translation> <translation id="3897092660631435901">Menyu</translation> <translation id="3901925938762663762">Kartın vaxtı bitib.</translation> <translation id="390391808978419508">Açma vaxtı bitdi</translation> @@ -1863,7 +1861,6 @@ <translation id="4852429274334674023">Əməliyyat sistemləri</translation> <translation id="4854853140771946034">Google Keep'də cəld yeni qeyd yaradın</translation> <translation id="485902285759009870">Kod doğrulanır...</translation> -<translation id="4862630594858951805">Qiymət düşdükdə e-məktub göndərilsin?</translation> <translation id="4864406669374375262">Versiya sətri mübadilə buferinə kopyalandı</translation> <translation id="486459320933704969">Valideyn və ya qəyyum bu vebsaytı ziyarət etmənizə icazə verməlidir</translation> <translation id="4866506163384898554">Kursoru göstərmək üçün |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| düyməsinə basın</translation> @@ -2752,7 +2749,6 @@ <translation id="6710594484020273272"><Axtarış sözünü yazın></translation> <translation id="671076103358959139">Qeydiyyat Açarı:</translation> <translation id="6711464428925977395">Proksi serveri ilə bağlı nəsə xəta var və ya ünvan yanlışdır.</translation> -<translation id="6716013836112872184">Hansısa saytda qiymət düşdükdə <ph name="EMAIL" /> ünvanında e-məktub alın.</translation> <translation id="6716672519412350405"><ph name="URL" /> ətrafınızdakı sahələrin 3D xəritəsini yaratmaq və kamera mövqeyini izləmək istəyir</translation> <translation id="6718612893943028815">Kameradan istifadə edilsin?</translation> <translation id="6721164594124191969">Etiket (parlaq)</translation> @@ -4032,6 +4028,5 @@ <li>Başqa şəbəkəyə qoşulun</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">avtomatik şəkildə şəkil</translation> <translation id="997986563973421916">Google Pay'dən</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb index 9fbb3ed5..809cf64 100644 --- a/components/strings/components_strings_be.xtb +++ b/components/strings/components_strings_be.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">Выдаліць гісторыю праглядаў...</translation> <translation id="362276910939193118">Паказаць усю гісторыю</translation> <translation id="3624292976554877583">Матавы этыкетачны матэрыял</translation> -<translation id="3625929652356389713">Можа запытваць дазвол на аўтаматычнае адкрыццё акон у рэжыме "відарыс у відарысе"</translation> <translation id="3628905806504633297">{0,plural, =1{Згодна з зададзенай адміністратарам палітыкай, не рэкамендуецца пераносіць гэты файл сюды: <ph name="DESTINATION_NAME" />}one{Згодна з зададзенай адміністратарам палітыкай, не рэкамендуецца пераносіць гэтыя файлы сюды: <ph name="DESTINATION_NAME" />}few{Згодна з зададзенай адміністратарам палітыкай, не рэкамендуецца пераносіць гэтыя файлы сюды: <ph name="DESTINATION_NAME" />}many{Згодна з зададзенай адміністратарам палітыкай, не рэкамендуецца пераносіць гэтыя файлы сюды: <ph name="DESTINATION_NAME" />}other{Згодна з зададзенай адміністратарам палітыкай, не рэкамендуецца пераносіць гэтыя файлы сюды: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Калі браўзер ужо ўказаны як праграма, якой дазволены доступ да сеткі, паспрабуйце выдаліць яго са спіса і дадаць зноў.</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">Выяўлена ажыццяўленне маніторынгу</translation> <translation id="3886948180919384617">Укладчык 3</translation> <translation id="3890664840433101773">Дадаць адрас электроннай пошты</translation> -<translation id="3893306401511601929">Аўтаматычны пераход у рэжым "відарыс у відарысе"</translation> <translation id="3897092660631435901">Меню</translation> <translation id="3901925938762663762">Тэрмін дзеяння карткі скончыўся</translation> <translation id="390391808978419508">Час чакання адкрыцця перавышаны</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">Аперацыйныя сістэмы</translation> <translation id="4854853140771946034">Хутка стварыць новую нататку ў Google Keep</translation> <translation id="485902285759009870">Ідзе спраўджанне кода…</translation> -<translation id="4862630594858951805">Хочаце атрымліваць электронныя лісты пры зніжэнні цаны?</translation> <translation id="4864406669374375262">Радок з версіяй скапіраваны ў буфер абмену</translation> <translation id="486459320933704969">Адзін з бацькоў або законны прадстаўнік павінен даць дазвол на наведванне гэтага сайта</translation> <translation id="4866506163384898554">Націсніце "<ph name="ACCELERATOR1" />" + "<ph name="ACCELERATOR2" />", каб убачыць курсор</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Увядзіце пошукавы запыт></translation> <translation id="671076103358959139">Маркер рэгістрацыі:</translation> <translation id="6711464428925977395">Нешта не так з проксі-серверам або адрас няправільны.</translation> -<translation id="6716013836112872184">Атрымлівайце электронныя лісты аб зніжэнні цаны на сайтах на адрас <ph name="EMAIL" />.</translation> <translation id="6716672519412350405">Сайт <ph name="URL" /> запытвае дазвол стварыць 3D-карту вашага асяроддзя і адсочваць становішча камеры</translation> <translation id="6718612893943028815">Выкарыстоўваць камеру?</translation> <translation id="6721164594124191969">Глянцавы этыкетачны матэрыял</translation> @@ -4034,6 +4030,5 @@ <li>Паспрабуйце падключыцца да іншай сеткі.</li> </ul></translation> <translation id="994346157028146140">JIS В1</translation> -<translation id="995240771322213706">аўтаматычны пераход у рэжым "відарыс у відарысе"</translation> <translation id="997986563973421916">З Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 462d5199..365ece46 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Изчистване на данните за сърфирането...</translation> <translation id="362276910939193118">Цялата история</translation> <translation id="3624292976554877583">Етикети (матирани)</translation> -<translation id="3625929652356389713">Може да поиска автоматично да отваря прозорци в режим „картина в картината“</translation> <translation id="3628905806504633297">{0,plural, =1{Според администраторско правило прехвърлянето на този файл на <ph name="DESTINATION_NAME" /> не се препоръчва}other{Според администраторско правило прехвърлянето на тези файлове на <ph name="DESTINATION_NAME" /> не се препоръчва}}</translation> <translation id="3630155396527302611">Ако браузърът вече е в списъка с програми с разрешен достъп до мрежата, опитайте да го премахнете оттам и да го добавите отново.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Установено е наблюдение</translation> <translation id="3886948180919384617">Стакер 3</translation> <translation id="3890664840433101773">Добавяне на имейл адрес</translation> -<translation id="3893306401511601929">Автоматично активиране на режима „картина в картината“</translation> <translation id="3897092660631435901">Меню</translation> <translation id="3901925938762663762">Картата е с изтекла валидност</translation> <translation id="390391808978419508">Времето за изчакване при отваряне изтече</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Операционни системи</translation> <translation id="4854853140771946034">Бързо създаване на бележка в Google Keep</translation> <translation id="485902285759009870">Кодът се потвърждава...</translation> -<translation id="4862630594858951805">Искате да получавате имейли, когато цената се понижи?</translation> <translation id="4864406669374375262">Низът на версията е копиран в буферната памет</translation> <translation id="486459320933704969">Родител или настойник трябва да разреши да посетите този уебсайт</translation> <translation id="4866506163384898554">Натиснете |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|, за да се покаже курсорът</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Въведете дума за търсене></translation> <translation id="671076103358959139">Означение за регистриране:</translation> <translation id="6711464428925977395">Нещо не е наред с прокси сървъра или адресът е неправилен.</translation> -<translation id="6716013836112872184">Получавайте имейли на <ph name="EMAIL" /> при понижение на цената в който и да е сайт.</translation> <translation id="6716672519412350405"><ph name="URL" /> иска да създаде триизмерна карта на заобикалящата ви среда и да следи позицията на камерата</translation> <translation id="6718612893943028815">Да се използва ли камерата?</translation> <translation id="6721164594124191969">Етикети (гланцирани)</translation> @@ -4035,6 +4031,5 @@ <li>Опитайте да се свържете с друга мрежа.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">автоматично активиране на режима „картина в картината“</translation> <translation id="997986563973421916">От Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb index 9a917f1..6998ab8 100644 --- a/components/strings/components_strings_bn.xtb +++ b/components/strings/components_strings_bn.xtb
@@ -1264,7 +1264,6 @@ <translation id="36224234498066874">ব্রাউজ করা ডেটা সাফ করুন...</translation> <translation id="362276910939193118">সম্পূর্ণ ইতিহাস দেখুন</translation> <translation id="3624292976554877583">লেবেল (ম্যাট)</translation> -<translation id="3625929652356389713">ছবির-মধ্যে-ছবির উইন্ডো অটোমেটিক খোলার জন্য বলতে পারে</translation> <translation id="3628905806504633297">{0,plural, =1{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল ট্রান্সফার করা যাবে না}one{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল ট্রান্সফার করা যাবে না}other{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল ট্রান্সফার করা যাবে না}}</translation> <translation id="3630155396527302611">নেটওয়ার্ক অ্যাক্সেস করতে এটি যদি ইতোমধ্যে মঞ্জুরিকৃত প্রোগ্রাম হিসাবে তালিকাতে থাকে, তাহলে তালিকাটি থেকে এটি সরানোর চেষ্টা করে আবার যোগ করে দেখুন।</translation> @@ -1399,7 +1398,6 @@ <translation id="388632593194507180">মনিটর করা হচ্ছে, সেটি শনাক্ত করা গেছে</translation> <translation id="3886948180919384617">স্ট্যাকার ৩</translation> <translation id="3890664840433101773">ইমেল আইডি যোগ করুন</translation> -<translation id="3893306401511601929">অটোমেটিক ছবির-মধ্যে-ছবি</translation> <translation id="3897092660631435901">মেনু</translation> <translation id="3901925938762663762">কার্ডটির মেয়াদ শেষ হয়েছে</translation> <translation id="390391808978419508">খোলার সময় শেষ হয়ে গেছে</translation> @@ -1868,7 +1866,6 @@ <translation id="4852429274334674023">অপারেটিং সিস্টেম</translation> <translation id="4854853140771946034">Google Keep-এ চটপট নতুন নোট তৈরি করুন</translation> <translation id="485902285759009870">কোড যাচাই করা হচ্ছে…</translation> -<translation id="4862630594858951805">দাম কমলে ইমেল পেতে চান?</translation> <translation id="4864406669374375262">ক্লিপবোর্ডে ভার্সন স্ট্রিং কপি করা হয়েছে</translation> <translation id="486459320933704969">একজন প্যারেন্ট বা অভিভাবককে বলতে হবে যে এই ওয়েবসাইটটি দেখার জন্য আপনার পক্ষে ঠিক আছে</translation> <translation id="4866506163384898554">আপনার কার্সার দেখাতে |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| প্রেস করুন</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><সার্চের পদ লিখুন></translation> <translation id="671076103358959139">নথিভুক্ত করার জন্য টোকেন:</translation> <translation id="6711464428925977395">প্রক্সী সার্ভারের কোনো সমস্যা হয়েছে, অথবা ঠিকানাটি ভুল।</translation> -<translation id="6716013836112872184">কোনও সাইটে দাম কমে গেলে <ph name="EMAIL" />-এ ইমেল পান।</translation> <translation id="6716672519412350405"><ph name="URL" /> আপনার আশেপাশের এলাকার একটি 3D ম্যাপ তৈরি করতে এবং ক্যামেরার অবস্থান ট্র্যাক করতে চাইছে</translation> <translation id="6718612893943028815">ক্যামেরা ব্যবহার করবেন?</translation> <translation id="6721164594124191969">লেবেল (গ্লসি)</translation> @@ -4035,6 +4031,5 @@ <li>অন্য ওয়াই-ফাই নেটওয়ার্কের সাথে সংযুক্ত করে দেখুন</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">অটোমেটিক ছবির-মধ্যে-ছবি</translation> <translation id="997986563973421916">Google Pay থেকে</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb index 5e01205..37677413 100644 --- a/components/strings/components_strings_bs.xtb +++ b/components/strings/components_strings_bs.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Obriši podatke pregledanja...</translation> <translation id="362276910939193118">Prikaži cijelu historiju</translation> <translation id="3624292976554877583">Naljepnice (mat)</translation> -<translation id="3625929652356389713">Može tražiti da automatski otvara prozore slike u slici</translation> <translation id="3628905806504633297">{0,plural, =1{Pravila administratora ne preporučuju prijenos ovog fajla na uređaj <ph name="DESTINATION_NAME" />}one{Pravila administratora ne preporučuju prijenos ovih fajlova na uređaj <ph name="DESTINATION_NAME" />}few{Pravila administratora ne preporučuju prijenos ovih fajlova na uređaj <ph name="DESTINATION_NAME" />}other{Pravila administratora ne preporučuju prijenos ovih fajlova na uređaj <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Ako je već naveden kao program kome je dozvoljen pristup mreži, pokušajte ga ukloniti s liste pa ponovo dodati.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Otkriveno je praćenje</translation> <translation id="3886948180919384617">Slagač 3</translation> <translation id="3890664840433101773">Dodajte adresu e-pošte</translation> -<translation id="3893306401511601929">Automatska slika u slici</translation> <translation id="3897092660631435901">Meni</translation> <translation id="3901925938762663762">Kartica je istekla</translation> <translation id="390391808978419508">Otvaranje je isteklo</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Operativni sistemi</translation> <translation id="4854853140771946034">Brzo kreirajte novu bilješku u Google Keepu</translation> <translation id="485902285759009870">Potvrda koda...</translation> -<translation id="4862630594858951805">Želite primati e-poruke kada cijena bude niža?</translation> <translation id="4864406669374375262">Niz s informacijama o verziji je kopiran u međumemoriju</translation> <translation id="486459320933704969">Roditelj ili staratelj mora reći da možeš posjetiti ovu web lokaciju</translation> <translation id="4866506163384898554">Pritisnite |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| da prikažete kursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Unesite pojam za pretraživanje></translation> <translation id="671076103358959139">Token za prijavu:</translation> <translation id="6711464428925977395">Nešto nije uredu s proksi serverom ili je adresa netačna.</translation> -<translation id="6716013836112872184">Primajte e-poruke na <ph name="EMAIL" /> kada cijena bude niža na bilo kojoj web lokaciji.</translation> <translation id="6716672519412350405"><ph name="URL" /> želi kreirati 3D mapu vašeg okruženja i pratiti položaj kamere</translation> <translation id="6718612893943028815">Koristiti kameru?</translation> <translation id="6721164594124191969">Naljepnice (sjajne)</translation> @@ -4036,6 +4032,5 @@ <li>Pokušajte se povezati na drugu mrežu</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatska slika u slici</translation> <translation id="997986563973421916">Iz Google Paya</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 60ef36f..e3ec7728 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Esborra dades de navegació</translation> <translation id="362276910939193118">Mostra l'historial complet</translation> <translation id="3624292976554877583">Etiquetes (mats)</translation> -<translation id="3625929652356389713">Pot demanar permís per obrir automàticament finestres d'imatge sobre imatge</translation> <translation id="3628905806504633297">{0,plural, =1{La política de l'administrador no recomana transferir aquest fitxer a <ph name="DESTINATION_NAME" />}other{La política de l'administrador no recomana transferir aquests fitxers a <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Si ja està inclòs a la llista de programes autoritzats per accedir a la xarxa, proveu de suprimir-lo de la llista i torneu-lo a afegir.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">S'ha detectat supervisió</translation> <translation id="3886948180919384617">Apiladora 3</translation> <translation id="3890664840433101773">Afegeix un correu electrònic</translation> -<translation id="3893306401511601929">Imatge sobre imatge automàtica</translation> <translation id="3897092660631435901">Menú</translation> <translation id="3901925938762663762">La targeta ha caducat</translation> <translation id="390391808978419508">S'ha esgotat el temps d'espera per a l'obertura</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Sistemes operatius</translation> <translation id="4854853140771946034">Crea una nota nova a Google Keep ràpidament</translation> <translation id="485902285759009870">S'està verificant el codi...</translation> -<translation id="4862630594858951805">Vols rebre correus electrònics quan el preu baixi?</translation> <translation id="4864406669374375262">S'ha copiat la cadena de versió al porta-retalls</translation> <translation id="486459320933704969">El teu pare, mare o tutor ha de dir si pots visitar aquest lloc web</translation> <translation id="4866506163384898554">Prem |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />| perquè es mostri el cursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Escriviu el terme de cerca></translation> <translation id="671076103358959139">Testimoni d'inscripció:</translation> <translation id="6711464428925977395">Hi ha hagut algun problema amb el servidor intermediari o l'adreça no és correcta.</translation> -<translation id="6716013836112872184">Rep correus electrònics a <ph name="EMAIL" /> quan el preu baixi en qualsevol lloc web.</translation> <translation id="6716672519412350405"><ph name="URL" /> vol crear un mapa en 3D del teu entorn i fer un seguiment de la posició de la càmera</translation> <translation id="6718612893943028815">Vols utilitzar la càmera?</translation> <translation id="6721164594124191969">Etiquetes (brillants)</translation> @@ -4036,6 +4032,5 @@ <li>Prova de connectar-te a una altra xarxa</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">imatge sobre imatge automàtica</translation> <translation id="997986563973421916">De Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index 35b60d15..9fe4c32a 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -1260,7 +1260,6 @@ <translation id="36224234498066874">Vymazat údaje o prohlížení...</translation> <translation id="362276910939193118">Zobrazit celou historii</translation> <translation id="3624292976554877583">Štítky (matné)</translation> -<translation id="3625929652356389713">Může žádat o automatické otevření oken obrazu v obraze</translation> <translation id="3628905806504633297">{0,plural, =1{Zásady administrátora nedoporučují přenášet tento soubor do následujícího cíle: <ph name="DESTINATION_NAME" />}few{Zásady administrátora nedoporučují přenášet tyto soubory do následujícího cíle: <ph name="DESTINATION_NAME" />}many{Zásady administrátora nedoporučují přenášet tyto soubory do následujícího cíle: <ph name="DESTINATION_NAME" />}other{Zásady administrátora nedoporučují přenášet tyto soubory do následujícího cíle: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Pokud je program v seznamu programů s oprávněním přistupovat k síti již uveden, zkuste jej ze seznamu odebrat a znovu přidat.</translation> <translation id="3630426379756188722">Tlačítko funkce Najdi moje zařízení, aktivací přejdete na funkci Najdi moje zařízení v účtu Google</translation> @@ -1394,7 +1393,6 @@ <translation id="388632593194507180">Bylo zjištěno sledování</translation> <translation id="3886948180919384617">Stohovač 3</translation> <translation id="3890664840433101773">Přidat e-mail</translation> -<translation id="3893306401511601929">Automatický obraz v obraze</translation> <translation id="3897092660631435901">Nabídka</translation> <translation id="3901925938762663762">Karta vypršela</translation> <translation id="390391808978419508">Časový limit otevření vypršel</translation> @@ -1863,7 +1861,6 @@ <translation id="4852429274334674023">Operační systémy</translation> <translation id="4854853140771946034">Rychle vytvořit novou poznámku v aplikaci Google Keep</translation> <translation id="485902285759009870">Ověřování kódu…</translation> -<translation id="4862630594858951805">Chcete dostávat e‑maily, když cena klesne?</translation> <translation id="4864406669374375262">Řetězec verze byl zkopírován do schránky</translation> <translation id="486459320933704969">Tvůj rodič nebo zákonný zástupce musí potvrdit, že web můžeš navštívit</translation> <translation id="4866506163384898554">Kurzor zobrazíte stisknutím kláves |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> @@ -2751,7 +2748,6 @@ <translation id="6710594484020273272"><Zadejte vyhledávací dotaz></translation> <translation id="671076103358959139">Registrační token:</translation> <translation id="6711464428925977395">Došlo k chybě proxy serveru nebo jste zadali nesprávnou adresu.</translation> -<translation id="6716013836112872184">Nechte si zaslat e‑maily na adresu <ph name="EMAIL" />, když cena na jakémkoli webu klesne.</translation> <translation id="6716672519412350405">Web <ph name="URL" /> chce vytvořit 3D mapu vašeho okolí a sledovat polohu kamery</translation> <translation id="6718612893943028815">Použít kameru?</translation> <translation id="6721164594124191969">Štítky (lesklé)</translation> @@ -4030,6 +4026,5 @@ <li>Zkuste se připojit k jiné síti.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatický obraz v obraze</translation> <translation id="997986563973421916">Z Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_cy.xtb b/components/strings/components_strings_cy.xtb index 35eba88..8facc00 100644 --- a/components/strings/components_strings_cy.xtb +++ b/components/strings/components_strings_cy.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Clirio Data Pori…</translation> <translation id="362276910939193118">Dangos Hanes Llawn</translation> <translation id="3624292976554877583">Labeli (Matte)</translation> -<translation id="3625929652356389713">Yn gallu gofyn i agor ffenestri llun mewn llun yn awtomatig</translation> <translation id="3628905806504633297">{0,plural, =1{Nid yw'r polisi gweinyddwr yn argymell trosglwyddo'r ffeil hon i <ph name="DESTINATION_NAME" />}zero{Nid yw'r polisi gweinyddwr yn argymell trosglwyddo'r ffeiliau hyn i <ph name="DESTINATION_NAME" />}two{Nid yw'r polisi gweinyddwr yn argymell trosglwyddo'r ffeiliau hyn i <ph name="DESTINATION_NAME" />}few{Nid yw'r polisi gweinyddwr yn argymell trosglwyddo'r ffeiliau hyn i <ph name="DESTINATION_NAME" />}many{Nid yw'r polisi gweinyddwr yn argymell trosglwyddo'r ffeiliau hyn i <ph name="DESTINATION_NAME" />}other{Nid yw'r polisi gweinyddwr yn argymell trosglwyddo'r ffeiliau hyn i <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Os yw eisoes wedi'i rhestru fel rhaglen a ganiateir i gael mynediad at y rhwydwaith, rhowch gynnig ar ei thynnu o'r rhestr a'i hychwanegu eto.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Canfuwyd Monitro</translation> <translation id="3886948180919384617">Pentyrrwr 3</translation> <translation id="3890664840433101773">Ychwanegwch e-bost</translation> -<translation id="3893306401511601929">Llun mewn llun awtomatig</translation> <translation id="3897092660631435901">Dewislen</translation> <translation id="3901925938762663762">Mae'r cerdyn wedi darfod</translation> <translation id="390391808978419508">Mae agor wedi cymryd gormod o amser</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">Systemau gweithredu</translation> <translation id="4854853140771946034">Creu nodyn newydd yn Google Keep yn gyflym</translation> <translation id="485902285759009870">Wrthi'n dilysu'r cod...</translation> -<translation id="4862630594858951805">Eisiau e-byst pan fo'r pris yn gostwng?</translation> <translation id="4864406669374375262">Llinyn fersiwn wedi'i gopïo i'r clipfwrdd</translation> <translation id="486459320933704969">Mae'n rhaid i riant neu warcheidwad ddweud ei bod yn iawn i ti ymweld â'r wefan hon</translation> <translation id="4866506163384898554">Pwyswch |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| i ddangos eich cyrchwr</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Teipio term chwilio></translation> <translation id="671076103358959139">Tocyn Cofrestru:</translation> <translation id="6711464428925977395">Mae rhywbeth o'i le ar y dirprwy weinydd, neu mae'r cyfeiriad yn anghywir.</translation> -<translation id="6716013836112872184">Cael e-byst wedi'u hanfon at <ph name="EMAIL" /> pan fo'r pris yn gostwng ar unrhyw wefan.</translation> <translation id="6716672519412350405">Mae <ph name="URL" /> eisiau creu map 3D o'ch amgylchoedd ac olrhain safle'r camera</translation> <translation id="6718612893943028815">Defnyddio camera?</translation> <translation id="6721164594124191969">Labeli (Sglein)</translation> @@ -4033,6 +4029,5 @@ <li>Rhowch gynnig ar gysylltu â rhwydwaith arall</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">llun mewn llun awtomatig</translation> <translation id="997986563973421916">O Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index 8bfc06a..cf45f9e 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Ryd browserdata...</translation> <translation id="362276910939193118">Vis hele historikken</translation> <translation id="3624292976554877583">Etiketter (matte)</translation> -<translation id="3625929652356389713">Kan anmode om automatisk at åbne vinduer med integreret billede</translation> <translation id="3628905806504633297">{0,plural, =1{Administratorpolitikken fraråder at overføre denne fil til <ph name="DESTINATION_NAME" />}one{Administratorpolitikken fraråder at overføre denne fil til <ph name="DESTINATION_NAME" />}other{Administratorpolitikken fraråder at overføre disse filer til l <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Hvis programmet allerede står på listen over programmer, der har adgang til netværket, kan du prøve at fjerne det fra listen og tilføje det igen.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Overvågning blev registreret.</translation> <translation id="3886948180919384617">Stabler 3</translation> <translation id="3890664840433101773">Tilføj mailadresse</translation> -<translation id="3893306401511601929">Automatisk integreret billede</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">Kortet er udløbet</translation> <translation id="390391808978419508">Åbningen fik timeout</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Operativsystemer</translation> <translation id="4854853140771946034">Opret hurtigt en ny note i Google Keep</translation> <translation id="485902285759009870">Verificerer koden...</translation> -<translation id="4862630594858951805">Vil du have mails, når prisen falder?</translation> <translation id="4864406669374375262">Versionsstrengen er blevet kopieret til udklipsholderen</translation> <translation id="486459320933704969">En forælder eller værge skal godkende, at du må besøge dette website</translation> <translation id="4866506163384898554">Tryk på |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| for at se din markør</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Indtast søgeterm></translation> <translation id="671076103358959139">Tilmeldingstoken:</translation> <translation id="6711464428925977395">Der er noget galt med proxyserveren, eller adressen er forkert.</translation> -<translation id="6716013836112872184">Få mails sendt til <ph name="EMAIL" />, når prisen falder på et website.</translation> <translation id="6716672519412350405"><ph name="URL" /> vil oprette et 3D-kort over dine omgivelser og registrere kamerapositionen</translation> <translation id="6718612893943028815">Vil du bruge kameraet?</translation> <translation id="6721164594124191969">Etiketter (blanke)</translation> @@ -4036,6 +4032,5 @@ <li>Prøv at oprette forbindelse til et andet netværk</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatisk integreret billede</translation> <translation id="997986563973421916">Fra Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index 744af95d..1fb886d8a 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -1255,7 +1255,6 @@ <translation id="36224234498066874">Browserdaten löschen...</translation> <translation id="362276910939193118">Gesamtverlauf anzeigen</translation> <translation id="3624292976554877583">Etiketten (matt)</translation> -<translation id="3625929652356389713">Darf nachfragen, ob Fenster automatisch als Bild im Bild geöffnet werden sollen</translation> <translation id="3628905806504633297">{0,plural, =1{Gemäß der Administratorrichtlinie wird nicht empfohlen, diese Datei auf „<ph name="DESTINATION_NAME" />“ zu übertragen}other{Gemäß der Administratorrichtlinie wird nicht empfohlen, diese Dateien auf „<ph name="DESTINATION_NAME" />“ zu übertragen}}</translation> <translation id="3630155396527302611">Falls das Programm schon in der Liste mit erlaubtem Netzwerkzugriff eingetragen ist, entferne es aus der Liste und füge es noch einmal hinzu.</translation> <translation id="3630426379756188722">Schaltfläche „Mein Gerät finden“ – aktivieren, um „Mein Gerät finden“ im Google-Konto zu finden</translation> @@ -1389,7 +1388,6 @@ <translation id="388632593194507180">Überwachung erkannt</translation> <translation id="3886948180919384617">Stapelfach 3</translation> <translation id="3890664840433101773">E-Mail-Adresse hinzufügen</translation> -<translation id="3893306401511601929">Automatischer Bild-im-Bild-Modus</translation> <translation id="3897092660631435901">Menü</translation> <translation id="3901925938762663762">Die Karte ist abgelaufen.</translation> <translation id="390391808978419508">Zeitüberschreitung beim Öffnen</translation> @@ -1857,7 +1855,6 @@ <translation id="4852429274334674023">Betriebssysteme</translation> <translation id="4854853140771946034">Schnell eine neue Notiz in Google Notizen erstellen</translation> <translation id="485902285759009870">Code wird geprüft...</translation> -<translation id="4862630594858951805">Du möchtest per E‑Mail benachrichtigt werden, wenn der Preis sinkt?</translation> <translation id="4864406669374375262">Versionsstring in Zwischenablage kopiert</translation> <translation id="486459320933704969">Ein Elternteil oder Erziehungsberechtigter muss dir erlauben, diese Website zu besuchen</translation> <translation id="4866506163384898554">Zum Einblenden des Cursors |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| drücken</translation> @@ -2742,7 +2739,6 @@ <translation id="6710594484020273272"><Suchbegriff eingeben></translation> <translation id="671076103358959139">Registrierungstoken:</translation> <translation id="6711464428925977395">Mit dem Proxyserver ist ein Problem aufgetreten oder die Adresse ist falsch.</translation> -<translation id="6716013836112872184">Wenn der Preis auf einer Website sinkt, wird eine E‑Mails an <ph name="EMAIL" /> gesendet.</translation> <translation id="6716672519412350405"><ph name="URL" /> möchte eine 3D-Karte deiner Umgebung erstellen und die Kameraposition verfolgen</translation> <translation id="6718612893943028815">Kamera verwenden?</translation> <translation id="6721164594124191969">Etiketten (glänzend)</translation> @@ -4017,6 +4013,5 @@ <li>Stelle eine Verbindung zu einem anderen Netzwerk her.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatischer Bild-im-Bild-Modus</translation> <translation id="997986563973421916">Aus Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb index f544513..f55918a 100644 --- a/components/strings/components_strings_el.xtb +++ b/components/strings/components_strings_el.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Διαγραφή δεδομένων περιήγησης…</translation> <translation id="362276910939193118">Εμφάνιση πλήρους ιστορικού</translation> <translation id="3624292976554877583">Ετικέτες (Ματ)</translation> -<translation id="3625929652356389713">Μπορεί να ζητήσει το αυτόματο άνοιγμα παραθύρων picture-in-picture</translation> <translation id="3628905806504633297">{0,plural, =1{Η πολιτική διαχειριστή δεν συνιστά τη μεταφορά αυτού του αρχείου σε <ph name="DESTINATION_NAME" />.}other{Η πολιτική διαχειριστή δεν συνιστά τη μεταφορά αυτών των αρχείων σε <ph name="DESTINATION_NAME" />.}}</translation> <translation id="3630155396527302611">Εάν έχει ήδη καταχωριστεί ως πρόγραμμα στο οποίο επιτρέπεται η πρόσβαση στο δίκτυο, δοκιμάστε να το καταργήσετε από τη λίστα και να το προσθέσετε ξανά.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Εντοπίστηκε παρακολούθηση</translation> <translation id="3886948180919384617">Μονάδα στοίβαξης 3</translation> <translation id="3890664840433101773">Προσθήκη διεύθυνσης ηλεκτρονικού ταχυδρομείου</translation> -<translation id="3893306401511601929">Αυτόματη λειτουργία picture-in-picture</translation> <translation id="3897092660631435901">Μενού</translation> <translation id="3901925938762663762">Η κάρτα έχει λήξει</translation> <translation id="390391808978419508">Έληξε το χρονικό όριο για το άνοιγμα</translation> @@ -1868,7 +1866,6 @@ <translation id="4852429274334674023">Λειτουργικά συστήματα</translation> <translation id="4854853140771946034">Γρήγορη δημιουργία νέας σημείωσης στο Google Keep</translation> <translation id="485902285759009870">Επαλήθευση κωδικού…</translation> -<translation id="4862630594858951805">Θέλετε να λαμβάνετε μηνύματα ηλεκτρονικού ταχυδρομείου όταν υπάρχει πτώση τιμής;</translation> <translation id="4864406669374375262">Η συμβολοσειρά έκδοσης αντιγράφηκε στο πρόχειρο</translation> <translation id="486459320933704969">Για να μπορέσεις να επισκεφτείς αυτόν τον ιστότοπο, πρέπει να δώσει την άδεια ένας γονέα ή κηδεμόνας</translation> <translation id="4866506163384898554">Πατήστε |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| για να εμφανιστεί ο δείκτης</translation> @@ -2757,7 +2754,6 @@ <translation id="6710594484020273272"><Πληκτρολογήστε όρο αναζήτησης></translation> <translation id="671076103358959139">Διακριτικό εγγραφής:</translation> <translation id="6711464428925977395">Υπάρχει κάποιο πρόβλημα με το διακομιστή μεσολάβησης ή η διεύθυνση είναι εσφαλμένη.</translation> -<translation id="6716013836112872184">Λάβετε μηνύματα ηλεκτρονικού ταχυδρομείου στη διεύθυνση <ph name="EMAIL" /> όταν η τιμή πέσει σε οποιονδήποτε ιστότοπο.</translation> <translation id="6716672519412350405">Ο ιστότοπος <ph name="URL" /> θέλει να δημιουργήσει τρισδιάστατο χάρτη του περιβάλλοντα χώρου σας και να παρακολουθεί τη θέση της κάμερας.</translation> <translation id="6718612893943028815">Χρήση κάμερας;</translation> <translation id="6721164594124191969">Ετικέτες (Γυαλιστερές)</translation> @@ -4037,6 +4033,5 @@ <li>Δοκιμάστε να συνδεθείτε σε κάποιο άλλο δίκτυο</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">αυτόματη λειτουργία picture-in-picture</translation> <translation id="997986563973421916">Από το Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index 4624161..b74e7b2 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Clear Browsing Data...</translation> <translation id="362276910939193118">Show full history</translation> <translation id="3624292976554877583">Labels (matte)</translation> -<translation id="3625929652356389713">Can ask to automatically open picture-in-picture windows</translation> <translation id="3628905806504633297">{0,plural, =1{Administrator policy doesn’t recommend transferring this file to <ph name="DESTINATION_NAME" />}other{Administrator policy doesn’t recommend transferring these files to <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">If it is already listed as a program allowed to access the network, try removing it from the list and adding it again.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Monitoring detected</translation> <translation id="3886948180919384617">Stacker 3</translation> <translation id="3890664840433101773">Add email</translation> -<translation id="3893306401511601929">Auto picture-in-picture</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">The card is expired</translation> <translation id="390391808978419508">Opening timed out</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Operating systems</translation> <translation id="4854853140771946034">Create a new note in Google Keep quickly</translation> <translation id="485902285759009870">Verifying code…</translation> -<translation id="4862630594858951805">Want emails when the price drops?</translation> <translation id="4864406669374375262">Copied version string to clipboard</translation> <translation id="486459320933704969">A parent or guardian has to say that it's OK for you to visit this website</translation> <translation id="4866506163384898554">Press |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| to show your cursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Type search term></translation> <translation id="671076103358959139">Enrolment Token:</translation> <translation id="6711464428925977395">There is something wrong with the proxy server or the address is incorrect.</translation> -<translation id="6716013836112872184">Get emails sent to <ph name="EMAIL" /> when the price drops on any site.</translation> <translation id="6716672519412350405"><ph name="URL" /> wants to create a 3D map of your surroundings and track camera position</translation> <translation id="6718612893943028815">Use camera?</translation> <translation id="6721164594124191969">Labels (glossy)</translation> @@ -4035,6 +4031,5 @@ <li>Try connecting to another network</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">auto picture-in-picture</translation> <translation id="997986563973421916">From Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index bc59a772..89d4168c8 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -1264,7 +1264,6 @@ <translation id="36224234498066874">Borrar datos de navegación...</translation> <translation id="362276910939193118">Mostrar historial completo</translation> <translation id="3624292976554877583">Etiquetas (mate)</translation> -<translation id="3625929652356389713">Puede solicitar permiso para abrir automáticamente ventanas de pantalla en pantalla</translation> <translation id="3628905806504633297">{0,plural, =1{La política del administrador no recomienda transferir este archivo a <ph name="DESTINATION_NAME" />}other{La política del administrador no recomienda transferir estos archivos a <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Si ya está incluido como un programa con permiso para acceder a la red, intenta quitarlo de la lista y agregarlo de nuevo.</translation> @@ -1399,7 +1398,6 @@ <translation id="388632593194507180">Se detectó una supervisión</translation> <translation id="3886948180919384617">Apilador 3</translation> <translation id="3890664840433101773">Agregar correo electrónico</translation> -<translation id="3893306401511601929">Pantalla en pantalla automática</translation> <translation id="3897092660631435901">Menú</translation> <translation id="3901925938762663762">Caducó la tarjeta.</translation> <translation id="390391808978419508">Se agotó el tiempo de espera para abrir tus archivos</translation> @@ -1868,7 +1866,6 @@ <translation id="4852429274334674023">Sistemas operativos</translation> <translation id="4854853140771946034">Crea una nota nueva en Google Keep rápidamente</translation> <translation id="485902285759009870">Verificando código…</translation> -<translation id="4862630594858951805">¿Quieres recibir correos electrónicos cuando haya descuentos?</translation> <translation id="4864406669374375262">Se copió la cadena de versión en el portapapeles</translation> <translation id="486459320933704969">Para poder visitar este sitio web, tu padre, madre o tutor debe aprobar tu solicitud.</translation> <translation id="4866506163384898554">Presiona |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| para mostrar tu cursor</translation> @@ -2757,7 +2754,6 @@ <translation id="6710594484020273272"><Escribe el término de búsqueda></translation> <translation id="671076103358959139">Token de inscripción:</translation> <translation id="6711464428925977395">Hay un error en el servidor proxy o la dirección es incorrecta.</translation> -<translation id="6716013836112872184">Recibe correos electrónicos en <ph name="EMAIL" /> cuando haya descuentos en cualquier sitio.</translation> <translation id="6716672519412350405"><ph name="URL" /> desea crear un mapa 3D de tu entorno y hacer un seguimiento de la posición de la cámara</translation> <translation id="6718612893943028815">¿Quieres permitir el uso de la cámara?</translation> <translation id="6721164594124191969">Etiquetas (brillante)</translation> @@ -4037,6 +4033,5 @@ <li>Prueba conectarte a otra red</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">pantalla en pantalla automática</translation> <translation id="997986563973421916">De Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index bf4e698..a99a600 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Borrar datos de navegación...</translation> <translation id="362276910939193118">Mostrar historial completo</translation> <translation id="3624292976554877583">Etiquetas (mate)</translation> -<translation id="3625929652356389713">Puede solicitar abrir automáticamente ventanas de imagen en imagen</translation> <translation id="3628905806504633297">{0,plural, =1{La política del administrador no recomienda transferir este archivo a <ph name="DESTINATION_NAME" />}other{La política del administrador recomienda no transferir estos archivos a <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Si ya está incluido como programa autorizado para acceder a la red, elimínalo de la lista y vuelve a añadirlo.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Vigilancia detectada</translation> <translation id="3886948180919384617">Apilador 3</translation> <translation id="3890664840433101773">Añadir correo electrónico</translation> -<translation id="3893306401511601929">Imagen en imagen automática</translation> <translation id="3897092660631435901">Menú</translation> <translation id="3901925938762663762">La tarjeta ha caducado</translation> <translation id="390391808978419508">Tiempo de espera de apertura agotado</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Sistemas operativos</translation> <translation id="4854853140771946034">Crea una nueva nota en Google Keep rápidamente</translation> <translation id="485902285759009870">Verificando código...</translation> -<translation id="4862630594858951805">¿Quieres recibir correos cuando baje de precio?</translation> <translation id="4864406669374375262">Cadena de versión copiada en el portapapeles</translation> <translation id="486459320933704969">Tu padre, madre o tutor/a debe darte permiso para visitar este sitio web</translation> <translation id="4866506163384898554">Pulsa |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| para mostrar el cursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Introducir término de búsqueda></translation> <translation id="671076103358959139">Token de registro:</translation> <translation id="6711464428925977395">Se ha producido un error con el servidor proxy o la dirección es incorrecta.</translation> -<translation id="6716013836112872184">Recibe correos en <ph name="EMAIL" /> cuando el precio baje en cualquier sitio.</translation> <translation id="6716672519412350405"><ph name="URL" /> quiere crear un mapa 3D de tu entorno y hacer un seguimiento de la posición de la cámara</translation> <translation id="6718612893943028815">¿Usar la cámara?</translation> <translation id="6721164594124191969">Etiquetas (brillante)</translation> @@ -4035,6 +4031,5 @@ <li>Prueba a conectarte a otra red</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">imagen en imagen automática</translation> <translation id="997986563973421916">De Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index 0ad1272..87ce5af 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Sirvimisandmete kustutamine...</translation> <translation id="362276910939193118">Näita kogu ajalugu</translation> <translation id="3624292976554877583">Etiketid (matt)</translation> -<translation id="3625929652356389713">Võimaldab paluda automaatselt avada pilt pildis aknad</translation> <translation id="3628905806504633297">{0,plural, =1{Administraatori eeskirjad ei soovita seda faili sihtkohta <ph name="DESTINATION_NAME" /> üle kanda}other{Administraatori eeskirjad ei soovita neid faile sihtkohta <ph name="DESTINATION_NAME" /> üle kanda}}</translation> <translation id="3630155396527302611">Kui see on juba loendis kui programm, millele on lubatud võrgujuurdepääs, proovige see loendist eemaldada ja siis uuesti lisada.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Tuvastati jälgimine</translation> <translation id="3886948180919384617">Virnastaja 3</translation> <translation id="3890664840433101773">E-posti aadressi lisamine</translation> -<translation id="3893306401511601929">Automaatne pilt pildis</translation> <translation id="3897092660631435901">Menüü</translation> <translation id="3901925938762663762">Kaart on aegunud</translation> <translation id="390391808978419508">Avamine aegus</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Operatsioonisüsteemid</translation> <translation id="4854853140771946034">Rakenduses Google Keep kiirelt uue märkuse loomine</translation> <translation id="485902285759009870">Koodi kinnitamine …</translation> -<translation id="4862630594858951805">Kas soovite e-kirju, kui hind langeb?</translation> <translation id="4864406669374375262">Versiooni string kopeeriti lõikelauale</translation> <translation id="486459320933704969">Vanem või eestkostja peab andma sulle loa selle veebisaidi külastamiseks</translation> <translation id="4866506163384898554">Vajutage kursori kuvamiseks klahve |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Sisestage otsingutermin></translation> <translation id="671076103358959139">Registreerimismärk:</translation> <translation id="6711464428925977395">Puhverserveriga on midagi valesti või aadress on vale.</translation> -<translation id="6716013836112872184">Kui hind mõnel saidil langeb, saate e-kirjad aadressile <ph name="EMAIL" />.</translation> <translation id="6716672519412350405"><ph name="URL" /> soovib luua teid ümbritsevast 3D-kaardi ja jälgida kaamera asendit</translation> <translation id="6718612893943028815">Kas kasutada kaamerat?</translation> <translation id="6721164594124191969">Etiketid (läikega)</translation> @@ -4035,6 +4031,5 @@ <li>Proovige luua ühendus mõne teise võrguga</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automaatne pilt pildis</translation> <translation id="997986563973421916">Teenusest Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb index 9089804..0d94f71 100644 --- a/components/strings/components_strings_eu.xtb +++ b/components/strings/components_strings_eu.xtb
@@ -1257,7 +1257,6 @@ <translation id="36224234498066874">Garbitu arakatze-datuak…</translation> <translation id="362276910939193118">Erakutsi historia osoa</translation> <translation id="3624292976554877583">Etiketak (mateak)</translation> -<translation id="3625929652356389713">Pantaila txiki gainjarriak automatikoki irekitzeko eska dezake</translation> <translation id="3628905806504633297">{0,plural, =1{Administratzailearen gidalerroek ez dute gomendatzen fitxategia hona transferitzea: <ph name="DESTINATION_NAME" />}other{Administratzailearen gidalerroek ez dute gomendatzen fitxategiak hona transferitzea: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Dagoeneko zerrendatu bada sarean sartzeko baimena duen programa gisa, kendu zerrendatik eta gehitu berriro.</translation> @@ -1392,7 +1391,6 @@ <translation id="388632593194507180">Sarea kontrolatzen ari direla hauteman da</translation> <translation id="3886948180919384617">3. pilatzailea</translation> <translation id="3890664840433101773">Gehitu helbide elektronikoa</translation> -<translation id="3893306401511601929">Pantaila txiki gainjarri automatikoa</translation> <translation id="3897092660631435901">Menua</translation> <translation id="3901925938762663762">Txartela iraungi da</translation> <translation id="390391808978419508">Irekitzeko denbora-muga gainditu da</translation> @@ -1861,7 +1859,6 @@ <translation id="4852429274334674023">Sistema eragileak</translation> <translation id="4854853140771946034">Sortu bizkor ohar bat Google Keep-en</translation> <translation id="485902285759009870">Kodea egiaztatzen…</translation> -<translation id="4862630594858951805">Prezioa jaisten denean mezu elektronikoak jaso nahi dituzu?</translation> <translation id="4864406669374375262">Kopiatu da arbelean bertsioaren katea</translation> <translation id="486459320933704969">Guraso edo tutore batek webgunea bisitatzeko baimena eman behar dizu</translation> <translation id="4866506163384898554">Kurtsorea ikusteko, sakatu |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> @@ -2749,7 +2746,6 @@ <translation id="6710594484020273272"><Idatzi bilaketa-hitza></translation> <translation id="671076103358959139">Izena emateko tokena:</translation> <translation id="6711464428925977395">Arazo bat dago proxy-zerbitzariarekin edo helbidea okerra da.</translation> -<translation id="6716013836112872184">Jaso mezu elektronikoak <ph name="EMAIL" /> helbidean edozein webgunetako prezioa jaisten denean.</translation> <translation id="6716672519412350405"><ph name="URL" /> webguneak inguruaren 3D-ko mapa bat sortu eta kameraren posizioaren jarraipena egin nahi du</translation> <translation id="6718612893943028815">Kamera erabili nahi duzu?</translation> <translation id="6721164594124191969">Etiketak (distiratsuak)</translation> @@ -4027,6 +4023,5 @@ <li>Konektatu beste sare batera.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">pantaila txiki gainjarri automatikoa</translation> <translation id="997986563973421916">Google Pay-tik dator</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 1993d6b0..b1fccee 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">پاک کردن دادههای محصول مرور…</translation> <translation id="362276910939193118">نمایش کل سابقه</translation> <translation id="3624292976554877583">برچسب (مات)</translation> -<translation id="3625929652356389713">میتواند بهطور خودکار درخواست کند پنجرههای «تصویر در تصویر» باز شود</translation> <translation id="3628905806504633297">{0,plural, =1{خطمشی سرپرست توصیه نمیکند این فایل را به <ph name="DESTINATION_NAME" /> منتقل کنید}one{خطمشی سرپرست توصیه نمیکند این فایل را به <ph name="DESTINATION_NAME" /> منتقل کنید}other{خطمشی سرپرست توصیه نمیکند این فایلها را به <ph name="DESTINATION_NAME" /> منتقل کنید}}</translation> <translation id="3630155396527302611">اگر درحال حاضر بهعنوان برنامهای برای دسترسی به شبکه در فهرست قرار دارد، سعی کنید آن را از فهرست حذف کرده و دوباره به فهرست اضافه کنید.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">نظارت تشخیص داده شد</translation> <translation id="3886948180919384617">پشتهساز ۳</translation> <translation id="3890664840433101773">افزودن ایمیل</translation> -<translation id="3893306401511601929">تصویر در تصویر خودکار</translation> <translation id="3897092660631435901">منو</translation> <translation id="3901925938762663762">کارت منقضی شده است</translation> <translation id="390391808978419508">مهلت زمانی کپی کردن تمام شد</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">سیستمعامل</translation> <translation id="4854853140771946034">ایجاد سریع یادداشت جدید در Google Keep</translation> <translation id="485902285759009870">درحال تأیید کد…</translation> -<translation id="4862630594858951805">مایلید اگر قیمت کاهش پیدا کرد ایمیل دریافت کنید؟</translation> <translation id="4864406669374375262">رشته نسخه در بریدهدان کپی شد</translation> <translation id="486459320933704969">ولی یا سرپرست باید بازدید شما از این وبسایت را تأیید کند</translation> <translation id="4866506163384898554">برای نمایش نشانگر، |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| را فشار دهید</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><عبارت جستجو را تایپ کنید></translation> <translation id="671076103358959139">کد ثبتنام:</translation> <translation id="6711464428925977395">مشکلی در سرور پروکسی وجود دارد یا این آدرس درست نیست.</translation> -<translation id="6716013836112872184">اگر قیمت در هر سایتی کاهش پیدا کند، ایمیلی به <ph name="EMAIL" /> ارسال میشود.</translation> <translation id="6716672519412350405"><ph name="URL" /> میخواهد نقشهای سهبعدی از محیط ایجاد کند و موقعیت دوربین را ردیابی کند</translation> <translation id="6718612893943028815">از دوربین استفاده شود؟</translation> <translation id="6721164594124191969">برچسب (براق)</translation> @@ -4035,6 +4031,5 @@ <li>به شبکه دیگری متصل شوید</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">تصویر در تصویر خودکار</translation> <translation id="997986563973421916">از Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb index ba7e038..8ecf622b 100644 --- a/components/strings/components_strings_fi.xtb +++ b/components/strings/components_strings_fi.xtb
@@ -1264,7 +1264,6 @@ <translation id="36224234498066874">Poista selaustiedot...</translation> <translation id="362276910939193118">Näytä koko selaushistoria</translation> <translation id="3624292976554877583">Etiketit (matta)</translation> -<translation id="3625929652356389713">Voi pyytää lupaa avata pikkuruutu-ikkunoita automaattisesti</translation> <translation id="3628905806504633297">{0,plural, =1{Järjestelmänvalvojakäytännössä ei suositella tiedoston siirtämistä tänne: <ph name="DESTINATION_NAME" />.}other{Järjestelmänvalvojakäytännössä ei suositella tiedostojen siirtämistä tänne: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Jos sillä on jo verkon käyttöoikeus, kokeile sen poistamista sallittujen ohjelmien luettelosta ja lisäämistä sitten uudelleen.</translation> @@ -1399,7 +1398,6 @@ <translation id="388632593194507180">Valvonta havaittu</translation> <translation id="3886948180919384617">Pinoaja 3</translation> <translation id="3890664840433101773">Lisää sähköposti</translation> -<translation id="3893306401511601929">Automaattinen pikkuruutu</translation> <translation id="3897092660631435901">Valikko</translation> <translation id="3901925938762663762">Kortti on vanhentunut.</translation> <translation id="390391808978419508">Avaaminen aikakatkaistu</translation> @@ -1868,7 +1866,6 @@ <translation id="4852429274334674023">Käyttöjärjestelmät</translation> <translation id="4854853140771946034">Luo uusi muistiinpano nopeasti Google Keepissa</translation> <translation id="485902285759009870">Vahvistetaan koodia…</translation> -<translation id="4862630594858951805">Haluatko sähköpostia, kun hinta laskee?</translation> <translation id="4864406669374375262">Versiomerkkijono kopioitu leikepöydälle</translation> <translation id="486459320933704969">Vanhemman tai huoltajan on hyväksyttävä käyntisi tällä sivustolla</translation> <translation id="4866506163384898554">Näytä kohdistin painamalla |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> @@ -2757,7 +2754,6 @@ <translation id="6710594484020273272"><Anna hakukysely></translation> <translation id="671076103358959139">Käyttöönottotunnus:</translation> <translation id="6711464428925977395">Välityspalvelimessa on jotain vikaa tai osoite on virheellinen.</translation> -<translation id="6716013836112872184">Voit saada sähköpostia osoitteeseen <ph name="EMAIL" />, kun hinta laskee jollakin sivustolla.</translation> <translation id="6716672519412350405"><ph name="URL" /> pyytää lupaa luoda 3D-kartan ympäristöstäsi ja seurata kameran asentoa</translation> <translation id="6718612893943028815">Käytetäänkö kameraa?</translation> <translation id="6721164594124191969">Etiketit (kiiltävä)</translation> @@ -4038,6 +4034,5 @@ <li>Yritä yhdistää toiseen verkkoon</li> </ul></translation> <translation id="994346157028146140">JIS B1 (728 mm x 1 030 mm)</translation> -<translation id="995240771322213706">automaattinen pikkuruutu</translation> <translation id="997986563973421916">Google Paysta</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index ab9b272..6b29a5d 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">I-clear ang Data sa Pag-browse...</translation> <translation id="362276910939193118">Ipakita ang Buong History</translation> <translation id="3624292976554877583">Mga Label (Matte)</translation> -<translation id="3625929652356389713">Puwedeng humiling na awtomatikong buksan ang mga picture-in-picture na window</translation> <translation id="3628905806504633297">{0,plural, =1{Hindi inirerekomenda ng patakaran ng administrator na ilipat ang file na ito sa <ph name="DESTINATION_NAME" />}one{Hindi inirerekomenda ng patakaran ng administrator na ilipat ang mga file na ito sa <ph name="DESTINATION_NAME" />}other{Hindi inirerekomenda ng patakaran ng administrator na ilipat ang mga file na ito sa <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Kung nakalista na ito bilang isang programang pinapahintulutang i-access ang network, subukang alisin ito mula sa listahan at muli itong idagdag.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">May Na-detect na Pagsubaybay</translation> <translation id="3886948180919384617">Stacker 3</translation> <translation id="3890664840433101773">Magdagdag ng email</translation> -<translation id="3893306401511601929">Awtomatikong picture-in-picture</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">Na-expire na ang card</translation> <translation id="390391808978419508">Nag-time out ang pagbubukas</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Mga operating system</translation> <translation id="4854853140771946034">Gumawa ng bagong tala sa Google Keep nang mabilis</translation> <translation id="485902285759009870">Vine-verify ang code...</translation> -<translation id="4862630594858951805">Gusto mo bang makatanggap ng mga email kapag bumaba ang presyo?</translation> <translation id="4864406669374375262">Nakopya sa clipboard ang string ng bersyong ito</translation> <translation id="486459320933704969">Kailangang sabihin ng magulang o tagapag-alaga na OK na bisitahin mo ang website na ito</translation> <translation id="4866506163384898554">Pindutin ang |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| para ipakita ang iyong cursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><I-type ang termino para sa paghahanap></translation> <translation id="671076103358959139">Token sa Pag-enroll</translation> <translation id="6711464428925977395">May problema sa proxy server, o mali ang address.</translation> -<translation id="6716013836112872184">Makatanggap ng mga email sa <ph name="EMAIL" /> kapag bumaba ang presyo sa anumang site.</translation> <translation id="6716672519412350405">Gusto ng <ph name="URL" /> na gumawa ng 3D na mapa ng iyong kapaligiran at subaybayan ang posisyon ng camera</translation> <translation id="6718612893943028815">Gamitin ang camera?</translation> <translation id="6721164594124191969">Mga Label (Glossy)</translation> @@ -4035,6 +4031,5 @@ <li>Subukang kumonekta sa ibang network</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">awtomatikong picture-in-picture</translation> <translation id="997986563973421916">Mula sa Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb index dd18025..094fd6ad 100644 --- a/components/strings/components_strings_fr-CA.xtb +++ b/components/strings/components_strings_fr-CA.xtb
@@ -1259,7 +1259,6 @@ <translation id="36224234498066874">Effacer données navigation…</translation> <translation id="362276910939193118">Afficher l'historique complet</translation> <translation id="3624292976554877583">Étiquettes (mat)</translation> -<translation id="3625929652356389713">Peut demander d'ouvrir automatiquement les fenêtres d'incrustation d'image</translation> <translation id="3628905806504633297">{0,plural, =1{La politique de l'administrateur ne recommande pas de transférer ce fichier vers <ph name="DESTINATION_NAME" />}one{La politique de l'administrateur ne recommande pas de transférer ce fichier vers <ph name="DESTINATION_NAME" />}other{La politique de l'administrateur ne recommande pas de transférer ces fichiers vers <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Si la page est déjà répertoriée comme étant un programme autorisé à accéder au réseau, essayez de la supprimer de la liste, puis de la rajouter.</translation> @@ -1394,7 +1393,6 @@ <translation id="388632593194507180">Surveillance détectée</translation> <translation id="3886948180919384617">Empileur 3</translation> <translation id="3890664840433101773">Ajouter une adresse de courriel</translation> -<translation id="3893306401511601929">Incrustation d'image automatique</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">La carte a expiré.</translation> <translation id="390391808978419508">L'ouverture a dépassé le délai</translation> @@ -1862,7 +1860,6 @@ <translation id="4852429274334674023">Systèmes d'exploitation</translation> <translation id="4854853140771946034">Créer rapidement une note dans Google Keep</translation> <translation id="485902285759009870">Vérification du code en cours…</translation> -<translation id="4862630594858951805">Vous souhaitez recevoir des courriels lorsque les prix baissent?</translation> <translation id="4864406669374375262">Chaîne de version copiée dans le presse-papiers</translation> <translation id="486459320933704969">Un parent ou un tuteur doit indiquer que tu as l'autorisation de consulter ce site Web</translation> <translation id="4866506163384898554">Appuyez sur |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| pour afficher votre curseur</translation> @@ -2750,7 +2747,6 @@ <translation id="6710594484020273272"><Entrez un terme de recherche></translation> <translation id="671076103358959139">Jeton d'inscription :</translation> <translation id="6711464428925977395">Un problème est survenu avec le serveur mandataire, ou l'adresse est incorrecte.</translation> -<translation id="6716013836112872184">Recevez des courriels à l'adresse <ph name="EMAIL" /> lorsque les prix baissent sur n'importe quel site.</translation> <translation id="6716672519412350405"><ph name="URL" /> souhaite créer une carte 3D de votre environnement et faire le suivi de la position de l'appareil photo</translation> <translation id="6718612893943028815">Utiliser la caméra?</translation> <translation id="6721164594124191969">Étiquettes (brillantes)</translation> @@ -4027,6 +4023,5 @@ <li>Essayez de vous connecter à un autre réseau</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">incrustation d'image automatique</translation> <translation id="997986563973421916">De Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index e63a348..4f804d3a 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Effacer les données de navigation...</translation> <translation id="362276910939193118">Afficher l'historique complet</translation> <translation id="3624292976554877583">Étiquettes (mates)</translation> -<translation id="3625929652356389713">Peut demander à ouvrir automatiquement les fenêtres Picture-in-picture</translation> <translation id="3628905806504633297">{0,plural, =1{Une règle de l'administrateur déconseille de transférer ce fichier vers <ph name="DESTINATION_NAME" />}one{Une règle de l'administrateur déconseille de transférer ce fichier vers <ph name="DESTINATION_NAME" />}other{Une règle de l'administrateur déconseille de transférer ces fichiers vers <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">S'il est déjà répertorié en tant que programme autorisé à accéder au réseau, essayez de le supprimer de la liste, puis de le rajouter.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Activité de surveillance détectée</translation> <translation id="3886948180919384617">Empileur 3</translation> <translation id="3890664840433101773">Ajouter une adresse e-mail</translation> -<translation id="3893306401511601929">Picture-in-picture automatique</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">La carte a expiré.</translation> <translation id="390391808978419508">Délai d'ouverture dépassé</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Systèmes d'exploitation</translation> <translation id="4854853140771946034">Créez rapidement une note dans Google Keep</translation> <translation id="485902285759009870">Validation du code…</translation> -<translation id="4862630594858951805">Vous souhaitez recevoir des e-mails en cas de baisse de prix ?</translation> <translation id="4864406669374375262">Chaîne de version copiée dans le presse-papiers</translation> <translation id="486459320933704969">Un parent ou un représentant légal doit approuver l'accès à ce site Web</translation> <translation id="4866506163384898554">Appuyez sur |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />| pour afficher le curseur</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Saisissez le terme de recherche></translation> <translation id="671076103358959139">Jeton d'enregistrement :</translation> <translation id="6711464428925977395">Le serveur proxy présente une erreur, ou l'adresse est incorrecte.</translation> -<translation id="6716013836112872184">Recevez des e-mails sur <ph name="EMAIL" /> lorsque le prix baisse sur un site.</translation> <translation id="6716672519412350405"><ph name="URL" /> cherche à créer un plan 3D de votre environnement et à suivre la position de la caméra</translation> <translation id="6718612893943028815">Utiliser la caméra ?</translation> <translation id="6721164594124191969">Étiquettes (brillantes)</translation> @@ -4036,6 +4032,5 @@ <li>Essayez de vous connecter à un autre réseau.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">Picture-in-picture automatique</translation> <translation id="997986563973421916">De Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb index f8c58a98..7983d0a 100644 --- a/components/strings/components_strings_gl.xtb +++ b/components/strings/components_strings_gl.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Borrar datos de navegación...</translation> <translation id="362276910939193118">Mostrar historial completo</translation> <translation id="3624292976554877583">Etiquetas (mate)</translation> -<translation id="3625929652356389713">Pode pedirche permiso para abrir automaticamente ventás en pantalla superposta</translation> <translation id="3628905806504633297">{0,plural, =1{A política do administrador non recomenda transferir este ficheiro ao destino: <ph name="DESTINATION_NAME" />}other{A política do administrador non recomenda transferir estes ficheiros ao destino: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Se xa está incluído como programa autorizado para acceder á rede, proba a eliminalo da lista e volver engadilo.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Detectouse a supervisión</translation> <translation id="3886948180919384617">Amontoador 3</translation> <translation id="3890664840433101773">Engadir correo electrónico</translation> -<translation id="3893306401511601929">Pantalla superposta automática</translation> <translation id="3897092660631435901">Menú</translation> <translation id="3901925938762663762">A tarxeta caducou</translation> <translation id="390391808978419508">Esgotouse o tempo de espera para a apertura</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Sistemas operativos</translation> <translation id="4854853140771946034">Crear rapidamente unha nota nova en Google Keep</translation> <translation id="485902285759009870">Verificando código…</translation> -<translation id="4862630594858951805">Queres recibir un correo electrónico cando baixe o prezo?</translation> <translation id="4864406669374375262">Copiouse a cadea de versión no portapapeis</translation> <translation id="486459320933704969">Para poderes visitar este sitio web, ten que darche permiso o teu pai, nai, titor ou titora</translation> <translation id="4866506163384898554">Para que se mostre o cursor, preme |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Escribe un termo de busca></translation> <translation id="671076103358959139">Token de inscrición:</translation> <translation id="6711464428925977395">Produciuse un erro co servidor proxy ou o enderezo é incorrecto.</translation> -<translation id="6716013836112872184">Recibe correos electrónicos en <ph name="EMAIL" /> cando baixe o prezo en calquera sitio.</translation> <translation id="6716672519412350405"><ph name="URL" /> quere crear un mapa 3D do que te rodea e facer un seguimento da posición da cámara</translation> <translation id="6718612893943028815">Queres usar a cámara?</translation> <translation id="6721164594124191969">Etiquetas (brillo)</translation> @@ -4035,6 +4031,5 @@ <li>Proba a conectarte a outra rede</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">pantalla superposta automática</translation> <translation id="997986563973421916">De Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index d6ae2b1..6ae47daa 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">બ્રાઉઝિંગ ડેટા સાફ કરો...</translation> <translation id="362276910939193118">પૂર્ણ ઇતિહાસ બતાવો</translation> <translation id="3624292976554877583">લેબલ (મૅટ)</translation> -<translation id="3625929652356389713">ચિત્ર-માં-ચિત્ર વિન્ડો ઑટોમૅટિક રીતે ખોલવાનું પૂછી શકે છે</translation> <translation id="3628905806504633297">{0,plural, =1{ઍડમિનિસ્ટ્રેટરની પૉલિસી આ ફાઇલને <ph name="DESTINATION_NAME" />માં ટ્રાન્સફર કરવાનો સુઝાવ આપતી નથી}one{ઍડમિનિસ્ટ્રેટરની પૉલિસી આ ફાઇલને <ph name="DESTINATION_NAME" />માં ટ્રાન્સફર કરવાનો સુઝાવ આપતી નથી}other{ઍડમિનિસ્ટ્રેટરની પૉલિસી આ ફાઇલોને <ph name="DESTINATION_NAME" />માં ટ્રાન્સફર કરવાનો સુઝાવ આપતી નથી}}</translation> <translation id="3630155396527302611">જો તે પહેલાંથી જ નેટવર્ક ઍક્સેસ કરવા માટે મંજૂર પ્રોગ્રામ તરીકે સૂચિબદ્ધ હોય, તો તેને સૂચિમાંથી દૂર કરી અને તેને ફરીથી ઉમેરવાનો પ્રયાસ કરો.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">નિરીક્ષણ કરતું જણાયું</translation> <translation id="3886948180919384617">સ્ટૅકર 3</translation> <translation id="3890664840433101773">ઇમેઇલ ઉમેરો</translation> -<translation id="3893306401511601929">ઑટોમૅટિક ચિત્ર-માં-ચિત્રની સુવિધા</translation> <translation id="3897092660631435901">મેનૂ</translation> <translation id="3901925938762663762">કાર્ડની સમયસીમા સમાપ્ત થઇ ગઈ છે</translation> <translation id="390391808978419508">ખોલવાનો સમય સમાપ્ત થયો</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">ઑપરેટિંગ સિસ્ટમ</translation> <translation id="4854853140771946034">Google Keepમાં ઝડપથી કોઈ નવી નોંધ બનાવો</translation> <translation id="485902285759009870">કોડ ચકાસી રહ્યાં છીએ...</translation> -<translation id="4862630594858951805">જ્યારે કિંમતમાં ઘટાડો થાય, ત્યારે ઇમેઇલ મેળવવા માગો છો?</translation> <translation id="4864406669374375262">ક્લિપબોર્ડ પર કૉપિ કરેલી વર્ઝન સ્ટ્રિંગ</translation> <translation id="486459320933704969">માતાપિતા અથવા વાલીએ જણાવવું આવશ્યક છે કે જો તમે આ વેબસાઇટની મુલાકાત લો, તો તેમાં કોઈ વાંધો નથી</translation> <translation id="4866506163384898554">તમારું કર્સર બતાવવા |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| દબાવો</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><શોધ શબ્દ લખો></translation> <translation id="671076103358959139">નોંધણી ટોકન:</translation> <translation id="6711464428925977395">પ્રૉક્સી સર્વરમાં કંઈક ખોટું થયું છે અથવા તો ઍડ્રેસ ખોટું છે.</translation> -<translation id="6716013836112872184">જ્યારે કોઈપણ સાઇટ પર કિંમતમાં ઘટાડો થાય, ત્યારે <ph name="EMAIL" /> પર ઇમેઇલ મેળવો.</translation> <translation id="6716672519412350405"><ph name="URL" /> તમારી આજુબાજુનો 3D નકશો બનાવવા અથવા કૅમેરાનું સ્ટેટસ ટ્રૅક કરવા માગે છે</translation> <translation id="6718612893943028815">કૅમેરાનો ઉપયોગ કરીએ?</translation> <translation id="6721164594124191969">લેબલ (ગ્લોસી)</translation> @@ -4036,6 +4032,5 @@ <li>બીજા નેટવર્ક સાથે કનેક્ટ કરવાનો પ્રયાસ કરો</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ઑટોમૅટિક ચિત્ર-માં-ચિત્રની સુવિધા</translation> <translation id="997986563973421916">Google Pay માંથી</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index 21010e4..2fe23f9f 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -1261,7 +1261,6 @@ <translation id="36224234498066874">ब्राउज़िंग डेटा मिटाएं...</translation> <translation id="362276910939193118">पूरा इतिहास दिखाएं</translation> <translation id="3624292976554877583">लेबल (मैट)</translation> -<translation id="3625929652356389713">पिक्चर में पिक्चर विंडो को अपने-आप खोलने के लिए कहा जा सकता है</translation> <translation id="3628905806504633297">{0,plural, =1{एडमिन नीति, इस फ़ाइल को <ph name="DESTINATION_NAME" /> पर ट्रांसफ़र करने का सुझाव नहीं देती है}one{एडमिन नीति, इस फ़ाइल को <ph name="DESTINATION_NAME" /> पर ट्रांसफ़र करने का सुझाव नहीं देती है}other{एडमिन नीति, इन फ़ाइलों को <ph name="DESTINATION_NAME" /> पर ट्रांसफ़र करने का सुझाव नहीं देती है}}</translation> <translation id="3630155396527302611">अगर वह नेटवर्क एक्सेस करने की अनुमति पाए हुए प्रोग्राम के रूप में पहले से ही सूची में शामिल है, तो उसे सूची से हटाने और फिर से जोड़ने की कोशिश करें.</translation> @@ -1396,7 +1395,6 @@ <translation id="388632593194507180">यह पता चला है कि नज़र रखी जा रही है</translation> <translation id="3886948180919384617">स्टैकर 3</translation> <translation id="3890664840433101773">ईमेल जोड़ें</translation> -<translation id="3893306401511601929">पिक्चर में पिक्चर सुविधा को ऑटो मोड में सेट करें</translation> <translation id="3897092660631435901">मेन्यू</translation> <translation id="3901925938762663762">इस कार्ड की समय सीमा खत्म हो गई है</translation> <translation id="390391808978419508">खोलने का समय खत्म हो गया</translation> @@ -1865,7 +1863,6 @@ <translation id="4852429274334674023">ऑपरेटिंग सिस्टम</translation> <translation id="4854853140771946034">Google Keep में जल्दी से नया नोट बनाएं</translation> <translation id="485902285759009870">कोड की पुष्टि की जा रही है...</translation> -<translation id="4862630594858951805">क्या कीमत में गिरावट होने पर आपको ईमेल से सूचना चाहिए?</translation> <translation id="4864406669374375262">वर्शन स्ट्रिंग को क्लिपबोर्ड पर कॉपी किया गया</translation> <translation id="486459320933704969">इस वेबसाइट पर जाने के लिए, आपके पास अपने माता-पिता या अभिभावक की अनुमति होनी चाहिए</translation> <translation id="4866506163384898554">अपना कर्सर दिखाने के लिए, |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| को दबाएं</translation> @@ -2754,7 +2751,6 @@ <translation id="6710594484020273272"><खोज शब्द लिखें></translation> <translation id="671076103358959139">नाम दर्ज करने का टोकन:</translation> <translation id="6711464428925977395">प्रॉक्सी सर्वर के साथ कुछ गलत है या पता गलत है.</translation> -<translation id="6716013836112872184">किसी भी साइट पर, कीमत में गिरावट होने पर <ph name="EMAIL" /> पर ईमेल पाएं.</translation> <translation id="6716672519412350405"><ph name="URL" /> आपके आस-पास की जगह का 3D मैप बनाना और कैमरे की स्थिति ट्रैक करना चाहती है</translation> <translation id="6718612893943028815">क्या आप कैमरे का इस्तेमाल करना चाहते हैं?</translation> <translation id="6721164594124191969">लेबल (ग्लॉसी)</translation> @@ -4033,6 +4029,5 @@ <li>किसी दूसरे नेटवर्क से कनेक्ट करके देखें</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">पिक्चर में पिक्चर सुविधा को ऑटो मोड में सेट करें</translation> <translation id="997986563973421916">Google Pay से</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb index 30a4f11a..3773042 100644 --- a/components/strings/components_strings_hr.xtb +++ b/components/strings/components_strings_hr.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Obriši podatke o pregledavanju...</translation> <translation id="362276910939193118">Pokaži cijelu povijest</translation> <translation id="3624292976554877583">Naljepnice (mat)</translation> -<translation id="3625929652356389713">Može tražiti dopuštenje za automatsko otvaranje prozora sa slikom u slici</translation> <translation id="3628905806504633297">{0,plural, =1{Prema pravilima administratora ne preporučuje se prijenos te datoteke na: <ph name="DESTINATION_NAME" />}one{Prema pravilima administratora ne preporučuje se prijenos datoteka na: <ph name="DESTINATION_NAME" />}few{Prema pravilima administratora ne preporučuje se prijenos datoteka na: <ph name="DESTINATION_NAME" />}other{Prema pravilima administratora ne preporučuje se prijenos datoteka na: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Ako je već navedena kao program koji smije pristupiti mreži, pokušajte je ukloniti s popisa pa je ponovo dodati.</translation> <translation id="3630426379756188722">Gumb Pronađi moj uređaj, aktivirajte ga da biste pronašli uređaj na Google računu</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">Otkriveno je praćenje</translation> <translation id="3886948180919384617">Spremnik za slaganje u snopove 3</translation> <translation id="3890664840433101773">Dodajte e-adresu</translation> -<translation id="3893306401511601929">Automatska slika u slici</translation> <translation id="3897092660631435901">Izbornik</translation> <translation id="3901925938762663762">Kartica je istekla</translation> <translation id="390391808978419508">Isteklo je vrijeme za otvaranje</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">Operativni sustavi</translation> <translation id="4854853140771946034">Brzo izradite novu bilješku u Google Keepu</translation> <translation id="485902285759009870">Potvrđivanje koda...</translation> -<translation id="4862630594858951805">Želite li primati e-poruke kad se cijena snizi?</translation> <translation id="4864406669374375262">Niz verzije kopiran je u međuspremnik</translation> <translation id="486459320933704969">Roditelj ili skrbnik mora ti dopustiti da posjetiš ovu web-lokaciju</translation> <translation id="4866506163384898554">Pritisnite |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| da bi se prikazao pokazivač</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Upišite pojam za pretraživanje></translation> <translation id="671076103358959139">Oznaka za prijavu:</translation> <translation id="6711464428925977395">Nešto nije u redu s proxy poslužiteljem ili adresa nije točna.</translation> -<translation id="6716013836112872184">Primajte e-poruke na adresu <ph name="EMAIL" /> ako se cijena snizi na bilo kojoj web-lokaciji.</translation> <translation id="6716672519412350405"><ph name="URL" /> želi izraditi 3D kartu vašeg okruženja i pratiti položaj kamere</translation> <translation id="6718612893943028815">Koristiti kameru?</translation> <translation id="6721164594124191969">Naljepnice (sjajne)</translation> @@ -4036,6 +4032,5 @@ <li>Pokušajte se povezati s drugom mrežom</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatska slika u slici</translation> <translation id="997986563973421916">S Google Paya</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb index 52742cf..3d659a46 100644 --- a/components/strings/components_strings_hu.xtb +++ b/components/strings/components_strings_hu.xtb
@@ -1261,7 +1261,6 @@ <translation id="36224234498066874">Böngészési adatok törlése…</translation> <translation id="362276910939193118">Az összes előzmény</translation> <translation id="3624292976554877583">Címkék (matt)</translation> -<translation id="3625929652356389713">Engedélyt kérhet az ablakok kép a képben módban való automatikus megnyitására</translation> <translation id="3628905806504633297">{0,plural, =1{A rendszergazda által beállított házirend nem javasolja ennek a fájlnak az átvitelét a következő helyre: <ph name="DESTINATION_NAME" />}other{A rendszergazda által beállított házirend nem javasolja ezeknek a fájloknak az átvitelét a következő helyre: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Ha már megjelenik a hálózat elérésére engedélyezett programként, próbálkozzon az eltávolításával, majd a listára való ismételt felvételével.</translation> @@ -1396,7 +1395,6 @@ <translation id="388632593194507180">Figyelés észlelve</translation> <translation id="3886948180919384617">3. kötegelő</translation> <translation id="3890664840433101773">E-mail-cím hozzáadása</translation> -<translation id="3893306401511601929">Automatikus kép a képben mód</translation> <translation id="3897092660631435901">Menü</translation> <translation id="3901925938762663762">A kártya lejárt</translation> <translation id="390391808978419508">Időtúllépés történt a megnyitás során</translation> @@ -1865,7 +1863,6 @@ <translation id="4852429274334674023">Operációs rendszerek</translation> <translation id="4854853140771946034">Új jegyzet gyors létrehozása a Google Keep szolgáltatással</translation> <translation id="485902285759009870">Kód ellenőrzése…</translation> -<translation id="4862630594858951805">Szeretne e-mailt kapni, ha csökkennek az árak?</translation> <translation id="4864406669374375262">Verzió-karakterlánc vágólapra másolva</translation> <translation id="486459320933704969">A szülődnek vagy a gondviselődnek jóvá kell hagynia a webhely felkeresését</translation> <translation id="4866506163384898554">A kurzor megjelenítéséhez nyomja le a következő billentyűkombinációt: |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> @@ -2754,7 +2751,6 @@ <translation id="6710594484020273272"><Írja be a keresési kifejezést></translation> <translation id="671076103358959139">Regisztrációs token</translation> <translation id="6711464428925977395">Valami gond van a proxyszerverrel, vagy a cím nem megfelelő.</translation> -<translation id="6716013836112872184">E-mailt küldünk a(z) <ph name="EMAIL" /> e-mail-címre, ha valamelyik webhelyen csökken az ár.</translation> <translation id="6716672519412350405">A(z) <ph name="URL" /> 3D-s térképet szeretne készíteni az Ön környezetéről, és követni szeretné a kamera pozícióját</translation> <translation id="6718612893943028815">Engedélyezi a kamera használatát?</translation> <translation id="6721164594124191969">Címkék (fényes)</translation> @@ -4035,6 +4031,5 @@ <li>Próbáljon másik hálózathoz csatlakozni.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatikus kép a képben mód</translation> <translation id="997986563973421916">A Google Payről</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb index 4a2f2d46..3ea909f 100644 --- a/components/strings/components_strings_hy.xtb +++ b/components/strings/components_strings_hy.xtb
@@ -1269,7 +1269,6 @@ <translation id="36224234498066874">Ջնջել այցելությունների պատմությունը...</translation> <translation id="362276910939193118">Ցույց տալ ամբողջ պատմությունը</translation> <translation id="3624292976554877583">Պիտակներ (անփայլ)</translation> -<translation id="3625929652356389713">Կարող է հայցել ավտոմատ «նկար նկարի մեջ» պատուհաններ բացելու թույլտվություն</translation> <translation id="3628905806504633297">{0,plural, =1{Ադմինիստրատորը խորհուրդ չի տալիս այս ֆայլը տեղափոխել <ph name="DESTINATION_NAME" />}one{Ադմինիստրատորը խորհուրդ չի տալիս այս ֆայլը տեղափոխել <ph name="DESTINATION_NAME" />}other{Ադմինիստրատորը խորհուրդ չի տալիս այս ֆայլերը տեղափոխել <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Եթե այն արդեն նշված է որպես ցանցին կապակցվելու թույլտվություն ունեցող ծրագիր, փորձեք հեռացնել այն և նորից ավելացնել:</translation> @@ -1406,7 +1405,6 @@ <translation id="388632593194507180">Միացումը վերահսկվում է</translation> <translation id="3886948180919384617">Շեղջիչ 3</translation> <translation id="3890664840433101773">Ավելացրեք էլ․ հասցե</translation> -<translation id="3893306401511601929">Ավտոմատ «նկար նկարի մեջ» ռեժիմ</translation> <translation id="3897092660631435901">Ընտրացանկ</translation> <translation id="3901925938762663762">Քարտի ժամկետը սպառվել է</translation> <translation id="390391808978419508">Բացման ժամանակը սպառվել է</translation> @@ -1875,7 +1873,6 @@ <translation id="4852429274334674023">Օպերացիոն համակարգեր</translation> <translation id="4854853140771946034">Արագ ստեղծել նշում Google Keep-ում</translation> <translation id="485902285759009870">Կոդը ստուգվում է…</translation> -<translation id="4862630594858951805">Ուզո՞ւմ եք նամակով տեղեկացվել, երբ գնիջեցում լինի</translation> <translation id="4864406669374375262">Տարբերակի տողը պատճենվեց սեղմատախտակին</translation> <translation id="486459320933704969">Ծնողը կամ խնամակալը պետք է թույլատրի ձեզ այցելել այս կայք</translation> <translation id="4866506163384898554">Նշորդը ցույց տալու համար սեղմեք |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> @@ -2767,7 +2764,6 @@ <translation id="6710594484020273272"><Մուտքագրեք որոնման հարցումը></translation> <translation id="671076103358959139">Գրանցման թոքեն՝</translation> <translation id="6711464428925977395">Պրոքսի սերվերի հետ ինչ-որ բան այն չէ, կամ հասցեն սխալ է:</translation> -<translation id="6716013836112872184">Ստացեք նամակներ <ph name="EMAIL" /> հասցեին, երբ որևէ կայքում գնիջեցում լինի։</translation> <translation id="6716672519412350405"><ph name="URL" /> կայքն ուզում է ստեղծել ձեր շրջակայքի եռաչափ քարտեզը և հետագծել տեսախցիկի դիրքը</translation> <translation id="6718612893943028815">Օգտագործե՞լ տեսախցիկը</translation> <translation id="6721164594124191969">Պիտակներ (փայլուն)</translation> @@ -4046,6 +4042,5 @@ <li>միացեք այլ ցանցի։</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ավտոմատ «նկար նկարի մեջ» ռեժիմ</translation> <translation id="997986563973421916">Google Pay-ից</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index a2724437..c85a579d 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Hapus Data Penjelajahan...</translation> <translation id="362276910939193118">Tampilkan Histori Lengkap</translation> <translation id="3624292976554877583">Label (Matte)</translation> -<translation id="3625929652356389713">Dapat meminta untuk membuka jendela picture-in-picture secara otomatis</translation> <translation id="3628905806504633297">{0,plural, =1{Kebijakan administrator tidak merekomendasikan untuk mentransfer file ini ke <ph name="DESTINATION_NAME" />}other{Kebijakan administrator tidak merekomendasikan untuk mentransfer file ini ke <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Jika sudah tercantum sebagai program yang diizinkan untuk mengakses jaringan, coba hapus dari daftar dan tambahkan lagi.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Pemantauan Terdeteksi</translation> <translation id="3886948180919384617">Tempat kertas 3</translation> <translation id="3890664840433101773">Tambahkan email</translation> -<translation id="3893306401511601929">Picture-in-picture otomatis</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">Kartu telah habis masa berlakunya</translation> <translation id="390391808978419508">Waktu pembukaan habis</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Sistem operasi</translation> <translation id="4854853140771946034">Buat catatan baru di Google Keep dengan cepat</translation> <translation id="485902285759009870">Memverifikasi kode ...</translation> -<translation id="4862630594858951805">Ingin mendapatkan email jika ada penurunan harga?</translation> <translation id="4864406669374375262">String versi disalin ke papan klip</translation> <translation id="486459320933704969">Orang tua atau wali harus menyatakan bahwa kamu boleh membuka situs ini</translation> <translation id="4866506163384898554">Tekan |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| untuk menampilkan kursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Ketik istilah penelusuran></translation> <translation id="671076103358959139">Token Pendaftaran:</translation> <translation id="6711464428925977395">Ada yang salah dengan server proxy, atau alamat tidak benar.</translation> -<translation id="6716013836112872184">Dapatkan email yang dikirim ke <ph name="EMAIL" /> jika ada penurunan harga di situs mana pun.</translation> <translation id="6716672519412350405"><ph name="URL" /> ingin membuat peta 3D untuk area di sekeliling Anda dan melacak posisi kamera</translation> <translation id="6718612893943028815">Gunakan kamera?</translation> <translation id="6721164594124191969">Label (Mengilap)</translation> @@ -4031,6 +4027,5 @@ <li>Coba hubungkan ke jaringan lain</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">picture-in-picture otomatis</translation> <translation id="997986563973421916">Dari Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb index 2e810a5b..d59a098d 100644 --- a/components/strings/components_strings_is.xtb +++ b/components/strings/components_strings_is.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Hreinsa vafragögn...</translation> <translation id="362276910939193118">Sýna feril í heild</translation> <translation id="3624292976554877583">Merkimiðar (mattir)</translation> -<translation id="3625929652356389713">Getur beðið um að opna mynd í mynd-glugga sjálfkrafa</translation> <translation id="3628905806504633297">{0,plural, =1{Regla kerfisstjóra mælir ekki með því að flytja skrána í <ph name="DESTINATION_NAME" />}one{Regla kerfisstjóra mælir ekki með því að flytja skrárnar í <ph name="DESTINATION_NAME" />}other{Regla kerfisstjóra mælir ekki með því að flytja skrárnar í <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Ef síðan er þegar skráð sem forrit sem hefur aðgang að netinu skaltu prófa að taka hana af listanum og bæta henni svo við aftur.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Eftirlit greindist</translation> <translation id="3886948180919384617">Staflari 3</translation> <translation id="3890664840433101773">Bæta við netfangi</translation> -<translation id="3893306401511601929">Sjálfvirk mynd í mynd</translation> <translation id="3897092660631435901">Valmynd</translation> <translation id="3901925938762663762">Kortið er útrunnið</translation> <translation id="390391808978419508">Opnun rann út á tíma</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Stýrikerfi</translation> <translation id="4854853140771946034">Búa til nýja glósu í Google Keep á skjótan hátt</translation> <translation id="485902285759009870">Staðfestir kóða...</translation> -<translation id="4862630594858951805">Viltu fá tölvupóst þegar verðið lækkar?</translation> <translation id="4864406669374375262">Útgáfustrengur vistaður á klippiborð</translation> <translation id="486459320933704969">Foreldri eða forráðamaður verður að samþykkja að þú opnir þetta vefsvæði</translation> <translation id="4866506163384898554">Ýttu á |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| til að sýna bendilinn</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Sláðu inn leitarorð></translation> <translation id="671076103358959139">Skráningarlykill:</translation> <translation id="6711464428925977395">Eitthvað amar að staðgengilsþjóninum, eða þá að slóðin er röng.</translation> -<translation id="6716013836112872184">Fáðu sendan tölvupóst á <ph name="EMAIL" /> þegar verðið lækkar á hvaða vefsvæði sem er.</translation> <translation id="6716672519412350405"><ph name="URL" /> vill búa til þrívíddarkort af umhverfinu og rekja staðsetningu myndavélarinnar</translation> <translation id="6718612893943028815">Nota myndavél?</translation> <translation id="6721164594124191969">Merkimiðar (glans)</translation> @@ -4035,6 +4031,5 @@ <li>Prófaðu að tengjast við annað net</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">sjálfvirk mynd í mynd</translation> <translation id="997986563973421916">Frá Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index 03ec124..364206b 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -1260,7 +1260,6 @@ <translation id="36224234498066874">Cancella dati di navigazione...</translation> <translation id="362276910939193118">Mostra cronologia completa</translation> <translation id="3624292976554877583">Etichette (opache)</translation> -<translation id="3625929652356389713">Può chiedere l'autorizzazione ad aprire automaticamente finestre Picture in picture</translation> <translation id="3628905806504633297">{0,plural, =1{Il criterio dell'amministratore sconsiglia di trasferire questo file su <ph name="DESTINATION_NAME" />}other{Il criterio dell'amministratore sconsiglia di trasferire questi file su <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Se è già elencato come programma autorizzato ad accedere alla rete, prova a rimuoverlo dall'elenco e ad aggiungerlo di nuovo.</translation> @@ -1395,7 +1394,6 @@ <translation id="388632593194507180">Monitoraggio rilevato</translation> <translation id="3886948180919384617">Fascicolatore 3</translation> <translation id="3890664840433101773">Aggiungi email</translation> -<translation id="3893306401511601929">Funzionalità Picture in picture automatica</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">La carta è scaduta</translation> <translation id="390391808978419508">Timeout dell'apertura</translation> @@ -1864,7 +1862,6 @@ <translation id="4852429274334674023">Sistemi operativi</translation> <translation id="4854853140771946034">Crea rapidamente una nuova nota in Google Keep</translation> <translation id="485902285759009870">Verifica del codice in corso…</translation> -<translation id="4862630594858951805">Vuoi ricevere email quando il prezzo cala?</translation> <translation id="4864406669374375262">Stringa di versione copiata negli appunti</translation> <translation id="486459320933704969">Un genitore o tutore deve autorizzarti a visitare questo sito web</translation> <translation id="4866506163384898554">Premi |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| per mostrare il cursore</translation> @@ -2752,7 +2749,6 @@ <translation id="6710594484020273272"><Digita un termine di ricerca></translation> <translation id="671076103358959139">Token di registrazione:</translation> <translation id="6711464428925977395">Si è verificato un problema con il server proxy oppure l'indirizzo non è corretto.</translation> -<translation id="6716013836112872184">Ricevi email all'indirizzo <ph name="EMAIL" /> quando il prezzo cala su qualsiasi sito.</translation> <translation id="6716672519412350405"><ph name="URL" /> vorrebbe creare una mappa 3D dell'ambiente circostante e monitorare la posizione della fotocamera</translation> <translation id="6718612893943028815">Usare la videocamera?</translation> <translation id="6721164594124191969">Etichette (lucide)</translation> @@ -4033,6 +4029,5 @@ <li>Prova a collegarti a un'altra rete</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">funzionalità Picture in picture automatica</translation> <translation id="997986563973421916">Da Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index 47f20e3..e46a65e 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">ניקוי נתוני גלישה…</translation> <translation id="362276910939193118">כל ההיסטוריה</translation> <translation id="3624292976554877583">Labels (Matte)</translation> -<translation id="3625929652356389713">האתר יכול לבקש הרשאה לפתוח אוטומטית חלונות עם תמונה בתוך תמונה</translation> <translation id="3628905806504633297">{0,plural, =1{בהתאם למדיניות האדמין, לא מומלץ להעביר את הקובץ הזה אל <ph name="DESTINATION_NAME" />}one{בהתאם למדיניות האדמין, לא מומלץ להעביר את הקבצים האלה אל <ph name="DESTINATION_NAME" />}two{בהתאם למדיניות האדמין, לא מומלץ להעביר את הקבצים האלה אל <ph name="DESTINATION_NAME" />}other{בהתאם למדיניות האדמין, לא מומלץ להעביר את הקבצים האלה אל <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">אם היא כבר רשומה כתוכנית המורשית לגשת לרשת, יש לנסות להסיר אותה מהרשימה ולהוסיף אותה שוב.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">זוהה מעקב</translation> <translation id="3886948180919384617">מערים 3</translation> <translation id="3890664840433101773">הוספת כתובת אימייל</translation> -<translation id="3893306401511601929">הצגת אוטומטית של תמונה בתוך תמונה</translation> <translation id="3897092660631435901">תפריט</translation> <translation id="3901925938762663762">תוקף הכרטיס פג</translation> <translation id="390391808978419508">פג הזמן הקצוב לפתיחה</translation> @@ -1871,7 +1869,6 @@ <translation id="4852429274334674023">מערכות הפעלה</translation> <translation id="4854853140771946034">יצירת הערה חדשה ב-Google Keep במהירות</translation> <translation id="485902285759009870">הקוד בתהליך אימות…</translation> -<translation id="4862630594858951805">רוצה לקבל אימיילים על ירידות במחיר?</translation> <translation id="4864406669374375262">מחרוזת הגרסה הועתקה ללוח</translation> <translation id="486459320933704969">כדי לבקר באתר הזה, עליך לקבל אישור מהורה או מאפוטרופוס</translation> <translation id="4866506163384898554">צריך להקיש על |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| כדי להציג את הסמן</translation> @@ -2761,7 +2758,6 @@ <translation id="6710594484020273272"><יש להקליד מונח חיפוש></translation> <translation id="671076103358959139">אסימון הרשמה:</translation> <translation id="6711464428925977395">משהו אינו תקין בשרת ה-proxy, או שהכתובת שגויה.</translation> -<translation id="6716013836112872184">יישלחו אימיילים לכתובת <ph name="EMAIL" /> כשתהיה ירידה במחיר באתר כלשהו.</translation> <translation id="6716672519412350405">האתר <ph name="URL" /> רוצה ליצור מפה בתלת ממד של הסביבה שלך ולעקוב אחר מיקום המצלמה</translation> <translation id="6718612893943028815">להשתמש במצלמה?</translation> <translation id="6721164594124191969">Labels (Glossy)</translation> @@ -4040,6 +4036,5 @@ <li>להתחבר לרשת אחרת</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">הצגת אוטומטית של תמונה בתוך תמונה</translation> <translation id="997986563973421916">מ-Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index edf913c..7bc82dc 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">閲覧履歴データを削除...</translation> <translation id="362276910939193118">全履歴を表示</translation> <translation id="3624292976554877583">ラベル(非光沢)</translation> -<translation id="3625929652356389713">ピクチャー イン ピクチャー ウィンドウを自動的に開くよう要求できるようにする</translation> <translation id="3628905806504633297">{0,plural, =1{管理者のポリシー設定では、このファイルを <ph name="DESTINATION_NAME" /> に転送することは推奨されていません}other{管理者のポリシー設定では、これらのファイルを <ph name="DESTINATION_NAME" /> に転送することは推奨されていません}}</translation> <translation id="3630155396527302611">ネットワークへのアクセスを許可されたプログラムとして既に表示されている場合は、 いったんリストから削除し、もう一度追加してみてください。</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">監視が検出されました</translation> <translation id="3886948180919384617">スタッカー 3</translation> <translation id="3890664840433101773">メールを追加</translation> -<translation id="3893306401511601929">自動ピクチャー イン ピクチャー</translation> <translation id="3897092660631435901">メニュー</translation> <translation id="3901925938762663762">カードの有効期限が切れています</translation> <translation id="390391808978419508">開く処理がタイムアウトしました</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">オペレーティング システム</translation> <translation id="4854853140771946034">Google Keep で新しいメモをすばやく作成します</translation> <translation id="485902285759009870">コードを確認しています...</translation> -<translation id="4862630594858951805">値下げがあったときにメールでお知らせしますか?</translation> <translation id="4864406669374375262">バージョン文字列をクリップボードにコピーしました</translation> <translation id="486459320933704969">保護者の方から、このウェブサイトを開いてもよいという承認をもらう必要があります</translation> <translation id="4866506163384898554">カーソルを表示するには |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />| を押します</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><検索キーワードを入力></translation> <translation id="671076103358959139">登録トークン:</translation> <translation id="6711464428925977395">プロキシ サーバーに問題がある、またはアドレスが正しくありません。</translation> -<translation id="6716013836112872184">値下げしたサイトがあったときに、<ph name="EMAIL" /> にメールでお知らせします。</translation> <translation id="6716672519412350405"><ph name="URL" /> が周囲の 3D マップの作成とカメラ位置の追跡を求めています</translation> <translation id="6718612893943028815">カメラを使用しますか?</translation> <translation id="6721164594124191969">ラベル(光沢)</translation> @@ -4037,6 +4033,5 @@ <li>別のネットワークに接続してみてください</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">自動ピクチャー イン ピクチャー</translation> <translation id="997986563973421916">Google Pay から</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb index c1b33d30..3b9a4c6 100644 --- a/components/strings/components_strings_ka.xtb +++ b/components/strings/components_strings_ka.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">დათ. მონაცემების გასუფთავება…</translation> <translation id="362276910939193118">სრული ისტორიის ნახვა</translation> <translation id="3624292976554877583">ლეიბლები (მქრქალი)</translation> -<translation id="3625929652356389713">შეუძლია ითხოვოს, ავტომატურად გახსნას „ეკრანი ეკრანში“ ფანჯრები</translation> <translation id="3628905806504633297">{0,plural, =1{ადმინისტრატორის წესების მიხედვით, ამ ფაილის <ph name="DESTINATION_NAME" />-ზე გადაცემა რეკომენდებული არ არის}other{ადმინისტრატორის წესების მიხედვით, ამ ფაილების <ph name="DESTINATION_NAME" />-ზე გადაცემა რეკომენდებული არ არის}}</translation> <translation id="3630155396527302611">თუ ის უკვე მითითებულია, როგორც ქსელზე წვდომის ნებართვის მქონე პროგრამა, ცადეთ მისი სიიდან ამოშლა და ხელახლა დამატება.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">აღმოჩენილია მონიტორინგი</translation> <translation id="3886948180919384617">სტეკერი 3</translation> <translation id="3890664840433101773">ელფოსტის დამატება</translation> -<translation id="3893306401511601929">ავტომატური „ეკრანი ეკრანში“</translation> <translation id="3897092660631435901">მენიუ</translation> <translation id="3901925938762663762">ბარათი ვადაგასულია</translation> <translation id="390391808978419508">გახსნის დრო ამოიწურა</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">ოპერაციული სისტემები</translation> <translation id="4854853140771946034">Google Keep-ში ახალი ჩანიშვნის სწრაფად შექმნა</translation> <translation id="485902285759009870">მიმდინარეობს კოდის დადასტურება...</translation> -<translation id="4862630594858951805">გსურთ ელფოსტით შეიტყოთ ფასის კლების შესახებ?</translation> <translation id="4864406669374375262">ვერსიის სტრიქონი დაკოპირდა გაცვლის ბუფერში</translation> <translation id="486459320933704969">მშობელმა ან მეურვემ უნდა დაადასტუროს, რომ ამ ვებსაიტის მონახულება შეგიძლიათ</translation> <translation id="4866506163384898554">კურსორის საჩვენებლად დააჭირეთ კლავიშებზე |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><აკრიფეთ საძიებო ფრაზა></translation> <translation id="671076103358959139">რეგისტრაციის ჟეტონი:</translation> <translation id="6711464428925977395">პროქსი-სერვერთან დაკავშირებით რაღაც პრობლემაა, ან მისამართი არასწორია.</translation> -<translation id="6716013836112872184">მიიღეთ შეტყობინებები <ph name="EMAIL" />-ზე, როცა რომელიმე საიტზე ფასი დაიკლებს.</translation> <translation id="6716672519412350405"><ph name="URL" /> ითხოვს თქვენი გარემოს 3-განზომილებიანი რუკის შექმნასა და კამერის პოზიციისთვის თვალის მიდევნების ნებართვას</translation> <translation id="6718612893943028815">გსურთ კამერის გამოყენება?</translation> <translation id="6721164594124191969">ლეიბლები (პრიალა)</translation> @@ -4035,6 +4031,5 @@ <li>ცადეთ სხვა ქსელთან დაკავშირება</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ავტომატური „ეკრანი ეკრანში“</translation> <translation id="997986563973421916">Google Pay-დან</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb index 45173e2..060e0a7 100644 --- a/components/strings/components_strings_kk.xtb +++ b/components/strings/components_strings_kk.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">Шолу деректерін өшіру…</translation> <translation id="362276910939193118">Тарихты толық көрсету</translation> <translation id="3624292976554877583">Белгілер (күңгірт)</translation> -<translation id="3625929652356389713">"Суреттегі сурет" режимі терезелерін автоматты түрде ашуды сұрай алады</translation> <translation id="3628905806504633297">{0,plural, =1{Әкімші саясатына сәйкес бұл файлды <ph name="DESTINATION_NAME" /> қалтасына тасымалдау ұсынылмайды.}other{Әкімші саясатына сәйкес бұл файлдарды <ph name="DESTINATION_NAME" /> қалтасына тасымалдау ұсынылмайды.}}</translation> <translation id="3630155396527302611">Ол желіге кіруге рұқсат алған бағдарламалар тізімінде тұрса, оны тізімнен өшіріп, қайта қосып көріңіз.</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">Бақыланып жатқаны анықталды</translation> <translation id="3886948180919384617">3-жинастырушы</translation> <translation id="3890664840433101773">Электрондық пошта мекенжайын енгізу</translation> -<translation id="3893306401511601929">Автоматты "Суреттегі сурет" режимі</translation> <translation id="3897092660631435901">Мәзір</translation> <translation id="3901925938762663762">Картаның мерзімі өткен</translation> <translation id="390391808978419508">Ашу уақыты өтіп кетті</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">Операциялық жүйелер</translation> <translation id="4854853140771946034">Google Keep-те жылдам жаңа ескертпе жасау</translation> <translation id="485902285759009870">Код тексерілуде…</translation> -<translation id="4862630594858951805">Баға төмендегенде, электрондық хаттарды алғыңыз келе ме?</translation> <translation id="4864406669374375262">Нұсқа жолы буферге көшірілді</translation> <translation id="486459320933704969">Ата-ана немесе қамқоршы бұл веб-сайтқа кіре алатыныңызды хабарлауы керек.</translation> <translation id="4866506163384898554">Курсорды көрсету үшін |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| пернелерін басыңыз.</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Іздеу терминін теру></translation> <translation id="671076103358959139">Тіркеу таңбалауышы:</translation> <translation id="6711464428925977395">Прокси серверде бірдеңе дұрыс емес немесе мекенжай қате.</translation> -<translation id="6716013836112872184">Кез келген сайтта баға төмендегенде, <ph name="EMAIL" /> мекенжайына жіберілген электрондық хаттарды алыңыз.</translation> <translation id="6716672519412350405"><ph name="URL" /> айналаңыздың 3D картасын жасағысы және камера орнын бақылағысы келеді.</translation> <translation id="6718612893943028815">Камера пайдаланылсын ба?</translation> <translation id="6721164594124191969">Белгілер (жылтыр)</translation> @@ -4034,6 +4030,5 @@ <li>Басқа желіге қосылып көріңіз</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">автоматты "Суреттегі сурет" режимі</translation> <translation id="997986563973421916">Google Pay қызметінен алынды</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb index 48f146e..5ea31853 100644 --- a/components/strings/components_strings_km.xtb +++ b/components/strings/components_strings_km.xtb
@@ -1266,7 +1266,6 @@ <translation id="36224234498066874">សម្អាតទិន្នន័យរុករក...</translation> <translation id="362276910939193118">បង្ហាញប្រវត្តិពេញលេញ</translation> <translation id="3624292976554877583">ស្លាក (គ្រើម)</translation> -<translation id="3625929652356389713">អាចស្នើឱ្យបើកវិនដូរូបក្នុងរូបដោយស្វ័យប្រវត្តិបាន</translation> <translation id="3628905806504633297">{0,plural, =1{គោលការណ៍អ្នកគ្រប់គ្រងមិនណែនាំឱ្យផ្ទេរឯកសារនេះទៅក្នុង <ph name="DESTINATION_NAME" /> ទេ}other{គោលការណ៍អ្នកគ្រប់គ្រងមិនណែនាំឱ្យផ្ទេរឯកសារទាំងនេះទៅក្នុង <ph name="DESTINATION_NAME" /> ទេ}}</translation> <translation id="3630155396527302611">ប្រសិនបើវាត្រូវបានរាយជាកម្មវិធីដែលបានអនុញ្ញាតឲ្យចូលប្រើបណ្តាញនេះរួចហើយ សូមសាកល្បងយកវាចេញពីបញ្ជី ហើយបន្ថែមវាម្តងទៀត។</translation> @@ -1401,7 +1400,6 @@ <translation id="388632593194507180">បានរកឃើញការឃ្លាំមើល</translation> <translation id="3886948180919384617">ទម្រគំនរទី 3</translation> <translation id="3890664840433101773">បញ្ចូលអ៊ីមែល</translation> -<translation id="3893306401511601929">រូបក្នុងរូបដោយស្វ័យប្រវត្តិ</translation> <translation id="3897092660631435901">ម៉ឺនុយ</translation> <translation id="3901925938762663762">កាតនេះផុតកំណត់។</translation> <translation id="390391808978419508">ការបើកអស់ម៉ោងហើយ</translation> @@ -1871,7 +1869,6 @@ <translation id="4852429274334674023">ប្រព័ន្ធប្រតិបត្តិការ</translation> <translation id="4854853140771946034">បង្កើតកំណត់ចំណាំថ្មីនៅក្នុង Google Keep បានរហ័ស</translation> <translation id="485902285759009870">កំពុងផ្ទៀងផ្ទាត់លេខកូដ...</translation> -<translation id="4862630594858951805">ចង់ទទួលបានអ៊ីមែល នៅពេលមានការធ្លាក់ថ្លៃដែរទេ?</translation> <translation id="4864406669374375262">បានចម្លងជួរអក្សរកំណែទៅឃ្លីបបត</translation> <translation id="486459320933704969">មាតាបិតា ឬអាណាព្យាបាលចាំបាច់ត្រូវនិយាយថាមិនអីទេ អ្នកអាចចូលទៅកាន់គេហទំព័រនេះបាន</translation> <translation id="4866506163384898554">ចុច |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ដើម្បីបង្ហាញទស្សន៍ទ្រនិចរបស់អ្នក</translation> @@ -2760,7 +2757,6 @@ <translation id="6710594484020273272"><វាយបញ្ចូលពាក្យដែលត្រូវស្វែងរក></translation> <translation id="671076103358959139">ធាតុកូដចុះឈ្មោះ៖</translation> <translation id="6711464428925977395">មានបញ្ហាមិនប្រក្រតីជាមួយម៉ាស៊ីនមេប្រូកស៊ី ឬអាសយដ្ឋានមិនត្រឹមត្រូវ</translation> -<translation id="6716013836112872184">ទទួលបានអ៊ីមែលដែលផ្ញើទៅ <ph name="EMAIL" /> នៅពេលមានការធ្លាក់ថ្លៃនៅលើគេហទំព័រណាមួយ។</translation> <translation id="6716672519412350405"><ph name="URL" /> ចង់បង្កើតផែនទី 3D នៃមជ្ឈដ្ឋានជុំវិញរបស់អ្នក និងតាមដានទីតាំងកាមេរ៉ា</translation> <translation id="6718612893943028815">ប្រើកាមេរ៉ាឬ?</translation> <translation id="6721164594124191969">ស្លាក (រលោង)</translation> @@ -4042,6 +4038,5 @@ <li>សាកល្បងភ្ជាប់ទៅបណ្តាញផ្សេង</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">រូបក្នុងរូបដោយស្វ័យប្រវត្តិ</translation> <translation id="997986563973421916">ពី Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index c63c164e..fc8d7569 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -1261,7 +1261,6 @@ <translation id="36224234498066874">ಬ್ರೌಸ್ ಆಗುತ್ತಿರುವ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ...</translation> <translation id="362276910939193118">ಪೂರ್ಣ ಇತಿಹಾಸ ತೋರಿಸಿ</translation> <translation id="3624292976554877583">ಲೇಬಲ್ಗಳು (ಮ್ಯಾಟ್)</translation> -<translation id="3625929652356389713">ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ವಿಂಡೋಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆರೆಯಲು ಕೇಳಬಹುದು</translation> <translation id="3628905806504633297">{0,plural, =1{ನಿರ್ವಾಹಕರ ನೀತಿಯು ಈ ಫೈಲ್ ಅನ್ನು <ph name="DESTINATION_NAME" /> ಗೆ ವರ್ಗಾಯಿಸಲು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ}one{ನಿರ್ವಾಹಕರ ನೀತಿಯು ಈ ಫೈಲ್ಗಳನ್ನು <ph name="DESTINATION_NAME" /> ಗೆ ವರ್ಗಾಯಿಸಲು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ}other{ನಿರ್ವಾಹಕರ ನೀತಿಯು ಈ ಫೈಲ್ಗಳನ್ನು <ph name="DESTINATION_NAME" /> ಗೆ ವರ್ಗಾಯಿಸಲು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ}}</translation> <translation id="3630155396527302611">ಒಂದು ವೇಳೆ ನೆಟ್ವರ್ಕ್ ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸುವ ಒಂದು ಪ್ರೊಗ್ರಾಂನಂತೆ ಇದನ್ನು ಈಗಾಗಲೇ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದ್ದರೆ, ಅದನ್ನು ಪಟ್ಟಿಯಿಂದ ತೆಗೆಯಲು ಮತ್ತು ಪುನಃ ಅದನ್ನು ಸೇರಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="3630426379756188722">Find My Device ಬಟನ್, Google ಖಾತೆಯಲ್ಲಿ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಹುಡುಕುವುದಕ್ಕೆ ಭೇಟಿ ನೀಡಲು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> @@ -1395,7 +1394,6 @@ <translation id="388632593194507180">ನಿಗಾ ಇಡುತ್ತಿರುವುದನ್ನು ಪತ್ತೆಹಚ್ಚಲಾಗಿದೆ</translation> <translation id="3886948180919384617">ಸ್ಟ್ಯಾಕರ್ 3</translation> <translation id="3890664840433101773">ಇಮೇಲ್ ಸೇರಿಸಿ</translation> -<translation id="3893306401511601929">ಸ್ವಯಂಚಾಲಿತ ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ</translation> <translation id="3897092660631435901">ಮೆನು</translation> <translation id="3901925938762663762">ಕಾರ್ಡ್ ಅವಧಿಯು ಮುಗಿದಿದೆ</translation> <translation id="390391808978419508">ತೆರೆಯುವ ಸಮಯ ಮೀರಿದೆ</translation> @@ -1864,7 +1862,6 @@ <translation id="4852429274334674023">ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳು</translation> <translation id="4854853140771946034">Google Keep ನಲ್ಲಿ ಹೊಸ ಟಿಪ್ಪಣಿಯನ್ನು ತ್ವರಿತವಾಗಿ ರಚಿಸಿ</translation> <translation id="485902285759009870">ಕೋಡ್ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...</translation> -<translation id="4862630594858951805">ಬೆಲೆ ಕುಸಿತದ ಕುರಿತ ಇಮೇಲ್ಗಳು ಬೇಕೇ?</translation> <translation id="4864406669374375262">ಆವೃತ್ತಿಯ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಕ್ಲಿಪ್ಬೋರ್ಡ್ಗೆ ಕಾಪಿ ಮಾಡಲಾಗಿದೆ</translation> <translation id="486459320933704969">ನೀವು ಈ ವೆಬ್ಸೈಟ್ಗೆ ಭೇಟಿ ನೀಡುವುದಕ್ಕಾಗಿ ನಿಮ್ಮ ಪೋಷಕರ ಅನುಮತಿ ಅಗತ್ಯವಿದೆ</translation> <translation id="4866506163384898554">ನಿಮ್ಮ ಕರ್ಸರ್ ತೋರಿಸಲು |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ಒತ್ತಿರಿ</translation> @@ -2753,7 +2750,6 @@ <translation id="6710594484020273272"><ಹುಡುಕಾಟದ ಪದ ಟೈಪ್ ಮಾಡಿ></translation> <translation id="671076103358959139">ನೋಂದಣಿಯ ಟೋಕನ್:</translation> <translation id="6711464428925977395">ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ನಲ್ಲಿ ಏನೋ ದೋಷವಿದೆ ಅಥವಾ ವಿಳಾಸವು ತಪ್ಪಾಗಿದೆ.</translation> -<translation id="6716013836112872184">ಯಾವುದೇ ಸೈಟ್ನಲ್ಲಿ ಬೆಲೆ ಕುಸಿತವಾದರೆ <ph name="EMAIL" /> ಗೆ ಕಳುಹಿಸಲಾದ ಇಮೇಲ್ಗಳನ್ನು ಪಡೆಯಿರಿ.</translation> <translation id="6716672519412350405">ನಿಮ್ಮ ಸುತ್ತಮುತ್ತಲಿನ 3D ನಕ್ಷೆಗಳನ್ನು ರಚಿಸುವುದು ಅಥವಾ ಕ್ಯಾಮರಾ ಸ್ಥಿತಿಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು <ph name="URL" /> ಬಯಸುತ್ತಿದೆ</translation> <translation id="6718612893943028815">ಕ್ಯಾಮರಾ ಬಳಸುವುದೇ?</translation> <translation id="6721164594124191969">ಲೇಬಲ್ಗಳು (ಹೊಳಪು)</translation> @@ -4028,6 +4024,5 @@ <translation id="992256792861109788">ಗುಲಾಬಿ ಬಣ್ಣ</translation> <translation id="992432478773561401">"<ph name="SOFTWARE_NAME" />" ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅಥವಾ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಸರಿಯಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿಲ್ಲ: <ul> <li>"<ph name="SOFTWARE_NAME" />" ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಿ</li> <li>ಇನ್ನೊಂದು ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಸಿಲು ಪ್ರಯತ್ನಿಸಿ </li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ಸ್ವಯಂಚಾಲಿತ ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ</translation> <translation id="997986563973421916">Google Pay ನಿಂದ</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index 36a57db..0aab1302d 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">인터넷 사용 기록 삭제...</translation> <translation id="362276910939193118">방문 기록 전체 보기</translation> <translation id="3624292976554877583">라벨(무광)</translation> -<translation id="3625929652356389713">PIP 모드 창을 자동으로 열도록 요청할 수 있음</translation> <translation id="3628905806504633297">{0,plural, =1{관리자 정책에 따라 이 파일을 <ph name="DESTINATION_NAME" />에 전송하지 않는 것이 좋습니다.}other{관리자 정책에 따라 이 파일을 <ph name="DESTINATION_NAME" />에 전송하지 않는 것이 좋습니다.}}</translation> <translation id="3630155396527302611">이미 네트워크 액세스가 허용된 프로그램으로 되어 있는 경우 목록에서 삭제한 뒤 다시 추가합니다.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">모니터링 감지됨</translation> <translation id="3886948180919384617">스태커 3</translation> <translation id="3890664840433101773">이메일 추가</translation> -<translation id="3893306401511601929">자동 PIP 모드</translation> <translation id="3897092660631435901">메뉴</translation> <translation id="3901925938762663762">만료된 카드입니다.</translation> <translation id="390391808978419508">여는 시간 초과</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">운영체제</translation> <translation id="4854853140771946034">Google Keep에서 빠르게 새 메모 만들기</translation> <translation id="485902285759009870">코드 인증 중...</translation> -<translation id="4862630594858951805">가격이 인하되면 이메일을 받고 싶으신가요?</translation> <translation id="4864406669374375262">버전 문자열이 클립보드에 복사되었습니다.</translation> <translation id="486459320933704969">부모님 또는 보호자가 이 웹사이트를 방문해도 괜찮다고 말해야 합니다.</translation> <translation id="4866506163384898554">커서를 표시하려면 |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| 키를 누르세요.</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><검색어 입력></translation> <translation id="671076103358959139">등록 토큰:</translation> <translation id="6711464428925977395">프록시 서버에 문제가 발생했거나 주소가 잘못되었습니다.</translation> -<translation id="6716013836112872184">사이트에서 가격이 인하되면 <ph name="EMAIL" /> 주소로 이메일이 전송됩니다.</translation> <translation id="6716672519412350405"><ph name="URL" />에서 주변 환경의 3D 지도를 생성하고 카메라 위치를 추적하려고 합니다.</translation> <translation id="6718612893943028815">카메라를 사용하시겠습니까?</translation> <translation id="6721164594124191969">라벨(유광)</translation> @@ -4034,6 +4030,5 @@ <li>다른 네트워크에 연결해 보세요.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">자동 PIP 모드</translation> <translation id="997986563973421916">출처: Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb index 401bfa81..c94b5c9e 100644 --- a/components/strings/components_strings_ky.xtb +++ b/components/strings/components_strings_ky.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">Серепчиден көрүлгөн нерселерди тазалоо…</translation> <translation id="362276910939193118">Толук таржымалды көрсөтүү</translation> <translation id="3624292976554877583">Энбелгилер (жылтырабаган кагаз)</translation> -<translation id="3625929652356389713">Сүрөттөгү сүрөт терезелерин автоматтык түрдө ачууга уруксат сурай алат</translation> <translation id="3628905806504633297">{0,plural, =1{Администратордун саясаты бул файлды төмөнкүгө өткөрүүнү сунуштабайт: <ph name="DESTINATION_NAME" />}other{Администратордун саясаты бул файлдарды төмөнкүгө өткөрүүнү сунуштабайт: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Эгер ал тармакка кире алган программа катары мурунтан эле тизмеленген болсо, аны тизмеден алып салып, кайра кошуп көрүңүз.</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">Көзөмөлдөө аныкталды</translation> <translation id="3886948180919384617">3-төшөгүч</translation> <translation id="3890664840433101773">Электрондук почта дарегин кошуу</translation> -<translation id="3893306401511601929">Автоматтык сүрөттөгү сүрөт</translation> <translation id="3897092660631435901">Меню</translation> <translation id="3901925938762663762">Картанын мөөнөтү бүткөн</translation> <translation id="390391808978419508">Ачуу убакыты аяктады</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">Операциялык тутумдар</translation> <translation id="4854853140771946034">Google Keep'те жаңы эскертмени тез жазуу</translation> <translation id="485902285759009870">Код текшерилүүдө…</translation> -<translation id="4862630594858951805">Баалардын арзандаганы тууралуу электрондук каттарды алгыңыз келеби?</translation> <translation id="4864406669374375262">Версиянын сабы алмашуу буферине көчүрүлдү</translation> <translation id="486459320933704969">Ата-энең же камкорчуң вебсайтка кирүүңө уруксат бериши керек</translation> <translation id="4866506163384898554">Курсорду көрсөтүү үчүн |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| баскычтарын басыңыз</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Изделүүчү сөздү териңиз></translation> <translation id="671076103358959139">Катталуу токени:</translation> <translation id="6711464428925977395">Прокси серверден кандайдыр бир ката кетти же дарек туура эмес.</translation> -<translation id="6716013836112872184">Кандайдыр бир сайтта баасы арзандаганда, <ph name="EMAIL" /> дарегине электрондук каттарды алуу.</translation> <translation id="6716672519412350405"><ph name="URL" /> айланаңыздын 3D картасын түзүүгө же камераңыздын абалына көз салууга уруксат сурап жатат</translation> <translation id="6718612893943028815">Камера колдонулсунбу?</translation> <translation id="6721164594124191969">Энбелгилер (жылтырак)</translation> @@ -4034,6 +4030,5 @@ <li>Башка тармакка туташып көрүңүз</li> </ul></translation> <translation id="994346157028146140">JIS B1 (728mm x 1030mm)</translation> -<translation id="995240771322213706">автоматтык сүрөттөгү сүрөт</translation> <translation id="997986563973421916">Google Pay'ден</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb index 2fc64bd..18d3195 100644 --- a/components/strings/components_strings_lo.xtb +++ b/components/strings/components_strings_lo.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">ລຶບລ້າງຂໍ້ມູນການທ່ອງເວັບ...</translation> <translation id="362276910939193118">ສະແດງປະຫວັດທັງໝົດ</translation> <translation id="3624292976554877583">ປ້າຍ (ດ້ານ)</translation> -<translation id="3625929652356389713">ສາມາດຂໍໃຫ້ເປີດໜ້າຈໍການສະແດງຜົນຊ້ອນກັນໂດຍອັດຕະໂນມັດ</translation> <translation id="3628905806504633297">{0,plural, =1{ນະໂຍບາຍຜູ້ເບິ່ງແຍງລະບົບບໍ່ແນະນຳໃຫ້ໂອນຍ້າຍໄຟລ໌ນີ້ໃສ່ໃນ <ph name="DESTINATION_NAME" />}other{ນະໂຍບາຍຜູ້ເບິ່ງແຍງລະບົບບໍ່ແນະນຳໃຫ້ໂອນຍ້າຍໄຟລ໌ເຫຼົ່ານີ້ໃສ່ໃນ <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">ຖ້າວ່າມັນຢູ່ໃນລາຍການເປັນໂປຣແກຣມທີ່ໄດ້ຮັບອະນຸຍາດໃຫ້ເຂົ້າຫາເຄືອຂ່າຍໄດ້, ໃຫ້ລອງ ລຶບມັນອອກໄປຈາກລາຍການ ແລ້ວເພີ່ມມັນໃສ່ຄືນໃໝ່.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">ກວດພົບການຕິດຕາມເບິ່ງ</translation> <translation id="3886948180919384617">ສະແຕັກເກີ້ 3</translation> <translation id="3890664840433101773">ເພີ່ມອີເມວ</translation> -<translation id="3893306401511601929">ການສະແດງຜົນຊ້ອນກັນອັດຕະໂນມັດ</translation> <translation id="3897092660631435901">ເມນູ</translation> <translation id="3901925938762663762">ບັດຫມົດອາຍຸແລ້ວ</translation> <translation id="390391808978419508">ການເປີດໝົດເວລາແລ້ວ</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">ລະບົບປະຕິບັດການ</translation> <translation id="4854853140771946034">ສ້າງບັນທຶກໃໝ່ໃນ Google Keep ໄດ້ຢ່າງງ່າຍດາຍ</translation> <translation id="485902285759009870">ກຳລັງຢັ້ງຢືນລະຫັດ...</translation> -<translation id="4862630594858951805">ຕ້ອງການຮັບອີເມວແຈ້ງເມື່ອລາຄາຫຼຸດລົງບໍ?</translation> <translation id="4864406669374375262">ສຳເນົາສະຕຣິງເວີຊັນໄປໃສ່ຄລິບບອດແລ້ວ</translation> <translation id="486459320933704969">ພໍ່ແມ່ ຫຼື ຜູ້ປົກຄອງຕ້ອງເວົ້າວ່າທ່ານສາມາດເຂົ້າເບິ່ງເວັບໄຊນີ້ໄດ້</translation> <translation id="4866506163384898554">ກົດ |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ເພື່ອສະແດງເຄີເຊີຂອງທ່ານ</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><ພິມຄຳສັບການຄົ້ນຫາ></translation> <translation id="671076103358959139">ໂທເຄັນການລົງທະບຽນ:</translation> <translation id="6711464428925977395">ມີບາງຢ່າງຜິດພາດກັບເຊີບເວີພຣັອກຊີ ຫຼື ທີ່ຢູ່ບໍ່ຖືກຕ້ອງ.</translation> -<translation id="6716013836112872184">ຮັບອີເມວເຊິ່ງຈະສົ່ງໄປຫາ <ph name="EMAIL" /> ເມື່ອລາຄາຫຼຸດລົງໃນເວັບໄຊໃດກໍຕາມ.</translation> <translation id="6716672519412350405"><ph name="URL" /> ຕ້ອງການສ້າງແຜນທີ່ 3 ມິຕິຂອງສິ່ງທີ່ຢູ່ອ້ອມຂ້າງຕົວທ່ານ ແລະ ຕິດຕາມຕຳແໜ່ງກ້ອງ</translation> <translation id="6718612893943028815">ໃຊ້ກ້ອງຖ່າຍຮູບບໍ?</translation> <translation id="6721164594124191969">ປ້າຍ (ມັນວາວ)</translation> @@ -4036,6 +4032,5 @@ <li>ລອງເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍອື່ນ</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ການສະແດງຜົນຊ້ອນກັນອັດຕະໂນມັດ</translation> <translation id="997986563973421916">ຈາກ Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index 0e74dd8..88e3671 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -1264,7 +1264,6 @@ <translation id="36224234498066874">Išvalyti naršymo duomenis...</translation> <translation id="362276910939193118">Rodyti visą istoriją</translation> <translation id="3624292976554877583">Etiketės (matinės)</translation> -<translation id="3625929652356389713">Gali prašyti automatiškai atidaryti vaizdo vaizde langus</translation> <translation id="3628905806504633297">{0,plural, =1{Pagal administratoriaus politikos nuostatas nerekomenduojama perkelti šio failo į „<ph name="DESTINATION_NAME" />“}one{Pagal administratoriaus politikos nuostatas nerekomenduojama perkelti šių failų į „<ph name="DESTINATION_NAME" />“}few{Pagal administratoriaus politikos nuostatas nerekomenduojama perkelti šių failų į „<ph name="DESTINATION_NAME" />“}many{Pagal administratoriaus politikos nuostatas nerekomenduojama perkelti šių failų į „<ph name="DESTINATION_NAME" />“}other{Pagal administratoriaus politikos nuostatas nerekomenduojama perkelti šių failų į „<ph name="DESTINATION_NAME" />“}}</translation> <translation id="3630155396527302611">Jei ji nurodyta kaip programa, kuriai leidžiama pasiekti tinklą, pabandykite ją pašalinti iš sąrašo ir vėl pridėti.</translation> @@ -1399,7 +1398,6 @@ <translation id="388632593194507180">Aptiktas stebėjimas</translation> <translation id="3886948180919384617">3 dėtuvė</translation> <translation id="3890664840433101773">Pridėti el. pašto adresą</translation> -<translation id="3893306401511601929">Automatinis vaizdas vaizde</translation> <translation id="3897092660631435901">Meniu</translation> <translation id="3901925938762663762">Kortelė nebegalioja</translation> <translation id="390391808978419508">Baigėsi atidarymo skirtasis laikas</translation> @@ -1868,7 +1866,6 @@ <translation id="4852429274334674023">Operacinės sistemos</translation> <translation id="4854853140771946034">Greitai sukurkite naują „Google Keep“ užrašą</translation> <translation id="485902285759009870">Patvirtinamas kodas...</translation> -<translation id="4862630594858951805">Norite gauti el. laiškus, kai kaina sumažės?</translation> <translation id="4864406669374375262">Versijos eilutė nukopijuota į iškarpinę</translation> <translation id="486459320933704969">Vienas iš tėvų ar globėjų turi patvirtinti, kad galite apsilankyti šioje svetainėje</translation> <translation id="4866506163384898554">Paspauskite |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />, kad būtų rodomas žymeklis</translation> @@ -2757,7 +2754,6 @@ <translation id="6710594484020273272"><Įveskite paieškos terminą></translation> <translation id="671076103358959139">Registracijos prieigos raktas:</translation> <translation id="6711464428925977395">Kažkas negerai su tarpiniu serveriu arba adresas netinkamas.</translation> -<translation id="6716013836112872184">Gaukite el. laiškus adresu <ph name="EMAIL" />, kai kurioje nors svetainėje sumažės kaina.</translation> <translation id="6716672519412350405"><ph name="URL" /> nori kurti jūsų aplinkos 3D žemėlapį ir stebėti kameros padėtį</translation> <translation id="6718612893943028815">Naudoti fotoaparatą?</translation> <translation id="6721164594124191969">Etiketės (blizgios)</translation> @@ -4037,6 +4033,5 @@ <li>Pabandykite prisijungti prie kito tinklo.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatinis vaizdas vaizde</translation> <translation id="997986563973421916">Iš „Google Pay“</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index 7b487826..6c3996e 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Dzēst pārlūkošanas datus...</translation> <translation id="362276910939193118">Rādīt pilnu vēsturi</translation> <translation id="3624292976554877583">Etiķešu papīrs (matēts)</translation> -<translation id="3625929652356389713">Var tikt pieprasīts, lai automātiski tiktu atvērti logi ar attēlu attēlā</translation> <translation id="3628905806504633297">{0,plural, =1{Administratora politika nosaka, ka nav ieteicams pārsūtīt šo failu uz: <ph name="DESTINATION_NAME" />.}zero{Administratora politika nosaka, ka nav ieteicams pārsūtīt šos failus uz: <ph name="DESTINATION_NAME" />.}one{Administratora politika nosaka, ka nav ieteicams pārsūtīt šos failus uz: <ph name="DESTINATION_NAME" />.}other{Administratora politika nosaka, ka nav ieteicams pārsūtīt šos failus uz: <ph name="DESTINATION_NAME" />.}}</translation> <translation id="3630155396527302611">Ja tā jau ir norādīta kā programma, kurai ir atļauts piekļūt tīklam, noņemiet to no saraksta un pievienojiet vēlreiz.</translation> <translation id="3630426379756188722">Poga “Atrast ierīci”. Aktivizējiet, lai savā Google kontā atvērtu lapu Atrast ierīci.</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">Konstatēta pārraudzība</translation> <translation id="3886948180919384617">3. izvades vieta</translation> <translation id="3890664840433101773">E-pasta adreses pievienošana</translation> -<translation id="3893306401511601929">Automātisks attēls attēlā</translation> <translation id="3897092660631435901">Izvēlne</translation> <translation id="3901925938762663762">Kartes derīguma termiņš ir beidzies.</translation> <translation id="390391808978419508">Atvēršanai iestājās noildze</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">Operētājsistēmas</translation> <translation id="4854853140771946034">Ātri izveidot jaunu piezīmi lietotnē Google Keep</translation> <translation id="485902285759009870">Notiek koda verificēšana…</translation> -<translation id="4862630594858951805">Vai vēlaties saņemt e-pasta ziņojumus par cenas kritumu?</translation> <translation id="4864406669374375262">Versijas virkne tika kopēta starpliktuvē</translation> <translation id="486459320933704969">Kādam no vecākiem vai aizbildnim ir jāapstiprina, ka jūs varat apmeklēt šo vietni.</translation> <translation id="4866506163384898554">Nospiediet |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|, lai parādītu kursoru.</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Ierakstiet meklēšanas vienumu></translation> <translation id="671076103358959139">Reģistrācijas pilnvara:</translation> <translation id="6711464428925977395">Starpniekserverī radās kļūda, vai arī adrese nav pareiza.</translation> -<translation id="6716013836112872184">Varat iestatīt e-pasta ziņojumu nosūtīšanu uz adresi <ph name="EMAIL" />, kad kādā vietnē tiek konstatēts cenas kritums.</translation> <translation id="6716672519412350405">Vietne <ph name="URL" /> vēlas izveidot jūsu apkārtnes 3D karti un izsekot kameras pozīciju.</translation> <translation id="6718612893943028815">Vai lietot kameru?</translation> <translation id="6721164594124191969">Etiķešu papīrs (glancēts)</translation> @@ -4035,6 +4031,5 @@ <li>Mēģiniet izveidot savienojumu ar citu tīklu.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automātisks attēls attēlā</translation> <translation id="997986563973421916">No pakalpojuma Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb index 3b53a40..231c801d 100644 --- a/components/strings/components_strings_mk.xtb +++ b/components/strings/components_strings_mk.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Исчисти податоци…</translation> <translation id="362276910939193118">Покажи целосна историја</translation> <translation id="3624292976554877583">Етикети (мат)</translation> -<translation id="3625929652356389713">Може да бара да се отвораат прозорци за „Слика во слика“ автоматски</translation> <translation id="3628905806504633297">{0,plural, =1{Правилото на администраторот не препорачува да се префрла датотекава во <ph name="DESTINATION_NAME" />}one{Правилото на администраторот не препорачува да се префрлаат датотекиве во <ph name="DESTINATION_NAME" />}other{Правилото на администраторот не препорачува да се префрлаат датотекиве во <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Доколку веќе е на списокот со програми на кои им е дозволен пристап до мрежата, обидете се да го отстраните од списокот и да го додадете повторно.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Откриен е надзор</translation> <translation id="3886948180919384617">Фиока за складирање 3</translation> <translation id="3890664840433101773">Додајте е-пошта</translation> -<translation id="3893306401511601929">Автоматска „Слика во слика“</translation> <translation id="3897092660631435901">Мени</translation> <translation id="3901925938762663762">Картичката е истечена</translation> <translation id="390391808978419508">Времето за отворање истече</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Оперативни системи</translation> <translation id="4854853140771946034">Набрзина создајте нова белешка во Google Keep</translation> <translation id="485902285759009870">Се потврдува кодот…</translation> -<translation id="4862630594858951805">Дали сакате да добивате е-пораки кога ќе се намали цената?</translation> <translation id="4864406669374375262">Низа на верзијата е копирана во привремената меморија</translation> <translation id="486459320933704969">Родител или старател мора да одобри за да го посетиш веб-сајтов</translation> <translation id="4866506163384898554">Притиснете |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| за да се прикаже курсорот</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Внесете поим за пребарување></translation> <translation id="671076103358959139">Токен за регистрација:</translation> <translation id="6711464428925977395">Нешто не е во ред со прокси-серверот или адресата е неточна.</translation> -<translation id="6716013836112872184">Добивајте е-пораки на <ph name="EMAIL" /> кога ќе се намали цената на кој било сајт.</translation> <translation id="6716672519412350405"><ph name="URL" /> сака да создаде 3D-карта на опкружувањето и да ја следи позицијата на камерата</translation> <translation id="6718612893943028815">Да се користи камерата?</translation> <translation id="6721164594124191969">Етикети (сјајни)</translation> @@ -4035,6 +4031,5 @@ <li>Обидете се со поврзување на друга мрежа</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">автоматска „слика во слика“</translation> <translation id="997986563973421916">Од Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index 75a744c..17470aa 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">ബ്രൌസിംഗ് ഡാറ്റ മായ്ക്കുക...</translation> <translation id="362276910939193118">മുഴുവന് ചരിത്രവും കാണിക്കുക</translation> <translation id="3624292976554877583">ലേബലുകൾ (തിളക്കമില്ലാത്തത്)</translation> -<translation id="3625929652356389713">'ചിത്രത്തിനുള്ളിൽ ചിത്രം' വിൻഡോകൾ സ്വയമേവ തുറക്കാൻ ആവശ്യപ്പെടാം</translation> <translation id="3628905806504633297">{0,plural, =1{ഈ ഫയൽ <ph name="DESTINATION_NAME" /> എന്നതിലേക്ക് കൈമാറാൻ അഡ്മിൻ നയം നിർദ്ദേശിക്കുന്നില്ല}other{ഈ ഫയലുകൾ <ph name="DESTINATION_NAME" /> എന്നതിലേക്ക് കൈമാറാൻ അഡ്മിൻ നയം നിർദ്ദേശിക്കുന്നില്ല}}</translation> <translation id="3630155396527302611">ഇതിനെ നെറ്റ്വർക്ക് ആക്സസ് ചെയ്യാൻ അനുമതിയുള്ള ഒരു പ്രോഗ്രാമായി നിലവിൽ ലിസ്റ്റ് ചെയ്തിട്ടുണ്ടെങ്കിൽ, അതിനെ ലിസ്റ്റിൽ നിന്ന് നീക്കംചെയ്ത്, വീണ്ടും ചേർക്കാൻ ശ്രമിക്കുക.</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">നിരീക്ഷണം കണ്ടെത്തി</translation> <translation id="3886948180919384617">സ്റ്റാക്കർ 3</translation> <translation id="3890664840433101773">ഇമെയില് ചേര്ക്കുക</translation> -<translation id="3893306401511601929">സ്വയമേവയുള്ള 'ചിത്രത്തിനുള്ളിൽ ചിത്രം' നിയന്ത്രണം</translation> <translation id="3897092660631435901">മെനു</translation> <translation id="3901925938762663762">കാർഡ് കാലഹരണപ്പെട്ടു</translation> <translation id="390391808978419508">തുറക്കുന്നത് ടൈംഔട്ട് ആയി</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ</translation> <translation id="4854853140771946034">Google Keep-ൽ പുതിയൊരു കുറിപ്പ് വേഗത്തിൽ സൃഷ്ടിക്കുക</translation> <translation id="485902285759009870">കോഡ് പരിശോധിച്ചുറപ്പിക്കുന്നു...</translation> -<translation id="4862630594858951805">നിരക്ക് കുറയുമ്പോൾ ഇമെയിലുകൾ ലഭിക്കണോ?</translation> <translation id="4864406669374375262">പതിപ്പിന്റെ സ്ട്രിംഗ്, ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി</translation> <translation id="486459320933704969">നിങ്ങൾക്ക് ഈ വെബ്സൈറ്റ് സന്ദർശിക്കാമെന്ന് രക്ഷിതാവോ നിയമപരമായ പ്രതിനിധിയോ പറയേണ്ടതുണ്ട്</translation> <translation id="4866506163384898554">നിങ്ങളുടെ കഴ്സർ കാണിക്കാൻ |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| അമർത്തുക</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><തിരയൽ പദം നൽകുക></translation> <translation id="671076103358959139">എന്റോള്മെന്റ് ടോക്കണ്:</translation> <translation id="6711464428925977395">പ്രോക്സി സെർവറിൽ എന്തോ പ്രശ്നമുണ്ട്, അല്ലെങ്കിൽ വിലാസം തെറ്റാണ്.</translation> -<translation id="6716013836112872184">ഏതെങ്കിലും സൈറ്റിൽ നിരക്ക് കുറയുമ്പോൾ, <ph name="EMAIL" />എന്ന വിലാസത്തിൽ ഇമെയിലുകൾ നേടുക.</translation> <translation id="6716672519412350405">നിങ്ങളുടെ ചുറ്റുപാടുകളുടെ 3D മാപ്പ് സൃഷ്ടിക്കാനും ക്യാമറയുടെ സ്ഥാനം ട്രാക്ക് ചെയ്യാനും <ph name="URL" /> താല്പ്പര്യപ്പെടുന്നു</translation> <translation id="6718612893943028815">ക്യാമറ ഉപയോഗിക്കണോ?</translation> <translation id="6721164594124191969">ലേബലുകൾ (ഗ്ലോസി)</translation> @@ -4033,6 +4029,5 @@ <li>മറ്റൊരു നെറ്റ്വര്ക്കിലേക്ക് കണക്റ്റ് ചെയ്യുന്നത് പരീക്ഷിക്കുക</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">സ്വയമേവയുള്ള 'ചിത്രത്തിനുള്ളിൽ ചിത്രം' നിയന്ത്രണം</translation> <translation id="997986563973421916">Google Pay-യിൽ നിന്ന്</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index 06c3fd90..94e4a40 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -1264,7 +1264,6 @@ <translation id="36224234498066874">Хайлтын өгөгдлийг устгах...</translation> <translation id="362276910939193118">Түүхийг бүрнээр нь харуул</translation> <translation id="3624292976554877583">Шошго (мaтте)</translation> -<translation id="3625929652356389713">Автоматаар дэлгэц доторх дэлгэцийн цонхнуудыг нээхийг хүсэж болно</translation> <translation id="3628905806504633297">{0,plural, =1{Администраторын бодлого нь энэ файлыг <ph name="DESTINATION_NAME" /> руу шилжүүлэхийг санал болгодоггүй}other{Администраторын бодлого нь эдгээр файлыг <ph name="DESTINATION_NAME" /> руу шилжүүлэхийг санал болгодоггүй}}</translation> <translation id="3630155396527302611">Хэрэв энэ программ нь сүлжээнд нэвтрэх зөвшөөрөлтэй программын жагсаалтад орсон бол жагсаалтаас устгаад, дахин нэмнэ үү.</translation> @@ -1399,7 +1398,6 @@ <translation id="388632593194507180">Хяналтыг илрүүллээ</translation> <translation id="3886948180919384617">Гарах цаасыг зэрэгцүүлэх тавцан 3</translation> <translation id="3890664840433101773">Имэйл нэмэх</translation> -<translation id="3893306401511601929">Автомат дэлгэц доторх дэлгэц</translation> <translation id="3897092660631435901">Цэс</translation> <translation id="3901925938762663762">Картын хугацаа дууссан байна</translation> <translation id="390391808978419508">Нээх үйлдэл завсарласан</translation> @@ -1868,7 +1866,6 @@ <translation id="4852429274334674023">Үйлдлийн систем</translation> <translation id="4854853140771946034">Google Keep-д шинэ тэмдэглэл шуурхай үүсгээрэй</translation> <translation id="485902285759009870">Кодыг баталгаажуулж байна...</translation> -<translation id="4862630594858951805">Үнэ буурах үед имэйл авахыг хүсэж байна уу?</translation> <translation id="4864406669374375262">Хувилбарын мөрийг түр санах ойд хуулсан</translation> <translation id="486459320933704969">Эцэг эх эсвэл асран хамгаалагч таныг энэ вебсайтад зочилж БОЛНО гэж хэлэх ёстой</translation> <translation id="4866506163384898554">Курсороо харуулахын тулд |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| дээр дарна уу</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Хайх зүйлээ шивнэ үү></translation> <translation id="671076103358959139">Бүртгэлийн тэмдэг:</translation> <translation id="6711464428925977395">Прокси серверт ямар нэгэн алдаа гарсан, эсвэл хаяг буруу байна.</translation> -<translation id="6716013836112872184">Аливаа сайтад үнэ буурах үед <ph name="EMAIL" />-д имэйл хүлээн аваарай.</translation> <translation id="6716672519412350405"><ph name="URL" /> нь таны эргэн тойрны 3D газрын зургийг үүсгэж, камерын хөдөлгөөнийг хянахыг хүсэж байна</translation> <translation id="6718612893943028815">Камер ашиглах уу?</translation> <translation id="6721164594124191969">Шошго (гялгар)</translation> @@ -4035,6 +4031,5 @@ <li>Өөр сүлжээнд холбогдоно уу</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">автомат дэлгэц доторх дэлгэц</translation> <translation id="997986563973421916">Google Pay-с</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index 92865d3..d1d447b2 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">ब्राउझिंग डेटा साफ करा...</translation> <translation id="362276910939193118">पूर्ण इतिहास दर्शवा</translation> <translation id="3624292976554877583">लेबल (मॅट)</translation> -<translation id="3625929652356389713">चित्रात-चित्र विंडो आपोआप उघडण्यास सांगू शकते</translation> <translation id="3628905806504633297">{0,plural, =1{अॅडमिनिस्ट्रेटर धोरण ही फाइल <ph name="DESTINATION_NAME" /> वर ट्रान्सफर करण्याची शिफारस करत नाही}other{अॅडमिनिस्ट्रेटर धोरण या फाइल <ph name="DESTINATION_NAME" /> वर ट्रान्सफर करण्याची शिफारस करत नाही}}</translation> <translation id="3630155396527302611">नेटवर्क ॲक्सेस करण्यासाठी परवानगी दिलेला प्रोग्राम म्हणून तो आधीपासून सूचीबद्ध केला असल्यास तो सूचीमधून काढा आणि पुन्हा जोडून पहा.</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">परीक्षण आढळले</translation> <translation id="3886948180919384617">स्टॅकर ३</translation> <translation id="3890664840433101773">ईमेल जोडा</translation> -<translation id="3893306401511601929">ऑटो चित्रात-चित्र</translation> <translation id="3897092660631435901">मेनू</translation> <translation id="3901925938762663762">कार्ड कालबाह्य झाले आहे</translation> <translation id="390391808978419508">उघडणे टाइम आउट झाले</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">ऑपरेटिंग सिस्टीम</translation> <translation id="4854853140771946034">Google Keep मध्ये नवीन टीप झटपट तयार करा</translation> <translation id="485902285759009870">कोडची पडताळणी करत आहे...</translation> -<translation id="4862630594858951805">किंमत कमी झाल्यानंतर ईमेल हवा आहे का?</translation> <translation id="4864406669374375262">आवृत्तीची स्ट्रिंग क्लिपबोर्डवर कॉपी केली</translation> <translation id="486459320933704969">तुम्ही या वेबसाइटला भेट देऊ शकता अशी पालकांनी मंजुरी देणे आवश्यक आहे</translation> <translation id="4866506163384898554">तुमचा कर्सर दाखवण्यासाठी |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| प्रेस करा</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><शोध संज्ञा एंटर करा></translation> <translation id="671076103358959139">नोंदणी टोकन:</translation> <translation id="6711464428925977395">प्रॉक्सी सर्व्हरमध्ये काहीतरी चुकीचे आहे किंवा पत्ता चुकीचा आहे.</translation> -<translation id="6716013836112872184">कोणत्याही साइटवर किंमत कमी झाल्यानंतर <ph name="EMAIL" /> वर ईमेल मिळवा.</translation> <translation id="6716672519412350405"><ph name="URL" /> ला तुमच्या आसपासच्या परिसराचा 3D नकाशा तयार करायचा आणि कॅमेर्याचे स्थान ट्रॅक करायचे आहे</translation> <translation id="6718612893943028815">कॅमेरा वापरायचा का?</translation> <translation id="6721164594124191969">लेबल (ग्लॉसी)</translation> @@ -4035,6 +4031,5 @@ <li>दुसर्या वाय-फाय नेटवर्कशी कनेक्ट करून पहा</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ऑटो चित्रात-चित्र</translation> <translation id="997986563973421916">Google Pay वरून</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index c73cf419..ed08678 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Kosongkan Data Semakan Imbas...</translation> <translation id="362276910939193118">Paparkan Sejarah Penuh</translation> <translation id="3624292976554877583">Label (Kusam)</translation> -<translation id="3625929652356389713">Boleh meminta untuk membuka tetingkap gambar dalam gambar secara automatik</translation> <translation id="3628905806504633297">{0,plural, =1{Dasar pentadbir tidak mengesyorkan anda memindahkan fail ini ke <ph name="DESTINATION_NAME" />}other{Dasar pentadbir tidak mengesyorkan anda memindahkan fail ini ke <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Jika apl telah disenaraikan sebagai atur cara yang dibenarkan untuk mengakses rangkaian, cuba alihkannya keluar daripada senarai dan tambahkannya @@ -1399,7 +1398,6 @@ <translation id="388632593194507180">Pemantauan Dikesan</translation> <translation id="3886948180919384617">Petak 3</translation> <translation id="3890664840433101773">Tambah e-mel</translation> -<translation id="3893306401511601929">Gambar dalam gambar automatik</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">Kad telah tamat tempoh</translation> <translation id="390391808978419508">Pembukaan tamat masa</translation> @@ -1868,7 +1866,6 @@ <translation id="4852429274334674023">Sistem pengendalian</translation> <translation id="4854853140771946034">Buat nota baharu dalam Google Keep dengan pantas</translation> <translation id="485902285759009870">Mengesahkan kod...</translation> -<translation id="4862630594858951805">Anda mahu dapatkan e-mel apabila harga diturunkan?</translation> <translation id="4864406669374375262">Versi rentetan disalin kepada papan keratan</translation> <translation id="486459320933704969">Ibu/bapa atau penjaga perlu menyatakan bahawa anda boleh melawati laman web ini</translation> <translation id="4866506163384898554">Tekan |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| untuk memaparkan kursor anda</translation> @@ -2757,7 +2754,6 @@ <translation id="6710594484020273272"><Taip istilah carian></translation> <translation id="671076103358959139">Token Pendaftaran:</translation> <translation id="6711464428925977395">Ada sesuatu yang tidak kena dengan pelayan proksi atau alamat tidak betul.</translation> -<translation id="6716013836112872184">Minta e-mel dihantar kepada <ph name="EMAIL" /> apabila penurunan harga berlaku pada sebarang laman.</translation> <translation id="6716672519412350405"><ph name="URL" /> mahu membuat peta 3D bagi persekitaran anda dan menjejaki kedudukan kamera</translation> <translation id="6718612893943028815">Gunakan kamera?</translation> <translation id="6721164594124191969">Label (Berkilat)</translation> @@ -4037,6 +4033,5 @@ <li>Cuba sambung ke rangkaian lain</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">gambar dalam gambar automatik</translation> <translation id="997986563973421916">Daripada Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb index c5a7b3dd..7bc0fe8d 100644 --- a/components/strings/components_strings_my.xtb +++ b/components/strings/components_strings_my.xtb
@@ -1264,7 +1264,6 @@ <translation id="36224234498066874">ဘရောက်စ်ဒေတာ ရှင်းထုတ်ရန်...</translation> <translation id="362276910939193118">မှတ်တမ်း အပြည့် ပြရန်</translation> <translation id="3624292976554877583">လေဘယ်လ် (မှိုင်းပျပျ)</translation> -<translation id="3625929652356389713">နှစ်ခုထပ်၍ကြည့်ခြင်းဝင်းဒိုး အလိုအလျောက်ဖွင့်ရန် တောင်းဆိုနိုင်သည်</translation> <translation id="3628905806504633297">{0,plural, =1{<ph name="DESTINATION_NAME" /> သို့ ဤဖိုင် လွှဲပြောင်းခြင်းကို စီမံခန့်ခွဲသူမူဝါဒက အကြံပြုထားခြင်းမရှိပါ}other{<ph name="DESTINATION_NAME" /> သို့ ဤဖိုင်များ လွှဲပြောင်းခြင်းကို စီမံခန့်ခွဲသူမူဝါဒက အကြံပြုထားခြင်းမရှိပါ}}</translation> <translation id="3630155396527302611">၎င်းကို ကွန်ရက်အသုံးပြုသည့် ပရိုဂရမ်အဖြစ် စာရင်းထည့်သွင်းပြီးဖြစ်လျှင်၊ စာရင်းမှ ဖယ်ရှားပြီး ထပ်မံထည့်သွင်းကြည့်ပါ။</translation> <translation id="3630426379756188722">Google Account ရှိ သင့်စက်ပစ္စည်းရှာခြင်းသို့ သွားရန်အတွက် Find My Device ခလုတ်ကို နှိပ်နိုင်သည်</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">စောင့်ကြည့်နေကြောင်း တွေ့ရှိထားသည်</translation> <translation id="3886948180919384617">စီထည့်သည့်ပုံး ၃</translation> <translation id="3890664840433101773">အီးမေးလ် ထည့်ပါ</translation> -<translation id="3893306401511601929">အလိုအလျောက် နှစ်ခုထပ်၍ကြည့်ခြင်း</translation> <translation id="3897092660631435901">မီနျူး</translation> <translation id="3901925938762663762">ကတ် သက်တမ်းကုန်ဆုံး၏</translation> <translation id="390391808978419508">ဖွင့်ကြည့်မှု အချိန်ကုန်သွားသည်</translation> @@ -1868,7 +1866,6 @@ <translation id="4852429274334674023">လည်ပတ်သည့်စနစ်များ</translation> <translation id="4854853140771946034">Google Keep တွင် မှတ်စုအသစ် အမြန်ပြုလုပ်ရန်</translation> <translation id="485902285759009870">ကုဒ်ကို စိစစ်နေသည်...</translation> -<translation id="4862630594858951805">ဈေးကျချိန်၌ အီးမေးလ်ရယူလိုပါသလား။</translation> <translation id="4864406669374375262">ဗားရှင်းအက္ခရာတွဲကို ကလစ်ဘုတ်သို့ ကူးယူပြီးပြီ</translation> <translation id="486459320933704969">ဤဝဘ်ဆိုက်သို့ ဝင်ကြည့်ရန် မိဘ (သို့) အုပ်ထိန်းသူက OK ဟု ပြောရန်လိုအပ်သည်</translation> <translation id="4866506163384898554">သင်၏ကာဆာကို ပြရန် |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| နှိပ်ပါ</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><ရှာဖွေရန် အကြောင်းအရာကို ရိုက်ထည့်ပါ></translation> <translation id="671076103358959139">စာရင်းသွင်းရန် တိုကင်နံပါတ်-</translation> <translation id="6711464428925977395">ပရော့စီဆာဗာ တစ်စုံတစ်ခုမှားယွင်းနေပါသည် သို့မဟုတ် လိပ်စာမမှန်ကန်ပါ။</translation> -<translation id="6716013836112872184">ဝဘ်ဆိုက်များတွင် ဈေးကျသောအခါ <ph name="EMAIL" /> တွင် အီးမေးလ်ရယူနိုင်သည်။</translation> <translation id="6716672519412350405"><ph name="URL" /> က သင့်ပတ်ဝန်းကျင်၏ 3D မြေပုံဆွဲခြင်း သို့မဟုတ် ကင်မရာအနေအထား ခြေရာခံခြင်းတို့ ပြုလုပ်လိုသည်</translation> <translation id="6718612893943028815">ကင်မရာ အသုံးပြုမလား။</translation> <translation id="6721164594124191969">လေဘယ်လ် (တောက်ပြောင်)</translation> @@ -4038,6 +4034,5 @@ <li>အခြားကွန်ရက်သို့ ချိတ်ဆက်ကြည့်ပါ</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">အလိုအလျောက် နှစ်ခုထပ်၍ကြည့်ခြင်း</translation> <translation id="997986563973421916">Google Pay မှ</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index 78e29ab..dd1751d 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -1260,7 +1260,6 @@ <translation id="36224234498066874">ब्राउजिङको डेटा मेटाउनुहोस्...</translation> <translation id="362276910939193118">पूर्ण इतिहास देखाउनुहोस्</translation> <translation id="3624292976554877583">लेबल (म्याट)</translation> -<translation id="3625929652356389713">picture-in-picture विन्डो स्वतः खोल्ने अनुमति माग्न सक्छ</translation> <translation id="3628905806504633297">{0,plural, =1{एड्मिनले तोकेको नीतिअनुसार यो फाइल <ph name="DESTINATION_NAME" /> मा ट्रान्स्फर गर्न सिफारिस गरिँदैन}other{एड्मिनले तोकेको नीतिअनुसार यी फाइलहरू <ph name="DESTINATION_NAME" /> मा ट्रान्स्फर गर्न सिफारिस गरिँदैन}}</translation> <translation id="3630155396527302611">यदि यसलाई नेटवर्कमा पहुँच गर्ने अनुमति भएको प्रोग्रामको रूपमा पहिले नै सूचीबद्ध गरिएको छ भने यसलाई सूचीबाट हटाएर फेरि थप्ने प्रयास गर्नुहोस्।</translation> @@ -1395,7 +1394,6 @@ <translation id="388632593194507180">निगरानी भइरहेको कुरा पत्ता लाग्यो</translation> <translation id="3886948180919384617">स्ट्याकर ३</translation> <translation id="3890664840433101773">इमेल थप्नुहोस्</translation> -<translation id="3893306401511601929">picture-in-picture मोड स्वतः सक्रिय गर्ने लेबल</translation> <translation id="3897092660631435901">मेनु</translation> <translation id="3901925938762663762">कार्डको म्याद सकिएको छ</translation> <translation id="390391808978419508">खोल्ने समय सकिएको छ</translation> @@ -1865,7 +1863,6 @@ <translation id="4852429274334674023">अपरेटिङ सिस्टमहरू</translation> <translation id="4854853140771946034">Google Keep प्रयोग गरी तुरुन्तै नयाँ टिपोट बनाउनुहोस्</translation> <translation id="485902285759009870">कोड पुष्टि गरिँदै छ...</translation> -<translation id="4862630594858951805">उत्पादनको मूल्य घटेका खण्डमा इमेल प्राप्त गर्न चाहनुहुन्छ?</translation> <translation id="4864406669374375262">संस्करणको स्ट्रिङ क्लिपबोर्डमा कपी गरिएको छ</translation> <translation id="486459320933704969">तपाईंका आमाबुवा वा अभिभावकले तपाईंलाई यो साइटमा जाने अनुमति दिनु पर्ने हुन्छ</translation> <translation id="4866506163384898554">तपाईं कर्सर देखाउन चाहनुहुन्छ भने |<ph name="ACCELERATOR1" />| र |<ph name="ACCELERATOR2" />| की एकै पटक थिच्नुहोस्</translation> @@ -2754,7 +2751,6 @@ <translation id="6710594484020273272"><खोज पदलाई टाइप गर्नुहोस्></translation> <translation id="671076103358959139">दर्ता टोकन:</translation> <translation id="6711464428925977395">प्रोक्सी सर्भरमा केही त्रुटि वा ठेगाना गलत छ।</translation> -<translation id="6716013836112872184">कुनै पनि साइटमा उत्पादनको मूल्य घटेका खण्डमा <ph name="EMAIL" /> मा इमेल प्राप्त गर्नुहोस्।</translation> <translation id="6716672519412350405"><ph name="URL" /> ले तपाईं वरपरको ठाउँको 3D नक्सा बनाउन र क्यामेराको अवस्था पत्ता लगाउन चाहन्छ</translation> <translation id="6718612893943028815">क्यामेरा प्रयोग गर्ने हो?</translation> <translation id="6721164594124191969">लेबल (ग्लसी)</translation> @@ -4034,6 +4030,5 @@ <li>अर्को नेटवर्कमा जडान गरी हेर्नुहोस्</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">picture-in-picture मोड स्वतः सक्रिय गर्ने लेबल</translation> <translation id="997986563973421916">Google Pay बाट</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index 627ffb0..b12d9fe3 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -1259,7 +1259,6 @@ <translation id="36224234498066874">Browsegegevens wissen</translation> <translation id="362276910939193118">Volledige geschiedenis bekijken</translation> <translation id="3624292976554877583">Labels (mat)</translation> -<translation id="3625929652356389713">Kan toestemming vragen om automatisch scherm-in-scherm-vensters te openen</translation> <translation id="3628905806504633297">{0,plural, =1{Op basis van het beheerdersbeleid wordt afgeraden dit bestand over te zetten naar <ph name="DESTINATION_NAME" />}other{Op basis van het beheerdersbeleid wordt afgeraden deze bestanden over te zetten naar <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Als dit programma al wordt vermeld als een programma dat toegang heeft tot het netwerk, kun je proberen het uit de lijst te verwijderen en het opnieuw toe te voegen.</translation> <translation id="3630426379756188722">Knop Vind mijn apparaat. Activeer deze om naar Vind mijn apparaat te gaan in het Google-account.</translation> @@ -1393,7 +1392,6 @@ <translation id="388632593194507180">Controle gedetecteerd</translation> <translation id="3886948180919384617">Stapeleenheid 3</translation> <translation id="3890664840433101773">E-mailadres toevoegen</translation> -<translation id="3893306401511601929">Automatisch scherm-in-scherm</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">De pas is verlopen</translation> <translation id="390391808978419508">Time-out bij openen</translation> @@ -1862,7 +1860,6 @@ <translation id="4852429274334674023">Besturingssystemen</translation> <translation id="4854853140771946034">Snel een nieuwe notitie in Google Keep maken</translation> <translation id="485902285759009870">Code verifiëren...</translation> -<translation id="4862630594858951805">Wil je e-mails krijgen als de prijs daalt?</translation> <translation id="4864406669374375262">Versietekenreeks gekopieerd naar klembord</translation> <translation id="486459320933704969">Een ouder of voogd moet aangeven dat je deze website mag bezoeken</translation> <translation id="4866506163384898554">Druk op |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| om je cursor te tonen</translation> @@ -2750,7 +2747,6 @@ <translation id="6710594484020273272"><Typ een zoekterm></translation> <translation id="671076103358959139">Inschrijftoken:</translation> <translation id="6711464428925977395">Er is iets mis met de proxyserver of het adres is onjuist.</translation> -<translation id="6716013836112872184">Krijg e-mails op <ph name="EMAIL" /> als de prijs daalt op een site.</translation> <translation id="6716672519412350405"><ph name="URL" /> wil een 3D-kaart van je omgeving maken en de camerapositie volgen</translation> <translation id="6718612893943028815">Camera gebruiken?</translation> <translation id="6721164594124191969">Labels (glanzend)</translation> @@ -4029,6 +4025,5 @@ <li>Maak verbinding met een ander netwerk</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatisch scherm-in-scherm</translation> <translation id="997986563973421916">Van Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index 5e8b8256..05700af 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Slett alle nettlesingsdata</translation> <translation id="362276910939193118">Vis fullstendig logg</translation> <translation id="3624292976554877583">Etiketter (matt)</translation> -<translation id="3625929652356389713">Kan be om å få åpne bilde-i-bilde-vinduer automatisk</translation> <translation id="3628905806504633297">{0,plural, =1{Administratorreglene anbefaler ikke at du overfører denne filen til <ph name="DESTINATION_NAME" />}other{Administratorreglene anbefaler ikke at du overfører disse filene til <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Hvis programmet allerede har fått tillatelse til å bruke nettverket, kan du prøve å fjerne det fra listen og så legge det til på nytt.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Overvåking er oppdaget</translation> <translation id="3886948180919384617">Hylle 3</translation> <translation id="3890664840433101773">Legg til e-post</translation> -<translation id="3893306401511601929">Automatisk bilde-i-bilde</translation> <translation id="3897092660631435901">Meny</translation> <translation id="3901925938762663762">Kortet er utløpt</translation> <translation id="390391808978419508">Åpningen ble tidsavbrutt</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Operativsystemer</translation> <translation id="4854853140771946034">Opprett et nytt notat i Google Keep raskt</translation> <translation id="485902285759009870">Bekrefter koden …</translation> -<translation id="4862630594858951805">Vil du ha e-poster når prisen går ned?</translation> <translation id="4864406669374375262">Versjonsstrengen er kopiert til utklippstavlen</translation> <translation id="486459320933704969">En forelder eller foresatt må si at det er greit at du besøker dette nettstedet</translation> <translation id="4866506163384898554">Trykk på |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| for å vise markøren</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Skriv inn en søketerm></translation> <translation id="671076103358959139">Registreringstoken:</translation> <translation id="6711464428925977395">Det er noe galt med proxy-tjeneren, eller adressen er feil.</translation> -<translation id="6716013836112872184">Vi sender e-post til <ph name="EMAIL" /> når prisen settes ned på et nettsted.</translation> <translation id="6716672519412350405"><ph name="URL" /> vil lage et 3D-kart av omgivelsene dine og spore kameraposisjonen</translation> <translation id="6718612893943028815">Vil du bruke kameraet?</translation> <translation id="6721164594124191969">Etiketter (glans)</translation> @@ -4034,6 +4030,5 @@ <li>Prøv å koble til et annet nettverk</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatisk bilde-i-bilde</translation> <translation id="997986563973421916">Fra Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb index 8049d20..4ed4bc8 100644 --- a/components/strings/components_strings_or.xtb +++ b/components/strings/components_strings_or.xtb
@@ -1261,7 +1261,6 @@ <translation id="36224234498066874">ବ୍ରାଉଜିଂ ଡାଟା ଖାଲି କରନ୍ତୁ...</translation> <translation id="362276910939193118">ସମ୍ପୂର୍ଣ୍ଣ ଇତିବୃତ୍ତି ଦେଖାନ୍ତୁ</translation> <translation id="3624292976554877583">ଲେବଲ (ମେଟ)</translation> -<translation id="3625929652356389713">ପିକଚର-ଇନ-ପିକଚର ୱିଣ୍ଡୋଗୁଡ଼ିକୁ ସ୍ୱତଃ ଖୋଲିବାକୁ କହିପାରିବ</translation> <translation id="3628905806504633297">{0,plural, =1{<ph name="DESTINATION_NAME" />କୁ ଏହି ଫାଇଲ ଟ୍ରାନ୍ସଫର କରିବା ପାଇଁ ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ସୁପାରିଶ କରେ ନାହିଁ}other{<ph name="DESTINATION_NAME" />କୁ ଏହି ଫାଇଲଗୁଡ଼ିକ ଟ୍ରାନ୍ସଫର କରିବା ପାଇଁ ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ସୁପାରିଶ କରେ ନାହିଁ}}</translation> <translation id="3630155396527302611">ଯଦି ଏହାକୁ ନେଟ୍ୱାର୍କକୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଅନୁମତି ଦିଆଯାଇଥିବା ଗୋଟିଏ ପ୍ରୋଗ୍ରାମ୍ ଭାବେ ପୂର୍ବରୁ ତାଲିକାଭୁକ୍ତ କରାଯାଇଥାଏ, ତେବେ ତାଲିକାରୁ ଏହାକୁ କାଢ଼ି, ପୂନର୍ବାର ଯୋଗ କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="3630426379756188722">'Find My Device' ବଟନ, Google ଆକାଉଣ୍ଟରେ 'ଆପଣଙ୍କ ଡିଭାଇସ ଖୋଜନ୍ତୁ'କୁ ଭିଜିଟ କରିବା ପାଇଁ ଏହାକୁ ସକ୍ରିୟ କରନ୍ତୁ</translation> @@ -1395,7 +1394,6 @@ <translation id="388632593194507180">ନିରୀକ୍ଷଣ କରାଯାଉଥିବା ଚିହ୍ନଟ କରାଯାଇଛି</translation> <translation id="3886948180919384617">ଷ୍ଟାକର୍ 3</translation> <translation id="3890664840433101773">ଇମେଲ୍ ଯୋଗ କରନ୍ତୁ</translation> -<translation id="3893306401511601929">ସ୍ୱତଃ ପିକଚର-ଇନ-ପିକଚର</translation> <translation id="3897092660631435901">ମେନୁ</translation> <translation id="3901925938762663762">କାର୍ଡର ମିଆଦ ଶେଷ ହୋଇଯାଇଛି</translation> <translation id="390391808978419508">ଖୋଲିବା ସମୟ ସମାପ୍ତ ହୋଇଯାଇଛି</translation> @@ -1865,7 +1863,6 @@ <translation id="4852429274334674023">ଅପରେଟିଂ ସିଷ୍ଟମଗୁଡ଼ିକ</translation> <translation id="4854853140771946034">Google Keepରେ ଶୀଘ୍ର ଏକ ନୂଆ ନୋଟ୍ ତିଆରି କରନ୍ତୁ</translation> <translation id="485902285759009870">କୋଡ ଯାଞ୍ଚ କରାଯାଉଛି...</translation> -<translation id="4862630594858951805">ମୂଲ୍ୟ ହ୍ରାସ ପାଇବା ବିଷୟରେ ଇମେଲ ଚାହୁଁଛନ୍ତି?</translation> <translation id="4864406669374375262">କ୍ଲିପବୋର୍ଡକୁ ଭର୍ସନ ଷ୍ଟ୍ରିଂ କପି କରାଯାଇଛି</translation> <translation id="486459320933704969">ଏହି ୱେବସାଇଟ ଭିଜିଟ କରିବା ତୁମ ପାଇଁ ଠିକ୍ ବୋଲି ଜଣେ ବାପା କିମ୍ବା ମା ବା ଅଭିଭାବକ କହିବା ଆବଶ୍ୟକ</translation> <translation id="4866506163384898554">ଆପଣଙ୍କ କର୍ସର ଦେଖାଇବାକୁ |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ଦବାନ୍ତୁ</translation> @@ -2753,7 +2750,6 @@ <translation id="6710594484020273272"><ସନ୍ଧାନ ପଦ ଟାଇପ୍ କରନ୍ତୁ></translation> <translation id="671076103358959139">ନାମାଙ୍କିତ ଟୋକନ୍:</translation> <translation id="6711464428925977395">ପ୍ରକ୍ସି ସର୍ଭରରେ କିଛି ତ୍ରୁଟି ଅଛି କିମ୍ବା ଠିକଣା ଭୁଲ୍ ଅଛି।</translation> -<translation id="6716013836112872184">ଯେ କୌଣସି ସାଇଟରେ ମୂଲ୍ୟ ହ୍ରାସ ପାଇବା ପରେ <ph name="EMAIL" />ରେ ଇମେଲ ପାଆନ୍ତୁ।</translation> <translation id="6716672519412350405"><ph name="URL" /> ଆପଣଙ୍କ ପରିପାର୍ଶ୍ୱର ଏକ 3D ମ୍ୟାପ୍ ତିଆରି କରିବା ଏବଂ କ୍ୟାମେରା ସ୍ଥିତି ଟ୍ରାକ୍ କରିବାକୁ ଚାହୁଁଛି</translation> <translation id="6718612893943028815">କ୍ୟାମେରା ବ୍ୟବହାର କରିବେ?</translation> <translation id="6721164594124191969">ଲେବଲ (ଗ୍ଲସି)</translation> @@ -4031,6 +4027,5 @@ <li>ଅନ୍ୟାନ୍ୟ ନେଟ୍ୱର୍କ ସହ ସଂଯୋଗ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ସ୍ୱତଃ ପିକଚର-ଇନ-ପିକଚର</translation> <translation id="997986563973421916">Google Payରୁ</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb index 9b0026db..ee7f117 100644 --- a/components/strings/components_strings_pa.xtb +++ b/components/strings/components_strings_pa.xtb
@@ -1261,7 +1261,6 @@ <translation id="36224234498066874">ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟਾ ਕਲੀਅਰ ਕਰੋ...</translation> <translation id="362276910939193118">ਪੂਰਾ ਇਤਿਹਾਸ ਦਿਖਾਓ</translation> <translation id="3624292976554877583">ਲੇਬਲ (ਮੈਟ)</translation> -<translation id="3625929652356389713">ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਵਿੰਡੋਆਂ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹਣ ਲਈ ਕਿਹਾ ਜਾ ਸਕਦਾ ਹੈ</translation> <translation id="3628905806504633297">{0,plural, =1{ਪ੍ਰਸ਼ਾਸਕ ਨੀਤੀ ਇਸ ਫ਼ਾਈਲ ਨੂੰ <ph name="DESTINATION_NAME" /> ਵਿੱਚ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਨਹੀਂ ਕਰਦੀ ਹੈ}one{ਪ੍ਰਸ਼ਾਸਕ ਨੀਤੀ ਇਸ ਫ਼ਾਈਲ ਨੂੰ <ph name="DESTINATION_NAME" /> ਵਿੱਚ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਨਹੀਂ ਕਰਦੀ ਹੈ}other{ਪ੍ਰਸ਼ਾਸਕ ਨੀਤੀ ਇਨ੍ਹਾਂ ਫ਼ਾਈਲਾਂ ਨੂੰ <ph name="DESTINATION_NAME" /> ਵਿੱਚ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਨਹੀਂ ਕਰਦੀ ਹੈ}}</translation> <translation id="3630155396527302611">ਜੇਕਰ ਇਸ ਨੂੰ ਪਹਿਲਾਂ ਹੀ ਨੈੱਟਵਰਕ 'ਤੇ ਪਹੁੰਚ ਦੀ ਮਨਜ਼ੂਰੀ ਵਾਲੇ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਤੌਰ 'ਤੇ ਸੂਚੀਬੱਧ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਸ ਨੂੰ ਸੂਚੀ ਵਿੱਚ ਹਟਾਉਣ ਅਤੇ ਦੁਬਾਰਾ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="3630426379756188722">'Find My Device' ਬਟਨ, Google ਖਾਤੇ ਵਿੱਚ 'ਆਪਣਾ ਡੀਵਾਈਸ ਲੱਭੋ' 'ਤੇ ਜਾਣ ਲਈ ਇਸਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ</translation> @@ -1395,7 +1394,6 @@ <translation id="388632593194507180">ਨਿਗਰਾਨੀ ਦਾ ਪਤਾ ਲੱਗਿਆ</translation> <translation id="3886948180919384617">ਸਟੈਕਰ 3</translation> <translation id="3890664840433101773">ਈਮੇਲ ਸ਼ਾਮਲ ਕਰੋ</translation> -<translation id="3893306401511601929">ਸਵੈਚਲਿਤ ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ</translation> <translation id="3897092660631435901">ਮੀਨੂ</translation> <translation id="3901925938762663762">ਕਾਰਡ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ ਹੈ</translation> <translation id="390391808978419508">ਖੋਲ੍ਹਣ ਦਾ ਟਾਈਮ-ਆਊਟ ਹੋ ਗਿਆ ਹੈ</translation> @@ -1864,7 +1862,6 @@ <translation id="4852429274334674023">ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ</translation> <translation id="4854853140771946034">Google Keep ਵਿੱਚ ਤੇਜ਼ੀ ਨਾਲ ਨਵਾਂ ਨੋਟ-ਕਥਨ ਬਣਾਓ</translation> <translation id="485902285759009870">ਕੋਡ ਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ...</translation> -<translation id="4862630594858951805">ਕੀਮਤ ਘਟਣ 'ਤੇ ਕੀ ਤੁਸੀਂ ਈਮੇਲਾਂ ਚਾਹੁੰਦੇ ਹੋ?</translation> <translation id="4864406669374375262">ਵਰਜਨ ਸਟ੍ਰਿੰਗ ਨੂੰ ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕੀਤਾ ਗਿਆ</translation> <translation id="486459320933704969">ਮਾਂ-ਪਿਓ ਜਾਂ ਸਰਪ੍ਰਸਤ ਨੂੰ ਇਹ ਕਹਿਣਾ ਹੋਵੇਗਾ ਕਿ ਤੁਸੀਂ ਇਸ ਵੈੱਬਸਾਈਟ 'ਤੇ ਜਾ ਸਕਦੇ ਹੋ</translation> <translation id="4866506163384898554">ਆਪਣਾ ਕਰਸਰ ਦਿਖਾਉਣ ਲਈ |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ਦਬਾਓ</translation> @@ -2752,7 +2749,6 @@ <translation id="6710594484020273272"><ਖੋਜ ਸ਼ਬਦ ਟਾਈਪ ਕਰੋ></translation> <translation id="671076103358959139">ਦਰਜਾਬੰਦੀ ਟੋਕਨ:</translation> <translation id="6711464428925977395">ਪ੍ਰੌਕਸੀ ਸਰਵਰ ਨਾਲ ਕੋਈ ਸਮੱਸਿਆ ਹੈ ਜਾਂ ਪਤਾ ਗਲਤ ਹੈ।</translation> -<translation id="6716013836112872184">ਕਿਸੇ ਵੀ ਸਾਈਟ 'ਤੇ ਕੀਮਤ ਘਟਣ 'ਤੇ <ph name="EMAIL" /> 'ਤੇ ਭੇਜੀਆਂ ਗਈਆਂ ਈਮੇਲਾਂ ਪ੍ਰਾਪਤ ਕਰੋ।</translation> <translation id="6716672519412350405"><ph name="URL" /> ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਦਾ 3D ਨਕਸ਼ਾ ਬਣਾਉਣਾ ਅਤੇ ਕੈਮਰਾ ਸਥਿਤੀ ਨੂੰ ਟਰੈਕ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ</translation> <translation id="6718612893943028815">ਕੀ ਕੈਮਰਾ ਵਰਤਣਾ ਹੈ?</translation> <translation id="6721164594124191969">ਲੇਬਲ (ਗਲੋਸੀ)</translation> @@ -4031,6 +4027,5 @@ <li>ਕਿਸੇ ਹੋਰ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰਕੇ ਦੇਖੋ</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ਸਵੈਚਲਿਤ ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ</translation> <translation id="997986563973421916">Google Pay ਤੋਂ</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index 8fbcb09..6034d28 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Wyczyść dane przeglądania...</translation> <translation id="362276910939193118">Wyświetl całą historię</translation> <translation id="3624292976554877583">Etykiety (matowe)</translation> -<translation id="3625929652356389713">Może prosić o zgodę na automatyczne otwieranie okien obrazu w obrazie</translation> <translation id="3628905806504633297">{0,plural, =1{Zgodnie z zasadą administratora nie zaleca się przenoszenia tego pliku, jeśli miejscem docelowym jest <ph name="DESTINATION_NAME" />}few{Zgodnie z zasadą administratora nie zaleca się przenoszenia tych plików, jeśli miejscem docelowym jest <ph name="DESTINATION_NAME" />}many{Zgodnie z zasadą administratora nie zaleca się przenoszenia tych plików, jeśli miejscem docelowym jest <ph name="DESTINATION_NAME" />}other{Zgodnie z zasadą administratora nie zaleca się przenoszenia tych plików, jeśli miejscem docelowym jest <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Jeśli ten program jest już na liście programów mogących korzystać z sieci, spróbuj go z niej usunąć i dodać ponownie.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Wykryto monitorowanie</translation> <translation id="3886948180919384617">Układarka 3</translation> <translation id="3890664840433101773">Dodaj adres e-mail</translation> -<translation id="3893306401511601929">Automatyczny obraz w obrazie</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">Karta straciła ważność</translation> <translation id="390391808978419508">Upłynął limit czasu otwierania</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Systemy operacyjne</translation> <translation id="4854853140771946034">Szybko utwórz nową notatkę w Google Keep</translation> <translation id="485902285759009870">Weryfikuję kod...</translation> -<translation id="4862630594858951805">Czy chcesz otrzymywać e-maile o obniżkach cen?</translation> <translation id="4864406669374375262">Ciąg znaków wersji został skopiowany do schowka</translation> <translation id="486459320933704969">Twój rodzic lub opiekun musi wyrazić zgodę na odwiedzenie tej witryny</translation> <translation id="4866506163384898554">Naciśnij |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|, aby wyświetlić kursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Wpisz wyszukiwane słowa></translation> <translation id="671076103358959139">Token rejestracji:</translation> <translation id="6711464428925977395">Serwer proxy działa nieprawidłowo albo adres jest błędny.</translation> -<translation id="6716013836112872184">Otrzymuj e-maile na adres <ph name="EMAIL" />, gdy cena spadnie na dowolnej stronie.</translation> <translation id="6716672519412350405"><ph name="URL" /> chce tworzyć mapę 3D Twojego otoczenia i śledzić pozycję kamery</translation> <translation id="6718612893943028815">Korzystać z kamery?</translation> <translation id="6721164594124191969">Etykiety (błyszczące)</translation> @@ -4035,6 +4031,5 @@ <li>Połącz się z inną siecią.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatyczny obraz w obrazie</translation> <translation id="997986563973421916">Z Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index 9fa2f0607..e7bc4dae 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Remover dados de navegação...</translation> <translation id="362276910939193118">Mostrar histórico completo</translation> <translation id="3624292976554877583">Rótulos (foscos)</translation> -<translation id="3625929652356389713">Pode pedir para abrir automaticamente janelas picture-in-picture</translation> <translation id="3628905806504633297">{0,plural, =1{A política do administrador não recomenda transferir o arquivo para este local: <ph name="DESTINATION_NAME" />}one{A política do administrador não recomenda transferir o arquivo para este local: <ph name="DESTINATION_NAME" />}other{A política do administrador não recomenda transferir os arquivos para este local: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Se ele já estiver listado como um programa que tem permissão para acessar a rede, tente removê-lo da lista e adicioná-lo novamente.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Monitoramento detectado</translation> <translation id="3886948180919384617">Empilhador 3</translation> <translation id="3890664840433101773">Adicionar e-mail</translation> -<translation id="3893306401511601929">Picture-in-picture automático</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">O cartão expirou</translation> <translation id="390391808978419508">O tempo de abertura expirou</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Sistemas operacionais</translation> <translation id="4854853140771946034">Criar rapidamente uma nova nota no Google Keep</translation> <translation id="485902285759009870">Confirmando código...</translation> -<translation id="4862630594858951805">Quer receber e-mails quando houver reduções no preço?</translation> <translation id="4864406669374375262">String da versão copiada para a área de transferência</translation> <translation id="486459320933704969">Um familiar ou responsável precisa autorizar seu acesso a este site</translation> <translation id="4866506163384898554">Pressione |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| para mostrar o cursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Digitar termo de pesquisa></translation> <translation id="671076103358959139">Token de inscrição:</translation> <translation id="6711464428925977395">Há algo errado com o servidor proxy, ou o endereço está incorreto.</translation> -<translation id="6716013836112872184">Receba e-mails no endereço <ph name="EMAIL" /> quando houver uma redução no preço em qualquer site.</translation> <translation id="6716672519412350405"><ph name="URL" /> quer criar um mapa 3D do ambiente a sua volta e acompanhar a posição da câmera</translation> <translation id="6718612893943028815">Usar a câmera?</translation> <translation id="6721164594124191969">Rótulos (brilhantes)</translation> @@ -4037,6 +4033,5 @@ <li>Tente conectar-se a outra rede</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">picture-in-picture automático</translation> <translation id="997986563973421916">Do Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index 7c36ecb9..0e1e81b 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Limpar dados de navegação...</translation> <translation id="362276910939193118">Mostrar histórico completo</translation> <translation id="3624292976554877583">Etiquetas (mate)</translation> -<translation id="3625929652356389713">Pode pedir para abrir automaticamente janelas de ecrã no ecrã</translation> <translation id="3628905806504633297">{0,plural, =1{A política do administrador não recomenda a transferência deste ficheiro para <ph name="DESTINATION_NAME" />}other{A política do administrador não recomenda a transferência destes ficheiros para <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Se já estiver indicado na lista como sendo um programa com permissão para aceder à rede, experimente removê-lo da lista e adicioná-lo novamente.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Monitorização detetada</translation> <translation id="3886948180919384617">Empilhador 3</translation> <translation id="3890664840433101773">Adicionar email</translation> -<translation id="3893306401511601929">Ecrã no ecrã automático</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">O cartão expirou</translation> <translation id="390391808978419508">A abertura excedeu o tempo limite</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Sistemas operativos</translation> <translation id="4854853140771946034">Crie rapidamente uma nova nota no Google Keep</translation> <translation id="485902285759009870">A validar o código…</translation> -<translation id="4862630594858951805">Quer receber emails quando o preço descer?</translation> <translation id="4864406669374375262">String da versão copiada para a área de transferência</translation> <translation id="486459320933704969">O teu adulto responsável ou tutor tem de indicar que podes visitar este Website.</translation> <translation id="4866506163384898554">Prima |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| para mostrar o cursor</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Introduzir termo de pesquisa></translation> <translation id="671076103358959139">Símbolo de inscrição:</translation> <translation id="6711464428925977395">Existe um problema com o servidor proxy ou o endereço está incorreto.</translation> -<translation id="6716013836112872184">Receba emails em <ph name="EMAIL" /> quando o preço descer em qualquer site.</translation> <translation id="6716672519412350405"><ph name="URL" /> quer criar um mapa 3D do ambiente à sua volta e monitorizar a posição da câmara.</translation> <translation id="6718612893943028815">Quer utilizar a câmara?</translation> <translation id="6721164594124191969">Etiquetas (brilhante)</translation> @@ -4035,6 +4031,5 @@ <li>Experimente estabelecer ligação a outra rede</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ecrã no ecrã automático</translation> <translation id="997986563973421916">Do Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index f8acd8e..de78da8 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Șterge datele de navigare...</translation> <translation id="362276910939193118">Afișează întregul istoric</translation> <translation id="3624292976554877583">Etichete (mat)</translation> -<translation id="3625929652356389713">Poate solicita permisiunea de a deschide automat ferestrele picture-in-picture</translation> <translation id="3628905806504633297">{0,plural, =1{Politica implementată de administrator nu recomandă să transferi acest fișier către <ph name="DESTINATION_NAME" />}few{Politica implementată de administrator nu recomandă să transferi aceste fișiere către <ph name="DESTINATION_NAME" />}other{Politica implementată de administrator nu recomandă să transferi aceste fișiere către <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Dacă este deja inclus ca program căruia i se permite să acceseze rețeaua, încearcă să îl elimini din listă și să îl adaugi din nou.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">S-a detectat monitorizarea</translation> <translation id="3886948180919384617">Receptorul de hârtie 3</translation> <translation id="3890664840433101773">Adaugă o adresă de e-mail</translation> -<translation id="3893306401511601929">Picture-in-picture automat</translation> <translation id="3897092660631435901">Meniu</translation> <translation id="3901925938762663762">Cardul este expirat</translation> <translation id="390391808978419508">Deschiderea a expirat</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Sisteme de operare</translation> <translation id="4854853140771946034">Creează rapid o notă în Google Keep</translation> <translation id="485902285759009870">Codul se verifică...</translation> -<translation id="4862630594858951805">Vrei să primești e-mailuri când scade prețul?</translation> <translation id="4864406669374375262">Șirul versiunii s-a copiat în clipboard</translation> <translation id="486459320933704969">Părintele sau tutorele trebuie să spună că poți accesa acest site</translation> <translation id="4866506163384898554">Apasă pe |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| pentru a afișa cursorul</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Introdu termenul de căutare></translation> <translation id="671076103358959139">Indicativ de înregistrare:</translation> <translation id="6711464428925977395">A apărut o problemă la serverul proxy sau adresa nu este corectă.</translation> -<translation id="6716013836112872184">Primește e-mailuri trimise la <ph name="EMAIL" /> când prețul scade pe orice site.</translation> <translation id="6716672519412350405"><ph name="URL" /> dorește să creeze o hartă 3D a lucrurilor din jurul tău și să urmărească poziția camerei video</translation> <translation id="6718612893943028815">Folosești camera foto?</translation> <translation id="6721164594124191969">Etichete (lucioase)</translation> @@ -4036,6 +4032,5 @@ <li>încearcă să te conectezi la altă rețea Wi-Fi.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">picture-in-picture automat</translation> <translation id="997986563973421916">Din Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index f21ff65..ee73a0e 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">Очистить историю...</translation> <translation id="362276910939193118">Показать всю историю</translation> <translation id="3624292976554877583">Этикетки (матовые)</translation> -<translation id="3625929652356389713">Может запрашивать разрешение на автоматическое открытие окон "картинка в картинке"</translation> <translation id="3628905806504633297">{0,plural, =1{Администратор не рекомендует передавать этот файл в место назначения "<ph name="DESTINATION_NAME" />".}one{Администратор не рекомендует передавать эти файлы в место назначения "<ph name="DESTINATION_NAME" />".}few{Администратор не рекомендует передавать эти файлы в место назначения "<ph name="DESTINATION_NAME" />".}many{Администратор не рекомендует передавать эти файлы в место назначения "<ph name="DESTINATION_NAME" />".}other{Администратор не рекомендует передавать эти файлы в место назначения "<ph name="DESTINATION_NAME" />".}}</translation> <translation id="3630155396527302611">Если программа входит в список тех, которым разрешен доступ к сети, удалите ее из списка и добавьте туда снова.</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">Соединение отслеживается</translation> <translation id="3886948180919384617">Укладчик 3</translation> <translation id="3890664840433101773">Добавление адреса электронной почты</translation> -<translation id="3893306401511601929">Автоматический показ картинки в картинке</translation> <translation id="3897092660631435901">Меню</translation> <translation id="3901925938762663762">Срок действия карты истек</translation> <translation id="390391808978419508">Превышено время ожидания</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">Операционные системы</translation> <translation id="4854853140771946034">Быстро создать заметку в Google Keep</translation> <translation id="485902285759009870">Проверка кода…</translation> -<translation id="4862630594858951805">Хотите получать электронные письма о снижении цены?</translation> <translation id="4864406669374375262">Версия скопирована в буфер обмена</translation> <translation id="486459320933704969">Чтобы смотреть этот сайт, тебе нужно разрешение родителя или законного представителя.</translation> <translation id="4866506163384898554">Чтобы увидеть курсор, нажмите |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|.</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Введите поисковый запрос></translation> <translation id="671076103358959139">Токен регистрации:</translation> <translation id="6711464428925977395">На прокси-сервере возникла проблема или адрес указан неверно.</translation> -<translation id="6716013836112872184">Получать электронные письма на адрес <ph name="EMAIL" /> о снижении цены на сайтах.</translation> <translation id="6716672519412350405">Сайт <ph name="URL" /> запрашивает разрешение на создание 3D-карты места, в котором вы находитесь, и отслеживание положения камеры.</translation> <translation id="6718612893943028815">Использовать камеру?</translation> <translation id="6721164594124191969">Этикетки (глянцевые)</translation> @@ -4034,6 +4030,5 @@ <li>Попробуйте подключиться к другой сети.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">автоматический показ картинки в картинке</translation> <translation id="997986563973421916">Из Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb index 9a47d60..c6529b0 100644 --- a/components/strings/components_strings_si.xtb +++ b/components/strings/components_strings_si.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">බ්රවුස් කිරීමේ දත්ත හිස් කරන්න...</translation> <translation id="362276910939193118">පූර්ණ ඉතිහාසය පෙන්වන්න</translation> <translation id="3624292976554877583">ලේබල් (මැට්)</translation> -<translation id="3625929652356389713">පින්තූර-තුළ-පින්තූර කවුළු ස්වයංක්රීයව විවෘත කිරීමට ඉල්ලා සිටිය හැකි ය</translation> <translation id="3628905806504633297">{0,plural, =1{පරිපාලක ප්රතිපත්තිය මෙම ගොනුව <ph name="DESTINATION_NAME" /> වෙත මාරු කිරීම නිර්දේශ නොකරයි}one{පරිපාලක ප්රතිපත්තිය මෙම ගොනු <ph name="DESTINATION_NAME" /> වෙත මාරු කිරීම නිර්දේශ නොකරයි}other{පරිපාලක ප්රතිපත්තිය මෙම ගොනු <ph name="DESTINATION_NAME" /> වෙත මාරු කිරීම නිර්දේශ නොකරයි}}</translation> <translation id="3630155396527302611">එය දැනටමත් ජාලයට ප්රවේශ විය හැකි ක්රමලේඛයක් ලෙස ලැයිස්තුගත කර තිබේ නම්, එය ලැයිස්තුවෙන් ඉවත් කර නැවත එක් කිරීමට උත්සාහ කරන්න.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">අධීක්ෂණය අනාවරණය විය</translation> <translation id="3886948180919384617">අට්ටිය 3</translation> <translation id="3890664840433101773">ඊ-තැපෑල එක් කරන්න</translation> -<translation id="3893306401511601929">ස්වයංක්රීය පින්තූරය තුළ පින්තූරය</translation> <translation id="3897092660631435901">මෙනුව</translation> <translation id="3901925938762663762">මෙම කාඩ්පත කල් ඉකුත් වී ඇත</translation> <translation id="390391808978419508">විවෘත කිරීමේ කාලය නිමා විය</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">මෙහෙයුම් පද්ධති</translation> <translation id="4854853140771946034">Google Keep හි නව සටහනක් ඉක්මනින් තනන්න</translation> <translation id="485902285759009870">කේතය සත්යාපනය කරමින්...</translation> -<translation id="4862630594858951805">මිල පහත වැටෙන විට ඉ-තැපැල් අවශ්යද?</translation> <translation id="4864406669374375262">අනුවාද තන්තුව පසුරු පුවරුවට පිටපත් කරන ලදි</translation> <translation id="486459320933704969">ඔබ මෙම වෙබ් අඩවියට පිවිසීම සුදුසු බව දෙමාපියෙකු හෝ භාරකරුවෙකු පැවසිය යුතු වේ</translation> <translation id="4866506163384898554">ඔබගේ කර්සරය පෙන්වීමට |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ඔබන්න</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><සෙවීම් පදය ටයිප් කරන්න></translation> <translation id="671076103358959139">ලියාපදිංචි වීමේ ටෝකනය:</translation> <translation id="6711464428925977395">ප්රොක්සි සේවාදායකයෙහි යම් දෙයක් වැරදිය, නැතහොත් ලිපිනය වැරදිය.</translation> -<translation id="6716013836112872184">ඕනෑම අඩවියක් මත මිල පහත වැටෙන විට <ph name="EMAIL" /> වෙත ඉ-තැපැල් ගෙන්වා ගන්න.</translation> <translation id="6716672519412350405"><ph name="URL" /> හට ඔබේ වටපිටාවේ ත්රිමාන සිතියමක් සෑදීමට සහ කැමරා ස්ථානය හඹා යෑමට අවශ්යයි</translation> <translation id="6718612893943028815">කැමරාව භාවිත කරන්නද?</translation> <translation id="6721164594124191969">ලේබල් (දීප්තිමත්)</translation> @@ -4036,6 +4032,5 @@ <li>වෙනත් ජාලයකට සබැඳීමට උත්සාහ කරන්න</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ස්වයංක්රීය පින්තූරය තුළ පින්තූරය</translation> <translation id="997986563973421916">Google Pay වෙතින්</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index b357248..9861831 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -1260,7 +1260,6 @@ <translation id="36224234498066874">Vymazať dáta prehliadania...</translation> <translation id="362276910939193118">Zobraziť celú históriu</translation> <translation id="3624292976554877583">Štítky (matné)</translation> -<translation id="3625929652356389713">Môže žiadať o automatické otváranie okien obrazu v obraze</translation> <translation id="3628905806504633297">{0,plural, =1{Pravidlá správcu prenos tohto súboru do úložiska <ph name="DESTINATION_NAME" /> neodporúčajú}few{Pravidlá správcu prenos týchto súborov do úložiska <ph name="DESTINATION_NAME" /> neodporúčajú}many{Administrator policy doesn’t recommend transferring these files to <ph name="DESTINATION_NAME" />}other{Pravidlá správcu prenos týchto súborov do úložiska <ph name="DESTINATION_NAME" /> neodporúčajú}}</translation> <translation id="3630155396527302611">Ak je už uvedený ako program s prístupom k sieti, skúste ho odstrániť zo zoznamu a znova ho pridať.</translation> <translation id="3630426379756188722">Tlačidlo Nájdi moje zariadenie, ktorého aktivovaním prejdete na vyhľadávanie zariadenia v účte Google</translation> @@ -1394,7 +1393,6 @@ <translation id="388632593194507180">Bolo rozpoznané monitorovanie</translation> <translation id="3886948180919384617">Odkladač č. 3</translation> <translation id="3890664840433101773">Pridanie e-mailu</translation> -<translation id="3893306401511601929">Automatický obraz v obraze</translation> <translation id="3897092660631435901">Ponuka</translation> <translation id="3901925938762663762">Platnosť karty vypršala</translation> <translation id="390391808978419508">Vypršal čas otvorenia</translation> @@ -1863,7 +1861,6 @@ <translation id="4852429274334674023">Operačné systémy</translation> <translation id="4854853140771946034">Rýchlo vytvoriť novú poznámku v službe Google Keep</translation> <translation id="485902285759009870">Overuje sa kód...</translation> -<translation id="4862630594858951805">Chcete dostávať správy, keď cena klesne?</translation> <translation id="4864406669374375262">Reťazec verzie bol skopírovaný do schránky</translation> <translation id="486459320933704969">Rodič alebo zákonný zástupca musí súhlasiť s tým, že môžeš navštíviť tento web</translation> <translation id="4866506163384898554">Stlačením klávesov |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| zobrazíte kurzor</translation> @@ -2751,7 +2748,6 @@ <translation id="6710594484020273272"><Zadajte hľadaný výraz></translation> <translation id="671076103358959139">Registračný token:</translation> <translation id="6711464428925977395">Vyskytol sa problém s proxy serverom alebo je adresa nesprávna.</translation> -<translation id="6716013836112872184">Dostávajte správy na <ph name="EMAIL" />, keď cena klesne na ľubovoľnom webe.</translation> <translation id="6716672519412350405"><ph name="URL" /> chce vytvoriť 3D mapu vášho okolia a sledovať umiestnenie kamier</translation> <translation id="6718612893943028815">Chcete použiť fotoaparát?</translation> <translation id="6721164594124191969">Štítky (lesklé)</translation> @@ -4031,6 +4027,5 @@ <li>skúste sa pripojiť k inej sieti Wi-Fi.</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatický obraz v obraze</translation> <translation id="997986563973421916">Zo služby Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index 15b99f2..94dd58be 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Izbriši podatke brskanja ...</translation> <translation id="362276910939193118">Prikaži celotno zgodovino</translation> <translation id="3624292976554877583">Labels (Matte)</translation> -<translation id="3625929652356389713">Lahko zahteva samodejno odpiranje oken v načinu slike v sliki</translation> <translation id="3628905806504633297">{0,plural, =1{Pravilnik skrbnika ne priporoča prenosa te datoteke sem: <ph name="DESTINATION_NAME" />.}one{Pravilnik skrbnika ne priporoča prenosa teh datotek sem: <ph name="DESTINATION_NAME" />.}two{Pravilnik skrbnika ne priporoča prenosa teh datotek sem: <ph name="DESTINATION_NAME" />.}few{Pravilnik skrbnika ne priporoča prenosa teh datotek sem: <ph name="DESTINATION_NAME" />.}other{Pravilnik skrbnika ne priporoča prenosa teh datotek sem: <ph name="DESTINATION_NAME" />.}}</translation> <translation id="3630155396527302611">Če je že na seznamu programov, ki jim je dovoljen dostop do omrežja, ga poskusite odstraniti s seznama in znova dodati.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Zaznano je nadzorovanje</translation> <translation id="3886948180919384617">Zlagalnik 3</translation> <translation id="3890664840433101773">Dodajanje e-poštnega naslova</translation> -<translation id="3893306401511601929">Samodejni način slike v sliki</translation> <translation id="3897092660631435901">Meni</translation> <translation id="3901925938762663762">Kartica je potekla</translation> <translation id="390391808978419508">Časovna omejitev za odpiranje je potekla</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Operacijski sistemi</translation> <translation id="4854853140771946034">Hitro ustvarjanje novega zapiska v Googlu Keep</translation> <translation id="485902285759009870">Preverjanje kode …</translation> -<translation id="4862630594858951805">Ali želite prejemati e-poštna sporočila, ko se cena zniža?</translation> <translation id="4864406669374375262">Niz različice je kopiran v odložišče</translation> <translation id="486459320933704969">Starš ali skrbnik mora potrditi, da lahko obiščeš to spletno mesto.</translation> <translation id="4866506163384898554">Pritisnite |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| za prikaz kazalca</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Vnesite iskalno poizvedbo></translation> <translation id="671076103358959139">Žeton za včlanitev:</translation> <translation id="6711464428925977395">Nekaj je narobe s strežnikom proxy ali pa naslov ni pravilen.</translation> -<translation id="6716013836112872184">Prejmite e-poštna sporočila na naslov <ph name="EMAIL" />, ko se cena zniža na katerem koli spletnem mestu.</translation> <translation id="6716672519412350405"><ph name="URL" /> želi ustvariti 3D-zemljevid vaše okolice in spremljati položaj kamere</translation> <translation id="6718612893943028815">Želite uporabiti kamero?</translation> <translation id="6721164594124191969">Labels (Glossy)</translation> @@ -4035,6 +4031,5 @@ <li>Poskusite se povezati z drugim omrežjem</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">samodejni način slike v sliki</translation> <translation id="997986563973421916">Iz Googla Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb index ddaf469..584eb6c 100644 --- a/components/strings/components_strings_sq.xtb +++ b/components/strings/components_strings_sq.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Pastro të dhënat e shfletimit...</translation> <translation id="362276910939193118">Shfaq historikun e plotë</translation> <translation id="3624292976554877583">Etiketa (mat)</translation> -<translation id="3625929652356389713">Mund të kërkojnë që të hapin automatikisht dritaret në modalitetin "figurë brenda figurës"</translation> <translation id="3628905806504633297">{0,plural, =1{Politika e administratorit nuk rekomandon transferimin e këtij skedari te: <ph name="DESTINATION_NAME" />}other{Politika e administratorit nuk rekomandon transferimin e këtyre skedarëve te: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Nëse tashmë është i listuar si program që lejohet të ketë qasje te rrjeti, provo që ta heqësh nga lista dhe ta shtosh përsëri.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">U zbulua monitorim</translation> <translation id="3886948180919384617">Stivuesi 3</translation> <translation id="3890664840433101773">Shto një email</translation> -<translation id="3893306401511601929">Modaliteti automatik "figurë brenda figurës"</translation> <translation id="3897092660631435901">Menyja</translation> <translation id="3901925938762663762">Karta ka skaduar</translation> <translation id="390391808978419508">Koha e hapjes skadoi</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Sistemet operative</translation> <translation id="4854853140771946034">Krijo shpejt një shënim të ri në Google Keep</translation> <translation id="485902285759009870">Po verifikon kodin...</translation> -<translation id="4862630594858951805">Dëshiron të marrësh email-e kur të ulet çmimi?</translation> <translation id="4864406669374375262">Vargu i versionit u kopjua te kujtesa e fragmenteve</translation> <translation id="486459320933704969">Një prind ose kujdestar duhet të pranojë që ta vizitosh këtë uebsajt</translation> <translation id="4866506163384898554">Shtyp |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| për të shfaqur kursorin</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Shkruaj termin e kërkimit></translation> <translation id="671076103358959139">Tokeni i regjistrimit:</translation> <translation id="6711464428925977395">Ka një gabim me serverin përfaqësues ose adresa është e pasaktë.</translation> -<translation id="6716013836112872184">Merr email-e të dërguara në <ph name="EMAIL" /> kur bie çmimi në një sajt.</translation> <translation id="6716672519412350405"><ph name="URL" /> kërkon të krijojë një hartë 3D të ambientit tënd rrethues dhe të gjurmojë pozicionin e kamerës</translation> <translation id="6718612893943028815">Të përdoret kamera?</translation> <translation id="6721164594124191969">Etiketa (me shkëlqim)</translation> @@ -4034,6 +4030,5 @@ <li>Provo të lidhesh me një rrjet tjetër</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">modaliteti automatik "figurë brenda figurës"</translation> <translation id="997986563973421916">Nga Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb index 332d723..ef831ce 100644 --- a/components/strings/components_strings_sr-Latn.xtb +++ b/components/strings/components_strings_sr-Latn.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Obriši podatke pregledanja...</translation> <translation id="362276910939193118">Prikaži kompletnu istoriju</translation> <translation id="3624292976554877583">Nalepnice (mat)</translation> -<translation id="3625929652356389713">Može da traži da se automatski otvaraju prozori sa slikom u slici</translation> <translation id="3628905806504633297">{0,plural, =1{Smernice administratora ne preporučuju prenos ovog fajla na <ph name="DESTINATION_NAME" />}one{Smernice administratora ne preporučuju prenos ovih fajlova na <ph name="DESTINATION_NAME" />}few{Smernice administratora ne preporučuju prenos ovih fajlova na <ph name="DESTINATION_NAME" />}other{Smernice administratora ne preporučuju prenos ovih fajlova na <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Ako je već naveden kao program kome je dozvoljen pristup mreži, pokušajte da ga uklonite sa liste i da ga ponovo dodate.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Otkriveno je praćenje</translation> <translation id="3886948180919384617">3. pregrada za slaganje</translation> <translation id="3890664840433101773">Dodajte imejl</translation> -<translation id="3893306401511601929">Automatska slika u slici</translation> <translation id="3897092660631435901">Meni</translation> <translation id="3901925938762663762">Kartica je istekla</translation> <translation id="390391808978419508">Vreme za otvaranje je isteklo</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Operativni sistemi</translation> <translation id="4854853140771946034">Brzo napravite novu belešku u Google Keep-u</translation> <translation id="485902285759009870">Kôd se verifikuje...</translation> -<translation id="4862630594858951805">Želite imejlove kada padne cena?</translation> <translation id="4864406669374375262">String verzije je kopiran u privremenu memoriju</translation> <translation id="486459320933704969">Roditelj ili staratelj mora da kaže da je u redu da posetite ovaj veb-sajt</translation> <translation id="4866506163384898554">Pritisnite |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| da bi se pokazivač prikazao</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Unesite termin za pretragu></translation> <translation id="671076103358959139">Token za registraciju:</translation> <translation id="6711464428925977395">Došlo je do greške sa proksi serverom ili je adresa netačna.</translation> -<translation id="6716013836112872184">Dobijajte imejlove na <ph name="EMAIL" /> kada cena padne na bilo kom sajtu.</translation> <translation id="6716672519412350405"><ph name="URL" /> želi da pravi 3D mapu okruženja i da prati položaj kamere</translation> <translation id="6718612893943028815">Dozvolićete korišćenje kamere?</translation> <translation id="6721164594124191969">Nalepnice (sjajne)</translation> @@ -4036,6 +4032,5 @@ <li>Probajte da se povežete sa drugom mrežom</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatska slika u slici</translation> <translation id="997986563973421916">Sa Google Pay-a</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index 9e1c12d..323d90a 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Обриши податке прегледања...</translation> <translation id="362276910939193118">Прикажи комплетну историју</translation> <translation id="3624292976554877583">Налепнице (мат)</translation> -<translation id="3625929652356389713">Може да тражи да се аутоматски отварају прозори са сликом у слици</translation> <translation id="3628905806504633297">{0,plural, =1{Смернице администратора не препоручују пренос овог фајла на <ph name="DESTINATION_NAME" />}one{Смернице администратора не препоручују пренос ових фајлова на <ph name="DESTINATION_NAME" />}few{Смернице администратора не препоручују пренос ових фајлова на <ph name="DESTINATION_NAME" />}other{Смернице администратора не препоручују пренос ових фајлова на <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Ако је већ наведен као програм коме је дозвољен приступ мрежи, покушајте да га уклоните са листе и да га поново додате.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Откривено је праћење</translation> <translation id="3886948180919384617">3. преграда за слагање</translation> <translation id="3890664840433101773">Додајте имејл</translation> -<translation id="3893306401511601929">Аутоматска слика у слици</translation> <translation id="3897092660631435901">Мени</translation> <translation id="3901925938762663762">Картица је истекла</translation> <translation id="390391808978419508">Време за отварање је истекло</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Оперативни системи</translation> <translation id="4854853140771946034">Брзо направите нову белешку у Google Keep-у</translation> <translation id="485902285759009870">Кôд се верификује...</translation> -<translation id="4862630594858951805">Желите имејлове када падне цена?</translation> <translation id="4864406669374375262">Стринг верзије је копиран у привремену меморију</translation> <translation id="486459320933704969">Родитељ или старатељ мора да каже да је у реду да посетите овај веб-сајт</translation> <translation id="4866506163384898554">Притисните |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| да би се показивач приказао</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><Унесите термин за претрагу></translation> <translation id="671076103358959139">Токен за регистрацију:</translation> <translation id="6711464428925977395">Дошло је до грешке са прокси сервером или је адреса нетачна.</translation> -<translation id="6716013836112872184">Добијајте имејлове на <ph name="EMAIL" /> када цена падне на било ком сајту.</translation> <translation id="6716672519412350405"><ph name="URL" /> жели да прави 3D мапу окружења и да прати положај камере</translation> <translation id="6718612893943028815">Дозволићете коришћење камере?</translation> <translation id="6721164594124191969">Налепнице (сјајне)</translation> @@ -4036,6 +4032,5 @@ <li>Пробајте да се повежете са другом мрежом</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">аутоматска слика у слици</translation> <translation id="997986563973421916">Са Google Pay-а</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb index f4b9531..8fde8c656 100644 --- a/components/strings/components_strings_sv.xtb +++ b/components/strings/components_strings_sv.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Rensa webbinformation ...</translation> <translation id="362276910939193118">Visa fullständig historik</translation> <translation id="3624292976554877583">Etiketter (matta)</translation> -<translation id="3625929652356389713">Får begära tillstånd att öppna bild-i-bild-fönster automatiskt</translation> <translation id="3628905806504633297">{0,plural, =1{Enligt administratörspolicyn är det inte rekommenderat att överföra den här filen till <ph name="DESTINATION_NAME" />}other{Enligt administratörspolicyn är det inte rekommenderat att överföra dessa filer till <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Om den redan finns med på listan över program som har tillgång till nätverket kan du prova att ta bort den från listan och sedan lägga till den igen.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Övervakning har upptäckts</translation> <translation id="3886948180919384617">Utmatningsfack 3</translation> <translation id="3890664840433101773">Lägg till e-post</translation> -<translation id="3893306401511601929">Automatisk bild-i-bild</translation> <translation id="3897092660631435901">Meny</translation> <translation id="3901925938762663762">Kortet gäller inte längre</translation> <translation id="390391808978419508">Tidsgränsen för att öppna överskreds</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Operativsystem</translation> <translation id="4854853140771946034">Skapa en ny anteckning i Google Keep snabbt</translation> <translation id="485902285759009870">Koden verifieras …</translation> -<translation id="4862630594858951805">Vill du få e-postmeddelanden när priset sänks?</translation> <translation id="4864406669374375262">Versionssträngen har kopierats till urklipp</translation> <translation id="486459320933704969">En förälder eller vårdnadshavare måste godkänna att du besöker webbplatsen</translation> <translation id="4866506163384898554">Tryck på |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| om du vill att markören ska visas</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Ange sökterm></translation> <translation id="671076103358959139">Registreringstoken:</translation> <translation id="6711464428925977395">Något är fel med proxyservern eller så är adressen felaktig.</translation> -<translation id="6716013836112872184">Få e-postmeddelanden till <ph name="EMAIL" /> när priset sänks på en webbplats.</translation> <translation id="6716672519412350405"><ph name="URL" /> skapa en 3D-karta över dina omgivningar och registrera kamerans position</translation> <translation id="6718612893943028815">Vill du använda kameran?</translation> <translation id="6721164594124191969">Etiketter (blanka)</translation> @@ -4036,6 +4032,5 @@ <li>Testa att ansluta till ett annat nätverk</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">automatisk bild-i-bild</translation> <translation id="997986563973421916">Från Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index a38f3cd5..47ca864 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Futa Data ya Kuvinjari...</translation> <translation id="362276910939193118">Onyesha Historia Kamili</translation> <translation id="3624292976554877583">Lebo (Zisizong'aa)</translation> -<translation id="3625929652356389713">Unaweza kuomba ruhusa ya kufungua kiotomatiki madirisha ya kipengele cha kupachika picha ndani ya picha nyingine</translation> <translation id="3628905806504633297">{0,plural, =1{Sera ya msimamizi haipendekezi kuhamishia faili hii kwenye <ph name="DESTINATION_NAME" />}other{Sera ya msimamizi haipendekezi kuhamishia faili hizi kwenye <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Ikiwa tayari imeorodheshwa kuwa programu inayoruhusiwa kufikia mtandao, jaribu kuiondoa kwenye orodha kisha uiongeze tena.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Tukio la Ufuatiliaji Limetambuliwa</translation> <translation id="3886948180919384617">Tupio la kutoa la printa la tatu</translation> <translation id="3890664840433101773">Ongeza anwani ya barua pepe</translation> -<translation id="3893306401511601929">Kipengele cha kupachika picha ndani ya picha nyingine kiotomatiki</translation> <translation id="3897092660631435901">Menyu</translation> <translation id="3901925938762663762">Kadi imekwisha muda</translation> <translation id="390391808978419508">Muda wa kufungua umeisha</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Mifumo ya uendeshaji</translation> <translation id="4854853140771946034">Unda dokezo jipya katika Google Keep kwa haraka</translation> <translation id="485902285759009870">Inathibitisha nambari...</translation> -<translation id="4862630594858951805">Ungependa kupokea barua pepe bei inapopungua?</translation> <translation id="4864406669374375262">Imenakili mfuatano wa toleo kwenye ubao wa kunakili</translation> <translation id="486459320933704969">Ni lazima mzazi au mlezi akuruhusu kutembelea tovuti hii</translation> <translation id="4866506163384898554">Bonyeza |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ili kuonyesha kiteuzi chako</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Andika neno unalotaka kutafuta></translation> <translation id="671076103358959139">Tokeni ya Kujiandikisha:</translation> <translation id="6711464428925977395">Kuna hitilafu katika seva mbadala, au anwani siyo sahihi.</translation> -<translation id="6716013836112872184">Ruhusu barua pepe zitumwe kwenda <ph name="EMAIL" /> bei inapopungua kwenye tovuti yoyote.</translation> <translation id="6716672519412350405"><ph name="URL" /> inataka kubuni ramani ya 3D ya mazingira yako na kufuatilia mkao wa kamera</translation> <translation id="6718612893943028815">Ungependa kutumia kamera?</translation> <translation id="6721164594124191969">Lebo (Mng'ao)</translation> @@ -4032,6 +4028,5 @@ <li>Jaribu kuunganisha kwenye mtandao mwingine</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">kipengele cha kupachika picha ndani ya picha nyingine kiotomatiki</translation> <translation id="997986563973421916">Kutoka Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index 7d4c481..b8ac4e2d 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -1259,7 +1259,6 @@ <translation id="36224234498066874">உலாவிய தரவை அழி...</translation> <translation id="362276910939193118">முழு வரலாற்றையும் காண்பி</translation> <translation id="3624292976554877583">மேட் லேபிள்கள்</translation> -<translation id="3625929652356389713">பிக்ச்சர்-இன்-பிக்ச்சர் சாளரங்களைத் தானாகத் திறக்க அனுமதி கேட்கும்</translation> <translation id="3628905806504633297">{0,plural, =1{<ph name="DESTINATION_NAME" />க்கு இந்த ஃபைலை மாற்றுவதை நிர்வாகக் கொள்கை பரிந்துரைக்கவில்லை:}other{<ph name="DESTINATION_NAME" />க்கு இந்த ஃபைல்களை மாற்றுவதை நிர்வாகக் கொள்கை பரிந்துரைக்கவில்லை:}}</translation> <translation id="3630155396527302611">இது நெட்வொர்க்கை அணுகுவதற்கு அனுமதிக்கப்பட்ட நிரலாக ஏற்கனவே பட்டியலிடப்பட்டிருந்தால், இதைப் பட்டியலில் இருந்து அகற்றி, மீண்டும் சேர்ப்பதற்கு முயலவும்.</translation> @@ -1394,7 +1393,6 @@ <translation id="388632593194507180">கண்காணிப்பு கண்டறியப்பட்டது</translation> <translation id="3886948180919384617">ஸ்டேக்கர் 3</translation> <translation id="3890664840433101773">மின்னஞ்சலைச் சேர்</translation> -<translation id="3893306401511601929">ஆட்டோ பிக்ச்சர்-இன்-பிக்ச்சர்</translation> <translation id="3897092660631435901">மெனு</translation> <translation id="3901925938762663762">கார்டு காலாவதியானது</translation> <translation id="390391808978419508">திறப்பதற்கான நேரம் முடிந்தது</translation> @@ -1863,7 +1861,6 @@ <translation id="4852429274334674023">ஆப்ரேட்டிங் சிஸ்டங்கள்</translation> <translation id="4854853140771946034">Google Keepபில் புதிய குறிப்பை விரைவாக உருவாக்கும்</translation> <translation id="485902285759009870">குறியீட்டைச் சரிபார்க்கிறது...</translation> -<translation id="4862630594858951805">விலை குறைந்தால் அதுகுறித்து மின்னஞ்சல் பெற விரும்புகிறீர்களா?</translation> <translation id="4864406669374375262">பதிப்பு வார்த்தை கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது</translation> <translation id="486459320933704969">இந்த இணையதளத்தை நீங்கள் பார்க்கலாம் எனப் பெற்றோரோ காப்பாளரோ சொல்ல வேண்டும்</translation> <translation id="4866506163384898554">கர்சரைக் காட்ட, |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| பட்டன்களை அழுத்தவும்</translation> @@ -2751,7 +2748,6 @@ <translation id="6710594484020273272"><தேடல் வார்த்தையை உள்ளிடுக></translation> <translation id="671076103358959139">பதிவு டோக்கன்:</translation> <translation id="6711464428925977395">ப்ராக்ஸி சர்வரில் ஏதோ தவறு உள்ளது அல்லது முகவரி தவறாக உள்ளது.</translation> -<translation id="6716013836112872184">எந்தத் தளத்தில் விலை குறைந்தாலும் அதுகுறித்து <ph name="EMAIL" /> என்ற முகவரியில் மின்னஞ்சல்களைப் பெறுங்கள்.</translation> <translation id="6716672519412350405">உங்களைச் சுற்றியுள்ள இடங்களின் 3D மேப்பை உருவாக்கவும் கேமரா நிலையை டிராக் செய்யவும் <ph name="URL" /> விரும்புகிறது</translation> <translation id="6718612893943028815">கேமராவைப் பயன்படுத்தவா?</translation> <translation id="6721164594124191969">க்ளாஸ்ஸி லேபிள்கள்</translation> @@ -4031,6 +4027,5 @@ <li>வேறொரு நெட்வொர்க்குடன் இணைக்கவும்</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ஆட்டோ பிக்ச்சர்-இன்-பிக்ச்சர்</translation> <translation id="997986563973421916">Google Pay இலிருந்து</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 73c4d35..adb9058 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -1265,7 +1265,6 @@ <translation id="36224234498066874">బ్రౌజింగ్ డేటాను క్లియర్ చేయండి...</translation> <translation id="362276910939193118">పూర్తి హిస్టరీని చూపించు</translation> <translation id="3624292976554877583">లేబుల్స్ (మాట్)</translation> -<translation id="3625929652356389713">పిక్చర్-ఇన్-పిక్చర్ విండోలను ఆటోమేటిక్గా తెరవమని అడగవచ్చు</translation> <translation id="3628905806504633297">{0,plural, =1{ఈ ఫైల్ను <ph name="DESTINATION_NAME" />కు బదిలీ చేయవద్దని అడ్మినిస్ట్రేటర్ పాలసీ సిఫార్సు చేస్తోంది}other{ఈ ఫైల్స్ను <ph name="DESTINATION_NAME" />కు బదిలీ చేయవద్దని అడ్మినిస్ట్రేటర్ పాలసీ సిఫార్సు చేస్తోంది}}</translation> <translation id="3630155396527302611">ఇప్పటికే ఇది నెట్వర్క్ను యాక్సెస్ చేయడానికి అనుమతించబడిన ప్రోగ్రామ్ లాగా లిస్ట్ చేయబడి ఉంటే, దీన్ని లిస్ట్ నుండి తీసివేసి, ఆపై మళ్లీ జోడించి ప్రయత్నించండి.</translation> @@ -1400,7 +1399,6 @@ <translation id="388632593194507180">పర్యవేక్షణ గుర్తించబడింది</translation> <translation id="3886948180919384617">స్టాకర్ 3</translation> <translation id="3890664840433101773">ఈమెయిల్ను జోడించండి</translation> -<translation id="3893306401511601929">ఆటోమేటిక్ పిక్చర్-ఇన్-పిక్చర్</translation> <translation id="3897092660631435901">మెనూ</translation> <translation id="3901925938762663762">కార్డ్ గడువు సమయం ముగిసింది</translation> <translation id="390391808978419508">తెరవడానికి సమయం ముగిసింది</translation> @@ -1869,7 +1867,6 @@ <translation id="4852429274334674023">ఆపరేటింగ్ సిస్టమ్లు</translation> <translation id="4854853140771946034">Google Keepలో త్వరగా కొత్త నోట్ను క్రియేట్ చేయండి</translation> <translation id="485902285759009870">కోడ్ను వెరిఫై చేస్తోంది...</translation> -<translation id="4862630594858951805">ధర తగ్గినప్పుడు ఈమెయిల్స్ ద్వారా అలర్ట్లను పొందాలనుకుంటున్నారా?</translation> <translation id="4864406669374375262">క్లిప్బోర్డ్కు వెర్షన్ స్ట్రింగ్ కాపీ చేయబడింది</translation> <translation id="486459320933704969">ఈ వెబ్సైట్ను సందర్శించడానికి, తల్లి/తండ్రి లేదా గార్డియన్ తప్పనిసరిగా మిమ్మల్ని అనుమతించాలి</translation> <translation id="4866506163384898554">మీ కర్సర్ను చూపించడానికి |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| నొక్కండి</translation> @@ -2758,7 +2755,6 @@ <translation id="6710594484020273272"><శోధన పదాన్ని టైప్ చేయండి></translation> <translation id="671076103358959139">నమోదు టోకెన్:</translation> <translation id="6711464428925977395">ప్రాక్సీ సర్వర్లో ఏదో తప్పు ఉంది లేదా అడ్రస్ సరైనది కాదు.</translation> -<translation id="6716013836112872184">ఏదైనా సైట్లో ధర తగ్గినప్పుడు, <ph name="EMAIL" />కు ఈమెయిల్స్ పొందండి.</translation> <translation id="6716672519412350405">మీ పరిసరాల 3D మ్యాప్ను రూపొందించడానికి, కెమెరా పొజిషన్ను ట్రాక్ చేయడానికి <ph name="URL" /> అనుమతి అడుగుతోంది</translation> <translation id="6718612893943028815">కెమెరాను ఉపయోగించాలా?</translation> <translation id="6721164594124191969">లేబుల్స్ (గ్లాసీ)</translation> @@ -4037,6 +4033,5 @@ <li>మరో నెట్వర్క్కు కనెక్ట్ చేయడం ప్రయత్నించండి</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">ఆటోమేటిక్ పిక్చర్-ఇన్-పిక్చర్</translation> <translation id="997986563973421916">Google Pay నుండి</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index c930920c..8b501d0 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">ล้างข้อมูลการท่องเว็บ</translation> <translation id="362276910939193118">แสดงประวัติการเข้าชมทั้งหมด</translation> <translation id="3624292976554877583">ป้าย (ด้าน)</translation> -<translation id="3625929652356389713">สามารถขอเปิดหน้าต่างการแสดงภาพซ้อนภาพโดยอัตโนมัติได้</translation> <translation id="3628905806504633297">{0,plural, =1{นโยบายของผู้ดูแลระบบไม่แนะนำให้โอนไฟล์นี้ไปยัง <ph name="DESTINATION_NAME" />}other{นโยบายของผู้ดูแลระบบไม่แนะนำให้โอนไฟล์เหล่านี้ไปยัง <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">หากโปรแกรมอยู่ในรายการที่ได้รับอนุญาตให้เข้าถึงเครือข่ายอยู่แล้ว ลองนำโปรแกรมออกจากรายการและเพิ่มกลับเข้าไปใหม่</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">ตรวจพบการตรวจสอบ</translation> <translation id="3886948180919384617">สแต็กเกอร์ 3</translation> <translation id="3890664840433101773">เพิ่มอีเมล</translation> -<translation id="3893306401511601929">การแสดงภาพซ้อนภาพอัตโนมัติ</translation> <translation id="3897092660631435901">เมนู</translation> <translation id="3901925938762663762">บัตรหมดอายุ</translation> <translation id="390391808978419508">การเปิดหมดเวลาแล้ว</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">ระบบปฏิบัติการ</translation> <translation id="4854853140771946034">สร้างโน้ตใหม่ใน Google Keep อย่างรวดเร็ว</translation> <translation id="485902285759009870">กำลังยืนยันรหัส...</translation> -<translation id="4862630594858951805">ต้องการรับอีเมลแจ้งเมื่อราคาต่ำลงไหม</translation> <translation id="4864406669374375262">คัดลอกสตริงเวอร์ชันไปยังคลิปบอร์ดแล้ว</translation> <translation id="486459320933704969">พ่อแม่หรือผู้ปกครองต้องระบุว่าคุณเข้าชมเว็บไซต์นี้ได้</translation> <translation id="4866506163384898554">กด |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| เพื่อแสดงเคอร์เซอร์</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><พิมพ์ข้อความค้นหา></translation> <translation id="671076103358959139">โทเค็นการลงทะเบียน:</translation> <translation id="6711464428925977395">พร็อกซีเซิร์ฟเวอร์ผิดปกติหรือที่อยู่ไม่ถูกต้อง</translation> -<translation id="6716013836112872184">รับอีเมลซึ่งจะส่งไปที่ <ph name="EMAIL" /> เมื่อราคาต่ำลงในเว็บไซต์ใดก็ตาม</translation> <translation id="6716672519412350405"><ph name="URL" /> ต้องการสร้างแผนที่ 3 มิติของสิ่งที่อยู่รอบตัวคุณและติดตามตำแหน่งของกล้อง</translation> <translation id="6718612893943028815">ใช้กล้องถ่ายรูปไหม</translation> <translation id="6721164594124191969">ป้าย (เงา)</translation> @@ -4035,6 +4031,5 @@ <li>ลองเชื่อมต่อกับเครือข่ายอื่น</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">การแสดงภาพซ้อนภาพอัตโนมัติ</translation> <translation id="997986563973421916">จาก Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index edc9ea0..cee3de3a 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Tarama Verilerini Temizle...</translation> <translation id="362276910939193118">Tam Geçmişi Göster</translation> <translation id="3624292976554877583">Etiketler (Mat)</translation> -<translation id="3625929652356389713">Pencere içinde pencerelerin otomatik olarak açılmasını isteyebilir</translation> <translation id="3628905806504633297">{0,plural, =1{Yönetici politikası bu dosyayı <ph name="DESTINATION_NAME" /> hedefine aktarmanızı önermiyor}other{Yönetici politikası bu dosyaları <ph name="DESTINATION_NAME" /> hedefine aktarmanızı önermiyor}}</translation> <translation id="3630155396527302611">Ağa erişmesine izin verilmiş bir program olarak zaten listeleniyorsa, listeden kaldırıp tekrar eklemeyi deneyin.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">İzleme Tespit Edildi</translation> <translation id="3886948180919384617">Yığınlayıcı 3</translation> <translation id="3890664840433101773">E-posta adresi ekle</translation> -<translation id="3893306401511601929">Otomatik pencere içinde pencere</translation> <translation id="3897092660631435901">Menü</translation> <translation id="3901925938762663762">Kartın kullanım süresi doldu</translation> <translation id="390391808978419508">Açma zaman aşımına uğradı</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">İşletim sistemleri</translation> <translation id="4854853140771946034">Google Keep'te hızlıca yeni bir not oluşturun</translation> <translation id="485902285759009870">Kod doğrulanıyor...</translation> -<translation id="4862630594858951805">Fiyat düştüğünde e-posta almak ister misiniz?</translation> <translation id="4864406669374375262">Sürüm dizesi, panoya kopyalandı</translation> <translation id="486459320933704969">Bir anne veya babanın ya da velinin, bu web sitesini ziyaret etmenizin uygun olduğunu belirtmesi gerekir</translation> <translation id="4866506163384898554">İmlecinizi göstermek için |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| tuşlarına basın</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Arama terimini yazın></translation> <translation id="671076103358959139">Kayıt Jetonu:</translation> <translation id="6711464428925977395">Proxy sunucusunda bir sorun var veya adres yanlış.</translation> -<translation id="6716013836112872184">Ürünün fiyatı herhangi bir sitede düştüğünde <ph name="EMAIL" /> adresine e-posta alın.</translation> <translation id="6716672519412350405"><ph name="URL" />, çevrenizin 3D haritasını oluşturmak ve kamera konumunu takip etmek istiyor</translation> <translation id="6718612893943028815">Kamera kullanılsın mı?</translation> <translation id="6721164594124191969">Etiketler (Parlak)</translation> @@ -4036,6 +4032,5 @@ <li>Başka bir kablosuz ağa bağlanmayı deneyin</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">otomatik pencere içinde pencere</translation> <translation id="997986563973421916">Google Pay'den</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index 931213a..51dff6f 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Очистити історію…</translation> <translation id="362276910939193118">Показати всю історію</translation> <translation id="3624292976554877583">Ектикетки (матові)</translation> -<translation id="3625929652356389713">Може просити дозвіл автоматично відкривати вікна в режимі "Картинка в картинці"</translation> <translation id="3628905806504633297">{0,plural, =1{Згідно з правилом адміністратора не рекомендовано переносити цей файл у розташування "<ph name="DESTINATION_NAME" />"}one{Згідно з правилом адміністратора не рекомендовано переносити ці файли в розташування "<ph name="DESTINATION_NAME" />"}few{Згідно з правилом адміністратора не рекомендовано переносити ці файли в розташування "<ph name="DESTINATION_NAME" />"}many{Згідно з правилом адміністратора не рекомендовано переносити ці файли в розташування "<ph name="DESTINATION_NAME" />"}other{Згідно з правилом адміністратора не рекомендовано переносити ці файли в розташування "<ph name="DESTINATION_NAME" />"}}</translation> <translation id="3630155396527302611">Якщо цій програмі вже надано доступ до мережі, спробуйте вилучити її зі списку та додати знову.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Виявлено відстеження</translation> <translation id="3886948180919384617">Накопичувач 3</translation> <translation id="3890664840433101773">Додати електронну адресу</translation> -<translation id="3893306401511601929">Автоматична картинка в картинці</translation> <translation id="3897092660631435901">Меню</translation> <translation id="3901925938762663762">Термін дії картки минув</translation> <translation id="390391808978419508">Час очікування відкриття минув</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Операційні системи</translation> <translation id="4854853140771946034">Швидко створюйте нові нотатки в Google Keep</translation> <translation id="485902285759009870">Перевірка коду…</translation> -<translation id="4862630594858951805">Хочете отримувати електронні листи про зниження цін?</translation> <translation id="4864406669374375262">Рядок версії скопійовано в буфер обміну</translation> <translation id="486459320933704969">Батько, мати чи опікун мають дозволити тобі відвідати цей веб-сайт</translation> <translation id="4866506163384898554">Натисніть |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|, щоб показати курсор</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Введіть пошуковий термін></translation> <translation id="671076103358959139">Маркер реєстрації:</translation> <translation id="6711464428925977395">Помилка проксі-сервера або неправильна адреса.</translation> -<translation id="6716013836112872184">Отримуйте листи на адресу <ph name="EMAIL" />, коли на якомусь сайті знизиться ціна.</translation> <translation id="6716672519412350405">Хост <ph name="URL" /> намагається створити 3D-карту вашого оточення й відстежувати положення камери</translation> <translation id="6718612893943028815">Використовувати камеру?</translation> <translation id="6721164594124191969">Етикетки (глянцеві)</translation> @@ -4036,6 +4032,5 @@ <li>Під’єднайтеся до іншої мережі</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">автоматична картинка в картинці</translation> <translation id="997986563973421916">З Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index 230c60e..941f476 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -1265,7 +1265,6 @@ <translation id="36224234498066874">براؤزنگ ڈیٹا صاف کریں…</translation> <translation id="362276910939193118">پوری سرگزشت دکھائیں</translation> <translation id="3624292976554877583">لیبلز (مَیٹ)</translation> -<translation id="3625929652356389713">تصویر میں تصویر والی ونڈوز خودکار طور پر کھولنے کے لیے پوچھ سکتی ہے</translation> <translation id="3628905806504633297">{0,plural, =1{منتظم کی پالیسی اس فائل کو <ph name="DESTINATION_NAME" /> میں منتقل کرنے کی تجویز نہیں کرتی ہے}other{منتظم کی پالیسی ان فائلز کو <ph name="DESTINATION_NAME" /> میں منتقل کرنے کی تجویز نہیں کرتی ہے}}</translation> <translation id="3630155396527302611">اگر یہ پہلے سے ہی نیٹ ورک تک رسائی کیلئے اجازت یافتہ پروگرام کے بطور مندرج ہے تو اسے فہرست سے ہٹانے اور دوبارہ شامل کرنے کی کوشش کریں۔</translation> @@ -1400,7 +1399,6 @@ <translation id="388632593194507180">مانیٹر کرنے کا پتہ چلا</translation> <translation id="3886948180919384617">اسٹیکر 3</translation> <translation id="3890664840433101773">ای میل شامل کریں</translation> -<translation id="3893306401511601929">خودکار تصویر میں تصویر</translation> <translation id="3897092660631435901">مینیو</translation> <translation id="3901925938762663762">اس کارڈ کی میعاد ختم ہو گئی ہے</translation> <translation id="390391808978419508">کھولنے کا وقت ختم ہو گیا</translation> @@ -1869,7 +1867,6 @@ <translation id="4852429274334674023">آپریٹنگ سسٹمز</translation> <translation id="4854853140771946034">Google Keep میں تیزی سے ایک نیا نوٹ تخلیق کریں</translation> <translation id="485902285759009870">کوڈ کی توثیق ہو رہی ہے...</translation> -<translation id="4862630594858951805">قیمت کم ہونے پر ای میلز چاہتے ہیں؟</translation> <translation id="4864406669374375262">ورژن اسٹرنگ کلپ بورڈ پر کاپی ہو گئی</translation> <translation id="486459320933704969">یہ سائٹ ملاحظہ کرنے کے لئے آپ کے والد/والدہ یا سرپرست کو کہنا ہوگا کہ یہ آپ کے لئے ٹھیک ہے</translation> <translation id="4866506163384898554">اپنا کرسر دکھانے کے لیے |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| دبائیں</translation> @@ -2759,7 +2756,6 @@ <translation id="6710594484020273272"><تلاش کی اصطلاح ٹائپ کریں></translation> <translation id="671076103358959139">اندراج کا ٹوکن:</translation> <translation id="6711464428925977395">پراکسی سرور میں کچھ غلط ہے یا پتہ درست نہیں ہے۔</translation> -<translation id="6716013836112872184">کسی بھی سائٹ پر قیمت کم ہونے پر <ph name="EMAIL" /> پر بھیجی گئی ای میلز حاصل کریں۔</translation> <translation id="6716672519412350405"><ph name="URL" /> آپ کے اطراف کا 3D نقشہ تخلیق اور کیمرے کی پوزیشن ٹریک کرنا چاہتا ہے</translation> <translation id="6718612893943028815">کیمرا استعمال کریں؟</translation> <translation id="6721164594124191969">لیبلز (گلوسی)</translation> @@ -4040,6 +4036,5 @@ <li>کسی اور Wi-Fi نیٹ ورک سے منسلک ہونے کی کوشش کریں</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">خودکار تصویر میں تصویر</translation> <translation id="997986563973421916">منجانب Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index 1f4c66d..02b13dc 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -1259,7 +1259,6 @@ <translation id="36224234498066874">Brauzer tarixini tozalash...</translation> <translation id="362276910939193118">To‘liq tarixni ko‘rsatish</translation> <translation id="3624292976554877583">Yorliqlar (jilosiz)</translation> -<translation id="3625929652356389713">Tasvir ustida tasvir oynalarini avtomatik ravishda ochishni soʻrashi mumkin</translation> <translation id="3628905806504633297">{0,plural, =1{Administrator bu faylni <ph name="DESTINATION_NAME" />ga uzatishni tavsiya qilmaydi}other{Administrator bu fayllarni <ph name="DESTINATION_NAME" />ga uzatishni tavsiya qilmaydi}}</translation> <translation id="3630155396527302611">Agar bu dasturga avvaldan tarmoqqa ulanish uchun ruxsat berilgan bo‘lsa, undan ruxsatni olib tashlab, keyin qaytadan ruxsat bering.</translation> <translation id="3630426379756188722">Qurilmamni top tugmasi, Google hisobidagi qurilmani topish xizmatini ochish uchun faollashtiring</translation> @@ -1393,7 +1392,6 @@ <translation id="388632593194507180">Kuzatuv aniqlandi</translation> <translation id="3886948180919384617">Taxlovchi 3</translation> <translation id="3890664840433101773">Email manzilini kiriting</translation> -<translation id="3893306401511601929">Avtomatik tasvir ustida tasvir</translation> <translation id="3897092660631435901">Menyu</translation> <translation id="3901925938762663762">Bu kartadan foydalanish muddati tugadi</translation> <translation id="390391808978419508">Ochish vaqti tugadi</translation> @@ -1862,7 +1860,6 @@ <translation id="4852429274334674023">Operatsion tizimlar</translation> <translation id="4854853140771946034">Google Keepda yangi qaydni tez yaratish</translation> <translation id="485902285759009870">Kod tasdiqlanmoqda...</translation> -<translation id="4862630594858951805">Narx tushganda email orqali xabar kelsinmi?</translation> <translation id="4864406669374375262">Versiya qatori vaqtinchalik xotiraga nusxalandi</translation> <translation id="486459320933704969">Bu saytga kirishingiz uchun ota-onangiz yoki vasiyingiz ruxsat berishi kerak</translation> <translation id="4866506163384898554">Kursorni koʻrish uchun |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| tugmalarini bosing</translation> @@ -2750,7 +2747,6 @@ <translation id="6710594484020273272"><Qidiruv so‘rovini kiriting></translation> <translation id="671076103358959139">Qaydnoma tokeni:</translation> <translation id="6711464428925977395">Proksi serverda xatolik mavjud yoki manzil noto‘g‘ri kiritildi.</translation> -<translation id="6716013836112872184">Har qaysi saytda narx tushganda <ph name="EMAIL" /> manziliga xabar qilinsin.</translation> <translation id="6716672519412350405"><ph name="URL" /> sayti atrofingiz 3D xaritasini yaratmoqchi va kamera holatini kuzatmoqchi</translation> <translation id="6718612893943028815">Kamera ishlatilsinmi?</translation> <translation id="6721164594124191969">Yorliqlar (yaltiroq)</translation> @@ -4029,6 +4025,5 @@ <li>Boshqa Wi-Fi tarmoqqa ulanib ko‘ring</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">avtomatik tasvir ustida tasvir</translation> <translation id="997986563973421916">Google Pay xizmatidan</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index 998e2585..79c1ebf 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -1263,7 +1263,6 @@ <translation id="36224234498066874">Xóa DL duyệt web</translation> <translation id="362276910939193118">Hiển thị Toàn bộ Lịch sử</translation> <translation id="3624292976554877583">Nhãn (Không bóng)</translation> -<translation id="3625929652356389713">Có thể yêu cầu tự động mở cửa sổ hình trong hình</translation> <translation id="3628905806504633297">{0,plural, =1{Theo chính sách của quản trị viên, bạn không nên chuyển tệp này sang <ph name="DESTINATION_NAME" />}other{Theo chính sách của quản trị viên, bạn không nên chuyển các tệp này sang <ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Nếu chương trình đã được liệt kê là chương trình được phép truy cập mạng, hãy thử xóa chương trình này khỏi danh sách rồi thêm lại.</translation> @@ -1398,7 +1397,6 @@ <translation id="388632593194507180">Hoạt động giám sát đã phát hiện</translation> <translation id="3886948180919384617">Khay xếp chồng 3</translation> <translation id="3890664840433101773">Thêm email</translation> -<translation id="3893306401511601929">Hình trong hình tự động</translation> <translation id="3897092660631435901">Menu</translation> <translation id="3901925938762663762">Thẻ đã hết hạn</translation> <translation id="390391808978419508">Đã hết thời gian mở</translation> @@ -1867,7 +1865,6 @@ <translation id="4852429274334674023">Hệ điều hành</translation> <translation id="4854853140771946034">Tạo nhanh một ghi chú mới trong Google Keep</translation> <translation id="485902285759009870">Đang xác minh mã...</translation> -<translation id="4862630594858951805">Bạn muốn nhận email khi sản phẩm giảm giá?</translation> <translation id="4864406669374375262">Đã sao chép chuỗi phiên bản vào bảng nhớ tạm</translation> <translation id="486459320933704969">Bạn phải được cha/mẹ hoặc người giám hộ cho phép truy cập trang web này</translation> <translation id="4866506163384898554">Nhấn |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| để con trỏ xuất hiện</translation> @@ -2756,7 +2753,6 @@ <translation id="6710594484020273272"><Nhập cụm từ tìm kiếm></translation> <translation id="671076103358959139">Mã đăng ký:</translation> <translation id="6711464428925977395">Đã xảy ra sự cố với máy chủ proxy hoặc địa chỉ không chính xác.</translation> -<translation id="6716013836112872184">Nhận email về địa chỉ <ph name="EMAIL" /> khi sản phẩm giảm giá trên bất cứ trang web nào.</translation> <translation id="6716672519412350405"><ph name="URL" /> muốn tạo bản đồ 3D về các khu vực xung quanh bạn và theo dõi thông tin vị trí của máy ảnh</translation> <translation id="6718612893943028815">Sử dụng camera?</translation> <translation id="6721164594124191969">Nhãn (Bóng)</translation> @@ -4036,6 +4032,5 @@ <li>Hãy thử kết nối với một mạng khác</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">hình trong hình tự động</translation> <translation id="997986563973421916">Từ Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index 2743eba..3d6fe181 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -1256,7 +1256,6 @@ <translation id="36224234498066874">清除浏览数据...</translation> <translation id="362276910939193118">显示全部历史记录</translation> <translation id="3624292976554877583">标签(哑光)</translation> -<translation id="3625929652356389713">可以询问能否自动打开画中画窗口</translation> <translation id="3628905806504633297">{0,plural, =1{管理员政策不建议将此文件转移到<ph name="DESTINATION_NAME" />}other{管理员政策不建议将这些文件转移到<ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">如果它已在可访问网络的程序列表中,请尝试将它从该列表中移除,然后重新添加到其中。</translation> <translation id="3630426379756188722">“查找我的设备”按钮,激活它即可访问 Google 账号中的“查找您的设备”页面</translation> @@ -1390,7 +1389,6 @@ <translation id="388632593194507180">检测到正被监控</translation> <translation id="3886948180919384617">堆叠出纸器 3</translation> <translation id="3890664840433101773">添加电子邮件地址</translation> -<translation id="3893306401511601929">自动画中画</translation> <translation id="3897092660631435901">菜单</translation> <translation id="3901925938762663762">此信用卡已过期</translation> <translation id="390391808978419508">打开超时</translation> @@ -1858,7 +1856,6 @@ <translation id="4852429274334674023">操作系统</translation> <translation id="4854853140771946034">在 Google Keep 中快速创建新记事</translation> <translation id="485902285759009870">正在核对动态密码…</translation> -<translation id="4862630594858951805">想在降价时收到电子邮件通知?</translation> <translation id="4864406669374375262">已将版本字符串复制到剪贴板</translation> <translation id="486459320933704969">必须先征得家长或监护人的同意,然后你才能访问此网站</translation> <translation id="4866506163384898554">按 |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| 可显示鼠标光标</translation> @@ -2745,7 +2742,6 @@ <translation id="6710594484020273272"><输入搜索字词></translation> <translation id="671076103358959139">注册令牌:</translation> <translation id="6711464428925977395">代理服务器出现问题,或者地址有误。</translation> -<translation id="6716013836112872184">当任一网站上的商品降价时,向 <ph name="EMAIL" /> 发送电子邮件通知。</translation> <translation id="6716672519412350405"><ph name="URL" /> 想为您的周边环境创建 3D 地图并跟踪摄像头位置</translation> <translation id="6718612893943028815">使用摄像头?</translation> <translation id="6721164594124191969">标签(平滑)</translation> @@ -4023,6 +4019,5 @@ <li>请尝试连接到其他网络</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">自动画中画</translation> <translation id="997986563973421916">来自 Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index ea2fee4..20b736ab 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">清除瀏覽資料…</translation> <translation id="362276910939193118">顯示完整記錄</translation> <translation id="3624292976554877583">標籤 (啞面)</translation> -<translation id="3625929652356389713">可要求自動開啟畫中畫視窗</translation> <translation id="3628905806504633297">{0,plural, =1{管理員政策不建議傳輸此檔案到<ph name="DESTINATION_NAME" />}other{管理員政策不建議傳輸這些檔案到<ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">如果程式已列在允許存取網絡的清單中,建議您 從清單中移除該程式,然後重新加入。</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">偵測到監控</translation> <translation id="3886948180919384617">堆疊器 3</translation> <translation id="3890664840433101773">新增電郵</translation> -<translation id="3893306401511601929">自動顯示畫中畫</translation> <translation id="3897092660631435901">選單</translation> <translation id="3901925938762663762">卡片已過期</translation> <translation id="390391808978419508">開啟逾時</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">作業系統</translation> <translation id="4854853140771946034">在 Google Keep 中快速建立新筆記</translation> <translation id="485902285759009870">正在確認驗證碼…</translation> -<translation id="4862630594858951805">想在產品降價時接收電郵通知嗎?</translation> <translation id="4864406669374375262">複製咗版本字串去剪貼簿</translation> <translation id="486459320933704969">您必須獲得家長或監護人許可,才能瀏覽此網站</translation> <translation id="4866506163384898554">按下 |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| 即可顯示游標</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><輸入搜尋字詞></translation> <translation id="671076103358959139">註冊憑證:</translation> <translation id="6711464428925977395">Proxy 伺服器發生錯誤,或地址不正確。</translation> -<translation id="6716013836112872184">產品在任何網站上降價時,系統會傳送電郵至 <ph name="EMAIL" />。</translation> <translation id="6716672519412350405"><ph name="URL" /> 要求建立您身處環境的 3D 地圖並追蹤攝錄機位置</translation> <translation id="6718612893943028815">要使用攝錄機嗎?</translation> <translation id="6721164594124191969">標籤 (光面)</translation> @@ -4034,6 +4030,5 @@ <li>嘗試連接至其他 Wi-Fi 網絡</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">自動顯示畫中畫</translation> <translation id="997986563973421916">來自 Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index 85cf6e6..626b360d 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -1262,7 +1262,6 @@ <translation id="36224234498066874">清除瀏覽資料...</translation> <translation id="362276910939193118">顯示完整記錄</translation> <translation id="3624292976554877583">標籤 (霧面)</translation> -<translation id="3625929652356389713">可以要求自動開啟子母畫面視窗</translation> <translation id="3628905806504633297">{0,plural, =1{根據管理員政策,建議你不要將這個檔案轉移到「<ph name="DESTINATION_NAME" />」}other{根據管理員政策,建議你不要將這些檔案轉移到「<ph name="DESTINATION_NAME" />」}}</translation> <translation id="3630155396527302611">如果程式已列在允許存取網路的清單中,建議您 從清單中將其移除,然後再重新加入。</translation> @@ -1397,7 +1396,6 @@ <translation id="388632593194507180">偵測到你正遭到監控</translation> <translation id="3886948180919384617">堆疊出紙器 3</translation> <translation id="3890664840433101773">新增電子郵件地址</translation> -<translation id="3893306401511601929">自動顯示子母畫面</translation> <translation id="3897092660631435901">選單</translation> <translation id="3901925938762663762">這張信用卡已過期</translation> <translation id="390391808978419508">開啟作業逾時</translation> @@ -1866,7 +1864,6 @@ <translation id="4852429274334674023">作業系統</translation> <translation id="4854853140771946034">在 Google Keep 中快速建立新記事</translation> <translation id="485902285759009870">正在驗證動態密碼...</translation> -<translation id="4862630594858951805">想在商品降價時收到電子郵件通知嗎?</translation> <translation id="4864406669374375262">已將版本字串複製到剪貼簿</translation> <translation id="486459320933704969">你必須獲得家長或監護人許可,才能造訪這個網站</translation> <translation id="4866506163384898554">按下 |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| 即可顯示游標</translation> @@ -2755,7 +2752,6 @@ <translation id="6710594484020273272"><輸入搜尋字詞></translation> <translation id="671076103358959139">註冊憑證:</translation> <translation id="6711464428925977395">Proxy 伺服器發生錯誤,或是位址不正確。</translation> -<translation id="6716013836112872184">商品在任何網站上降價時,系統會傳送電子郵件到 <ph name="EMAIL" />。</translation> <translation id="6716672519412350405"><ph name="URL" /> 要求根據你的周遭環境建立 3D 地圖並追蹤攝影機位置</translation> <translation id="6718612893943028815">要使用攝影機嗎?</translation> <translation id="6721164594124191969">標籤 (光面)</translation> @@ -4034,6 +4030,5 @@ <li>嘗試連線至其他網路</li> </ul></translation> <translation id="994346157028146140">JIS B1</translation> -<translation id="995240771322213706">自動顯示子母畫面</translation> <translation id="997986563973421916">來自 Google Pay</translation> </translationbundle> \ No newline at end of file
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb index 5ce39a1..f878611 100644 --- a/components/strings/components_strings_zu.xtb +++ b/components/strings/components_strings_zu.xtb
@@ -1261,7 +1261,6 @@ <translation id="36224234498066874">Sula idatha yokuphequlula...</translation> <translation id="362276910939193118">Bonisa umlando ogcwele</translation> <translation id="3624292976554877583">Amalebula (i-Matte)</translation> -<translation id="3625929652356389713">Cela ukuvula ngokuzenzakalelayo amawindi esithombe-esithombeni</translation> <translation id="3628905806504633297">{0,plural, =1{Inqubomgomo yomlawuli ayikukhuthazi ukudlulisela leli fayela ku-<ph name="DESTINATION_NAME" />}one{Inqubomgomo yomlawuli ayikukhuthazi ukudlulisela lawa mafayela ku-<ph name="DESTINATION_NAME" />}other{Inqubomgomo yomlawuli ayikukhuthazi ukudlulisela lawa mafayela ku-<ph name="DESTINATION_NAME" />}}</translation> <translation id="3630155396527302611">Uma seluvele lifakwe kuhlu njengohlelo oluvunyelwe ukuze lufinyelele kunethiwekhi, zama ukulisusa kusukela kuhlu uphinde ulingeze futhi.</translation> <translation id="3630426379756188722">Inkinobho ethi Thola ifoni yami, yenza kusebenze ukuze uthole idivayisi yakho ku-Google Account</translation> @@ -1395,7 +1394,6 @@ <translation id="388632593194507180">Ukwengamela kutholiwe</translation> <translation id="3886948180919384617">Isitaki esingu-3</translation> <translation id="3890664840433101773">Engeza i-imeyili</translation> -<translation id="3893306401511601929">Isithombe-esithombeni esizenzakalelayo</translation> <translation id="3897092660631435901">Imenyu</translation> <translation id="3901925938762663762">Ikhadi liphelelwe yisikhathi</translation> <translation id="390391808978419508">Ukuvula kuphelelwe yisikhathi</translation> @@ -1864,7 +1862,6 @@ <translation id="4852429274334674023">Amasistimu okusebenza</translation> <translation id="4854853140771946034">Dala inothi elisha ngokushesha ku-Google Keep</translation> <translation id="485902285759009870">Iqinisekisa ikhodi...</translation> -<translation id="4862630594858951805">Ufuna ama-imeyili uma intengo yehla?</translation> <translation id="4864406669374375262">Uhlobo lwezinhlamvu ezikopishwe ebhodini lokunamathisela</translation> <translation id="486459320933704969">Umzali noma umnakekeli kufanele athi Kulungile ukuthi uvakashele le webhusayithi</translation> <translation id="4866506163384898554">Cindezela u-|<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| ukuze ubonise i-cursor yakho</translation> @@ -2753,7 +2750,6 @@ <translation id="6710594484020273272"><Thayipha itemu lokusesha></translation> <translation id="671076103358959139">Ithokheni yokubhaliswa:</translation> <translation id="6711464428925977395">Kukhona okungalungile ngeseva elibamba, noma ikheli alilungile.</translation> -<translation id="6716013836112872184">Thola ama-imeyili athunyelwe ku-<ph name="EMAIL" /> lapho intengo yehla kunoma iyiphi isayithi.</translation> <translation id="6716672519412350405">I-<ph name="URL" /> ifuna ukudala imephu ye-3D yendawo ekuzungezile futhi ilandelele indawo yekhamera</translation> <translation id="6718612893943028815">Sebenzisa ikhamera?</translation> <translation id="6721164594124191969">Amalebula (i-Glossy)</translation> @@ -4032,6 +4028,5 @@ <li>Zama ukuxhuma kwenye inethiwekhi</li> </ul></translation> <translation id="994346157028146140">I-JIS B1</translation> -<translation id="995240771322213706">isithombe-esithombeni esizenzakalelayo</translation> <translation id="997986563973421916">Kusukela ku-Google Play</translation> </translationbundle> \ No newline at end of file
diff --git a/components/sync/base/user_selectable_type.cc b/components/sync/base/user_selectable_type.cc index fc6d1cf..bb47d0c 100644 --- a/components/sync/base/user_selectable_type.cc +++ b/components/sync/base/user_selectable_type.cc
@@ -69,13 +69,10 @@ {AUTOFILL, AUTOFILL_PROFILE, CONTACT_INFO}}; case UserSelectableType::kThemes: return {kThemesTypeName, THEMES, {THEMES}}; - case UserSelectableType::kHistory: { - // TODO(crbug.com/1365291): Remove TYPED_URLS from here once it's no - // longer a registered type. + case UserSelectableType::kHistory: return {kHistoryTypeName, HISTORY, - {HISTORY, HISTORY_DELETE_DIRECTIVES, TYPED_URLS, USER_EVENTS}}; - } + {HISTORY, HISTORY_DELETE_DIRECTIVES, USER_EVENTS}}; case UserSelectableType::kExtensions: return { kExtensionsTypeName, EXTENSIONS, {EXTENSIONS, EXTENSION_SETTINGS}};
diff --git a/components/sync/service/sync_user_settings_impl_unittest.cc b/components/sync/service/sync_user_settings_impl_unittest.cc index 90c9e06..486e4b9 100644 --- a/components/sync/service/sync_user_settings_impl_unittest.cc +++ b/components/sync/service/sync_user_settings_impl_unittest.cc
@@ -104,6 +104,10 @@ MakeSyncUserSettings(GetUserTypes()); ModelTypeSet expected_types = GetUserTypes(); + // TODO(crbug.com/1365291): TYPED_URLS is not used anymore, and in particular + // is not part of any UserSelectableType. Eventually TYPED_URLS should be + // fully removed. + expected_types.Remove(TYPED_URLS); EXPECT_TRUE(sync_user_settings->IsSyncEverythingEnabled()); EXPECT_EQ(expected_types, GetPreferredUserTypes(*sync_user_settings)); @@ -214,6 +218,10 @@ MakeSyncUserSettings(GetUserTypes()); ModelTypeSet expected_types = GetUserTypes(); + // TODO(crbug.com/1365291): TYPED_URLS is not used anymore, and in particular + // is not part of any UserSelectableType. Eventually TYPED_URLS should be + // fully removed. + expected_types.Remove(TYPED_URLS); EXPECT_TRUE(sync_user_settings->IsSyncAllOsTypesEnabled()); EXPECT_EQ(expected_types, GetPreferredUserTypes(*sync_user_settings)); @@ -433,7 +441,6 @@ #endif // BUILDFLAG(IS_CHROMEOS_LACROS) TEST_F(SyncUserSettingsImplTest, ShouldSyncSessionsOnlyIfOpenTabsIsSelected) { - ASSERT_FALSE(AlwaysPreferredUserTypes().Has(TYPED_URLS)); ASSERT_FALSE(AlwaysPreferredUserTypes().Has(HISTORY)); ASSERT_FALSE(AlwaysPreferredUserTypes().Has(HISTORY_DELETE_DIRECTIVES)); ASSERT_FALSE(AlwaysPreferredUserTypes().Has(SESSIONS)); @@ -452,25 +459,21 @@ // History and OpenTabs enabled: All the history-related ModelTypes should be // enabled. - // TODO(crbug.com/1365291): For now this still includes TYPED_URLS; that type - // is disabled via its controller instead. Eventually it should be removed - // from here. sync_user_settings->SetSelectedTypes( /*sync_everything=*/false, /*types=*/{UserSelectableType::kHistory, UserSelectableType::kTabs}); - EXPECT_EQ(GetPreferredUserTypes(*sync_user_settings), - Union(AlwaysPreferredUserTypes(), - {TYPED_URLS, HISTORY, HISTORY_DELETE_DIRECTIVES, SESSIONS, - PROXY_TABS, USER_EVENTS})); + EXPECT_EQ( + GetPreferredUserTypes(*sync_user_settings), + Union(AlwaysPreferredUserTypes(), {HISTORY, HISTORY_DELETE_DIRECTIVES, + SESSIONS, PROXY_TABS, USER_EVENTS})); // History only: PROXY_TABS and SESSIONS are gone. sync_user_settings->SetSelectedTypes( /*sync_everything=*/false, /*types=*/{UserSelectableType::kHistory}); - EXPECT_EQ( - GetPreferredUserTypes(*sync_user_settings), - Union(AlwaysPreferredUserTypes(), - {TYPED_URLS, HISTORY, HISTORY_DELETE_DIRECTIVES, USER_EVENTS})); + EXPECT_EQ(GetPreferredUserTypes(*sync_user_settings), + Union(AlwaysPreferredUserTypes(), + {HISTORY, HISTORY_DELETE_DIRECTIVES, USER_EVENTS})); // OpenTabs only: SESSIONS (the actual data) and PROXY_TABS (as a "flag" // indicating OpenTabs is enabled).
diff --git a/components/sync_preferences/README.md b/components/sync_preferences/README.md index 7e6c6d9..ea06427 100644 --- a/components/sync_preferences/README.md +++ b/components/sync_preferences/README.md
@@ -31,6 +31,7 @@ * Consider whether your pref is particularly privacy-sensitive, and if so, point this out to the reviewer. The most common case of this is when a pref records URLs or other history-like data. +* Add an entry to the `SyncablePref` enum in tools/metrics/histograms/enums.xml. ### For reviewers
diff --git a/components/test/data/autofill/heuristics-json/internal b/components/test/data/autofill/heuristics-json/internal index 8bacdfe..9f0e8bb 160000 --- a/components/test/data/autofill/heuristics-json/internal +++ b/components/test/data/autofill/heuristics-json/internal
@@ -1 +1 @@ -Subproject commit 8bacdfed38e4a6d441c97a86f1bab04642c6a7e0 +Subproject commit 9f0e8bbbf0b14d20b237840289044c13095ed872
diff --git a/components/viz/common/resources/transferable_resource.cc b/components/viz/common/resources/transferable_resource.cc index e74581a7..31eee19 100644 --- a/components/viz/common/resources/transferable_resource.cc +++ b/components/viz/common/resources/transferable_resource.cc
@@ -11,12 +11,14 @@ TransferableResource TransferableResource::MakeSoftware( const SharedBitmapId& id, const gfx::Size& size, - SharedImageFormat format) { + SharedImageFormat format, + ResourceSource source) { TransferableResource r; r.is_software = true; r.mailbox_holder.mailbox = id; r.size = size; r.format = format; + r.resource_source = source; return r; } @@ -27,7 +29,8 @@ const gpu::SyncToken& sync_token, const gfx::Size& size, SharedImageFormat format, - bool is_overlay_candidate) { + bool is_overlay_candidate, + ResourceSource source) { TransferableResource r; r.is_software = false; r.mailbox_holder.mailbox = mailbox; @@ -36,6 +39,7 @@ r.size = size; r.format = format; r.is_overlay_candidate = is_overlay_candidate; + r.resource_source = source; return r; }
diff --git a/components/viz/common/resources/transferable_resource.h b/components/viz/common/resources/transferable_resource.h index b84277d..3fd4102 100644 --- a/components/viz/common/resources/transferable_resource.h +++ b/components/viz/common/resources/transferable_resource.h
@@ -43,15 +43,44 @@ kReleaseFence, }; - static TransferableResource MakeSoftware(const SharedBitmapId& id, - const gfx::Size& size, - SharedImageFormat format); - static TransferableResource MakeGpu(const gpu::Mailbox& mailbox, - uint32_t texture_target, - const gpu::SyncToken& sync_token, - const gfx::Size& size, - SharedImageFormat format, - bool is_overlay_candidate); + // Differentiates between the various sources that create a resource. They + // have different lifetime expectations, and we want to be able to determine + // which remain after we Evict a Surface. + // + // These values are persistent to logs. Entries should not be renumbered and + // numeric values should never be reused. + enum class ResourceSource : uint8_t { + kUnknown = 0, + kAR = 1, + kCanvas = 2, + kDrawingBuffer = 3, + kExoBuffer = 4, + kHeadsUpDisplay = 5, + kImageLayerBridge = 6, + kPPBGraphics3D = 7, + kPepperGraphics2D = 8, + kSharedElementTransition = 9, + kStaleContent = 10, + kTest = 11, + kTileRasterTask = 12, + kUI = 13, + kVideo = 14, + kWebGPUSwapBuffer = 15, + }; + + static TransferableResource MakeSoftware( + const SharedBitmapId& id, + const gfx::Size& size, + SharedImageFormat format, + ResourceSource source = ResourceSource::kUnknown); + static TransferableResource MakeGpu( + const gpu::Mailbox& mailbox, + uint32_t texture_target, + const gpu::SyncToken& sync_token, + const gfx::Size& size, + SharedImageFormat format, + bool is_overlay_candidate, + ResourceSource source = ResourceSource::kUnknown); TransferableResource(); ~TransferableResource(); @@ -147,6 +176,10 @@ bool wants_promotion_hint = false; #endif + // The source that originally allocated this resource. For determining which + // sources are maintaining lifetime after surface eviction. + ResourceSource resource_source = ResourceSource::kUnknown; + bool operator==(const TransferableResource& o) const { return id == o.id && is_software == o.is_software && size == o.size && format == o.format && @@ -161,7 +194,8 @@ #elif BUILDFLAG(IS_WIN) wants_promotion_hint == o.wants_promotion_hint && #endif - synchronization_type == o.synchronization_type; + synchronization_type == o.synchronization_type && + resource_source == o.resource_source; } bool operator!=(const TransferableResource& o) const { return !(*this == o); } };
diff --git a/components/viz/service/transitions/transferable_resource_tracker.cc b/components/viz/service/transitions/transferable_resource_tracker.cc index c4eb311a..1aba7dc3 100644 --- a/components/viz/service/transitions/transferable_resource_tracker.cc +++ b/components/viz/service/transitions/transferable_resource_tracker.cc
@@ -80,7 +80,8 @@ shared_bitmap_manager_->LocalAllocatedSharedBitmap( std::move(output_copy.bitmap), id); resource = TransferableResource::MakeSoftware( - id, output_copy.draw_data.size, SinglePlaneFormat::kRGBA_8888); + id, output_copy.draw_data.size, SinglePlaneFormat::kRGBA_8888, + TransferableResource::ResourceSource::kSharedElementTransition); // Remove the bitmap from shared bitmap manager when no longer in use. release_callback = base::BindOnce( @@ -95,7 +96,8 @@ resource = TransferableResource::MakeGpu( output_copy.mailbox, GL_TEXTURE_2D, output_copy.sync_token, output_copy.draw_data.size, SinglePlaneFormat::kRGBA_8888, - /*is_overlay_candidate=*/false); + /*is_overlay_candidate=*/false, + TransferableResource::ResourceSource::kSharedElementTransition); resource.color_space = output_copy.color_space; // Run the SingleReleaseCallback when no longer in use.
diff --git a/components/viz/test/test_context_provider.cc b/components/viz/test/test_context_provider.cc index a13bb14..ae6fa76a 100644 --- a/components/viz/test/test_context_provider.cc +++ b/components/viz/test/test_context_provider.cc
@@ -204,9 +204,8 @@ auto gmb_handle = CreateGMBHandle(format, size, buffer_usage); - mailbox_to_gmb_handle_info_map_[mailbox] = - gpu::SharedImageInterfaceProxy::GpuMemoryBufferHandleInfo( - std::move(gmb_handle), format, size, buffer_usage); + mailbox_to_gmb_handle_info_map_[mailbox] = gpu::GpuMemoryBufferHandleInfo( + std::move(gmb_handle), format, size, buffer_usage); return mailbox; }
diff --git a/components/viz/test/test_context_provider.h b/components/viz/test/test_context_provider.h index b9f836f..5cc5c6d 100644 --- a/components/viz/test/test_context_provider.h +++ b/components/viz/test/test_context_provider.h
@@ -154,8 +154,7 @@ gpu::SyncToken most_recent_destroy_token_; base::flat_set<gpu::Mailbox> shared_images_; - base::flat_map<gpu::Mailbox, - gpu::SharedImageInterfaceProxy::GpuMemoryBufferHandleInfo> + base::flat_map<gpu::Mailbox, gpu::GpuMemoryBufferHandleInfo> mailbox_to_gmb_handle_info_map_; gpu::SharedImageCapabilities shared_image_capabilities_; };
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 2e85ecd8..74383bd 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1674,7 +1674,6 @@ "renderer_host/embedded_frame_sink_impl.h", "renderer_host/embedded_frame_sink_provider_impl.cc", "renderer_host/embedded_frame_sink_provider_impl.h", - "renderer_host/event_with_latency_info.h", "renderer_host/file_utilities_host_impl.cc", "renderer_host/file_utilities_host_impl.h", "renderer_host/frame_navigation_entry.cc", @@ -1753,8 +1752,6 @@ "renderer_host/input/synthetic_touchpad_pinch_gesture.h", "renderer_host/input/synthetic_touchscreen_pinch_gesture.cc", "renderer_host/input/synthetic_touchscreen_pinch_gesture.h", - "renderer_host/input/tap_suppression_controller.cc", - "renderer_host/input/tap_suppression_controller.h", "renderer_host/input/timeout_monitor.cc", "renderer_host/input/timeout_monitor.h", "renderer_host/input/touch_action_filter.cc",
diff --git a/content/browser/attribution_reporting/attribution_storage_delegate_impl_unittest.cc b/content/browser/attribution_reporting/attribution_storage_delegate_impl_unittest.cc index bb4514a..2a694805 100644 --- a/content/browser/attribution_reporting/attribution_storage_delegate_impl_unittest.cc +++ b/content/browser/attribution_reporting/attribution_storage_delegate_impl_unittest.cc
@@ -224,7 +224,7 @@ TEST(AttributionStorageDelegateImplTest, RandomizedResponse_NoNoiseModeReturnsRealRateAndNullResponse) { - for (auto source_type : kSourceTypes) { + for (auto source_type : {SourceType::kNavigation, SourceType::kEvent}) { const auto source = SourceBuilder() .SetSourceType(source_type)
diff --git a/content/browser/attribution_reporting/attribution_test_utils.cc b/content/browser/attribution_reporting/attribution_test_utils.cc index e13cd7b..810f082f 100644 --- a/content/browser/attribution_reporting/attribution_test_utils.cc +++ b/content/browser/attribution_reporting/attribution_test_utils.cc
@@ -116,13 +116,15 @@ // all values needed to be provided at construction time. SourceBuilder::SourceBuilder(base::Time time) : source_time_(time), - expiry_(base::Milliseconds(kExpiryTime)), source_origin_(*SuitableOrigin::Deserialize(kDefaultSourceOrigin)), - destination_sites_(*attribution_reporting::DestinationSet::Create( + registration_(*attribution_reporting::DestinationSet::Create( {net::SchemefulSite::Deserialize(kDefaultDestinationOrigin)})), - reporting_origin_(*SuitableOrigin::Deserialize(kDefaultReportOrigin)), - max_event_level_reports_( - attribution_reporting::kMaxSettableEventLevelAttributions) {} + reporting_origin_(*SuitableOrigin::Deserialize(kDefaultReportOrigin)) { + registration_.source_event_id = 123; + registration_.expiry = base::Milliseconds(kExpiryTime); + registration_.max_event_level_reports = + attribution_reporting::kMaxSettableEventLevelAttributions; +} SourceBuilder::~SourceBuilder() = default; @@ -135,18 +137,18 @@ SourceBuilder& SourceBuilder::operator=(SourceBuilder&&) = default; SourceBuilder& SourceBuilder::SetExpiry(base::TimeDelta delta) { - expiry_ = delta; + registration_.expiry = delta; return *this; } SourceBuilder& SourceBuilder::SetAggregatableReportWindow( base::TimeDelta delta) { - aggregatable_report_window_ = delta; + registration_.aggregatable_report_window = delta; return *this; } SourceBuilder& SourceBuilder::SetSourceEventId(uint64_t source_event_id) { - source_event_id_ = source_event_id; + registration_.source_event_id = source_event_id; return *this; } @@ -157,7 +159,7 @@ SourceBuilder& SourceBuilder::SetDestinationSites( base::flat_set<net::SchemefulSite> sites) { - destination_sites_ = + registration_.destination_set = *attribution_reporting::DestinationSet::Create(std::move(sites)); return *this; } @@ -173,18 +175,18 @@ } SourceBuilder& SourceBuilder::SetPriority(int64_t priority) { - priority_ = priority; + registration_.priority = priority; return *this; } SourceBuilder& SourceBuilder::SetFilterData( attribution_reporting::FilterData filter_data) { - filter_data_ = std::move(filter_data); + registration_.filter_data = std::move(filter_data); return *this; } SourceBuilder& SourceBuilder::SetDebugKey(absl::optional<uint64_t> debug_key) { - debug_key_ = debug_key; + registration_.debug_key = debug_key; return *this; } @@ -212,7 +214,7 @@ SourceBuilder& SourceBuilder::SetAggregationKeys( attribution_reporting::AggregationKeys aggregation_keys) { - aggregation_keys_ = std::move(aggregation_keys); + registration_.aggregation_keys = std::move(aggregation_keys); return *this; } @@ -241,19 +243,19 @@ } SourceBuilder& SourceBuilder::SetDebugReporting(bool debug_reporting) { - debug_reporting_ = debug_reporting; + registration_.debug_reporting = debug_reporting; return *this; } SourceBuilder& SourceBuilder::SetEventReportWindows( attribution_reporting::EventReportWindows event_report_windows) { - event_report_windows_ = std::move(event_report_windows); + registration_.event_report_windows = std::move(event_report_windows); return *this; } SourceBuilder& SourceBuilder::SetMaxEventLevelReports( int max_event_level_reports) { - max_event_level_reports_ = max_event_level_reports; + registration_.max_event_level_reports = max_event_level_reports; return *this; } @@ -262,35 +264,26 @@ } StorableSource SourceBuilder::Build() const { - attribution_reporting::SourceRegistration registration(destination_sites_); - registration.source_event_id = source_event_id_; - registration.expiry = expiry_; - registration.aggregatable_report_window = aggregatable_report_window_; - registration.event_report_windows = event_report_windows_; - registration.max_event_level_reports = max_event_level_reports_; - registration.priority = priority_; - registration.filter_data = filter_data_; - registration.debug_key = debug_key_; - registration.aggregation_keys = aggregation_keys_; - registration.debug_reporting = debug_reporting_; - return StorableSource(reporting_origin_, std::move(registration), - source_origin_, source_type_, is_within_fenced_frame_); + return StorableSource(reporting_origin_, registration_, source_origin_, + source_type_, is_within_fenced_frame_); } StoredSource SourceBuilder::BuildStored() const { - base::Time expiry_time = source_time_ + expiry_; + base::Time expiry_time = source_time_ + registration_.expiry; StoredSource source( - BuildCommonInfo(), source_event_id_, destination_sites_, source_time_, - expiry_time, - event_report_windows_.value_or( + BuildCommonInfo(), registration_.source_event_id, + registration_.destination_set, source_time_, expiry_time, + registration_.event_report_windows.value_or( *attribution_reporting::EventReportWindows::CreateWindows( - base::Milliseconds(0), {expiry_})), - ComputeReportWindowTime(GetReportWindowTimeForTesting( - aggregatable_report_window_, source_time_), - expiry_time), - max_event_level_reports_, priority_, filter_data_, debug_key_, - aggregation_keys_, attribution_logic_, active_state_, source_id_, - aggregatable_budget_consumed_, randomized_response_rate_); + base::Milliseconds(0), {registration_.expiry})), + ComputeReportWindowTime( + GetReportWindowTimeForTesting( + registration_.aggregatable_report_window, source_time_), + expiry_time), + registration_.max_event_level_reports, registration_.priority, + registration_.filter_data, registration_.debug_key, + registration_.aggregation_keys, attribution_logic_, active_state_, + source_id_, aggregatable_budget_consumed_, randomized_response_rate_); source.SetDedupKeys(dedup_keys_); source.SetAggregatableDedupKeys(aggregatable_dedup_keys_); return source;
diff --git a/content/browser/attribution_reporting/attribution_test_utils.h b/content/browser/attribution_reporting/attribution_test_utils.h index faec7a78..56f34c9 100644 --- a/content/browser/attribution_reporting/attribution_test_utils.h +++ b/content/browser/attribution_reporting/attribution_test_utils.h
@@ -11,16 +11,13 @@ #include <string> #include <vector> -#include "base/containers/enum_set.h" #include "base/containers/flat_set.h" #include "base/functional/function_ref.h" #include "base/time/time.h" #include "base/uuid.h" #include "components/attribution_reporting/aggregatable_values.h" -#include "components/attribution_reporting/aggregation_keys.h" -#include "components/attribution_reporting/destination_set.h" -#include "components/attribution_reporting/event_report_windows.h" #include "components/attribution_reporting/filters.h" +#include "components/attribution_reporting/source_registration.h" #include "components/attribution_reporting/source_registration_time_config.mojom.h" #include "components/attribution_reporting/source_type.mojom.h" #include "components/attribution_reporting/suitable_origin.h" @@ -41,6 +38,12 @@ #include "testing/gmock/include/gmock/gmock.h" #include "third_party/abseil-cpp/absl/types/optional.h" +namespace attribution_reporting { +class AggregationKeys; +class DestinationSet; +class EventReportWindows; +} // namespace attribution_reporting + namespace net { class SchemefulSite; } // namespace net @@ -55,11 +58,6 @@ enum class RateLimitResult : int; -constexpr auto kSourceTypes = - base::EnumSet<attribution_reporting::mojom::SourceType, - attribution_reporting::mojom::SourceType::kMinValue, - attribution_reporting::mojom::SourceType::kMaxValue>::All(); - base::Uuid DefaultExternalReportID(); absl::optional<base::Time> GetReportWindowTimeForTesting( @@ -148,34 +146,23 @@ CommonSourceInfo BuildCommonInfo() const; private: - uint64_t source_event_id_ = 123; base::Time source_time_; - base::TimeDelta expiry_; - absl::optional<base::TimeDelta> aggregatable_report_window_; attribution_reporting::SuitableOrigin source_origin_; - attribution_reporting::DestinationSet destination_sites_; + attribution_reporting::SourceRegistration registration_; attribution_reporting::SuitableOrigin reporting_origin_; attribution_reporting::mojom::SourceType source_type_ = attribution_reporting::mojom::SourceType::kNavigation; - int64_t priority_ = 0; StoredSource::AttributionLogic attribution_logic_ = StoredSource::AttributionLogic::kTruthfully; - attribution_reporting::FilterData filter_data_; StoredSource::ActiveState active_state_ = StoredSource::ActiveState::kActive; - absl::optional<uint64_t> debug_key_; // `base::StrongAlias` does not automatically initialize the value here. // Ensure that we don't use uninitialized memory. StoredSource::Id source_id_{0}; std::vector<uint64_t> dedup_keys_; - attribution_reporting::AggregationKeys aggregation_keys_; int64_t aggregatable_budget_consumed_ = 0; double randomized_response_rate_ = 0; std::vector<uint64_t> aggregatable_dedup_keys_; - absl::optional<attribution_reporting::EventReportWindows> - event_report_windows_ = absl::nullopt; - int max_event_level_reports_; bool is_within_fenced_frame_ = false; - bool debug_reporting_ = false; }; // Returns a AttributionTrigger with default data which matches the default
diff --git a/content/browser/devtools/devtools_instrumentation.cc b/content/browser/devtools/devtools_instrumentation.cc index a401039..6ea7cad 100644 --- a/content/browser/devtools/devtools_instrumentation.cc +++ b/content/browser/devtools/devtools_instrumentation.cc
@@ -615,30 +615,9 @@ const absl::optional<base::UnguessableToken>& initiator_devtools_navigation_token) { FrameTreeNode* ftn = nav_request.frame_tree_node(); - if (initiator_devtools_navigation_token.has_value()) { - DispatchToAgents(ftn, &protocol::PreloadHandler::DidActivatePrerender, - initiator_devtools_navigation_token.value(), nav_request); - } UpdateChildFrameTrees(ftn, /* update_target_info= */ true); } -void DidCancelPrerender( - FrameTreeNode* ftn, - const GURL& prerendering_url, - const base::UnguessableToken& initiator_devtools_navigation_token, - PrerenderFinalStatus status, - const std::string& disallowed_api_method) { - if (!ftn) { - return; - } - - std::string initiating_frame_id = - ftn->current_frame_host()->devtools_frame_token().ToString(); - DispatchToAgents(ftn, &protocol::PreloadHandler::DidCancelPrerender, - prerendering_url, initiator_devtools_navigation_token, - initiating_frame_id, status, disallowed_api_method); -} - void DidUpdatePrefetchStatus( FrameTreeNode* ftn, const base::UnguessableToken& initiator_devtools_navigation_token,
diff --git a/content/browser/devtools/devtools_instrumentation.h b/content/browser/devtools/devtools_instrumentation.h index 9bf6841e..2d570cb 100644 --- a/content/browser/devtools/devtools_instrumentation.h +++ b/content/browser/devtools/devtools_instrumentation.h
@@ -226,17 +226,6 @@ void DidActivatePrerender(const NavigationRequest& nav_request, const absl::optional<base::UnguessableToken>& initiator_devtools_navigation_token); -// This function reports cancellation status to DevTools with the -// `disallowed_api_method`, which is used to give users more information about -// the cancellation details if the prerendering uses disallowed API method, and -// disallowed_api_method will be formatted for display in the DevTools. See the -// DevTools implementation for the format. -void DidCancelPrerender( - FrameTreeNode* ftn, - const GURL& prerendering_url, - const base::UnguessableToken& initiator_devtools_navigation_token, - PrerenderFinalStatus status, - const std::string& disallowed_api_method); void DidUpdatePrefetchStatus( FrameTreeNode* ftn,
diff --git a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc index 1c54ce8..f816733 100644 --- a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc +++ b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
@@ -3846,42 +3846,6 @@ EXPECT_EQ(true, ech); } -IN_PROC_BROWSER_TEST_F(PrerenderDevToolsProtocolTest, - ReportPrerenderDisallowedAPICancellationDetails) { - base::HistogramTester histogram_tester; - ASSERT_TRUE(embedded_test_server()->Start()); - const GURL kInitialUrl = GetUrl("/empty.html"); - const GURL kPrerenderingUrl = GetUrl("/empty.html?prerender"); - - // Navigate to an initial page. - ASSERT_TRUE(NavigateToURL(shell(), kInitialUrl)); - - // Make a prerendered page. - int host_id = AddPrerender(kPrerenderingUrl); - auto* prerender_render_frame_host = GetPrerenderedMainFrameHost(host_id); - Attach(); - SendCommandSync("Preload.enable"); - SendCommandSync("Runtime.enable"); - - // Executing `navigator.getGamepads()` to start binding the GamepadMonitor - // interface, and this is expected to cause prerender cancellation because - // the API is disallowed. - ExecuteScriptAsyncWithoutUserGesture(prerender_render_frame_host, - "navigator.getGamepads()"); - - base::Value::Dict result = - WaitForNotification("Preload.prerenderAttemptCompleted", true); - - // Verify Mojo capability control cancels prerendering. - EXPECT_FALSE(HasHostForUrl(kPrerenderingUrl)); - EXPECT_THAT(*result.FindString("disallowedApiMethod"), - Eq("device.mojom.GamepadMonitor")); - - histogram_tester.ExpectUniqueSample( - "Prerender.Experimental.PrerenderHostFinalStatus.SpeculationRule", - PrerenderFinalStatus::kMojoBinderPolicy, 1); -} - IN_PROC_BROWSER_TEST_F( PrerenderDevToolsProtocolTest, PrerenderStatusUpdatedReportsFailureWithDisallowedMojoInterface) { @@ -3955,72 +3919,6 @@ EXPECT_THAT(old_host->GetTitle(), testing::Eq("")); } -IN_PROC_BROWSER_TEST_F(MultiplePrerendersDevToolsProtocolTest, - PrerenderActivation) { - ASSERT_TRUE(embedded_test_server()->Start()); - const GURL kInitialUrl = GetUrl("/empty.html"); - const GURL kPrerenderingUrl = GetUrl("/empty.html?prerender1"); - const GURL kPrerenderingUrl2 = GetUrl("/title1.html?prerender2"); - - // Navigate to an initial page. - ASSERT_TRUE(NavigateToURL(shell(), kInitialUrl)); - - AddPrerender(kPrerenderingUrl); - AddPrerender(kPrerenderingUrl2); - - EXPECT_TRUE(HasHostForUrl(kPrerenderingUrl)); - EXPECT_TRUE(HasHostForUrl(kPrerenderingUrl2)); - - Attach(); - SendCommandSync("Preload.enable"); - SendCommandSync("Runtime.enable"); - - // Ensure that prerenderAttemptCompleted can be fired properly with - // multiple speculation rules is enabled. - NavigatePrimaryPage(kPrerenderingUrl); - base::Value::Dict result = - WaitForNotification("Preload.prerenderAttemptCompleted", true); - EXPECT_THAT(*result.FindString("finalStatus"), Eq("TriggerDestroyed")); - - // TODO(crbug/1332386): Verifies that multiple activations can be received - // properly when crbug/1350676 is ready. kPrerenderingUrl2 should be canceled - // as navigating to kPrerenderingUrl2. - result = WaitForNotification("Preload.prerenderAttemptCompleted", true); - EXPECT_THAT(*result.FindString("finalStatus"), Eq("Activated")); -} - -IN_PROC_BROWSER_TEST_F(MultiplePrerendersDevToolsProtocolTest, - MultiplePrerendersCancellation) { - ASSERT_TRUE(embedded_test_server()->Start()); - const GURL kInitialUrl = GetUrl("/empty.html"); - const GURL kPrerenderingUrl = GetUrl("/empty.html?prerender1"); - const GURL kPrerenderingUrl2 = GetUrl("/title1.html?prerender2"); - const GURL kNavigateAwayUrl = GetUrl("/empty.html?navigateway"); - - // Navigate to an initial page. - ASSERT_TRUE(NavigateToURL(shell(), kInitialUrl)); - - AddPrerender(kPrerenderingUrl); - AddPrerender(kPrerenderingUrl2); - - EXPECT_TRUE(HasHostForUrl(kPrerenderingUrl)); - EXPECT_TRUE(HasHostForUrl(kPrerenderingUrl2)); - - Attach(); - SendCommandSync("Preload.enable"); - SendCommandSync("Runtime.enable"); - - ASSERT_TRUE(NavigateToURL(shell(), kNavigateAwayUrl)); - - // Both prerendered pages should receive prerenderAttemptCompleted for - // cancelation reasons. - base::Value::Dict result = - WaitForNotification("Preload.prerenderAttemptCompleted", true); - EXPECT_THAT(*result.FindString("finalStatus"), Eq("TriggerDestroyed")); - result = WaitForNotification("Preload.prerenderAttemptCompleted", true); - EXPECT_THAT(*result.FindString("finalStatus"), Eq("TriggerDestroyed")); -} - IN_PROC_BROWSER_TEST_F(DevToolsProtocolTest, ResponseAfterReload) { ASSERT_TRUE(embedded_test_server()->Start()); GURL url = embedded_test_server()->GetURL("a.test", "/title1.html");
diff --git a/content/browser/devtools/protocol/input_handler.cc b/content/browser/devtools/protocol/input_handler.cc index c023fbd..7ff8a05 100644 --- a/content/browser/devtools/protocol/input_handler.cc +++ b/content/browser/devtools/protocol/input_handler.cc
@@ -355,9 +355,9 @@ items.push_back(blink::mojom::DragItem::NewString(std::move(mojo_item))); } - blink::mojom::DragDataPtr mojo_data = - blink::mojom::DragData::New(std::move(items), absl::nullopt, - network::mojom::ReferrerPolicy::kDefault); + blink::mojom::DragDataPtr mojo_data = blink::mojom::DragData::New( + std::move(items), absl::nullopt, + /*force_default_action=*/false, network::mojom::ReferrerPolicy::kDefault); DropData drop_data = DragDataToDropData(*mojo_data); protocol::Array<protocol::String> default_value; @@ -806,7 +806,6 @@ blink::DragOperationsMask mask; base::WeakPtr<RenderWidgetHostImpl> host; gfx::PointF pos; - ui::mojom::DragOperation operation; // Acts as a counting semaphore for concurrent updates. size_t updating; base::OnceClosure updated_callback; @@ -920,8 +919,8 @@ } drag_state_ = std::make_unique<DragState>( - DragState{drop_data, drag_operations_mask, nullptr, gfx::PointF(), - ui::mojom::DragOperation::kNone, 0, base::DoNothing()}); + DragState{drop_data, drag_operations_mask, nullptr, gfx::PointF(), 0, + base::DoNothing()}); UpdateDragging(*initial_state_->host, // Note we don't move it here. See // InputHandler::DragController::HandleMouseEvent. @@ -964,14 +963,16 @@ void InputHandler::DragController::DragUpdated( std::unique_ptr<blink::WebMouseEvent> event, std::unique_ptr<FailSafe<DispatchMouseEventCallback>> callback, - ui::mojom::DragOperation operation) { + ui::mojom::DragOperation operation, + bool document_is_handling_drag) { if (!drag_state_) { // Dragging ended, perhaps due to a previous mouse up or a drag // cancellation. handler_.HandleMouseEvent(std::move(event), callback->release()); return; } - drag_state_->operation = operation; + drag_state_->data.operation = operation; + drag_state_->data.document_is_handling_drag = document_is_handling_drag; --drag_state_->updating; if (callback) { @@ -1038,7 +1039,7 @@ host->DragTargetDrop(drag_state_->data, point, point, event->GetModifiers(), base::DoNothing()); host->DragSourceEndedAt( - point, point, drag_state_->operation, + point, point, drag_state_->data.operation, base::BindOnce(&FailSafe<DispatchMouseEventCallback>::sendSuccess, std::move(callback))); } @@ -1408,18 +1409,16 @@ *drop_data, point, point, mask, event_modifiers, base::BindOnce( [](std::unique_ptr<DispatchDragEventCallback> callback, - ::ui::mojom::DragOperation operation) { - callback->sendSuccess(); - }, + ::ui::mojom::DragOperation operation, + bool document_is_handling_drag) { callback->sendSuccess(); }, std::move(callback))); } else if (event_type == Input::DispatchDragEvent::TypeEnum::DragOver) { widget_host->DragTargetDragOver( point, point, mask, event_modifiers, base::BindOnce( [](std::unique_ptr<DispatchDragEventCallback> callback, - ::ui::mojom::DragOperation operation) { - callback->sendSuccess(); - }, + ::ui::mojom::DragOperation operation, + bool document_is_handling_drag) { callback->sendSuccess(); }, std::move(callback))); } else if (event_type == Input::DispatchDragEvent::TypeEnum::Drop) { widget_host->DragTargetDragOver( @@ -1428,11 +1427,14 @@ [](std::unique_ptr<DropData> drop_data, int event_modifiers, std::unique_ptr<DispatchDragEventCallback> callback, base::WeakPtr<RenderWidgetHostViewBase> target, - gfx::PointF point, ui::mojom::DragOperation current_op) { + gfx::PointF point, ui::mojom::DragOperation current_op, + bool document_is_handling_drag) { if (!target) { callback->sendFailure(Response::InternalError()); return; } + drop_data->operation = current_op; + drop_data->document_is_handling_drag = document_is_handling_drag; RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From(target->GetRenderWidgetHost()); widget_host->DragTargetDrop(*drop_data, point, point,
diff --git a/content/browser/devtools/protocol/input_handler.h b/content/browser/devtools/protocol/input_handler.h index 4ed3a8b1..bed985c 100644 --- a/content/browser/devtools/protocol/input_handler.h +++ b/content/browser/devtools/protocol/input_handler.h
@@ -237,7 +237,8 @@ void DragUpdated( std::unique_ptr<blink::WebMouseEvent> event, std::unique_ptr<FailSafe<DispatchMouseEventCallback>> callback, - ui::mojom::DragOperation operation); + ui::mojom::DragOperation operation, + bool document_is_handling_drag); // Ends the drag with the given event and host. //
diff --git a/content/browser/devtools/protocol/preload_handler.cc b/content/browser/devtools/protocol/preload_handler.cc index 11e92b5..1656501 100644 --- a/content/browser/devtools/protocol/preload_handler.cc +++ b/content/browser/devtools/protocol/preload_handler.cc
@@ -328,54 +328,6 @@ return host->HandlersByName<PreloadHandler>(Preload::Metainfo::domainName); } -void PreloadHandler::DidActivatePrerender( - const base::UnguessableToken& initiator_devtools_navigation_token, - const NavigationRequest& nav_request) { - if (!enabled_) { - return; - } - FrameTreeNode* ftn = nav_request.frame_tree_node(); - std::string initiating_frame_id = - ftn->current_frame_host()->devtools_frame_token().ToString(); - const GURL& prerendering_url = nav_request.common_params().url; - // TODO(crbug/1384419): Handle target_hint. - auto preloading_attempt_key = - protocol::Preload::PreloadingAttemptKey::Create() - .SetLoaderId(initiator_devtools_navigation_token.ToString()) - .SetAction(Preload::SpeculationActionEnum::Prerender) - .SetUrl(prerendering_url.spec()) - .Build(); - frontend_->PrerenderAttemptCompleted( - std::move(preloading_attempt_key), initiating_frame_id, - prerendering_url.spec(), Preload::PrerenderFinalStatusEnum::Activated); -} - -void PreloadHandler::DidCancelPrerender( - const GURL& prerendering_url, - const base::UnguessableToken& initiator_devtools_navigation_token, - const std::string& initiating_frame_id, - PrerenderFinalStatus status, - const std::string& disallowed_api_method) { - if (!enabled_) { - return; - } - DCHECK_NE(status, PrerenderFinalStatus::kActivated); - Maybe<std::string> opt_disallowed_api_method = - disallowed_api_method.empty() ? Maybe<std::string>() - : Maybe<std::string>(disallowed_api_method); - // TODO(crbug/1384419): Handle target_hint. - auto preloading_attempt_key = - protocol::Preload::PreloadingAttemptKey::Create() - .SetLoaderId(initiator_devtools_navigation_token.ToString()) - .SetAction(Preload::SpeculationActionEnum::Prerender) - .SetUrl(prerendering_url.spec()) - .Build(); - frontend_->PrerenderAttemptCompleted( - std::move(preloading_attempt_key), initiating_frame_id, - prerendering_url.spec(), PrerenderFinalStatusToProtocol(status), - std::move(opt_disallowed_api_method)); -} - void PreloadHandler::DidUpdatePrefetchStatus( const base::UnguessableToken& initiator_devtools_navigation_token, const std::string& initiating_frame_id,
diff --git a/content/browser/devtools/protocol/preload_handler.h b/content/browser/devtools/protocol/preload_handler.h index b825db4..d5dbd5f 100644 --- a/content/browser/devtools/protocol/preload_handler.h +++ b/content/browser/devtools/protocol/preload_handler.h
@@ -19,7 +19,6 @@ namespace content { class DevToolsAgentHostImpl; -class NavigationRequest; class RenderFrameHostImpl; namespace protocol { @@ -34,16 +33,6 @@ static std::vector<PreloadHandler*> ForAgentHost(DevToolsAgentHostImpl* host); - void DidActivatePrerender( - const base::UnguessableToken& initiator_devtools_navigation_token, - const NavigationRequest& nav_request); - void DidCancelPrerender( - const GURL& prerendering_url, - const base::UnguessableToken& initiator_devtools_navigation_token, - const std::string& initiating_frame_id, - PrerenderFinalStatus status, - const std::string& disallowed_api_method); - void DidUpdatePrefetchStatus( const base::UnguessableToken& initiator_devtools_navigation_token, const std::string& initiating_frame_id,
diff --git a/content/browser/devtools/protocol_config.json b/content/browser/devtools/protocol_config.json index 9527f46..89e4cb7 100644 --- a/content/browser/devtools/protocol_config.json +++ b/content/browser/devtools/protocol_config.json
@@ -82,7 +82,7 @@ { "domain": "Preload", "include": ["enable", "disable"], - "include_events": ["prerenderAttemptCompleted", "prefetchStatusUpdated", "prerenderStatusUpdated", "preloadEnabledStateUpdated"] + "include_events": ["prefetchStatusUpdated", "prerenderStatusUpdated", "preloadEnabledStateUpdated"] }, { "domain": "Runtime",
diff --git a/content/browser/file_system/file_system_url_drag_drop_browsertest.cc b/content/browser/file_system/file_system_url_drag_drop_browsertest.cc index 603b797..a4ef66d 100644 --- a/content/browser/file_system/file_system_url_drag_drop_browsertest.cc +++ b/content/browser/file_system/file_system_url_drag_drop_browsertest.cc
@@ -166,6 +166,8 @@ filesystem_file_info.size = test_contents.size(); filesystem_file_info.filesystem_id = original_file.filesystem_id(); DropData drop_data; + drop_data.operation = ui::mojom::DragOperation::kCopy; + drop_data.document_is_handling_drag = true; drop_data.file_system_files.push_back(filesystem_file_info); render_widget_host_impl->FilterDropData(&drop_data); @@ -288,6 +290,8 @@ filesystem_file_info.size = test_contents.size(); filesystem_file_info.filesystem_id = original_file.filesystem_id(); DropData drop_data; + drop_data.operation = ui::mojom::DragOperation::kCopy; + drop_data.document_is_handling_drag = true; drop_data.file_system_files.push_back(filesystem_file_info); render_widget_host_impl->FilterDropData(&drop_data);
diff --git a/content/browser/file_system_access/file_system_access_drag_drop_browsertest.cc b/content/browser/file_system_access/file_system_access_drag_drop_browsertest.cc index 1915f00..aab3dd99 100644 --- a/content/browser/file_system_access/file_system_access_drag_drop_browsertest.cc +++ b/content/browser/file_system_access/file_system_access_drag_drop_browsertest.cc
@@ -130,6 +130,8 @@ // Drop the test file. DropData drop_data; + drop_data.operation = ui::mojom::DragOperation::kCopy; + drop_data.document_is_handling_drag = true; drop_data.filenames.emplace_back( ui::FileInfo(test_file_path, test_file_path.BaseName())); render_widget_host_impl->FilterDropData(&drop_data); @@ -216,6 +218,8 @@ // Drop the test file. DropData drop_data; + drop_data.operation = ui::mojom::DragOperation::kCopy; + drop_data.document_is_handling_drag = true; drop_data.filenames.emplace_back( ui::FileInfo(test_dir_path, test_dir_path.BaseName())); render_widget_host_impl->FilterDropData(&drop_data);
diff --git a/content/browser/largest_contentful_paint_browsertests.cc b/content/browser/largest_contentful_paint_browsertests.cc index 9c65e2a..c6ae337 100644 --- a/content/browser/largest_contentful_paint_browsertests.cc +++ b/content/browser/largest_contentful_paint_browsertests.cc
@@ -9,6 +9,7 @@ #include "content/browser/web_contents/web_contents_impl.h" #include "content/public/common/content_switches.h" #include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" #include "content/public/test/content_browser_test.h" #include "content/public/test/content_browser_test_utils.h" #include "content/shell/browser/shell.h" @@ -41,17 +42,8 @@ switches::kEnableBlinkFeatures, "ExposeRenderTimeNonTaoDelayedImage"); } - EvalJsResult GetLCPStartTime() const { - std::string script = R"( - getLCPStartTime(); - )"; - return EvalJs(shell(), script); - } - - EvalJsResult GetFCPStartTime() const { - std::string script = R"( - getFCPStartTime(); - )"; + EvalJsResult GetStartTime(std::string type) const { + std::string script = content::JsReplace("getStartTime($1);", type); return EvalJs(shell(), script); } @@ -66,8 +58,10 @@ EXPECT_TRUE(NavigateToURL(shell(), url1)); - double lcpStartTime = GetLCPStartTime().ExtractDouble(); - double fcpStartTime = GetFCPStartTime().ExtractDouble(); + double fcpStartTime = GetStartTime("paint").ExtractDouble(); + + double lcpStartTime = + GetStartTime("largest-contentful-paint").ExtractDouble(); EXPECT_NEAR(lcpStartTime, fcpStartTime, 0.01); }
diff --git a/content/browser/media/session/media_session_controller_unittest.cc b/content/browser/media/session/media_session_controller_unittest.cc index 4cecf5d..265f3298 100644 --- a/content/browser/media/session/media_session_controller_unittest.cc +++ b/content/browser/media/session/media_session_controller_unittest.cc
@@ -214,6 +214,7 @@ } void TearDown() override { + audio_focus_delegate_ = nullptr; // Destruct the controller prior to any other teardown to avoid out of order // destruction relative to the MediaSession instance. controller_.reset(); @@ -307,8 +308,7 @@ MediaPlayerId id_ = MediaPlayerId::CreateMediaPlayerIdForTests(); std::unique_ptr<MediaSessionController> controller_; std::unique_ptr<TestMediaPlayer> media_player_; - raw_ptr<FakeAudioFocusDelegate, DanglingUntriaged> audio_focus_delegate_ = - nullptr; + raw_ptr<FakeAudioFocusDelegate> audio_focus_delegate_ = nullptr; }; TEST_F(MediaSessionControllerTest, NoAudioNoSession) {
diff --git a/content/browser/preloading/prefetch/prefetch_response_reader.cc b/content/browser/preloading/prefetch/prefetch_response_reader.cc index fb5c9e7..7d9ed9b 100644 --- a/content/browser/preloading/prefetch/prefetch_response_reader.cc +++ b/content/browser/preloading/prefetch/prefetch_response_reader.cc
@@ -4,6 +4,7 @@ #include "content/browser/preloading/prefetch/prefetch_response_reader.h" +#include "base/debug/dump_without_crashing.h" #include "base/metrics/histogram_functions.h" #include "base/task/sequenced_task_runner.h" #include "content/browser/preloading/prefetch/prefetch_streaming_url_loader.h" @@ -93,16 +94,43 @@ } PrefetchRequestHandler PrefetchResponseReader::CreateRequestHandler() { + if (create_request_handler_called_) { + // Monitor cases where CreateRequestHandler() is called multiple times, for + // investigation of crbug.com/1483599. Anyway such cases should be handled + // (failing gracefully) below, e.g. by checking `body_`. + // TODO(crbug.com/1483599): Remove this. + base::debug::DumpWithoutCrashing(); + } + create_request_handler_called_ = true; + + // Returns a null handler if some checks fail here. + // This is a subset of the checks in `BindAndStart()`, but not identical, + // because `load_state_` can be transitioned between the two methods. Still + // the CHECKs in `BindAndStart()` should pass even when `load_state_` is + // transitioned. + switch (load_state_) { + case LoadState::kResponseReceived: + case LoadState::kCompleted: + case LoadState::kFailed: + if (!body_) { + // This might be because `CreateRequestHandler()` is called for the + // second time. + return {}; + } + break; + + case LoadState::kRedirectHandled: + break; + + case LoadState::kStarted: + case LoadState::kFailedResponseReceived: + return {}; + } + if (streaming_url_loader_) { streaming_url_loader_->OnStartServing(); } - // Currently only one client is allowed. - // This CHECK is also for investigation of crbug.com/1483599. - // TODO(crbug.com/1449360): Actually support multiple clients. - CHECK(!create_request_handler_called_); - create_request_handler_called_ = true; - return base::BindOnce(&PrefetchResponseReader::BindAndStart, base::WrapRefCounted(this), std::move(body_)); }
diff --git a/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc index dd3faff..3f1415b2 100644 --- a/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc
@@ -998,8 +998,16 @@ PreloadingTriggeringOutcome::kReady); } -TEST_F(PrefetchURLLoaderInterceptorTest, - DISABLE_ASAN(PrefetchStreamingURLLoaderReleased)) { +enum class NotServableReason { + kOnCompleteFailure, + kAnotherRequest, +}; + +class PrefetchURLLoaderInterceptorBecomeNotServableTest + : public PrefetchURLLoaderInterceptorTest, + public ::testing::WithParamInterface<NotServableReason> {}; + +TEST_P(PrefetchURLLoaderInterceptorBecomeNotServableTest, DISABLE_ASAN(Basic)) { // It is possible for a prefetch to initially be marked as servable, but // becomes not servable at some point between PrefetchURLLoaderInterceptor // gets the prefetch and when it tries to serve it. This can happen when @@ -1021,9 +1029,9 @@ auto pending_request = MakeManuallyServableStreamingURLLoaderForTest(prefetch_container.get()); + mojo::ScopedDataPipeProducerHandle producer_handle; { mojo::ScopedDataPipeConsumerHandle consumer_handle; - mojo::ScopedDataPipeProducerHandle producer_handle; std::string content = "test body"; CHECK_EQ( mojo::CreateDataPipe(content.size(), producer_handle, consumer_handle), @@ -1069,8 +1077,22 @@ task_environment()->FastForwardBy(base::Milliseconds(20)); // Simulate the prefetch becoming not servable anymore. - pending_request.client->OnComplete( - network::URLLoaderCompletionStatus(net::ERR_FAILED)); + PrefetchRequestHandler another_request; + switch (GetParam()) { + case NotServableReason::kOnCompleteFailure: + producer_handle.reset(); + pending_request.client->OnComplete( + network::URLLoaderCompletionStatus(net::ERR_FAILED)); + break; + + case NotServableReason::kAnotherRequest: + // Another request is created for the same PrefetchContainer while + // prefetching is still ongoing. + another_request = + prefetch_container->CreateReader().CreateRequestHandler(); + break; + } + task_environment()->RunUntilIdle(); reader.OnIsolatedCookieCopyComplete(); @@ -1079,15 +1101,34 @@ EXPECT_TRUE(was_intercepted(kTestUrl).has_value()); EXPECT_FALSE(was_intercepted(kTestUrl).value()); + switch (GetParam()) { + case NotServableReason::kOnCompleteFailure: + ExpectCorrectUkmLogs(kTestUrl, /*is_accurate_trigger=*/true, + PreloadingTriggeringOutcome::kReady); + break; + + case NotServableReason::kAnotherRequest: + ExpectCorrectUkmLogs(kTestUrl, /*is_accurate_trigger=*/true, + PreloadingTriggeringOutcome::kSuccess); + producer_handle.reset(); + pending_request.client->OnComplete( + network::URLLoaderCompletionStatus(net::OK)); + base::RunLoop().RunUntilIdle(); + break; + } + histogram_tester().ExpectUniqueTimeSample( "PrefetchProxy.AfterClick.Mainframe.CookieWaitTime", base::Milliseconds(20), 1); EXPECT_EQ(GetPrefetchService()->num_probes(), 0); - ExpectCorrectUkmLogs(kTestUrl, /*is_accurate_trigger=*/true, - PreloadingTriggeringOutcome::kReady); } +INSTANTIATE_TEST_SUITE_P(All, + PrefetchURLLoaderInterceptorBecomeNotServableTest, + testing::Values(NotServableReason::kOnCompleteFailure, + NotServableReason::kAnotherRequest)); + TEST_F(PrefetchURLLoaderInterceptorTest, DISABLE_ASAN(HandleRedirects)) { const GURL kTestUrl("https://example.com"); const GURL kRedirectUrl("https://redirect.com");
diff --git a/content/browser/preloading/prerender/prerender_metrics.cc b/content/browser/preloading/prerender/prerender_metrics.cc index 9b80ba8..e1257a0 100644 --- a/content/browser/preloading/prerender/prerender_metrics.cc +++ b/content/browser/preloading/prerender/prerender_metrics.cc
@@ -264,24 +264,6 @@ .SetFinalStatus(static_cast<int>(cancellation_reason.final_status())) .Record(ukm::UkmRecorder::Get()); } - - // Browser initiated prerendering doesn't report cancellation reasons to the - // DevTools as it doesn't have the initiator frame associated with DevTools - // agents. - if (!attributes.IsBrowserInitiated()) { - auto* ftn = FrameTreeNode::GloballyFindByID( - attributes.initiator_frame_tree_node_id); - CHECK(ftn); - // TODO(https://crbug.com/1332377): Discuss with devtools to finalize the - // message protocol. - if (attributes.initiator_devtools_navigation_token.has_value()) { - devtools_instrumentation::DidCancelPrerender( - ftn, attributes.prerendering_url, - attributes.initiator_devtools_navigation_token.value(), - cancellation_reason.final_status(), - cancellation_reason.ToDevtoolReasonString()); - } - } } void ReportSuccessActivation(const PrerenderAttributes& attributes,
diff --git a/content/browser/renderer_host/data_transfer_util.cc b/content/browser/renderer_host/data_transfer_util.cc index a0bf2d5..1246027 100644 --- a/content/browser/renderer_host/data_transfer_util.cc +++ b/content/browser/renderer_host/data_transfer_util.cc
@@ -217,6 +217,7 @@ ? absl::nullopt : absl::optional<std::string>( base::UTF16ToUTF8(drop_data.filesystem_id)), + /*force_default_action=*/!drop_data.document_is_handling_drag, drop_data.referrer_policy); } @@ -271,6 +272,7 @@ } } return blink::mojom::DragData::New(std::move(items), absl::nullopt, + /*force_default_action=*/false, network::mojom::ReferrerPolicy::kDefault); }
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc index 3ea56e0e..355a096 100644 --- a/content/browser/renderer_host/delegated_frame_host.cc +++ b/content/browser/renderer_host/delegated_frame_host.cc
@@ -468,7 +468,8 @@ auto transfer_resource = viz::TransferableResource::MakeGpu( result->GetTextureResult()->mailbox_holders[0].mailbox, GL_TEXTURE_2D, result->GetTextureResult()->mailbox_holders[0].sync_token, result->size(), - viz::SinglePlaneFormat::kRGBA_8888, false /* is_overlay_candidate */); + viz::SinglePlaneFormat::kRGBA_8888, false /* is_overlay_candidate */, + viz::TransferableResource::ResourceSource::kStaleContent); viz::CopyOutputResult::ReleaseCallbacks release_callbacks = result->TakeTextureOwnership(); DCHECK_EQ(1u, release_callbacks.size());
diff --git a/content/browser/renderer_host/event_with_latency_info.h b/content/browser/renderer_host/event_with_latency_info.h deleted file mode 100644 index da3ec4e5..0000000 --- a/content/browser/renderer_host/event_with_latency_info.h +++ /dev/null
@@ -1,18 +0,0 @@ -// Copyright 2013 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_BROWSER_RENDERER_HOST_EVENT_WITH_LATENCY_INFO_H_ -#define CONTENT_BROWSER_RENDERER_HOST_EVENT_WITH_LATENCY_INFO_H_ - -#include "content/common/input/event_with_latency_info.h" -#include "content/public/common/input/native_web_keyboard_event.h" - -namespace content { - -typedef EventWithLatencyInfo<NativeWebKeyboardEvent> - NativeWebKeyboardEventWithLatencyInfo; - -} // namespace content - -#endif // CONTENT_BROWSER_RENDERER_HOST_EVENT_WITH_LATENCY_INFO_H_
diff --git a/content/browser/renderer_host/input/gesture_event_queue.h b/content/browser/renderer_host/input/gesture_event_queue.h index b8c3bc6..3afc821 100644 --- a/content/browser/renderer_host/input/gesture_event_queue.h +++ b/content/browser/renderer_host/input/gesture_event_queue.h
@@ -11,9 +11,9 @@ #include "base/memory/raw_ptr.h" #include "base/time/time.h" #include "base/timer/timer.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/browser/renderer_host/input/fling_controller.h" #include "content/common/content_export.h" +#include "content/common/input/event_with_latency_info.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h"
diff --git a/content/browser/renderer_host/input/input_disposition_handler.h b/content/browser/renderer_host/input/input_disposition_handler.h index f739cfb..7cd807fa 100644 --- a/content/browser/renderer_host/input/input_disposition_handler.h +++ b/content/browser/renderer_host/input/input_disposition_handler.h
@@ -5,7 +5,7 @@ #ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_DISPOSITION_HANDLER_H_ #define CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_DISPOSITION_HANDLER_H_ -#include "content/browser/renderer_host/event_with_latency_info.h" +#include "content/common/input/event_with_latency_info.h" #include "content/public/common/input/native_web_keyboard_event.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h"
diff --git a/content/browser/renderer_host/input/input_router.h b/content/browser/renderer_host/input/input_router.h index 2a6c91a..3d12918 100644 --- a/content/browser/renderer_host/input/input_router.h +++ b/content/browser/renderer_host/input/input_router.h
@@ -8,10 +8,10 @@ #include "base/functional/callback_forward.h" #include "base/task/sequenced_task_runner.h" #include "cc/input/touch_action.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/browser/renderer_host/input/gesture_event_queue.h" #include "content/browser/renderer_host/input/passthrough_touch_event_queue.h" #include "content/common/content_export.h" +#include "content/common/input/event_with_latency_info.h" #include "content/public/common/input/native_web_keyboard_event.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/content/browser/renderer_host/input/input_router_client.h b/content/browser/renderer_host/input/input_router_client.h index fcfbf14f..3142b18 100644 --- a/content/browser/renderer_host/input/input_router_client.h +++ b/content/browser/renderer_host/input/input_router_client.h
@@ -6,8 +6,8 @@ #define CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_ROUTER_CLIENT_H_ #include "cc/input/touch_action.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/browser/scheduler/browser_ui_thread_scheduler.h" +#include "content/common/input/event_with_latency_info.h" #include "content/public/common/input/native_web_keyboard_event.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h"
diff --git a/content/browser/renderer_host/input/mock_input_router.h b/content/browser/renderer_host/input/mock_input_router.h index 7bfd0b4..aa138d0 100644 --- a/content/browser/renderer_host/input/mock_input_router.h +++ b/content/browser/renderer_host/input/mock_input_router.h
@@ -10,7 +10,6 @@ #include "base/task/sequenced_task_runner.h" #include "cc/input/touch_action.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/common/input/event_with_latency_info.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/mojom/input/touch_event.mojom.h"
diff --git a/content/browser/renderer_host/input/mouse_wheel_event_queue.h b/content/browser/renderer_host/input/mouse_wheel_event_queue.h index 5be10b6..391869d 100644 --- a/content/browser/renderer_host/input/mouse_wheel_event_queue.h +++ b/content/browser/renderer_host/input/mouse_wheel_event_queue.h
@@ -11,8 +11,8 @@ #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/trace_event/trace_event.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/common/content_export.h" +#include "content/common/input/event_with_latency_info.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h"
diff --git a/content/browser/renderer_host/input/passthrough_touch_event_queue.h b/content/browser/renderer_host/input/passthrough_touch_event_queue.h index 8946e62..c8ffee2f 100644 --- a/content/browser/renderer_host/input/passthrough_touch_event_queue.h +++ b/content/browser/renderer_host/input/passthrough_touch_event_queue.h
@@ -13,8 +13,8 @@ #include "base/memory/raw_ptr.h" #include "base/metrics/field_trial_params.h" #include "base/time/time.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/common/content_export.h" +#include "content/common/input/event_with_latency_info.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h" #include "ui/events/blink/blink_features.h"
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker.h b/content/browser/renderer_host/input/render_widget_host_latency_tracker.h index e5d497d..7e379eb 100644 --- a/content/browser/renderer_host/input/render_widget_host_latency_tracker.h +++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker.h
@@ -8,8 +8,8 @@ #include <stdint.h> #include "base/memory/raw_ptr.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/common/content_export.h" +#include "content/common/input/event_with_latency_info.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h" #include "ui/latency/latency_info.h" #include "ui/latency/latency_tracker.h"
diff --git a/content/browser/renderer_host/input/touch_action_filter_unittest.cc b/content/browser/renderer_host/input/touch_action_filter_unittest.cc index 7687cea..b6c19849 100644 --- a/content/browser/renderer_host/input/touch_action_filter_unittest.cc +++ b/content/browser/renderer_host/input/touch_action_filter_unittest.cc
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "content/browser/renderer_host/input/touch_action_filter.h" -#include "content/browser/renderer_host/event_with_latency_info.h" +#include "content/common/input/event_with_latency_info.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/input/synthetic_web_input_event_builders.h" #include "third_party/blink/public/common/input/web_input_event.h"
diff --git a/content/browser/renderer_host/input/touch_timeout_handler.h b/content/browser/renderer_host/input/touch_timeout_handler.h index 9902cb2..a36feb5 100644 --- a/content/browser/renderer_host/input/touch_timeout_handler.h +++ b/content/browser/renderer_host/input/touch_timeout_handler.h
@@ -10,8 +10,8 @@ #include "base/memory/raw_ptr.h" #include "base/time/time.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/browser/renderer_host/input/timeout_monitor.h" +#include "content/common/input/event_with_latency_info.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h" namespace content {
diff --git a/content/browser/renderer_host/input/touchpad_tap_suppression_controller.h b/content/browser/renderer_host/input/touchpad_tap_suppression_controller.h index b7874628..768baf1 100644 --- a/content/browser/renderer_host/input/touchpad_tap_suppression_controller.h +++ b/content/browser/renderer_host/input/touchpad_tap_suppression_controller.h
@@ -5,8 +5,8 @@ #ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_TOUCHPAD_TAP_SUPPRESSION_CONTROLLER_H_ #define CONTENT_BROWSER_RENDERER_HOST_INPUT_TOUCHPAD_TAP_SUPPRESSION_CONTROLLER_H_ -#include "content/browser/renderer_host/event_with_latency_info.h" -#include "content/browser/renderer_host/input/tap_suppression_controller.h" +#include "content/common/input/event_with_latency_info.h" +#include "content/common/input/tap_suppression_controller.h" #include "third_party/blink/public/common/input/web_input_event.h" namespace content {
diff --git a/content/browser/renderer_host/input/touchscreen_tap_suppression_controller.h b/content/browser/renderer_host/input/touchscreen_tap_suppression_controller.h index 849e01d..87b7093 100644 --- a/content/browser/renderer_host/input/touchscreen_tap_suppression_controller.h +++ b/content/browser/renderer_host/input/touchscreen_tap_suppression_controller.h
@@ -5,8 +5,8 @@ #ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_TOUCHSCREEN_TAP_SUPPRESSION_CONTROLLER_H_ #define CONTENT_BROWSER_RENDERER_HOST_INPUT_TOUCHSCREEN_TAP_SUPPRESSION_CONTROLLER_H_ -#include "content/browser/renderer_host/event_with_latency_info.h" -#include "content/browser/renderer_host/input/tap_suppression_controller.h" +#include "content/common/input/event_with_latency_info.h" +#include "content/common/input/tap_suppression_controller.h" namespace content {
diff --git a/content/browser/renderer_host/render_view_host_delegate_view.h b/content/browser/renderer_host/render_view_host_delegate_view.h index 455a0a0..a35eee8 100644 --- a/content/browser/renderer_host/render_view_host_delegate_view.h +++ b/content/browser/renderer_host/render_view_host_delegate_view.h
@@ -50,7 +50,7 @@ // A context menu should be shown, to be built using the context information // provided in the supplied params. // - // The |render_frame_host| represents the frame that requests the context menu + // The `render_frame_host` represents the frame that requests the context menu // (typically this frame is focused, but this is not necessarily the case - // see https://crbug.com/1257907#c14). virtual void ShowContextMenu(RenderFrameHost& render_frame_host, @@ -93,8 +93,11 @@ RenderWidgetHostImpl* source_rwh) {} // The page wants to update the mouse cursor during a drag & drop operation. - // |operation| describes the current operation (none, move, copy, link.) - virtual void UpdateDragCursor(ui::mojom::DragOperation operation) {} + // `operation` describes the current operation (none, move, copy, link.). + // `document_is_handling_drag` describes if the document is handling the + // drop. + virtual void UpdateDragOperation(ui::mojom::DragOperation operation, + bool document_is_handling_drag) {} // Notification that view for this delegate got the focus. virtual void GotFocus(RenderWidgetHostImpl* render_widget_host) {}
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index f2bf514..7a99c04 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -2004,7 +2004,7 @@ const gfx::PointF& screen_pt, DragOperationsMask operations_allowed, int key_modifiers, - base::OnceCallback<void(::ui::mojom::DragOperation)> callback) { + DragOperationCallback callback) { DragTargetDragEnterWithMetaData(DropDataToMetaData(drop_data), client_pt, screen_pt, operations_allowed, key_modifiers, std::move(callback)); @@ -2016,11 +2016,11 @@ const gfx::PointF& screen_pt, DragOperationsMask operations_allowed, int key_modifiers, - base::OnceCallback<void(::ui::mojom::DragOperation)> callback) { + DragOperationCallback callback) { // TODO(https://crbug.com/1102769): Replace with a for_frame() check. if (blink_frame_widget_) { - base::OnceCallback<void(::ui::mojom::DragOperation)> callback_wrapper = - base::BindOnce(&RenderWidgetHostImpl::OnUpdateDragCursor, + DragOperationCallback callback_wrapper = + base::BindOnce(&RenderWidgetHostImpl::OnUpdateDragOperation, base::Unretained(this), std::move(callback)); blink_frame_widget_->DragTargetDragEnter( DropMetaDataToDragData(metadata), @@ -2034,13 +2034,13 @@ const gfx::PointF& screen_point, DragOperationsMask operations_allowed, int key_modifiers, - base::OnceCallback<void(ui::mojom::DragOperation)> callback) { + DragOperationCallback callback) { // TODO(https://crbug.com/1102769): Replace with a for_frame() check. if (blink_frame_widget_) { blink_frame_widget_->DragTargetDragOver( ConvertWindowPointToViewport(client_point), screen_point, operations_allowed, key_modifiers, - base::BindOnce(&RenderWidgetHostImpl::OnUpdateDragCursor, + base::BindOnce(&RenderWidgetHostImpl::OnUpdateDragOperation, base::Unretained(this), std::move(callback))); } } @@ -2252,14 +2252,15 @@ } } -void RenderWidgetHostImpl::OnUpdateDragCursor( +void RenderWidgetHostImpl::OnUpdateDragOperation( DragOperationCallback callback, - ui::mojom::DragOperation current_op) { + ui::mojom::DragOperation current_op, + bool document_is_handling_drag) { RenderViewHostDelegateView* view = delegate_->GetDelegateView(); if (view) { - view->UpdateDragCursor(current_op); + view->UpdateDragOperation(current_op, document_is_handling_drag); } - std::move(callback).Run(current_op); + std::move(callback).Run(current_op, document_is_handling_drag); } void RenderWidgetHostImpl::RendererExited() {
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index 526624e..5c042ee 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -32,7 +32,6 @@ #include "cc/mojom/render_frame_metadata.mojom.h" #include "components/viz/common/surfaces/frame_sink_id.h" #include "content/browser/renderer_host/agent_scheduling_group_host.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/browser/renderer_host/frame_token_message_queue.h" #include "content/browser/renderer_host/input/input_disposition_handler.h" #include "content/browser/renderer_host/input/input_router_impl.h" @@ -46,6 +45,7 @@ #include "content/browser/scheduler/browser_ui_thread_scheduler.h" #include "content/common/content_export.h" #include "content/common/frame.mojom-forward.h" +#include "content/common/input/event_with_latency_info.h" #include "content/public/browser/render_process_host_observer.h" #include "content/public/browser/render_process_host_priority_client.h" #include "content/public/browser/render_widget_host.h" @@ -264,8 +264,6 @@ float GetDeviceScaleFactor() override; absl::optional<cc::TouchAction> GetAllowedTouchAction() override; void WriteIntoTrace(perfetto::TracedValue context) override; - using DragOperationCallback = - base::OnceCallback<void(::ui::mojom::DragOperation)>; // |drop_data| must have been filtered. The embedder should call // FilterDropData before passing the drop data to RWHI. void DragTargetDragEnter(const DropData& drop_data, @@ -1031,8 +1029,9 @@ // IPC message handlers void OnClose(); void OnUpdateScreenRectsAck(); - void OnUpdateDragCursor(DragOperationCallback callback, - ui::mojom::DragOperation current_op); + void OnUpdateDragOperation(DragOperationCallback callback, + ui::mojom::DragOperation current_op, + bool document_is_handling_drag); // blink::mojom::FrameWidgetHost overrides. void AnimateDoubleTapZoomInMainFrame(const gfx::Point& tap_point,
diff --git a/content/browser/renderer_host/render_widget_host_input_event_router.h b/content/browser/renderer_host/render_widget_host_input_event_router.h index afff6c6..a30441e 100644 --- a/content/browser/renderer_host/render_widget_host_input_event_router.h +++ b/content/browser/renderer_host/render_widget_host_input_event_router.h
@@ -18,11 +18,11 @@ #include "components/viz/common/surfaces/surface_id.h" #include "components/viz/host/hit_test/hit_test_query.h" #include "components/viz/host/hit_test/hit_test_region_observer.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/browser/renderer_host/input/touch_emulator_client.h" #include "content/browser/renderer_host/render_widget_host_view_base_observer.h" #include "content/browser/renderer_host/render_widget_targeter.h" #include "content/common/content_export.h" +#include "content/common/input/event_with_latency_info.h" #include "mojo/public/cpp/bindings/remote.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h" #include "ui/gfx/geometry/transform.h"
diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc index 9dd7439..1634c355 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc
@@ -18,7 +18,6 @@ #include "content/browser/compositor/surface_utils.h" #include "content/browser/gpu/gpu_data_manager_impl.h" #include "content/browser/renderer_host/delegated_frame_host.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h" #include "content/browser/renderer_host/input/synthetic_gesture_target_base.h" #include "content/browser/renderer_host/render_process_host_impl.h" @@ -31,6 +30,7 @@ #include "content/browser/renderer_host/text_input_manager.h" #include "content/browser/renderer_host/visible_time_request_trigger.h" #include "content/common/content_switches_internal.h" +#include "content/common/input/event_with_latency_info.h" #include "content/public/common/page_visibility_state.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom.h"
diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h index 3b4461a..b010d43 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h
@@ -24,8 +24,8 @@ #include "components/viz/common/surfaces/surface_id.h" #include "components/viz/host/hit_test/hit_test_query.h" #include "content/browser/renderer_host/display_feature.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/common/content_export.h" +#include "content/common/input/event_with_latency_info.h" #include "content/public/browser/render_frame_metadata_provider.h" #include "content/public/browser/render_widget_host_view.h" #include "content/public/common/page_visibility_state.h"
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h b/content/browser/renderer_host/render_widget_host_view_child_frame.h index 648896b13..c403b82 100644 --- a/content/browser/renderer_host/render_widget_host_view_child_frame.h +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.h
@@ -23,9 +23,9 @@ #include "components/viz/common/surfaces/surface_info.h" #include "components/viz/host/host_frame_sink_client.h" #include "content/browser/compositor/image_transport_factory.h" -#include "content/browser/renderer_host/event_with_latency_info.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" #include "content/common/content_export.h" +#include "content/common/input/event_with_latency_info.h" #include "content/public/browser/touch_selection_controller_client_manager.h" #include "services/viz/public/mojom/compositing/compositor_frame_sink.mojom.h" #include "third_party/blink/public/common/widget/visual_properties.h"
diff --git a/content/browser/renderer_host/ui_events_helper.h b/content/browser/renderer_host/ui_events_helper.h index 9d5cb5f..af4f47e 100644 --- a/content/browser/renderer_host/ui_events_helper.h +++ b/content/browser/renderer_host/ui_events_helper.h
@@ -8,7 +8,7 @@ #include <memory> #include <vector> -#include "content/browser/renderer_host/event_with_latency_info.h" +#include "content/common/input/event_with_latency_info.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h" namespace ui {
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc index 96469c4..676293a 100644 --- a/content/browser/service_worker/service_worker_browsertest.cc +++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -5294,9 +5294,10 @@ feature_list_.InitWithFeaturesAndParameters( {{features::kServiceWorkerBypassFetchHandler, {{"strategy", "optin"}, - {"bypass_for", "all_with_race_network_request"}, - {"data_pipe_capacity_num_bytes", "1024"}}}}, + {"bypass_for", "all_with_race_network_request"}}}}, {}); + ServiceWorkerRaceNetworkRequestURLLoaderClient:: + SetDataPipeCapacityBytesForTest(1024); } ~ServiceWorkerRaceNetworkRequestBrowserTest() override = default;
diff --git a/content/browser/service_worker/service_worker_main_resource_loader.cc b/content/browser/service_worker/service_worker_main_resource_loader.cc index 7970b27..44252c9 100644 --- a/content/browser/service_worker/service_worker_main_resource_loader.cc +++ b/content/browser/service_worker/service_worker_main_resource_loader.cc
@@ -506,9 +506,7 @@ resource_request_.url); CHECK(!race_network_request_url_loader_client_); race_network_request_url_loader_client_.emplace( - resource_request_, AsWeakPtr(), std::move(forwarding_client), - network::features::GetDataPipeDefaultAllocationSize( - network::features::DataPipeAllocationSize::kLargerSizeIfPossible)); + resource_request_, AsWeakPtr(), std::move(forwarding_client)); // If the initial state is not kWaitForBody, that means creating data pipes // failed. Do not start RaceNetworkRequest this case.
diff --git a/content/browser/web_contents/web_contents_view_android.cc b/content/browser/web_contents/web_contents_view_android.cc index 72e6c741..dc0ef3c2 100644 --- a/content/browser/web_contents/web_contents_view_android.cc +++ b/content/browser/web_contents/web_contents_view_android.cc
@@ -407,7 +407,9 @@ } } -void WebContentsViewAndroid::UpdateDragCursor(ui::mojom::DragOperation op) { +void WebContentsViewAndroid::UpdateDragOperation( + ui::mojom::DragOperation op, + bool document_is_handling_drag) { // Intentional no-op because Android does not have cursor. }
diff --git a/content/browser/web_contents/web_contents_view_android.h b/content/browser/web_contents/web_contents_view_android.h index eaf7cf6..e066e1a3 100644 --- a/content/browser/web_contents/web_contents_view_android.h +++ b/content/browser/web_contents/web_contents_view_android.h
@@ -109,7 +109,8 @@ const gfx::Rect& drag_obj_rect, const blink::mojom::DragEventSourceInfo& event_info, RenderWidgetHostImpl* source_rwh) override; - void UpdateDragCursor(ui::mojom::DragOperation operation) override; + void UpdateDragOperation(ui::mojom::DragOperation operation, + bool document_is_handling_drag) override; void GotFocus(RenderWidgetHostImpl* render_widget_host) override; void LostFocus(RenderWidgetHostImpl* render_widget_host) override; void TakeFocus(bool reverse) override;
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc index 0e8c29f..1420a19f 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -373,7 +373,7 @@ flags = event.flags(); } -WebContentsViewAura::OnPerformDropContext::OnPerformDropContext( +WebContentsViewAura::OnPerformingDropContext::OnPerformingDropContext( RenderWidgetHostImpl* target_rwh, std::unique_ptr<DropData> drop_data, DropMetadata drop_metadata, @@ -389,10 +389,11 @@ transformed_pt(std::move(transformed_pt)), screen_pt(screen_pt) {} -WebContentsViewAura::OnPerformDropContext::OnPerformDropContext( - OnPerformDropContext&&) = default; +WebContentsViewAura::OnPerformingDropContext::OnPerformingDropContext( + OnPerformingDropContext&&) = default; -WebContentsViewAura::OnPerformDropContext::~OnPerformDropContext() = default; +WebContentsViewAura::OnPerformingDropContext::~OnPerformingDropContext() = + default; #if BUILDFLAG(IS_WIN) // A web contents observer that watches for navigations while an async drop @@ -670,7 +671,6 @@ std::unique_ptr<WebContentsViewDelegate> delegate) : web_contents_(web_contents), delegate_(std::move(delegate)), - current_drag_op_(DragOperation::kNone), drag_dest_delegate_(nullptr), current_rvh_for_drag_(ChildProcessHost::kInvalidUniqueID, MSG_ROUTING_NONE), @@ -1253,8 +1253,14 @@ } } -void WebContentsViewAura::UpdateDragCursor(DragOperation operation) { - current_drag_op_ = operation; +void WebContentsViewAura::UpdateDragOperation(DragOperation operation, + bool document_is_handling_drag) { + // This asynchronous update may arrive after a drop has already been cancelled + // or completed, in which case `current_drag_data_` will have been reset. + if (current_drag_data_) { + current_drag_data_->operation = operation; + current_drag_data_->document_is_handling_drag = document_is_handling_drag; + } } void WebContentsViewAura::GotFocus(RenderWidgetHostImpl* render_widget_host) { @@ -1560,7 +1566,9 @@ weak_ptr_factory_.GetWeakPtr(), drop_metadata, std::move(drop_data))); - drag_info.drag_operation = static_cast<int>(current_drag_op_); + drag_info.drag_operation = + static_cast<int>(current_drag_data_ ? current_drag_data_->operation + : ui::mojom::DragOperation::kNone); return drag_info; } @@ -1599,7 +1607,7 @@ // the web contents delegate. A drop is not considered done by this view until // all the asynchronous operations complete. // -// Assuming that a drop is allowed, an instance of OnPerformDropContext is +// Assuming that a drop is allowed, an instance of OnPerformingDropContext is // created to keep track of the drop state during the various async operations. // This context is saved in the `drop_context` argument passed around to the // various methods. The data being dropped, stored in `current_drag_data_`, is @@ -1617,16 +1625,17 @@ // may filter that data according to specific criteria, and may even block the // drop altogether. For example, some enterprise policies may block // sensitive data from being dropped on unsanctioned web pages. This step is -// kicked off by calling DelegateOnPerformDrop() and the async response is +// kicked off by calling MaybeLetDelegateProcessDrop() and the async response is // handled by GotModifiedDropDataFromDelegate(). In tests it's possible that -// no delegate exists, in which case FinishOnPerformDrop() is called directly. +// no delegate exists, in which case CompleteDrop() is called +// directly. // // GotModifiedDropDataFromDelegate() is called only when a delegate exists and // processes the result of the delegate's handling of the dropped data. // Assuming the delegate allows the drop, the dropped data in `drop_context` -// is updated and FinishOnPerformDrop() is called. +// is updated and CompleteDrop() is called. // -// FinishOnPerformDrop() calls CompleteDrop() to send the dropped data to +// CompleteDrop() calls CompleteDrop() to send the dropped data to // the RWH. At this point the drop is considered completed from this view's // point of view. // @@ -1673,7 +1682,7 @@ return; } - OnPerformDropContext drop_context = OnPerformDropContext( + OnPerformingDropContext drop_context( target_rwh, std::move(current_drag_data_), drop_metadata, std::move(data), std::move(end_drag_runner), transformed_pt, screen_pt); @@ -1696,27 +1705,27 @@ } #endif - DelegateOnPerformDrop(std::move(drop_context)); + MaybeLetDelegateProcessDrop(std::move(drop_context)); } -void WebContentsViewAura::DelegateOnPerformDrop( - OnPerformDropContext drop_context) { +void WebContentsViewAura::MaybeLetDelegateProcessDrop( + OnPerformingDropContext drop_context) { // |delegate_| may be null in unit tests. // TODO(crbug.com/1459352): Tests should use a delegate. if (delegate_) { auto* drop_data_ptr = drop_context.drop_data.get(); - delegate_->OnPerformDrop( + delegate_->OnPerformingDrop( *drop_data_ptr, base::BindOnce(&WebContentsViewAura::GotModifiedDropDataFromDelegate, weak_ptr_factory_.GetWeakPtr(), std::move(drop_context))); } else { - FinishOnPerformDrop(std::move(drop_context)); + CompleteDrop(std::move(drop_context)); } } void WebContentsViewAura::GotModifiedDropDataFromDelegate( - OnPerformDropContext drop_context, + OnPerformingDropContext drop_context, absl::optional<DropData> drop_data) { // This is possibly an async callback. Make sure the RWH is still valid. if (!drop_context.target_rwh || @@ -1742,16 +1751,7 @@ } *drop_context.drop_data = std::move(drop_data.value()); - FinishOnPerformDrop(std::move(drop_context)); -} - -void WebContentsViewAura::FinishOnPerformDrop( - OnPerformDropContext drop_context) { - const int key_modifiers = - ui::EventFlagsToWebEventModifiers(drop_context.drop_metadata.flags); - CompleteDrop(drop_context.target_rwh.get(), *drop_context.drop_data, - drop_context.transformed_pt.value(), drop_context.screen_pt, - key_modifiers); + CompleteDrop(std::move(drop_context)); } aura::client::DragDropDelegate::DropCallback @@ -1766,22 +1766,23 @@ drop_metadata); } -void WebContentsViewAura::CompleteDrop(RenderWidgetHostImpl* target_rwh, - const DropData& drop_data, - const gfx::PointF& client_pt, - const gfx::PointF& screen_pt, - int key_modifiers) { +void WebContentsViewAura::CompleteDrop(OnPerformingDropContext drop_context) { web_contents_->Focus(); - target_rwh->DragTargetDrop(drop_data, client_pt, screen_pt, key_modifiers, - base::DoNothing()); + const int key_modifiers = + ui::EventFlagsToWebEventModifiers(drop_context.drop_metadata.flags); + drop_context.target_rwh.get()->DragTargetDrop( + *drop_context.drop_data, drop_context.transformed_pt.value(), + drop_context.screen_pt, key_modifiers, base::DoNothing()); if (drag_dest_delegate_) { drag_dest_delegate_->OnDrop(); } if (!drop_callback_for_testing_.is_null()) { std::move(drop_callback_for_testing_) - .Run(target_rwh, drop_data, client_pt, screen_pt, key_modifiers, + .Run(drop_context.target_rwh.get(), *drop_context.drop_data, + drop_context.transformed_pt.value(), drop_context.screen_pt, + key_modifiers, /*drop_allowed=*/true); } } @@ -1792,6 +1793,12 @@ std::unique_ptr<ui::OSExchangeData> data, ui::mojom::DragOperation& output_drag_op, std::unique_ptr<ui::LayerTreeOwner> drag_image_layer_owner) { + // Set output_drag_op before calling on `web_contents_` below because it + // is possible for the drop to end and the member `current_drag_data_` to be + // reset. + output_drag_op = current_drag_data_ ? current_drag_data_->operation + : ui::mojom::DragOperation::kNone; + web_contents_->GetInputEventRouter() ->GetRenderWidgetHostAtPointAsynchronously( web_contents_->GetRenderViewHost()->GetWidget()->GetView(), @@ -1799,7 +1806,6 @@ base::BindOnce(&WebContentsViewAura::PerformDropCallback, weak_ptr_factory_.GetWeakPtr(), drop_metadata, std::move(data))); - output_drag_op = current_drag_op_; exit_drag.ReplaceClosure(base::DoNothing()); } @@ -1810,7 +1816,7 @@ #if BUILDFLAG(IS_WIN) void WebContentsViewAura::OnGotVirtualFilesAsTempFiles( - OnPerformDropContext drop_context, + OnPerformingDropContext drop_context, const std::vector<std::pair<base::FilePath, base::FilePath>>& filepaths_and_names) { if (!async_drop_navigation_observer_) { @@ -1865,7 +1871,7 @@ } } - DelegateOnPerformDrop(std::move(drop_context)); + MaybeLetDelegateProcessDrop(std::move(drop_context)); } #endif
diff --git a/content/browser/web_contents/web_contents_view_aura.h b/content/browser/web_contents/web_contents_view_aura.h index 73338e24..111b145 100644 --- a/content/browser/web_contents/web_contents_view_aura.h +++ b/content/browser/web_contents/web_contents_view_aura.h
@@ -102,18 +102,19 @@ // A structure used to keep drop context for asynchronously finishing a // drop operation. This is required because some drop event data gets // cleared out once PerformDropCallback() returns. - struct CONTENT_EXPORT OnPerformDropContext { - OnPerformDropContext(RenderWidgetHostImpl* target_rwh, - std::unique_ptr<DropData> drop_data, - DropMetadata drop_metadata, - std::unique_ptr<ui::OSExchangeData> data, - base::ScopedClosureRunner end_drag_runner, - absl::optional<gfx::PointF> transformed_pt, - gfx::PointF screen_pt); - OnPerformDropContext(const OnPerformDropContext& other) = delete; - OnPerformDropContext(OnPerformDropContext&& other); - OnPerformDropContext& operator=(const OnPerformDropContext& other) = delete; - ~OnPerformDropContext(); + struct CONTENT_EXPORT OnPerformingDropContext { + OnPerformingDropContext(RenderWidgetHostImpl* target_rwh, + std::unique_ptr<DropData> drop_data, + DropMetadata drop_metadata, + std::unique_ptr<ui::OSExchangeData> data, + base::ScopedClosureRunner end_drag_runner, + absl::optional<gfx::PointF> transformed_pt, + gfx::PointF screen_pt); + OnPerformingDropContext(const OnPerformingDropContext& other) = delete; + OnPerformingDropContext(OnPerformingDropContext&& other); + OnPerformingDropContext& operator=(const OnPerformingDropContext& other) = + delete; + ~OnPerformingDropContext(); base::WeakPtr<RenderWidgetHostImpl> target_rwh; std::unique_ptr<DropData> drop_data; @@ -136,8 +137,14 @@ DragDropVirtualFilesOriginateFromRenderer); FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, DragDropUrlData); FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, DragDropOnOopif); - FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, Drop_DeepScanOK); - FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, Drop_DeepScanBad); + FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, + Drop_NoDropZone_DelegateAllows); + FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, + Drop_NoDropZone_DelegateBlocks); + FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, + Drop_DropZone_DelegateAllow); + FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, + Drop_DropZone_DelegateBlocks); FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, StartDragging); FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, GetDropCallback_Run); FRIEND_TEST_ALL_PREFIXES(WebContentsViewAuraTest, GetDropCallback_Cancelled); @@ -222,7 +229,8 @@ const gfx::Rect& drag_obj_rect, const blink::mojom::DragEventSourceInfo& event_info, RenderWidgetHostImpl* source_rwh) override; - void UpdateDragCursor(ui::mojom::DragOperation operation) override; + void UpdateDragOperation(ui::mojom::DragOperation operation, + bool document_is_handling_drag) override; void GotFocus(RenderWidgetHostImpl* render_widget_host) override; void LostFocus(RenderWidgetHostImpl* render_widget_host) override; void TakeFocus(bool reverse) override; @@ -294,20 +302,15 @@ // Completes a drag exit operation by communicating with the renderer process. void CompleteDragExit(); - // Called from PerformDropCallback() to finish processing the drop. + // Called from MaybeLetDelegateProcessDrop() to finish processing the drop. // The override with `drop_data` updates `current_drag_data_` before // completing the drop. - void FinishOnPerformDrop(OnPerformDropContext drop_context); - void GotModifiedDropDataFromDelegate(OnPerformDropContext drop_context, + void GotModifiedDropDataFromDelegate(OnPerformingDropContext drop_context, absl::optional<DropData> drop_data); // Completes a drop operation by communicating the drop data to the renderer // process. - void CompleteDrop(RenderWidgetHostImpl* target_rwh, - const DropData& drop_data, - const gfx::PointF& client_pt, - const gfx::PointF& screen_pt, - int key_modifiers); + void CompleteDrop(OnPerformingDropContext drop_context); // Performs drop if it's run. Otherwise, it exits the drag. Returned by // GetDropCallback. @@ -336,7 +339,7 @@ #if BUILDFLAG(IS_WIN) // Callback for asynchronous retrieval of virtual files. void OnGotVirtualFilesAsTempFiles( - OnPerformDropContext drop_context, + OnPerformingDropContext drop_context, const std::vector<std::pair</*temp path*/ base::FilePath, /*display name*/ base::FilePath>>& filepaths_and_names); @@ -349,9 +352,9 @@ #endif DropCallbackForTesting drop_callback_for_testing_; - // Calls the delegate's OnPerformDrop() if a delegate is present, otherwise - // finishes performing the drop by calling FinishOnPerformDrop(). - void DelegateOnPerformDrop(OnPerformDropContext drop_context); + // Calls the delegate's OnPerformingDrop() if a delegate is present, otherwise + // finishes performing the drop by calling FinishOnPerformingDrop(). + void MaybeLetDelegateProcessDrop(OnPerformingDropContext drop_context); // If this callback is initialized it must be run after the drop operation is // done to send dragend event in EndDrag function. @@ -366,7 +369,7 @@ std::unique_ptr<WebContentsViewDelegate> delegate_; - ui::mojom::DragOperation current_drag_op_; + ui::mojom::DragOperation current_drag_op_ = ui::mojom::DragOperation::kNone; // This member holds the dropped data from the drag enter phase to the end // of the drop. A drop may end if the user releases the mouse button over
diff --git a/content/browser/web_contents/web_contents_view_aura_browsertest.cc b/content/browser/web_contents/web_contents_view_aura_browsertest.cc index 936294a4..f713b17 100644 --- a/content/browser/web_contents/web_contents_view_aura_browsertest.cc +++ b/content/browser/web_contents/web_contents_view_aura_browsertest.cc
@@ -76,21 +76,31 @@ public: TestWebContentsViewDelegate(bool allow_drop) : allow_drop_(allow_drop) {} - void OnPerformDrop(const DropData& drop_data, - DropCompletionCallback callback) override { - if (allow_drop_) + void OnPerformingDrop(const DropData& drop_data, + DropCompletionCallback callback) override { + if (allow_drop_) { drop_callback_ = base::BindOnce(std::move(callback), drop_data); - else + } else { drop_callback_ = base::BindOnce(std::move(callback), absl::nullopt); + } + + renderer_told_to_force_default_action_ = + !drop_data.document_is_handling_drag; } - void FinishScan() { - if (!drop_callback_.is_null()) + void FinishOnPerformingDrop() { + if (drop_callback_) { std::move(drop_callback_).Run(); + } + } + + bool IsRendererToldToForceDefaultAction() { + return renderer_told_to_force_default_action_; } private: bool allow_drop_; + bool renderer_told_to_force_default_action_ = false; base::OnceClosure drop_callback_; }; @@ -130,6 +140,50 @@ switches::kTouchEventFeatureDetectionEnabled); } + WebContentsImpl* GetWebContentsImpl() { + return static_cast<WebContentsImpl*>(shell()->web_contents()); + } + + WebContentsViewAura* GetWebContentsViewAura() { + WebContentsImpl* contents = GetWebContentsImpl(); + return static_cast<WebContentsViewAura*>(contents->GetView()); + } + + TestWebContentsViewDelegate* PrepareWebContentsViewForDropTest( + bool delegate_allows_drop) { + WebContentsViewAura* view = GetWebContentsViewAura(); + + drag_dest_delegate_.Reset(); + view->SetDragDestDelegateForTesting(&drag_dest_delegate_); + + auto delegate = std::make_unique<TestWebContentsViewDelegate>( + /*allow_drop=*/delegate_allows_drop); + TestWebContentsViewDelegate* delegate_ptr = delegate.get(); + view->SetDelegateForTesting(std::move(delegate)); + view->RegisterDropCallbackForTesting(base::BindOnce( + &WebContentsViewAuraTest::OnDropComplete, base::Unretained(this))); + + return delegate_ptr; + } + + void SimulateDragEnterAndDrop(bool document_is_handling_drag) { + WebContentsViewAura* view = GetWebContentsViewAura(); + std::unique_ptr<ui::OSExchangeData> data = + std::make_unique<ui::OSExchangeData>(); + gfx::PointF point = {10, 10}; + ui::DropTargetEvent event(*data.get(), point, point, + ui::DragDropTypes::DRAG_COPY); + view->OnDragEntered(event); + view->UpdateDragOperation(ui::mojom::DragOperation::kCopy, + document_is_handling_drag); + EXPECT_TRUE(drag_dest_delegate_.GetDragInitializeCalled()); + auto drop_cb = view->GetDropCallback(event); + ASSERT_TRUE(drop_cb); + ui::mojom::DragOperation output_drag_op = ui::mojom::DragOperation::kNone; + std::move(drop_cb).Run(std::move(data), output_drag_op, + /*drag_image_layer_owner=*/nullptr); + } + void OnDropComplete(RenderWidgetHostImpl* target_rwh, const DropData& drop_data, const gfx::PointF& client_pt, @@ -143,8 +197,7 @@ void TestOverscrollNavigation(bool touch_handler) { ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/overscroll_navigation.html")); - WebContentsImpl* web_contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); + WebContentsImpl* web_contents = GetWebContentsImpl(); NavigationController& controller = web_contents->GetController(); RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); @@ -214,8 +267,7 @@ } int GetCurrentIndex() { - WebContentsImpl* web_contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); + WebContentsImpl* web_contents = GetWebContentsImpl(); RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); return EvalJs(main_frame, "get_current()").ExtractInt(); } @@ -258,18 +310,18 @@ } void OnDragOver() override {} void OnDragEnter() override {} - void OnDrop() override { on_drop_called_ = true; } + void OnDrop() override { ++on_drop_called_count_; } void OnDragLeave() override { on_drag_leave_called_ = true; } void OnReceiveDragData(const ui::OSExchangeData& data) override {} void Reset() { drag_initialize_called_ = false; } bool GetDragInitializeCalled() { return drag_initialize_called_; } - bool GetOnDropCalled() { return on_drop_called_; } + int GetOnDropCalledCount() { return on_drop_called_count_; } bool GetOnDragLeaveCalled() { return on_drag_leave_called_; } private: bool drag_initialize_called_ = false; - bool on_drop_called_ = false; + int on_drop_called_count_ = 0; bool on_drag_leave_called_ = false; }; @@ -360,8 +412,7 @@ IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, DISABLED_OverscrollNotInterruptedBySpuriousMouseEvents) { ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/overscroll_navigation.html")); - WebContentsImpl* web_contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); + WebContentsImpl* web_contents = GetWebContentsImpl(); NavigationController& controller = web_contents->GetController(); RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); @@ -433,8 +484,7 @@ IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, MAYBE_QuickOverscrollDirectionChange) { ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/overscroll_navigation.html")); - WebContentsImpl* web_contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); + WebContentsImpl* web_contents = GetWebContentsImpl(); RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); // This test triggers a large number of animations. Speed them up to ensure @@ -525,8 +575,7 @@ std::unique_ptr<aura::Window> window(new aura::Window(nullptr)); window->Init(ui::LAYER_NOT_DRAWN); - WebContentsImpl* web_contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); + WebContentsImpl* web_contents = GetWebContentsImpl(); ASSERT_TRUE( content::ExecJs(web_contents->GetPrimaryMainFrame(), "navigate_next()")); EXPECT_EQ(1, GetCurrentIndex()); @@ -548,10 +597,8 @@ "a.com", "/overlapping_cross_site_iframe.html"); EXPECT_TRUE(NavigateToURL(shell(), url)); - WebContentsImpl* contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); - WebContentsViewAura* view = - static_cast<WebContentsViewAura*>(contents->GetView()); + WebContentsImpl* contents = GetWebContentsImpl(); + WebContentsViewAura* view = GetWebContentsViewAura(); view->SetDragDestDelegateForTesting(&drag_dest_delegate_); @@ -623,131 +670,94 @@ } } -IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, Drop_DeepScanOK) { +// When the user drops data onto a web page that does not handle drops and the +// web view delegate allows it, the renderer sees this as a "drop" and not a +// "drag leave". +IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, + Drop_NoDropZone_DelegateAllows) { StartTestWithPage("/simple_page.html"); - WebContentsImpl* contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); - WebContentsViewAura* view = - static_cast<WebContentsViewAura*>(contents->GetView()); - drag_dest_delegate_.Reset(); - view->SetDragDestDelegateForTesting(&drag_dest_delegate_); - - auto delegate = - std::make_unique<TestWebContentsViewDelegate>(/*allow_drop*/ true); - TestWebContentsViewDelegate* delegate_ptr = delegate.get(); - view->SetDelegateForTesting(std::move(delegate)); - - std::unique_ptr<ui::OSExchangeData> data = - std::make_unique<ui::OSExchangeData>(); - view->RegisterDropCallbackForTesting(base::BindOnce( - &WebContentsViewAuraTest::OnDropComplete, base::Unretained(this))); base::RunLoop run_loop; async_drop_closure_ = run_loop.QuitClosure(); - gfx::PointF point = {10, 10}; - ui::DropTargetEvent event(*data.get(), point, point, - ui::DragDropTypes::DRAG_COPY); - view->OnDragEntered(event); - EXPECT_TRUE(drag_dest_delegate_.GetDragInitializeCalled()); - auto drop_cb = view->GetDropCallback(event); - ASSERT_TRUE(drop_cb); - ui::mojom::DragOperation output_drag_op = ui::mojom::DragOperation::kNone; - std::move(drop_cb).Run(std::move(data), output_drag_op, - /*drag_image_layer_owner=*/nullptr); + TestWebContentsViewDelegate* delegate = + PrepareWebContentsViewForDropTest(/*delegate_allows_drop=*/true); + SimulateDragEnterAndDrop(/*document_is_handling_drag=*/false); + delegate->FinishOnPerformingDrop(); - // The user should be able to drag other content over Chrome while the scan is - // occurring without affecting it. - contents->SetIgnoreInputEvents(true); - - // The user can drag something in and then drag it away. - auto new_data = std::make_unique<ui::OSExchangeData>(); - ui::DropTargetEvent new_event(*new_data.get(), point, point, - ui::DragDropTypes::DRAG_COPY); - view->OnDragEntered(new_event); - view->OnDragExited(); - EXPECT_FALSE(drag_dest_delegate_.GetOnDragLeaveCalled()); - - // The user can drag something in and drop it. - view->OnDragEntered(new_event); - drop_cb = view->GetDropCallback(new_event); - output_drag_op = ui::mojom::DragOperation::kNone; - std::move(drop_cb).Run(std::move(new_data), output_drag_op, - /*drag_image_layer_owner=*/nullptr); - EXPECT_FALSE(drag_dest_delegate_.GetOnDropCalled()); - - delegate_ptr->FinishScan(); run_loop.Run(); - EXPECT_TRUE(drag_dest_delegate_.GetOnDropCalled()); + EXPECT_TRUE(delegate->IsRendererToldToForceDefaultAction()); + EXPECT_EQ(1, drag_dest_delegate_.GetOnDropCalledCount()); EXPECT_FALSE(drag_dest_delegate_.GetOnDragLeaveCalled()); } -IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, Drop_DeepScanBad) { +// When the user drops data onto a web page that does not handle drops and the +// web view delegate blocks it, the renderer sees this as a "drag leave" and not +// a "drop". +IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, + Drop_NoDropZone_DelegateBlocks) { StartTestWithPage("/simple_page.html"); - WebContentsImpl* contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); - WebContentsViewAura* view = - static_cast<WebContentsViewAura*>(contents->GetView()); - drag_dest_delegate_.Reset(); - view->SetDragDestDelegateForTesting(&drag_dest_delegate_); - - auto delegate = - std::make_unique<TestWebContentsViewDelegate>(/*allow_drop*/ false); - TestWebContentsViewDelegate* delegate_ptr = delegate.get(); - view->SetDelegateForTesting(std::move(delegate)); - - std::unique_ptr<ui::OSExchangeData> data = - std::make_unique<ui::OSExchangeData>(); - view->RegisterDropCallbackForTesting(base::BindOnce( - &WebContentsViewAuraTest::OnDropComplete, base::Unretained(this))); base::RunLoop run_loop; async_drop_closure_ = run_loop.QuitClosure(); - gfx::PointF point = {10, 10}; - ui::DropTargetEvent event(*data.get(), point, point, - ui::DragDropTypes::DRAG_COPY); - view->OnDragEntered(event); - EXPECT_TRUE(drag_dest_delegate_.GetDragInitializeCalled()); - auto drop_cb = view->GetDropCallback(event); - ASSERT_TRUE(drop_cb); - ui::mojom::DragOperation output_drag_op = ui::mojom::DragOperation::kNone; - std::move(drop_cb).Run(std::move(data), output_drag_op, - /*drag_image_layer_owner=*/nullptr); + TestWebContentsViewDelegate* delegate = + PrepareWebContentsViewForDropTest(/*delegate_allows_drop=*/false); + SimulateDragEnterAndDrop(/*document_is_handling_drag=*/false); + delegate->FinishOnPerformingDrop(); - // The user should be able to drag other content over Chrome while the scan is - // occurring without affecting it. - contents->SetIgnoreInputEvents(true); - - // The user can drag something in and then drag it away. - auto new_data = std::make_unique<ui::OSExchangeData>(); - ui::DropTargetEvent new_event(*new_data.get(), point, point, - ui::DragDropTypes::DRAG_COPY); - view->OnDragEntered(new_event); - view->OnDragExited(); - EXPECT_FALSE(drag_dest_delegate_.GetOnDragLeaveCalled()); - - // The user can drag something in and drop it. - view->OnDragEntered(new_event); - drop_cb = view->GetDropCallback(new_event); - output_drag_op = ui::mojom::DragOperation::kNone; - std::move(drop_cb).Run(std::move(new_data), output_drag_op, - /*drag_image_layer_owner=*/nullptr); - EXPECT_FALSE(drag_dest_delegate_.GetOnDropCalled()); - - delegate_ptr->FinishScan(); run_loop.Run(); - EXPECT_FALSE(drag_dest_delegate_.GetOnDropCalled()); + EXPECT_EQ(0, drag_dest_delegate_.GetOnDropCalledCount()); + EXPECT_TRUE(drag_dest_delegate_.GetOnDragLeaveCalled()); +} + +// When the user drops data onto a web page that handles drops and the web view +// delegate allows it, the renderer sees this as a "drop" and not a "drag +// leave". +IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, Drop_DropZone_DelegateAllow) { + StartTestWithPage("/accept-drop.html"); + + base::RunLoop run_loop; + async_drop_closure_ = run_loop.QuitClosure(); + + TestWebContentsViewDelegate* delegate = + PrepareWebContentsViewForDropTest(/*delegate_allows_drop=*/true); + SimulateDragEnterAndDrop(/*document_is_handling_drag=*/true); + delegate->FinishOnPerformingDrop(); + + run_loop.Run(); + + EXPECT_FALSE(delegate->IsRendererToldToForceDefaultAction()); + EXPECT_EQ(1, drag_dest_delegate_.GetOnDropCalledCount()); + EXPECT_FALSE(drag_dest_delegate_.GetOnDragLeaveCalled()); +} + +// When the user drops data onto a web page that handles drops and the web view +// delegate blocks it, the renderer sees this as a "drag leave" and not a +// "drop". +IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, Drop_DropZone_DelegateBlocks) { + StartTestWithPage("/accept-drop.html"); + + base::RunLoop run_loop; + async_drop_closure_ = run_loop.QuitClosure(); + + TestWebContentsViewDelegate* delegate = + PrepareWebContentsViewForDropTest(/*delegate_allows_drop=*/false); + SimulateDragEnterAndDrop(/*document_is_handling_drag=*/true); + delegate->FinishOnPerformingDrop(); + + run_loop.Run(); + + EXPECT_EQ(0, drag_dest_delegate_.GetOnDropCalledCount()); EXPECT_TRUE(drag_dest_delegate_.GetOnDragLeaveCalled()); } IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, ContentWindowClose) { ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/overscroll_navigation.html")); - WebContentsImpl* web_contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); + WebContentsImpl* web_contents = GetWebContentsImpl(); ASSERT_TRUE( content::ExecJs(web_contents->GetPrimaryMainFrame(), "navigate_next()")); EXPECT_EQ(1, GetCurrentIndex()); @@ -780,8 +790,7 @@ MAYBE_RepeatedQuickOverscrollGestures) { ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/overscroll_navigation.html")); - WebContentsImpl* web_contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); + WebContentsImpl* web_contents = GetWebContentsImpl(); NavigationController& controller = web_contents->GetController(); RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); ASSERT_TRUE(content::ExecJs(main_frame, "install_touch_handler()")); @@ -845,10 +854,8 @@ IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, RenderViewHostChanged) { ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/overscroll_navigation.html")); - WebContentsImpl* contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); - WebContentsViewAura* view = - static_cast<WebContentsViewAura*>(contents->GetView()); + WebContentsImpl* contents = GetWebContentsImpl(); + WebContentsViewAura* view = GetWebContentsViewAura(); OverscrollWebContentsDelegate delegate; contents->SetDelegate(&delegate); @@ -897,8 +904,7 @@ MAYBE_OverscrollNavigationTouchThrottling) { ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/overscroll_navigation.html")); - WebContentsImpl* web_contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); + WebContentsImpl* web_contents = GetWebContentsImpl(); aura::Window* content = web_contents->GetContentNativeView(); gfx::Rect bounds = content->GetBoundsInRootWindow(); const int dx = 20; @@ -993,10 +999,8 @@ // Tests that running the drop callback will perform drop. IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, GetDropCallback_Run) { StartTestWithPage("/simple_page.html"); - WebContentsImpl* contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); - WebContentsViewAura* view = - static_cast<WebContentsViewAura*>(contents->GetView()); + WebContentsImpl* contents = GetWebContentsImpl(); + WebContentsViewAura* view = GetWebContentsViewAura(); view->SetDragDestDelegateForTesting(&drag_dest_delegate_); @@ -1020,7 +1024,7 @@ run_loop.Run(); - EXPECT_TRUE(drag_dest_delegate_.GetOnDropCalled()); + EXPECT_EQ(1, drag_dest_delegate_.GetOnDropCalledCount()); EXPECT_FALSE(drag_dest_delegate_.GetOnDragLeaveCalled()); EXPECT_EQ(drop_target_widget_, RenderWidgetHostImpl::From(contents->GetPrimaryFrameTree() @@ -1033,10 +1037,7 @@ // the drag insead. IN_PROC_BROWSER_TEST_F(WebContentsViewAuraTest, GetDropCallback_Cancelled) { StartTestWithPage("/simple_page.html"); - WebContentsImpl* contents = - static_cast<WebContentsImpl*>(shell()->web_contents()); - WebContentsViewAura* view = - static_cast<WebContentsViewAura*>(contents->GetView()); + WebContentsViewAura* view = GetWebContentsViewAura(); view->SetDragDestDelegateForTesting(&drag_dest_delegate_); @@ -1054,7 +1055,7 @@ ASSERT_TRUE(drop_cb); drop_cb.Reset(); - EXPECT_FALSE(drag_dest_delegate_.GetOnDropCalled()); + EXPECT_EQ(0, drag_dest_delegate_.GetOnDropCalledCount()); EXPECT_TRUE(drag_dest_delegate_.GetOnDragLeaveCalled()); }
diff --git a/content/browser/web_contents/web_contents_view_child_frame.cc b/content/browser/web_contents/web_contents_view_child_frame.cc index 456497b..e2da4dc9 100644 --- a/content/browser/web_contents/web_contents_view_child_frame.cc +++ b/content/browser/web_contents/web_contents_view_child_frame.cc
@@ -157,10 +157,12 @@ NOTREACHED(); } -void WebContentsViewChildFrame::UpdateDragCursor( - ui::mojom::DragOperation operation) { - if (auto* view = GetOuterDelegateView()) - view->UpdateDragCursor(operation); +void WebContentsViewChildFrame::UpdateDragOperation( + ui::mojom::DragOperation operation, + bool document_is_handling_drag) { + if (auto* view = GetOuterDelegateView()) { + view->UpdateDragOperation(operation, document_is_handling_drag); + } } void WebContentsViewChildFrame::GotFocus(
diff --git a/content/browser/web_contents/web_contents_view_child_frame.h b/content/browser/web_contents/web_contents_view_child_frame.h index 6732193..66a79f7c2 100644 --- a/content/browser/web_contents/web_contents_view_child_frame.h +++ b/content/browser/web_contents/web_contents_view_child_frame.h
@@ -73,7 +73,8 @@ const gfx::Rect& drag_obj_rect, const blink::mojom::DragEventSourceInfo& event_info, RenderWidgetHostImpl* source_rwh) override; - void UpdateDragCursor(ui::mojom::DragOperation operation) override; + void UpdateDragOperation(ui::mojom::DragOperation operation, + bool document_is_handling_drag) override; void GotFocus(RenderWidgetHostImpl* render_widget_host) override; void TakeFocus(bool reverse) override; #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU)
diff --git a/content/browser/web_contents/web_contents_view_mac.h b/content/browser/web_contents/web_contents_view_mac.h index ae907746..7e3455f 100644 --- a/content/browser/web_contents/web_contents_view_mac.h +++ b/content/browser/web_contents/web_contents_view_mac.h
@@ -101,7 +101,8 @@ const gfx::Rect& drag_obj_rect, const blink::mojom::DragEventSourceInfo& event_info, RenderWidgetHostImpl* source_rwh) override; - void UpdateDragCursor(ui::mojom::DragOperation operation) override; + void UpdateDragOperation(ui::mojom::DragOperation operation, + bool document_is_handling_drag) override; void GotFocus(RenderWidgetHostImpl* render_widget_host) override; void LostFocus(RenderWidgetHostImpl* render_widget_host) override; void TakeFocus(bool reverse) override;
diff --git a/content/browser/web_contents/web_contents_view_mac.mm b/content/browser/web_contents/web_contents_view_mac.mm index c7456e8..069c9371 100644 --- a/content/browser/web_contents/web_contents_view_mac.mm +++ b/content/browser/web_contents/web_contents_view_mac.mm
@@ -249,8 +249,10 @@ NOTIMPLEMENTED(); } -void WebContentsViewMac::UpdateDragCursor(ui::mojom::DragOperation operation) { - [drag_dest_ setCurrentOperation:static_cast<NSDragOperation>(operation)]; +void WebContentsViewMac::UpdateDragOperation(ui::mojom::DragOperation operation, + bool document_is_handling_drag) { + [drag_dest_ setCurrentOperation:operation + documentIsHandlingDrag:document_is_handling_drag]; } void WebContentsViewMac::GotFocus(RenderWidgetHostImpl* render_widget_host) {
diff --git a/content/browser/web_contents/web_drag_dest_mac.h b/content/browser/web_contents/web_drag_dest_mac.h index 673c202..3297b40 100644 --- a/content/browser/web_contents/web_drag_dest_mac.h +++ b/content/browser/web_contents/web_drag_dest_mac.h
@@ -10,6 +10,7 @@ #include "content/common/content_export.h" #include "content/public/browser/global_routing_id.h" #include "content/public/common/drop_data.h" +#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h" #include "ui/gfx/geometry/point_f.h" namespace content { @@ -74,7 +75,11 @@ // Sets the current operation negotiated by the source and destination, // which determines whether or not we should allow the drop. Takes effect the // next time |-draggingUpdated:| is called. -- (void)setCurrentOperation:(NSDragOperation)operation; +// +// See mojo method FrameWidget::DragTargetDragEnter() for a discussion of +// |operation| and |documentOperation|. +- (void)setCurrentOperation:(ui::mojom::DragOperation)operation + documentIsHandlingDrag:(bool)documentIsHandlingDrag; // Messages to send during the tracking of a drag, usually upon receiving // calls from the view system. Communicates the drag messages to WebCore.
diff --git a/content/browser/web_contents/web_drag_dest_mac.mm b/content/browser/web_contents/web_drag_dest_mac.mm index 808e3103..9c49e73 100644 --- a/content/browser/web_contents/web_drag_dest_mac.mm +++ b/content/browser/web_contents/web_drag_dest_mac.mm
@@ -109,10 +109,6 @@ // Delegate; weak. raw_ptr<content::WebDragDestDelegate, DanglingUntriaged> _delegate; - // Updated asynchronously during a drag to tell us whether or not we should - // allow the drop. - NSDragOperation _currentOperation; - // Tracks the current RenderWidgetHost we're dragging over. base::WeakPtr<content::RenderWidgetHostImpl> _currentRWHForDrag; @@ -164,8 +160,16 @@ // Call to set whether or not we should allow the drop. Takes effect the // next time |-draggingUpdated:| is called. -- (void)setCurrentOperation:(NSDragOperation)operation { - _currentOperation = operation; +- (void)setCurrentOperation:(ui::mojom::DragOperation)operation + documentIsHandlingDrag:(bool)documentIsHandlingDrag { + if (_dropDataUnfiltered) { + _dropDataUnfiltered->operation = operation; + _dropDataUnfiltered->document_is_handling_drag = documentIsHandlingDrag; + } + if (_dropDataFiltered) { + _dropDataFiltered->operation = operation; + _dropDataFiltered->document_is_handling_drag = documentIsHandlingDrag; + } } // Given a point in window coordinates and a view in that window, return a @@ -253,8 +257,9 @@ // We won't know the true operation (whether the drag is allowed) until we // hear back from the renderer. For now, be optimistic: - _currentOperation = NSDragOperationCopy; - return _currentOperation; + _dropDataUnfiltered->operation = ui::mojom::DragOperation::kCopy; + _dropDataUnfiltered->document_is_handling_drag = true; + return static_cast<NSDragOperation>(_dropDataUnfiltered->operation); } - (void)draggingExited { @@ -336,7 +341,7 @@ if (_delegate) _delegate->OnDragOver(); - return _currentOperation; + return static_cast<NSDragOperation>(_dropDataUnfiltered->operation); } - (BOOL)performDragOperation:(const DraggingInfo*)info @@ -371,7 +376,7 @@ /*target_rwh=*/targetRWH->GetWeakPtr()); // Use a separate variable since `context` is about to move. content::DropData drop_data = context.drop_data; - webContentsViewDelegate->OnPerformDrop( + webContentsViewDelegate->OnPerformingDrop( std::move(drop_data), base::BindOnce(&DropCompletionCallback, self, std::move(context))); } else {
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn index 9c9f6d5..927b99e 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn
@@ -131,6 +131,8 @@ "input/synthetic_smooth_scroll_gesture_params.h", "input/synthetic_tap_gesture_params.cc", "input/synthetic_tap_gesture_params.h", + "input/tap_suppression_controller.cc", + "input/tap_suppression_controller.h", "input/touch_event_stream_validator.cc", "input/touch_event_stream_validator.h", "input/web_touch_event_traits.cc",
diff --git a/content/common/input/event_with_latency_info.h b/content/common/input/event_with_latency_info.h index e512d34..6cf39d58 100644 --- a/content/common/input/event_with_latency_info.h +++ b/content/common/input/event_with_latency_info.h
@@ -6,6 +6,7 @@ #define CONTENT_COMMON_INPUT_EVENT_WITH_LATENCY_INFO_H_ #include "base/check_op.h" +#include "content/public/common/input/native_web_keyboard_event.h" #include "third_party/blink/public/common/input/web_gesture_event.h" #include "third_party/blink/public/common/input/web_mouse_wheel_event.h" #include "third_party/blink/public/common/input/web_touch_event.h" @@ -69,6 +70,9 @@ typedef EventWithLatencyInfo<blink::WebTouchEvent> TouchEventWithLatencyInfo; +typedef EventWithLatencyInfo<NativeWebKeyboardEvent> + NativeWebKeyboardEventWithLatencyInfo; + } // namespace content #endif // CONTENT_COMMON_INPUT_EVENT_WITH_LATENCY_INFO_H_
diff --git a/content/browser/renderer_host/input/tap_suppression_controller.cc b/content/common/input/tap_suppression_controller.cc similarity index 92% rename from content/browser/renderer_host/input/tap_suppression_controller.cc rename to content/common/input/tap_suppression_controller.cc index a41f601..2c3f3777 100644 --- a/content/browser/renderer_host/input/tap_suppression_controller.cc +++ b/content/common/input/tap_suppression_controller.cc
@@ -2,11 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/renderer_host/input/tap_suppression_controller.h" +#include "content/common/input/tap_suppression_controller.h" #include "base/notreached.h" #include "base/trace_event/trace_event.h" -#include "ui/events/gesture_detection/gesture_configuration.h" namespace content {
diff --git a/content/browser/renderer_host/input/tap_suppression_controller.h b/content/common/input/tap_suppression_controller.h similarity index 91% rename from content/browser/renderer_host/input/tap_suppression_controller.h rename to content/common/input/tap_suppression_controller.h index a7569e4..df821f69 100644 --- a/content/browser/renderer_host/input/tap_suppression_controller.h +++ b/content/common/input/tap_suppression_controller.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_TAP_SUPPRESSION_CONTROLLER_H_ -#define CONTENT_BROWSER_RENDERER_HOST_INPUT_TAP_SUPPRESSION_CONTROLLER_H_ +#ifndef CONTENT_COMMON_INPUT_TAP_SUPPRESSION_CONTROLLER_H_ +#define CONTENT_COMMON_INPUT_TAP_SUPPRESSION_CONTROLLER_H_ #include "base/time/time.h" #include "base/timer/timer.h" @@ -50,6 +50,7 @@ protected: virtual base::TimeTicks Now(); + private: friend class MockTapSuppressionController; @@ -76,4 +77,4 @@ } // namespace content -#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_TAP_SUPPRESSION_CONTROLLER_H_ +#endif // CONTENT_COMMON_INPUT_TAP_SUPPRESSION_CONTROLLER_H_
diff --git a/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc b/content/common/input/tap_suppression_controller_unittest.cc similarity index 97% rename from content/browser/renderer_host/input/tap_suppression_controller_unittest.cc rename to content/common/input/tap_suppression_controller_unittest.cc index 712e191..a89e7fe 100644 --- a/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc +++ b/content/common/input/tap_suppression_controller_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/renderer_host/input/tap_suppression_controller.h" +#include "content/common/input/tap_suppression_controller.h" #include <memory> @@ -14,8 +14,8 @@ class MockTapSuppressionController : public TapSuppressionController { public: using TapSuppressionController::DISABLED; - using TapSuppressionController::NOTHING; using TapSuppressionController::LAST_CANCEL_STOPPED_FLING; + using TapSuppressionController::NOTHING; using TapSuppressionController::SUPPRESSING_TAPS; enum Action { @@ -42,18 +42,20 @@ void SendTapDown() { last_actions_ = NONE; - if (ShouldSuppressTapDown()) + if (ShouldSuppressTapDown()) { last_actions_ |= TAP_DOWN_SUPPRESSED; - else + } else { last_actions_ |= TAP_DOWN_FORWARDED; + } } void SendTapUp() { last_actions_ = NONE; - if (ShouldSuppressTapEnd()) + if (ShouldSuppressTapEnd()) { last_actions_ |= TAP_UP_SUPPRESSED; - else + } else { last_actions_ |= TAP_UP_FORWARDED; + } } void AdvanceTime(const base::TimeDelta& delta) { @@ -68,9 +70,7 @@ protected: base::TimeTicks Now() override { return time_; } - private: - // Hiding some derived public methods using TapSuppressionController::GestureFlingCancelStoppedFling; using TapSuppressionController::ShouldSuppressTapDown; @@ -83,8 +83,7 @@ class TapSuppressionControllerTest : public testing::Test { public: - TapSuppressionControllerTest() { - } + TapSuppressionControllerTest() {} ~TapSuppressionControllerTest() override {} protected:
diff --git a/content/common/service_worker/race_network_request_url_loader_client.cc b/content/common/service_worker/race_network_request_url_loader_client.cc index 5266374..c2841a2 100644 --- a/content/common/service_worker/race_network_request_url_loader_client.cc +++ b/content/common/service_worker/race_network_request_url_loader_client.cc
@@ -16,6 +16,7 @@ #include "content/public/common/content_features.h" #include "mojo/public/c/system/data_pipe.h" #include "net/http/http_status_code.h" +#include "services/network/public/cpp/features.h" #include "services/network/public/cpp/record_ontransfersizeupdate_utils.h" #include "third_party/blink/public/mojom/loader/resource_load_info.mojom-shared.h" @@ -40,12 +41,15 @@ } } // namespace +uint32_t + ServiceWorkerRaceNetworkRequestURLLoaderClient::data_pipe_size_for_test_ = + 0; + ServiceWorkerRaceNetworkRequestURLLoaderClient:: ServiceWorkerRaceNetworkRequestURLLoaderClient( const network::ResourceRequest& request, base::WeakPtr<ServiceWorkerResourceLoader> owner, - mojo::PendingRemote<network::mojom::URLLoaderClient> forwarding_client, - uint32_t data_pipe_capacity_num_bytes) + mojo::PendingRemote<network::mojom::URLLoaderClient> forwarding_client) : request_(request), owner_(std::move(owner)), forwarding_client_(std::move(forwarding_client)), @@ -58,10 +62,9 @@ "ServiceWorkerRaceNetworkRequestURLLoaderClient::" "ServiceWorkerRaceNetworkRequestURLLoaderClient", TRACE_ID_LOCAL(this), TRACE_EVENT_FLAG_FLOW_OUT); - // The feature param may override the buffer size. - uint32_t data_pipe_size = base::GetFieldTrialParamByFeatureAsInt( - features::kServiceWorkerBypassFetchHandler, - "data_pipe_capacity_num_bytes", data_pipe_capacity_num_bytes); + + uint32_t data_pipe_size = ServiceWorkerRaceNetworkRequestURLLoaderClient:: + GetDataPipeCapacityBytes(); // Create two data pipes. One is for RaceNetworkRequest. The other is for the // corresponding request in the fetch handler. if (CreateDataPipe(data_pipe_for_race_network_request_.producer, @@ -754,4 +757,19 @@ "policies (or a combination of both) limits the scope of these requests." )"); } + +uint32_t +ServiceWorkerRaceNetworkRequestURLLoaderClient::GetDataPipeCapacityBytes() { + return data_pipe_size_for_test_ > 0 + ? data_pipe_size_for_test_ + : network::features::GetDataPipeDefaultAllocationSize( + network::features::DataPipeAllocationSize:: + kLargerSizeIfPossible); +} + +// static +void ServiceWorkerRaceNetworkRequestURLLoaderClient:: + SetDataPipeCapacityBytesForTest(uint32_t size) { + data_pipe_size_for_test_ = size; +} } // namespace content
diff --git a/content/common/service_worker/race_network_request_url_loader_client.h b/content/common/service_worker/race_network_request_url_loader_client.h index 1d7cbd39..d6fc298 100644 --- a/content/common/service_worker/race_network_request_url_loader_client.h +++ b/content/common/service_worker/race_network_request_url_loader_client.h
@@ -30,6 +30,9 @@ : public network::mojom::URLLoaderClient, public mojo::DataPipeDrainer::Client { public: + // The static function to override the data pipe buffer size from tests. + static void SetDataPipeCapacityBytesForTest(uint32_t size); + using FetchResponseFrom = ServiceWorkerResourceLoader::FetchResponseFrom; enum class State { // The initial state. @@ -99,13 +102,10 @@ kMaxValue = MOJO_RESULT_SHOULD_WAIT, }; - // |data_pipe_capacity_num_bytes| indicates the byte size of the data pipe - // which is newly created in the constructor. ServiceWorkerRaceNetworkRequestURLLoaderClient( const network::ResourceRequest& request, base::WeakPtr<ServiceWorkerResourceLoader> owner, - mojo::PendingRemote<network::mojom::URLLoaderClient> forwarding_client, - uint32_t data_pipe_capacity_num_bytes); + mojo::PendingRemote<network::mojom::URLLoaderClient> forwarding_client); ServiceWorkerRaceNetworkRequestURLLoaderClient( const ServiceWorkerRaceNetworkRequestURLLoaderClient&) = delete; ServiceWorkerRaceNetworkRequestURLLoaderClient& operator=( @@ -147,6 +147,9 @@ bool is_fallback); private: + static uint32_t data_pipe_size_for_test_; + uint32_t GetDataPipeCapacityBytes(); + struct DataPipeInfo { mojo::ScopedDataPipeProducerHandle producer; mojo::ScopedDataPipeConsumerHandle consumer;
diff --git a/content/common/service_worker/race_network_request_url_loader_client_unittest.cc b/content/common/service_worker/race_network_request_url_loader_client_unittest.cc index 0e404088..d74b7262 100644 --- a/content/common/service_worker/race_network_request_url_loader_client_unittest.cc +++ b/content/common/service_worker/race_network_request_url_loader_client_unittest.cc
@@ -255,11 +255,12 @@ } void SetUpURLLoaderClient(uint32_t data_pipe_capacity_num_bytes) { + ServiceWorkerRaceNetworkRequestURLLoaderClient:: + SetDataPipeCapacityBytesForTest(data_pipe_capacity_num_bytes); mojo::PendingRemote<network::mojom::URLLoaderClient> forwarding_client; client_for_fetch_handler_->Bind(&forwarding_client); client_ = std::make_unique<ServiceWorkerRaceNetworkRequestURLLoaderClient>( - *CreateRequest(), owner_->GetWeakPtr(), std::move(forwarding_client), - data_pipe_capacity_num_bytes); + *CreateRequest(), owner_->GetWeakPtr(), std::move(forwarding_client)); EXPECT_EQ( client_->state(), ServiceWorkerRaceNetworkRequestURLLoaderClient::State::kWaitForBody);
diff --git a/content/public/browser/render_widget_host.h b/content/public/browser/render_widget_host.h index d5e52cc..110ed030 100644 --- a/content/public/browser/render_widget_host.h +++ b/content/public/browser/render_widget_host.h
@@ -283,7 +283,7 @@ virtual void WriteIntoTrace(perfetto::TracedValue context) = 0; using DragOperationCallback = - base::OnceCallback<void(::ui::mojom::DragOperation)>; + base::OnceCallback<void(::ui::mojom::DragOperation, bool)>; // Drag-and-drop drop target messages that get sent to Blink. virtual void DragTargetDragEnter(const DropData& drop_data, const gfx::PointF& client_pt,
diff --git a/content/public/browser/web_contents_view_delegate.cc b/content/public/browser/web_contents_view_delegate.cc index 7ffa962..04b00d1 100644 --- a/content/public/browser/web_contents_view_delegate.cc +++ b/content/public/browser/web_contents_view_delegate.cc
@@ -59,8 +59,9 @@ return nullptr; } -void WebContentsViewDelegate::OnPerformDrop(const DropData& drop_data, - DropCompletionCallback callback) { +void WebContentsViewDelegate::OnPerformingDrop( + const DropData& drop_data, + DropCompletionCallback callback) { return std::move(callback).Run(drop_data); }
diff --git a/content/public/browser/web_contents_view_delegate.h b/content/public/browser/web_contents_view_delegate.h index 364f11a..3b095064 100644 --- a/content/public/browser/web_contents_view_delegate.h +++ b/content/public/browser/web_contents_view_delegate.h
@@ -35,9 +35,9 @@ // WebContentsView implementation. class CONTENT_EXPORT WebContentsViewDelegate { public: - // Callback used with OnPerformDrop() method that is called once - // OnPerformDrop() completes. Returns an updated DropData or nothing if the - // drop operation should be aborted. + // Callback used with OnPerformingDrop() method that is called once + // OnPerformingDrop() completes. Returns an updated DropData or nothing if + // the drop operation should be aborted. using DropCompletionCallback = base::OnceCallback<void(absl::optional<DropData>)>; @@ -97,8 +97,8 @@ // Performs the actions needed for a drop and then calls the completion // callback once done. - virtual void OnPerformDrop(const DropData& drop_data, - DropCompletionCallback callback); + virtual void OnPerformingDrop(const DropData& drop_data, + DropCompletionCallback callback); }; } // namespace content
diff --git a/content/public/common/drop_data.h b/content/public/common/drop_data.h index 0a45a173..e05e9d35 100644 --- a/content/public/common/drop_data.h +++ b/content/public/common/drop_data.h
@@ -21,6 +21,7 @@ #include "services/network/public/mojom/referrer_policy.mojom.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "ui/base/clipboard/file_info.h" +#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h" #include "url/gurl.h" namespace content { @@ -86,7 +87,7 @@ // User is dragging a link or image. GURL url; - std::u16string url_title; // The title associated with |url|. + std::u16string url_title; // The title associated with `url`. // User is dragging a link out-of the webview. std::u16string download_metadata; @@ -113,8 +114,8 @@ absl::optional<std::u16string> text; // User is dragging text/html into the webview (e.g., out of Firefox). - // |html_base_url| is the URL that the html fragment is taken from (used to - // resolve relative links). It's ok for |html_base_url| to be empty. + // `html_base_url` is the URL that the html fragment is taken from (used to + // resolve relative links). It's ok for `html_base_url` to be empty. absl::optional<std::u16string> html; GURL html_base_url; @@ -126,6 +127,11 @@ std::string file_contents_content_disposition; std::unordered_map<std::u16string, std::u16string> custom_data; + + // The drop operation. See mojo method FrameWidget::DragTargetDragEnter() for + // a discussion of `operation` and `document_is_handling_drag`. + ui::mojom::DragOperation operation = ui::mojom::DragOperation::kNone; + bool document_is_handling_drag = false; }; } // namespace content
diff --git a/content/public/test/fake_frame_widget.h b/content/public/test/fake_frame_widget.h index 116251c..1f2ef9f 100644 --- a/content/public/test/fake_frame_widget.h +++ b/content/public/test/fake_frame_widget.h
@@ -36,13 +36,12 @@ absl::optional<bool> GetActive() const; private: - void DragTargetDragEnter( - blink::mojom::DragDataPtr drag_data, - const gfx::PointF& point_in_viewport, - const gfx::PointF& screen_point, - blink::DragOperationsMask operations_allowed, - uint32_t key_modifiers, - base::OnceCallback<void(ui::mojom::DragOperation)> callback) override {} + void DragTargetDragEnter(blink::mojom::DragDataPtr drag_data, + const gfx::PointF& point_in_viewport, + const gfx::PointF& screen_point, + blink::DragOperationsMask operations_allowed, + uint32_t key_modifiers, + DragTargetDragEnterCallback callback) override {} void DragTargetDragOver(const gfx::PointF& point_in_viewport, const gfx::PointF& screen_point, blink::DragOperationsMask operations_allowed,
diff --git a/content/renderer/pepper/pepper_graphics_2d_host.cc b/content/renderer/pepper/pepper_graphics_2d_host.cc index a18247d1..cbf35b7a 100644 --- a/content/renderer/pepper/pepper_graphics_2d_host.cc +++ b/content/renderer/pepper/pepper_graphics_2d_host.cc
@@ -729,7 +729,8 @@ main_thread_context_, size, gpu_mailbox); *transferable_resource = viz::TransferableResource::MakeGpu( std::move(gpu_mailbox), texture_target, std::move(out_sync_token), size, - format, overlays_supported); + format, overlays_supported, + viz::TransferableResource::ResourceSource::kPepperGraphics2D); composited_output_modified_ = false; return true; } @@ -763,8 +764,8 @@ image_data_->Unmap(); *transferable_resource = viz::TransferableResource::MakeSoftware( - shared_bitmap->id(), pixel_image_size, - viz::SinglePlaneFormat::kRGBA_8888); + shared_bitmap->id(), pixel_image_size, viz::SinglePlaneFormat::kRGBA_8888, + viz::TransferableResource::ResourceSource::kPepperGraphics2D); *release_callback = base::BindOnce( &PepperGraphics2DHost::ReleaseSoftwareCallback, this->AsWeakPtr(), std::move(shared_bitmap), std::move(registration));
diff --git a/content/renderer/pepper/ppb_graphics_3d_impl.cc b/content/renderer/pepper/ppb_graphics_3d_impl.cc index 9dd1acdb..45b72ff 100644 --- a/content/renderer/pepper/ppb_graphics_3d_impl.cc +++ b/content/renderer/pepper/ppb_graphics_3d_impl.cc
@@ -490,7 +490,8 @@ auto mailbox = current_color_buffer_->Export(); viz::TransferableResource resource = viz::TransferableResource::MakeGpu( mailbox, target, sync_token, current_color_buffer_->size(), - viz::SinglePlaneFormat::kRGBA_8888, is_overlay_candidate); + viz::SinglePlaneFormat::kRGBA_8888, is_overlay_candidate, + viz::TransferableResource::ResourceSource::kPPBGraphics3D); HostGlobals::Get() ->GetInstance(pp_instance()) ->CommitTransferableResource(resource);
diff --git a/content/renderer/service_worker/service_worker_subresource_loader.cc b/content/renderer/service_worker/service_worker_subresource_loader.cc index 87c7952..c6ad67d 100644 --- a/content/renderer/service_worker/service_worker_subresource_loader.cc +++ b/content/renderer/service_worker/service_worker_subresource_loader.cc
@@ -237,11 +237,9 @@ resource_request_.url); DCHECK(!race_network_request_loader_client_); - race_network_request_loader_client_.emplace( - resource_request_, weak_factory_.GetWeakPtr(), - std::move(forwarding_client), - network::features::GetDataPipeDefaultAllocationSize( - network::features::DataPipeAllocationSize::kLargerSizeIfPossible)); + race_network_request_loader_client_.emplace(resource_request_, + weak_factory_.GetWeakPtr(), + std::move(forwarding_client)); // If the initial state is not kWaitForBody, that means creating data pipes // failed. Do not start RaceNetworkRequest this case.
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 515d78e..e467c15 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -2564,7 +2564,6 @@ "../browser/renderer_host/input/stylus_text_selector_unittest.cc", "../browser/renderer_host/input/synthetic_gesture_controller_unittest.cc", "../browser/renderer_host/input/synthetic_pointer_action_unittest.cc", - "../browser/renderer_host/input/tap_suppression_controller_unittest.cc", "../browser/renderer_host/input/touch_action_filter_unittest.cc", "../browser/renderer_host/input/touch_emulator_unittest.cc", "../browser/renderer_host/input/touchpad_pinch_event_queue_unittest.cc", @@ -2756,6 +2755,7 @@ "../common/input/actions_parser_unittest.cc", "../common/input/event_with_latency_info_unittest.cc", "../common/input/gesture_event_stream_validator_unittest.cc", + "../common/input/tap_suppression_controller_unittest.cc", "../common/input/touch_event_stream_validator_unittest.cc", "../common/pseudonymization_salt_unittest.cc", "../common/service_worker/race_network_request_url_loader_client_unittest.cc",
diff --git a/content/test/content_test_bundle_data.filelist b/content/test/content_test_bundle_data.filelist index eeca3f3c..310df91 100644 --- a/content/test/content_test_bundle_data.filelist +++ b/content/test/content_test_bundle_data.filelist
@@ -7,6 +7,7 @@ data/accept-header-iframe.html data/accept-header-iframe.html.mock-http-headers data/accept-header.html +data/accept-drop.html data/accessibility/accdescription/description-ignores-slot-expected-blink.txt data/accessibility/accdescription/description-ignores-slot.html data/accessibility/accname/desc-combobox-focusable-expected-android-external.txt
diff --git a/content/test/data/accept-drop.html b/content/test/data/accept-drop.html new file mode 100644 index 0000000..4da62e731 --- /dev/null +++ b/content/test/data/accept-drop.html
@@ -0,0 +1,19 @@ +<html> +<head><title>OK</title></head> +<body style="margin: 0"> +Drop site. +</body> +<script> +// Make the body element a target for drops. +document.body.addEventListener('dragover', e => { + e.preventDefault(); + e.dataTransfer.dropEffect = 'copy'; + console.log('dragover'); +}); +document.body.addEventListener('drop', e => { + console.log('drop'); + e.preventDefault(); +}); + +</script> +</html>
diff --git a/content/test/data/performance_timeline/cross-origin-non-tao-image.html b/content/test/data/performance_timeline/cross-origin-non-tao-image.html index 7392ccb..c6375b49 100644 --- a/content/test/data/performance_timeline/cross-origin-non-tao-image.html +++ b/content/test/data/performance_timeline/cross-origin-non-tao-image.html
@@ -5,19 +5,20 @@ <body> <script> - const getLCPStartTime = async () => { + const getStartTime = async (type) => { return await new Promise(resolve => { new PerformanceObserver((entryList, observer) => { - resolve(entryList.getEntries()[0].startTime); + if (type == 'paint') { + resolve(entryList.getEntriesByName('first-contentful-paint')[0].startTime); + } else { + resolve(entryList.getEntries()[0].startTime); + } observer.disconnect(); - }).observe({ type: 'largest-contentful-paint', buffered: true }); + }).observe({ type: type, buffered: true }); }); } - const getFCPStartTime = () => { - return performance.getEntriesByName('first-contentful-paint')[0].startTime; - } </script> - <img src='http://b.com/images/blue.png' id='image_id' /> -</body> + <img src='/cross-site/b.com/single_face.jpg' id='image_id' /> +</body> \ No newline at end of file
diff --git a/content/web_test/renderer/event_sender.cc b/content/web_test/renderer/event_sender.cc index c11671e3..0cd95ae79 100644 --- a/content/web_test/renderer/event_sender.cc +++ b/content/web_test/renderer/event_sender.cc
@@ -1317,7 +1317,8 @@ current_pointer_state_[kRawMousePointerId].modifiers_, current_pointer_state_[kRawMousePointerId].current_buttons_), base::BindOnce( - [](base::WeakPtr<EventSender> sender, ui::mojom::DragOperation op) { + [](base::WeakPtr<EventSender> sender, ui::mojom::DragOperation op, + bool document_is_handling_drag) { if (sender) sender->current_drag_effect_ = op; }, @@ -1710,7 +1711,7 @@ current_pointer_state_[kRawMousePointerId].current_buttons_, current_pointer_state_[kRawMousePointerId].last_pos_, click_count_, &event); - FinishDragAndDrop(event, ui::mojom::DragOperation::kNone); + FinishDragAndDrop(event, ui::mojom::DragOperation::kNone, false); } web_frame_widget_->ClearEditCommands(); @@ -2506,7 +2507,7 @@ current_pointer_state_[kRawMousePointerId].current_buttons_, gfx::PointF(x, y), click_count_, &mouse_event); - FinishDragAndDrop(mouse_event, ui::mojom::DragOperation::kNone); + FinishDragAndDrop(mouse_event, ui::mojom::DragOperation::kNone, false); } args->Return(result != WebInputEventResult::kNotHandled); } @@ -2665,7 +2666,8 @@ } void EventSender::FinishDragAndDrop(const WebMouseEvent& event, - ui::mojom::DragOperation drag_effect) { + ui::mojom::DragOperation drag_effect, + bool document_is_handling_drag) { // Bail if cancelled. if (!current_drag_data_) return; @@ -2713,7 +2715,8 @@ event.PositionInWidget(), event.PositionInScreen(), current_drag_effects_allowed_, event.GetModifiers(), base::BindOnce( - [](base::WeakPtr<EventSender> sender, ui::mojom::DragOperation op) { + [](base::WeakPtr<EventSender> sender, ui::mojom::DragOperation op, + bool document_is_handling_drag) { if (sender) sender->current_drag_effect_ = op; },
diff --git a/content/web_test/renderer/event_sender.h b/content/web_test/renderer/event_sender.h index 325d8af..0bb040b7 100644 --- a/content/web_test/renderer/event_sender.h +++ b/content/web_test/renderer/event_sender.h
@@ -196,7 +196,9 @@ float* radius_x, float* radius_y); - void FinishDragAndDrop(const blink::WebMouseEvent&, ui::mojom::DragOperation); + void FinishDragAndDrop(const blink::WebMouseEvent&, + ui::mojom::DragOperation, + bool); int ModifiersForPointer(int pointer_id); void DoDragAfterMouseUp(const blink::WebMouseEvent&);
diff --git a/device/vr/android/arcore/ar_compositor_frame_sink.cc b/device/vr/android/arcore/ar_compositor_frame_sink.cc index 36d3748..5d27eb7 100644 --- a/device/vr/android/arcore/ar_compositor_frame_sink.cc +++ b/device/vr/android/arcore/ar_compositor_frame_sink.cc
@@ -441,7 +441,8 @@ renderer_buffer->mailbox_holder.texture_target, renderer_buffer->mailbox_holder.sync_token, renderer_buffer->size, viz::SinglePlaneFormat::kRGBA_8888, - /*is_overlay_candidate=*/false); + /*is_overlay_candidate=*/false, + viz::TransferableResource::ResourceSource::kAR); renderer_resource.id = renderer_buffer->id; id_to_frame_map_[renderer_buffer->id] = xr_frame; @@ -484,7 +485,8 @@ camera_buffer->mailbox_holder.texture_target, camera_buffer->mailbox_holder.sync_token, camera_buffer->size, viz::SinglePlaneFormat::kRGBA_8888, - /*is_overlay_candidate=*/false); + /*is_overlay_candidate=*/false, + viz::TransferableResource::ResourceSource::kAR); camera_resource.id = camera_buffer->id; id_to_frame_map_[camera_buffer->id] = xr_frame;
diff --git a/gin/gin_features.cc b/gin/gin_features.cc index de405dfa..f59545b 100644 --- a/gin/gin_features.cc +++ b/gin/gin_features.cc
@@ -106,7 +106,6 @@ &kV8MemoryReducer, "V8MemoryReducerGCCount", 3}; // Enables MinorMC young generation garbage collector. -BASE_FEATURE(kV8MinorMC, "V8MinorMC", base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kV8MinorMS, "V8MinorMS", base::FEATURE_DISABLED_BY_DEFAULT); // Enables Sparkplug compiler. Note that this only sets the V8 flag when
diff --git a/gin/gin_features.h b/gin/gin_features.h index 925b90f3..2f4965b 100644 --- a/gin/gin_features.h +++ b/gin/gin_features.h
@@ -35,7 +35,6 @@ GIN_EXPORT BASE_DECLARE_FEATURE(kV8MemoryReducer); GIN_EXPORT extern const base::FeatureParam<int> kV8MemoryReducerGCCount; GIN_EXPORT BASE_DECLARE_FEATURE(kV8MidtierRegallocFallback); -GIN_EXPORT BASE_DECLARE_FEATURE(kV8MinorMC); GIN_EXPORT BASE_DECLARE_FEATURE(kV8MinorMS); GIN_EXPORT BASE_DECLARE_FEATURE(kV8MegaDomIC); GIN_EXPORT BASE_DECLARE_FEATURE(kV8NoReclaimUnmodifiedWrappers);
diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc index 87adacd..33dc4eb 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc
@@ -295,7 +295,6 @@ SetV8FlagsFormatted("--memory-reducer-gc-count=%i", features::kV8MemoryReducerGCCount.Get()); } - SetV8FlagsIfOverridden(features::kV8MinorMC, "--minor-ms", "--no-minor-ms"); SetV8FlagsIfOverridden(features::kV8MinorMS, "--minor-ms", "--no-minor-ms"); SetV8FlagsIfOverridden(features::kV8Sparkplug, "--sparkplug", "--no-sparkplug");
diff --git a/gpu/command_buffer/service/shared_image_interface_in_process.cc b/gpu/command_buffer/service/shared_image_interface_in_process.cc index 0e3b4bf..b64d9b5 100644 --- a/gpu/command_buffer/service/shared_image_interface_in_process.cc +++ b/gpu/command_buffer/service/shared_image_interface_in_process.cc
@@ -379,8 +379,17 @@ sync_point_client_state_->ReleaseFenceSync(sync_token.release_count()); } -std::unique_ptr<SharedImageInterface::ScopedMapping> -SharedImageInterfaceInProcess::MapSharedImage(const Mailbox& mailbox) { +GpuMemoryBufferHandleInfo +SharedImageInterfaceInProcess::GetGpuMemoryBufferHandleInfo( + const Mailbox& mailbox) { + { + base::AutoLock lock(lock_); + auto it = gmb_handle_infos_.find(mailbox); + if (it != gmb_handle_infos_.end()) { + return it->second; + } + } + base::WaitableEvent completion( base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent::InitialState::NOT_SIGNALED); @@ -390,23 +399,34 @@ gfx::Size size; gfx::BufferUsage buffer_usage; - // NOTE: If making this blocking call ever becomes a performance bottleneck, - // we can cache the info on this thread as - // SharedImageInterfaceProxy::GetGpuMemoryBufferHandleInfo() does. task_sequence_->ScheduleTask( - base::BindOnce(&SharedImageInterfaceInProcess::MapSharedImageOnGpuThread, + base::BindOnce(&SharedImageInterfaceInProcess:: + GetGpuMemoryBufferHandleInfoOnGpuThread, base::Unretained(this), mailbox, &handle, &format, &size, &buffer_usage, &completion), {}); completion.Wait(); + GpuMemoryBufferHandleInfo handle_info(std::move(handle), format, size, + buffer_usage); + { + base::AutoLock lock(lock_); + gmb_handle_infos_[mailbox] = handle_info; + } - if (handle.is_null()) { - LOG(ERROR) << "Unable to create ScopedMapping."; + return handle_info; +} + +std::unique_ptr<SharedImageInterface::ScopedMapping> +SharedImageInterfaceInProcess::MapSharedImage(const Mailbox& mailbox) { + auto handle_info = GetGpuMemoryBufferHandleInfo(mailbox); + if (handle_info.handle.is_null()) { + LOG(ERROR) << "Buffer is null."; return nullptr; } auto scoped_mapping = SharedImageInterface::ScopedMapping::Create( - std::move(handle), format, size, buffer_usage); + std::move(handle_info.handle), handle_info.format, handle_info.size, + handle_info.buffer_usage); if (!scoped_mapping) { LOG(ERROR) << "Unable to create ScopedMapping."; @@ -415,7 +435,7 @@ return scoped_mapping; } -void SharedImageInterfaceInProcess::MapSharedImageOnGpuThread( +void SharedImageInterfaceInProcess::GetGpuMemoryBufferHandleInfoOnGpuThread( const Mailbox& mailbox, gfx::GpuMemoryBufferHandle* handle, viz::SharedImageFormat* format, @@ -667,6 +687,11 @@ !shared_image_factory_->DestroySharedImage(mailbox)) { context_state_->MarkContextLost(); } + + { + base::AutoLock lock(lock_); + gmb_handle_infos_.erase(mailbox); + } } void SharedImageInterfaceInProcess::WaitSyncTokenOnGpuThread(
diff --git a/gpu/command_buffer/service/shared_image_interface_in_process.h b/gpu/command_buffer/service/shared_image_interface_in_process.h index 573ddde4..03b8f53 100644 --- a/gpu/command_buffer/service/shared_image_interface_in_process.h +++ b/gpu/command_buffer/service/shared_image_interface_in_process.h
@@ -5,12 +5,14 @@ #ifndef GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_INTERFACE_IN_PROCESS_H_ #define GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_INTERFACE_IN_PROCESS_H_ +#include "base/containers/flat_map.h" #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "build/build_config.h" #include "gpu/command_buffer/client/shared_image_interface.h" #include "gpu/command_buffer/common/command_buffer_id.h" #include "gpu/gpu_gles2_export.h" +#include "gpu/ipc/common/gpu_memory_buffer_handle_info.h" #include "ui/gfx/gpu_memory_buffer.h" namespace base { @@ -164,12 +166,13 @@ // The "OnGpuThread" version of the methods accept a std::string for // debug_label so it can be safely passed (copied) between threads without // UAF. - void MapSharedImageOnGpuThread(const Mailbox& mailbox, - gfx::GpuMemoryBufferHandle* handle, - viz::SharedImageFormat* format, - gfx::Size* size, - gfx::BufferUsage* buffer_usage, - base::WaitableEvent* completion); + void GetGpuMemoryBufferHandleInfoOnGpuThread( + const Mailbox& mailbox, + gfx::GpuMemoryBufferHandle* handle, + viz::SharedImageFormat* format, + gfx::Size* size, + gfx::BufferUsage* buffer_usage, + base::WaitableEvent* completion); void CreateSharedImageOnGpuThread(const Mailbox& mailbox, viz::SharedImageFormat format, @@ -233,6 +236,9 @@ void GetCapabilitiesOnGpu(base::WaitableEvent* completion, SharedImageCapabilities* out_capabilities); + GpuMemoryBufferHandleInfo GetGpuMemoryBufferHandleInfo( + const Mailbox& mailbox); + // Used to schedule work on the gpu thread. This is a raw pointer for now // since the ownership of SingleTaskSequence would be the same as the // SharedImageInterfaceInProcess. @@ -247,6 +253,8 @@ // Accessed on any thread. base::Lock lock_; uint64_t next_fence_sync_release_ GUARDED_BY(lock_) = 1; + base::flat_map<Mailbox, GpuMemoryBufferHandleInfo> gmb_handle_infos_ + GUARDED_BY(lock_); // Accessed on compositor thread. // This is used to get NativePixmap, and is only used when SharedImageManager
diff --git a/gpu/ipc/client/shared_image_interface_proxy.cc b/gpu/ipc/client/shared_image_interface_proxy.cc index 4b57a46..93d1e7c 100644 --- a/gpu/ipc/client/shared_image_interface_proxy.cc +++ b/gpu/ipc/client/shared_image_interface_proxy.cc
@@ -616,7 +616,7 @@ AddMailbox(mailbox, usage); } -SharedImageInterfaceProxy::GpuMemoryBufferHandleInfo +GpuMemoryBufferHandleInfo SharedImageInterfaceProxy::GetGpuMemoryBufferHandleInfo( const Mailbox& mailbox) { // Check if the handle info is already present in the map.
diff --git a/gpu/ipc/client/shared_image_interface_proxy.h b/gpu/ipc/client/shared_image_interface_proxy.h index 3fa982b..e67560c78 100644 --- a/gpu/ipc/client/shared_image_interface_proxy.h +++ b/gpu/ipc/client/shared_image_interface_proxy.h
@@ -16,6 +16,7 @@ #include "gpu/command_buffer/client/shared_image_interface.h" #include "gpu/command_buffer/common/buffer.h" #include "gpu/command_buffer/common/shared_image_capabilities.h" +#include "gpu/ipc/common/gpu_memory_buffer_handle_info.h" namespace viz { class SharedImageFormat; @@ -33,40 +34,6 @@ const gpu::SharedImageCapabilities& capabilities); ~SharedImageInterfaceProxy(); - struct GpuMemoryBufferHandleInfo { - GpuMemoryBufferHandleInfo() = default; - GpuMemoryBufferHandleInfo(gfx::GpuMemoryBufferHandle handle, - viz::SharedImageFormat format, - gfx::Size size, - gfx::BufferUsage buffer_usage) - : handle(std::move(handle)), - format(format), - size(size), - buffer_usage(buffer_usage) {} - ~GpuMemoryBufferHandleInfo() = default; - - GpuMemoryBufferHandleInfo(const GpuMemoryBufferHandleInfo& other) { - handle = other.handle.Clone(); - format = other.format; - size = other.size; - buffer_usage = other.buffer_usage; - } - - GpuMemoryBufferHandleInfo& operator=( - const GpuMemoryBufferHandleInfo& other) { - handle = other.handle.Clone(); - format = other.format; - size = other.size; - buffer_usage = other.buffer_usage; - return *this; - } - - gfx::GpuMemoryBufferHandle handle; - viz::SharedImageFormat format; - gfx::Size size; - gfx::BufferUsage buffer_usage; - }; - struct SharedImageInfo { SharedImageInfo(); ~SharedImageInfo();
diff --git a/gpu/ipc/common/BUILD.gn b/gpu/ipc/common/BUILD.gn index dcd7ca9b..5172b6b 100644 --- a/gpu/ipc/common/BUILD.gn +++ b/gpu/ipc/common/BUILD.gn
@@ -81,6 +81,7 @@ "gpu_client_ids.h", "gpu_disk_cache_type.cc", "gpu_disk_cache_type.h", + "gpu_memory_buffer_handle_info.h", "gpu_memory_buffer_impl.cc", "gpu_memory_buffer_impl.h", "gpu_memory_buffer_impl_shared_memory.cc",
diff --git a/gpu/ipc/common/gpu_memory_buffer_handle_info.h b/gpu/ipc/common/gpu_memory_buffer_handle_info.h new file mode 100644 index 0000000..056e3a9f --- /dev/null +++ b/gpu/ipc/common/gpu_memory_buffer_handle_info.h
@@ -0,0 +1,48 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef GPU_IPC_COMMON_GPU_MEMORY_BUFFER_HANDLE_INFO_H_ +#define GPU_IPC_COMMON_GPU_MEMORY_BUFFER_HANDLE_INFO_H_ + +#include "components/viz/common/resources/shared_image_format.h" +#include "ui/gfx/buffer_types.h" +#include "ui/gfx/geometry/size.h" +#include "ui/gfx/gpu_memory_buffer.h" + +namespace gpu { +struct GpuMemoryBufferHandleInfo { + GpuMemoryBufferHandleInfo() = default; + GpuMemoryBufferHandleInfo(gfx::GpuMemoryBufferHandle handle, + viz::SharedImageFormat format, + gfx::Size size, + gfx::BufferUsage buffer_usage) + : handle(std::move(handle)), + format(format), + size(size), + buffer_usage(buffer_usage) {} + ~GpuMemoryBufferHandleInfo() = default; + + GpuMemoryBufferHandleInfo(const GpuMemoryBufferHandleInfo& other) { + handle = other.handle.Clone(); + format = other.format; + size = other.size; + buffer_usage = other.buffer_usage; + } + + GpuMemoryBufferHandleInfo& operator=(const GpuMemoryBufferHandleInfo& other) { + handle = other.handle.Clone(); + format = other.format; + size = other.size; + buffer_usage = other.buffer_usage; + return *this; + } + + gfx::GpuMemoryBufferHandle handle; + viz::SharedImageFormat format; + gfx::Size size; + gfx::BufferUsage buffer_usage; +}; +} // namespace gpu + +#endif // GPU_IPC_COMMON_GPU_MEMORY_BUFFER_HANDLE_INFO_H_
diff --git a/infra/config/lib/gn_args.star b/infra/config/lib/gn_args.star index aa5383c9..9fc22a21 100644 --- a/infra/config/lib/gn_args.star +++ b/infra/config/lib/gn_args.star
@@ -13,6 +13,7 @@ load("./nodes.star", "nodes") _GN_CONFIG = nodes.create_unscoped_node_type("gn_config") +_PHASED_CONFIG = nodes.create_unscoped_node_type("phased_config") _GN_ARGS_FILE_NAME = "gn-args.json" @@ -88,7 +89,7 @@ # Memoize. resolved_gn_args_by_config_node[n] = gn_args - return dict(resolved_gn_args_by_config_node[gn_config_node]) + return {k: v for k, v in resolved_gn_args_by_config_node[gn_config_node].items() if v} return resolve @@ -164,21 +165,41 @@ builder_group: (string) The builder group name. bucket: (string) The bucket name. builder: (string) The builder name. - gn_args: The string name of a GN config, or the return value of - a gn_args.config method call without setting the "name" parameter. + gn_args: The string name of a GN config, a dict of phased GN config, + or the return value of a gn_args.config method call without setting + the "name" parameter. Returns: A list of generated GN args file paths relative to the per-builder output root dir if gn_args is set; None otherwise. """ - if gn_args: - if type(gn_args) == "string": - gn_args = {"configs": [gn_args]} + + # Function for formating GN config for GN config node creation. + def format_gn_config(config): + if type(config) == "string": + return {"configs": [config]} else: - # If a unnamed config is specified, convert the struct to dict. - gn_args = {a: getattr(gn_args, a) for a in dir(gn_args)} - gn_args["builder_group"] = builder_group - builder_node_key = _create_gn_config_node("{}/{}".format(bucket, builder), **gn_args) + return {a: getattr(config, a) for a in dir(config)} + + builder_node_name = "{}/{}".format(bucket, builder) + if gn_args: + if type(gn_args) == "dict": + # Phased GN config. + builder_node_key = _PHASED_CONFIG.add(builder_node_name, props = { + "builder_group": builder_group, + }) + phase_prefix = "{}/{}".format(bucket, builder) + for phase_name, config in gn_args.items(): + phase_node_name = "{}:{}".format(phase_prefix, phase_name) + phase_node_key = _create_gn_config_node(phase_node_name, **format_gn_config(config)) + graph.add_edge(builder_node_key, phase_node_key) + + else: + # Non-phased GN config. + config = format_gn_config(gn_args) + config["builder_group"] = builder_group + builder_node_key = _create_gn_config_node(builder_node_name, **config) + graph.add_edge(keys.project(), builder_node_key) return ["{}/{}/{}".format(bucket, builder, _GN_ARGS_FILE_NAME)] else: @@ -192,23 +213,31 @@ """ args_gn_locations = {} root_out_dir = per_builder_outputs_config().root_dir - builder_nodes = graph.children(keys.project(), _GN_CONFIG.kind) - if builder_nodes: - resolve_gn_args = _get_gn_args_resolver() - for node in builder_nodes: - gn_args_file_path = "{}/{}/{}".format(root_out_dir, node.key.id, _GN_ARGS_FILE_NAME) - gn_args_dict = resolve_gn_args(node) - for key in gn_args_dict.keys(): - if not gn_args_dict[key]: - gn_args_dict.pop(key) - ctx.output[gn_args_file_path] = json.indent(json.encode(gn_args_dict), indent = " ") + resolve_gn_args = _get_gn_args_resolver() - builder_name = node.key.id.rsplit("/", 1)[-1] - builder_group = node.props.builder_group - args_gn_locations.setdefault( - builder_group, - {}, - )[builder_name] = "{}/{}".format(node.key.id, _GN_ARGS_FILE_NAME) + # Function for generating args-gn.json files + def gen_args_gn_json(gn_args_dict): + gn_args_file_path = "{}/{}/{}".format(root_out_dir, node.key.id, _GN_ARGS_FILE_NAME) + ctx.output[gn_args_file_path] = json.indent(json.encode(gn_args_dict), indent = " ") + + builder_name = node.key.id.rsplit("/", 1)[-1] + builder_group = node.props.builder_group + args_gn_locations.setdefault( + builder_group, + {}, + )[builder_name] = "{}/{}".format(node.key.id, _GN_ARGS_FILE_NAME) + + # Builders with non-phased GN configs + for node in graph.children(keys.project(), _GN_CONFIG.kind): + gn_args_dict = resolve_gn_args(node) + gen_args_gn_json(gn_args_dict) + + # Builders with phased GN configs + for node in graph.children(keys.project(), _PHASED_CONFIG.kind): + phases_dict = {} + for phase_node in graph.children(node.key): + phases_dict[phase_node.key.id.split(":")[-1]] = resolve_gn_args(phase_node) + gen_args_gn_json({"phases": phases_dict}) locations_file_path = "{}/gn_args_locations.json".format(root_out_dir) ctx.output[locations_file_path] = json.indent(
diff --git a/ios/build/bots/scripts/run.py b/ios/build/bots/scripts/run.py index 844ba35..7656f611 100755 --- a/ios/build/bots/scripts/run.py +++ b/ios/build/bots/scripts/run.py
@@ -239,6 +239,7 @@ test_cases=self.args.test_cases, test_args=self.test_args, env_vars=env_vars, + record_video_option=self.args.record_video, output_disabled_tests=self.args.output_disabled_tests, ) else: @@ -617,9 +618,8 @@ parser.error('--xcode-parallelization also requires ' 'both -p/--platform and -v/--version') - if (not args.xcode_parallelization) and args.record_video: - parser.error('--record-video is only supported on EG tests ' - 'running on simulators') + if not self.use_xcodebuild_runner(args) and args.record_video: + parser.error('--record-video is only supported on EG tests') # Do not retry when repeat if args.repeat and args.repeat > 1:
diff --git a/ios/build/bots/scripts/test_apps.py b/ios/build/bots/scripts/test_apps.py index 92a1efc..92ed38dd03 100644 --- a/ios/build/bots/scripts/test_apps.py +++ b/ios/build/bots/scripts/test_apps.py
@@ -342,11 +342,16 @@ host_app_path: (str) full path to host app. inserted_libs: List of libraries to insert when running the test. repeat_count: (int) Number of times to run each test case. + record_video_option: (enum) If the arg is not none, then video + recording on tests will be enabled. Currently the enum only supports + recording on failed tests, but can be extended to support more + cases in the future if needed. Raises: AppNotFoundError: If the given app does not exist """ super(EgtestsApp, self).__init__(egtests_app, **kwargs) + self.record_video_option = kwargs.get('record_video_option') def _xctest_path(self): """Gets xctest-file from egtests/PlugIns folder. @@ -413,12 +418,13 @@ module_data['IsUITestBundle'] = True module_data['IsXCTRunnerHostedTestBundle'] = True module_data['SystemAttachmentLifetime'] = 'keepAlways' - # crbug.com/1469507: Xcode 15 now records video by default, but it - # seems to impact test performance. We prefer to use our own video - # recording feature since it supports xcode-parallelization, and - # physical devices. We could consider removing below if native - # video recording feature supports more use cases for us. - module_data['PreferredScreenCaptureFormat'] = 'screenshots' + if self.record_video_option is not None: + # Currently the enum only supports recording on failed tests, + # but can be extended to support more cases if needed, + # such as recording on successful tests. + module_data['PreferredScreenCaptureFormat'] = 'video' + else: + module_data['PreferredScreenCaptureFormat'] = 'screenshots' module_data['UITargetAppPath'] = '%s' % self.host_app_path module_data['UITargetAppBundleIdentifier'] = get_bundle_id( self.host_app_path)
diff --git a/ios/build/bots/scripts/xcodebuild_runner.py b/ios/build/bots/scripts/xcodebuild_runner.py index 31e3a4b..5391591 100644 --- a/ios/build/bots/scripts/xcodebuild_runner.py +++ b/ios/build/bots/scripts/xcodebuild_runner.py
@@ -285,6 +285,13 @@ self.release = kwargs.get('release') or False self.test_results['path_delimiter'] = '/' + # TODO(crbug.com/1486897): For simulators, the record_video_option + # is always None right now, because we are still using our own video + # plugin. Currently native Xcode15+ video recording is only supported + # on iOS17+, but we should aim to migrate to the native solution so + # that we don't need to maintain our own. + self.record_video_option = kwargs.get('record_video_option') + # initializing test plugin service self.test_plugin_service = None enabled_plugins = init_plugins_from_args( @@ -321,7 +328,8 @@ test_args=self.test_args, release=self.release, repeat_count=self.repeat_count, - host_app_path=self.host_app_path) + host_app_path=self.host_app_path, + record_video_option=self.record_video_option) def launch(self): """Launches tests using xcodebuild.""" @@ -440,6 +448,7 @@ self.set_up() self.start_time = time.strftime('%Y-%m-%d-%H%M%S', time.localtime()) self.test_results['path_delimiter'] = '/' + self.record_video_option = kwargs.get('record_video_option') self.test_plugin_service = None def set_up(self):
diff --git a/ios/chrome/app/BUILD.gn b/ios/chrome/app/BUILD.gn index ad61d1d1..c480146 100644 --- a/ios/chrome/app/BUILD.gn +++ b/ios/chrome/app/BUILD.gn
@@ -208,7 +208,7 @@ "//components/keyed_service/core", "//ios/chrome/app/application_delegate:app_state_header", "//ios/chrome/app/application_delegate:observing_app_state_agent", - "//ios/chrome/browser/credential_provider", + "//ios/chrome/browser/credential_provider/model", "//ios/chrome/browser/passwords:store_factory", "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", "//ios/chrome/browser/shared/model/browser_state", @@ -473,7 +473,7 @@ "//ios/chrome/browser/crash_report/model", "//ios/chrome/browser/crash_report/model:model_internal", "//ios/chrome/browser/crash_report/model/breadcrumbs", - "//ios/chrome/browser/credential_provider:buildflags", + "//ios/chrome/browser/credential_provider/model:buildflags", "//ios/chrome/browser/default_browser:utils", "//ios/chrome/browser/download", "//ios/chrome/browser/download/background_service:background_service", @@ -559,7 +559,7 @@ if (ios_enable_credential_provider_extension) { deps += [ ":credential_provider_migrator_app_agent", - "//ios/chrome/browser/credential_provider", + "//ios/chrome/browser/credential_provider/model", ] }
diff --git a/ios/chrome/app/OWNERS b/ios/chrome/app/OWNERS index cec163c..8c62fb81 100644 --- a/ios/chrome/app/OWNERS +++ b/ios/chrome/app/OWNERS
@@ -1,6 +1,6 @@ marq@chromium.org rohitrao@chromium.org -per-file credential_provider_migrator_app_agent.*=file://ios/chrome/browser/credential_provider/OWNERS +per-file credential_provider_migrator_app_agent.*=file://ios/chrome/browser/credential_provider/model/OWNERS per-file feed_app_agent*=edchin@google.com
diff --git a/ios/chrome/app/credential_provider_migrator_app_agent.mm b/ios/chrome/app/credential_provider_migrator_app_agent.mm index 351c8fa..a604002 100644 --- a/ios/chrome/app/credential_provider_migrator_app_agent.mm +++ b/ios/chrome/app/credential_provider_migrator_app_agent.mm
@@ -5,10 +5,10 @@ #import "ios/chrome/app/credential_provider_migrator_app_agent.h" #import "components/keyed_service/core/service_access_type.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/password_manager/core/browser/password_form.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" #import "ios/chrome/app/application_delegate/app_state.h" -#import "ios/chrome/browser/credential_provider/credential_provider_migrator.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_migrator.h" #import "ios/chrome/browser/passwords/ios_chrome_account_password_store_factory.h" #import "ios/chrome/browser/passwords/ios_chrome_password_store_factory.h" #import "ios/chrome/browser/shared/coordinator/scene/scene_state.h"
diff --git a/ios/chrome/app/main_controller.mm b/ios/chrome/app/main_controller.mm index 6f64fce..0aa81d61 100644 --- a/ios/chrome/app/main_controller.mm +++ b/ios/chrome/app/main_controller.mm
@@ -66,7 +66,7 @@ #import "ios/chrome/browser/crash_report/model/crash_keys_helper.h" #import "ios/chrome/browser/crash_report/model/crash_loop_detection_util.h" #import "ios/chrome/browser/crash_report/model/crash_report_helper.h" -#import "ios/chrome/browser/credential_provider/credential_provider_buildflags.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_buildflags.h" #import "ios/chrome/browser/default_browser/utils.h" #import "ios/chrome/browser/download/download_directory_util.h" #import "ios/chrome/browser/external_files/external_file_remover_factory.h" @@ -137,9 +137,9 @@ #if BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED) #import "ios/chrome/app/credential_provider_migrator_app_agent.h" -#import "ios/chrome/browser/credential_provider/credential_provider_service_factory.h" -#import "ios/chrome/browser/credential_provider/credential_provider_support.h" -#import "ios/chrome/browser/credential_provider/credential_provider_util.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_service_factory.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_support.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_util.h" #endif #if BUILDFLAG(IOS_ENABLE_SANDBOX_DUMP)
diff --git a/ios/chrome/app/spotlight/BUILD.gn b/ios/chrome/app/spotlight/BUILD.gn index 2db9a6a..36a043f6 100644 --- a/ios/chrome/app/spotlight/BUILD.gn +++ b/ios/chrome/app/spotlight/BUILD.gn
@@ -6,6 +6,8 @@ sources = [ "actions_spotlight_manager.h", "actions_spotlight_manager.mm", + "base_spotlight_manager.h", + "base_spotlight_manager.mm", "bookmarks_spotlight_manager.h", "bookmarks_spotlight_manager.mm", "fake_searchable_item_factory.h",
diff --git a/ios/chrome/app/spotlight/actions_spotlight_manager.h b/ios/chrome/app/spotlight/actions_spotlight_manager.h index f861608..9f10a10 100644 --- a/ios/chrome/app/spotlight/actions_spotlight_manager.h +++ b/ios/chrome/app/spotlight/actions_spotlight_manager.h
@@ -5,11 +5,9 @@ #ifndef IOS_CHROME_APP_SPOTLIGHT_ACTIONS_SPOTLIGHT_MANAGER_H_ #define IOS_CHROME_APP_SPOTLIGHT_ACTIONS_SPOTLIGHT_MANAGER_H_ -#import <Foundation/Foundation.h> +#import "ios/chrome/app/spotlight/base_spotlight_manager.h" @class AppStartupParameters; -@class SpotlightInterface; -@class SearchableItemFactory; namespace spotlight { @@ -30,7 +28,7 @@ // Allows Chrome to add links to actions to the systemwide Spotlight search // index. -@interface ActionsSpotlightManager : NSObject +@interface ActionsSpotlightManager : BaseSpotlightManager // Creates an ActionsSpotlightManager. + (ActionsSpotlightManager*)actionsSpotlightManager; @@ -41,20 +39,11 @@ - (instancetype)init NS_UNAVAILABLE; -/// Facade interface for the spotlight API. -@property(nonatomic, readonly) SpotlightInterface* spotlightInterface; - -/// A searchable item factory to create searchable items. -@property(nonatomic, readonly) SearchableItemFactory* searchableItemFactory; - // Updates the index with the Spotlight actions if the EnableSpotlightActions // experimental flag is set. Otherwise the index is only cleared. - (void)indexActionsWithIsGoogleDefaultSearchEngine: (BOOL)isGoogleDefaultSearchEngine; -// Called before the instance is deallocated. -- (void)shutdown NS_REQUIRES_SUPER; - @end #endif // IOS_CHROME_APP_SPOTLIGHT_ACTIONS_SPOTLIGHT_MANAGER_H_
diff --git a/ios/chrome/app/spotlight/actions_spotlight_manager.mm b/ios/chrome/app/spotlight/actions_spotlight_manager.mm index 09d5ac56..9b36f2d1 100644 --- a/ios/chrome/app/spotlight/actions_spotlight_manager.mm +++ b/ios/chrome/app/spotlight/actions_spotlight_manager.mm
@@ -141,11 +141,8 @@ - (instancetype) initWithSpotlightInterface:(SpotlightInterface*)spotlightInterface searchableItemFactory:(SearchableItemFactory*)searchableItemFactory { - self = [super init]; - if (self) { - _spotlightInterface = spotlightInterface; - _searchableItemFactory = searchableItemFactory; - } + self = [super initWithSpotlightInterface:spotlightInterface + searchableItemFactory:searchableItemFactory]; return self; } @@ -255,8 +252,4 @@ additionalKeywords:@[]]; } -- (void)shutdown { - [self.searchableItemFactory cancelItemsGeneration]; -} - @end
diff --git a/ios/chrome/app/spotlight/base_spotlight_manager.h b/ios/chrome/app/spotlight/base_spotlight_manager.h new file mode 100644 index 0000000..42f8aec --- /dev/null +++ b/ios/chrome/app/spotlight/base_spotlight_manager.h
@@ -0,0 +1,38 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_APP_SPOTLIGHT_BASE_SPOTLIGHT_MANAGER_H_ +#define IOS_CHROME_APP_SPOTLIGHT_BASE_SPOTLIGHT_MANAGER_H_ + +#import <Foundation/Foundation.h> + +@class SpotlightInterface; +@class SearchableItemFactory; + +// Base class for all of the spotlight managers. +// It takes care of the cleanup at shutdown. +@interface BaseSpotlightManager : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype) + initWithSpotlightInterface:(SpotlightInterface*)spotlightInterface + searchableItemFactory:(SearchableItemFactory*)searchableItemFactory + NS_DESIGNATED_INITIALIZER; + +/// Facade interface for the spotlight API. +@property(nonatomic, readonly) SpotlightInterface* spotlightInterface; + +/// A searchable item factory to create searchable items. +@property(nonatomic, readonly) SearchableItemFactory* searchableItemFactory; + +/// Set at shutdown. Will not continue indexing when set. +@property(nonatomic, readonly) BOOL isShuttingDown; + +/// Called before the instance is deallocated. +- (void)shutdown NS_REQUIRES_SUPER; + +@end + +#endif // IOS_CHROME_APP_SPOTLIGHT_BASE_SPOTLIGHT_MANAGER_H_
diff --git a/ios/chrome/app/spotlight/base_spotlight_manager.mm b/ios/chrome/app/spotlight/base_spotlight_manager.mm new file mode 100644 index 0000000..21009829 --- /dev/null +++ b/ios/chrome/app/spotlight/base_spotlight_manager.mm
@@ -0,0 +1,29 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/app/spotlight/base_spotlight_manager.h" + +#import "ios/chrome/app/spotlight/searchable_item_factory.h" +#import "ios/chrome/app/spotlight/spotlight_interface.h" + +@implementation BaseSpotlightManager + +- (instancetype) + initWithSpotlightInterface:(SpotlightInterface*)spotlightInterface + searchableItemFactory:(SearchableItemFactory*)searchableItemFactory { + self = [super init]; + if (self) { + _isShuttingDown = NO; + _spotlightInterface = spotlightInterface; + _searchableItemFactory = searchableItemFactory; + } + return self; +} + +- (void)shutdown { + [self.searchableItemFactory cancelItemsGeneration]; + _isShuttingDown = YES; +} + +@end
diff --git a/ios/chrome/app/spotlight/bookmarks_spotlight_manager.h b/ios/chrome/app/spotlight/bookmarks_spotlight_manager.h index 97016b8..a0ba50b0 100644 --- a/ios/chrome/app/spotlight/bookmarks_spotlight_manager.h +++ b/ios/chrome/app/spotlight/bookmarks_spotlight_manager.h
@@ -5,7 +5,7 @@ #ifndef IOS_CHROME_APP_SPOTLIGHT_BOOKMARKS_SPOTLIGHT_MANAGER_H_ #define IOS_CHROME_APP_SPOTLIGHT_BOOKMARKS_SPOTLIGHT_MANAGER_H_ -#import <Foundation/Foundation.h> +#import "ios/chrome/app/spotlight/base_spotlight_manager.h" class ChromeBrowserState; @@ -20,14 +20,12 @@ @class CSSearchableItem; @class TopSitesSpotlightManager; -@class SpotlightInterface; -@class SearchableItemFactory; /// This class is intended to be used by the SpotlightManager /// It maintains an index of bookmark items in spotlightInterface from the /// observed bookmarkModel. The methods should be called on main thread, but /// will internally dispatch work to a background thread -@interface BookmarksSpotlightManager : NSObject +@interface BookmarksSpotlightManager : BaseSpotlightManager - (instancetype) initWithLargeIconService:(favicon::LargeIconService*)largeIconService @@ -35,14 +33,6 @@ spotlightInterface:(SpotlightInterface*)spotlightInterface searchableItemFactory:(SearchableItemFactory*)searchableItemFactory; -- (instancetype)init NS_UNAVAILABLE; - -/// Facade interface for the spotlight API. -@property(nonatomic, readonly) SpotlightInterface* spotlightInterface; - -/// A searchable item factory to create searchable items. -@property(nonatomic, readonly) SearchableItemFactory* searchableItemFactory; - /// Number of pending large icon tasks. @property(nonatomic, assign) NSUInteger pendingLargeIconTasksCount; @@ -62,9 +52,6 @@ - (NSMutableArray*)parentFolderNamesForNode: (const bookmarks::BookmarkNode*)node; -/// Called before the instance is deallocated. -- (void)shutdown; - @end #endif // IOS_CHROME_APP_SPOTLIGHT_BOOKMARKS_SPOTLIGHT_MANAGER_H_
diff --git a/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm b/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm index 3cc2e48..00fb6b1 100644 --- a/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm +++ b/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm
@@ -36,9 +36,6 @@ // Called from the BrowserBookmarkModelBridge from C++ -> ObjC. @interface BookmarksSpotlightManager () -// Set at shutdown. Will not continue indexing when set. -@property(nonatomic, assign) BOOL isShuttingDown; - // Detaches the `SpotlightBookmarkModelBridge` from the bookmark model. The // manager must not be used after calling this method. - (void)detachBookmarkModel; @@ -172,11 +169,10 @@ bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel spotlightInterface:(SpotlightInterface*)spotlightInterface searchableItemFactory:(SearchableItemFactory*)searchableItemFactory { - self = [super init]; + self = [super initWithSpotlightInterface:spotlightInterface + searchableItemFactory:searchableItemFactory]; if (self) { _pendingLargeIconTasksCount = 0; - _searchableItemFactory = searchableItemFactory; - _spotlightInterface = spotlightInterface; _bookmarkModelBridge.reset(new SpotlightBookmarkModelBridge(self)); _bookmarkModel = bookmarkModel; bookmarkModel->AddObserver(_bookmarkModelBridge.get()); @@ -351,8 +347,7 @@ } - (void)shutdown { - self.isShuttingDown = YES; - [self.searchableItemFactory cancelItemsGeneration]; + [super shutdown]; [self detachBookmarkModel]; }
diff --git a/ios/chrome/app/spotlight/open_tabs_spotlight_manager.h b/ios/chrome/app/spotlight/open_tabs_spotlight_manager.h index fd50d5e..d7c63f3 100644 --- a/ios/chrome/app/spotlight/open_tabs_spotlight_manager.h +++ b/ios/chrome/app/spotlight/open_tabs_spotlight_manager.h
@@ -5,7 +5,7 @@ #ifndef IOS_CHROME_APP_SPOTLIGHT_OPEN_TABS_SPOTLIGHT_MANAGER_H_ #define IOS_CHROME_APP_SPOTLIGHT_OPEN_TABS_SPOTLIGHT_MANAGER_H_ -#import <Foundation/Foundation.h> +#import "ios/chrome/app/spotlight/base_spotlight_manager.h" namespace favicon { class LargeIconService; @@ -14,23 +14,13 @@ class BrowserList; class ChromeBrowserState; @class CSSearchableItem; -@class SpotlightInterface; -@class SearchableItemFactory; /// Manages Open Tab items in Spotlight search. -@interface OpenTabsSpotlightManager : NSObject - -- (instancetype)init NS_UNAVAILABLE; +@interface OpenTabsSpotlightManager : BaseSpotlightManager /// Model observed by this instance. @property(nonatomic, assign, readonly) BrowserList* browserList; -/// Spotlight API endpoint. -@property(nonatomic, readonly) SpotlightInterface* spotlightInterface; - -/// A searchable item factory to create searchable items. -@property(nonatomic, readonly) SearchableItemFactory* searchableItemFactory; - /// Convenience initializer with browser state. /// Returns a new instance of OpenTabsSpotlightManager and retrieves all /// dependencies from `browserState`. @@ -44,12 +34,14 @@ searchableItemFactory:(SearchableItemFactory*)searchableItemFactory NS_DESIGNATED_INITIALIZER; +- (instancetype) + initWithSpotlightInterface:(SpotlightInterface*)spotlightInterface + searchableItemFactory:(SearchableItemFactory*)searchableItemFactory + NS_UNAVAILABLE; + /// Immediately clears and reindexes the Open Tab items in Spotlight. - (void)clearAndReindexOpenTabs; -// Called before the instance is deallocated. -- (void)shutdown; - @end #endif // IOS_CHROME_APP_SPOTLIGHT_OPEN_TABS_SPOTLIGHT_MANAGER_H_
diff --git a/ios/chrome/app/spotlight/open_tabs_spotlight_manager.mm b/ios/chrome/app/spotlight/open_tabs_spotlight_manager.mm index d515f6b..3ea9c2a 100644 --- a/ios/chrome/app/spotlight/open_tabs_spotlight_manager.mm +++ b/ios/chrome/app/spotlight/open_tabs_spotlight_manager.mm
@@ -78,14 +78,14 @@ browserList:(BrowserList*)browserList spotlightInterface:(SpotlightInterface*)spotlightInterface searchableItemFactory:(SearchableItemFactory*)searchableItemFactory { + self = [super initWithSpotlightInterface:spotlightInterface + searchableItemFactory:searchableItemFactory]; for (Browser* browser : browserList->AllRegularBrowsers()) { [self browserList:browserList browserAdded:browser]; } if (self) { _browserList = browserList; - _spotlightInterface = spotlightInterface; - _searchableItemFactory = searchableItemFactory; _browserListObserverBridge = std::make_unique<BrowserListObserverBridge>(self); _browserList->AddObserver(_browserListObserverBridge.get()); @@ -108,12 +108,15 @@ StringFromSpotlightDomain(spotlight::DOMAIN_OPEN_TABS) ] completionHandler:^(NSError*) { + if (weakSelf.isShuttingDown) { + return; + } [weakSelf indexAllOpenTabs]; }]; } - (void)shutdown { - [self.searchableItemFactory cancelItemsGeneration]; + [super shutdown]; [self shutdownAllObservation]; } @@ -201,6 +204,9 @@ /// Removes whatever the previously remembered URL was for a given webstate. - (void)removeLatestCommittedURLForWebState:(web::WebState*)webState { + if (self.isShuttingDown) { + return; + } [self indexURL:nullptr title:nil forWebStateID:webState->GetUniqueIdentifier()]; @@ -208,6 +214,9 @@ /// Updates the remembered URL of the webstate. - (void)updateLatestCommittedURLForWebState:(web::WebState*)webState { + if (self.isShuttingDown) { + return; + } GURL URL = webState->GetLastCommittedURL(); if (![OpenTabsSpotlightManager shouldIndexURL:URL]) { return; @@ -221,6 +230,9 @@ /// Iterates through all webstates in `webStateList` add adds them to the index. - (void)addAllURLsFromWebStateList:(WebStateList*)webStateList { + if (self.isShuttingDown) { + return; + } for (int i = 0; i < webStateList->count(); i++) { web::WebState* webState = webStateList->GetWebStateAt(i); [self updateLatestCommittedURLForWebState:webState]; @@ -230,6 +242,9 @@ /// Iterates through all webstates in `webStateList` add removes them from the /// index. - (void)removeAllURLsFromWebStateList:(WebStateList*)webStateList { + if (self.isShuttingDown) { + return; + } for (int i = 0; i < webStateList->count(); i++) { web::WebState* webState = webStateList->GetWebStateAt(i); [self removeLatestCommittedURLForWebState:webState]; @@ -239,6 +254,9 @@ /// Iterate over all non-incognito web states and adds them to the index /// immediately. - (void)indexAllOpenTabs { + if (self.isShuttingDown) { + return; + } const base::ElapsedTimer timer; for (Browser* browser : self.browserList->AllRegularBrowsers()) { @@ -273,6 +291,9 @@ - (void)indexURL:(GURL*)URL title:(NSString*)title forWebStateID:(web::WebStateID)webStateID { + if (self.isShuttingDown) { + return; + } if (_lastCommittedURLs.contains(webStateID)) { GURL lastKnownURL = _lastCommittedURLs[webStateID]; DCHECK(_knownURLCounts[lastKnownURL] > 0);
diff --git a/ios/chrome/app/spotlight/reading_list_spotlight_manager.h b/ios/chrome/app/spotlight/reading_list_spotlight_manager.h index 76e1918..e7f3da1 100644 --- a/ios/chrome/app/spotlight/reading_list_spotlight_manager.h +++ b/ios/chrome/app/spotlight/reading_list_spotlight_manager.h
@@ -5,7 +5,7 @@ #ifndef IOS_CHROME_APP_SPOTLIGHT_READING_LIST_SPOTLIGHT_MANAGER_H_ #define IOS_CHROME_APP_SPOTLIGHT_READING_LIST_SPOTLIGHT_MANAGER_H_ -#import <Foundation/Foundation.h> +#import "ios/chrome/app/spotlight/base_spotlight_manager.h" namespace favicon { class LargeIconService; @@ -14,19 +14,9 @@ class ChromeBrowserState; class ReadingListModel; @class CSSearchableItem; -@class SpotlightInterface; -@class SearchableItemFactory; /// Manages Reading List items in Spotlight search. -@interface ReadingListSpotlightManager : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -/// Facade interface for the spotlight API. -@property(nonatomic, readonly) SpotlightInterface* spotlightInterface; - -/// A searchable item factory to create searchable items. -@property(nonatomic, readonly) SearchableItemFactory* searchableItemFactory; +@interface ReadingListSpotlightManager : BaseSpotlightManager /// Model observed by this instance. @property(nonatomic, assign, readonly) ReadingListModel* model; @@ -44,6 +34,11 @@ searchableItemFactory:(SearchableItemFactory*)searchableItemFactory NS_DESIGNATED_INITIALIZER; +- (instancetype) + initWithSpotlightInterface:(SpotlightInterface*)spotlightInterface + searchableItemFactory:(SearchableItemFactory*)searchableItemFactory + NS_UNAVAILABLE; + /// Immediately clears and reindexes the reading list items in Spotlight. Calls /// `completionHandler` when done. - (void)clearAndReindexReadingList; @@ -51,9 +46,6 @@ // Indexes all existing reading list items in spotlight. - (void)indexAllReadingListItems; -// Called before the instance is deallocated. -- (void)shutdown; - @end #endif // IOS_CHROME_APP_SPOTLIGHT_READING_LIST_SPOTLIGHT_MANAGER_H_
diff --git a/ios/chrome/app/spotlight/reading_list_spotlight_manager.mm b/ios/chrome/app/spotlight/reading_list_spotlight_manager.mm index aac9f7d..d09fdb92 100644 --- a/ios/chrome/app/spotlight/reading_list_spotlight_manager.mm +++ b/ios/chrome/app/spotlight/reading_list_spotlight_manager.mm
@@ -62,12 +62,11 @@ readingListModel:(ReadingListModel*)model spotlightInterface:(SpotlightInterface*)spotlightInterface searchableItemFactory:(SearchableItemFactory*)searchableItemFactory { - self = [super init]; + self = [super initWithSpotlightInterface:spotlightInterface + searchableItemFactory:searchableItemFactory]; if (self) { _model = model; - _searchableItemFactory = searchableItemFactory; - _spotlightInterface = spotlightInterface; _modelBridge.reset(new ReadingListModelBridge(self, model)); } return self; @@ -79,6 +78,7 @@ } - (void)shutdown { + [super shutdown]; [self detachModel]; } @@ -111,6 +111,10 @@ return; } + if (self.isShuttingDown) { + return; + } + const base::ElapsedTimer timer; for (const auto& url : self.model->GetKeys()) {
diff --git a/ios/chrome/app/spotlight/topsites_spotlight_manager.h b/ios/chrome/app/spotlight/topsites_spotlight_manager.h index 835d9b7..c808765 100644 --- a/ios/chrome/app/spotlight/topsites_spotlight_manager.h +++ b/ios/chrome/app/spotlight/topsites_spotlight_manager.h
@@ -5,39 +5,26 @@ #ifndef IOS_CHROME_APP_SPOTLIGHT_TOPSITES_SPOTLIGHT_MANAGER_H_ #define IOS_CHROME_APP_SPOTLIGHT_TOPSITES_SPOTLIGHT_MANAGER_H_ -#import <Foundation/Foundation.h> +#import "ios/chrome/app/spotlight/base_spotlight_manager.h" class ChromeBrowserState; -@class SpotlightInterface; -@class SearchableItemFactory; - // This spotlight manager handles indexing of sites shown on the NTP. Because of // privacy concerns, only sites shown on the NTP are indexed; therefore, this // manager mirrors the functionality seen in google_landing_view_controller. It // uses suggestions (most likely) as a data source if the user is logged in and // top sites otherwise. -@interface TopSitesSpotlightManager : NSObject +@interface TopSitesSpotlightManager : BaseSpotlightManager + (TopSitesSpotlightManager*)topSitesSpotlightManagerWithBrowserState: (ChromeBrowserState*)browserState; - (instancetype)init NS_UNAVAILABLE; -/// Facade interface for the spotlight API. -@property(nonatomic, readonly) SpotlightInterface* spotlightInterface; - -/// A searchable item factory to create searchable items. -@property(nonatomic, readonly) SearchableItemFactory* searchableItemFactory; - // Reindexes all top sites, batching reindexes by 1 second. - (void)reindexTopSites; -// Called before the instance is deallocated. This method should be overridden -// by the subclasses and de-activate the instance. -- (void)shutdown; - @end #endif // IOS_CHROME_APP_SPOTLIGHT_TOPSITES_SPOTLIGHT_MANAGER_H_
diff --git a/ios/chrome/app/spotlight/topsites_spotlight_manager.mm b/ios/chrome/app/spotlight/topsites_spotlight_manager.mm index 8efa80c..34a5ab1 100644 --- a/ios/chrome/app/spotlight/topsites_spotlight_manager.mm +++ b/ios/chrome/app/spotlight/topsites_spotlight_manager.mm
@@ -136,7 +136,8 @@ bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel spotlightInterface:(SpotlightInterface*)spotlightInterface searchableItemFactory:(SearchableItemFactory*)searchableItemFactory { - self = [super init]; + self = [super initWithSpotlightInterface:spotlightInterface + searchableItemFactory:searchableItemFactory]; if (self) { DCHECK(topSites); DCHECK(bookmarkModel); @@ -145,8 +146,6 @@ _topSitesCallbackBridge.reset(new SpotlightTopSitesCallbackBridge(self)); _bookmarkModel = bookmarkModel; _isReindexPending = false; - _spotlightInterface = spotlightInterface; - _searchableItemFactory = searchableItemFactory; } return self; } @@ -217,6 +216,7 @@ } - (void)shutdown { + [super shutdown]; _topSitesBridge.reset(); _topSitesCallbackBridge.reset();
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb index 903f121..c4c48c0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Skep en deel ’n direkte skakel na ’n deel van ’n bladsy wat jy gemerk het.</translation> <translation id="4045648459118332842">Kry jou gestoorde wagwoorde in enige app met een tik</translation> <translation id="4049507953662678203">Maak seker jy het 'n netwerkverbinding en probeer weer.</translation> -<translation id="4063300985191096908">Gaan na Stroom toe</translation> <translation id="4066639687323968621">Meld met jou Google-rekening aan om jou boekmerke, geskiedenis en meer te sinkroniseer.</translation> <translation id="4092655288299341041">Wys hulp</translation> <translation id="4105841739161771091">{count,plural, =1{Vee adres uit}other{Vee adresse uit}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Gebruik wagwoorde op al jou toestelle</translation> <translation id="730958329302570991">Voeg werfwagwoorde enige tyd maklik by Google Wagwoordbestuurder.</translation> <translation id="7313347584264171202">Jy sal jou incognito-oortjies hier kry</translation> -<translation id="7331371412779932885">Gee vir jou oortjievoorstelle gebaseer op jou blaai-aktiwiteit op jou ander toestelle met jou Google-rekening. Jou toestelle moet met dieselfde Google-rekening aangemeld en gesinkroniseer word.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> persent afgelaai</translation> <translation id="7340958967809483333">Opsies vir Ontdek</translation> <translation id="7346909386216857016">OK, het dit</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Oortjies nie in die afgelope <ph name="THRESHOLD" /> dae gebruik nie</translation> <translation id="8395339334550012808">Binnekort sal jy inhoud vanaf en oor <ph name="CHANNEL_NAME" /> in Following sien.</translation> <translation id="8395378633507873708">Adresbalk</translation> +<translation id="8402673309244746971">Gaan na Volg tans</translation> <translation id="8403629764260204788">Versteek “Hou aan blaai”</translation> <translation id="8407669440184693619">Geen wagwoorde is vir hierdie werf gekry nie</translation> <translation id="842017693807136194">Aangemeld met</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb index d72111f1..e6c761d5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_am.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">እርስዎ ላደመቁት ገፅ ክፍል የቀጥታ አገናኝ ይፍጠሩ እና ያጋሩ።</translation> <translation id="4045648459118332842">በማንኛውም መተግበሪያ ውስጥ በአንድ መታ ማድረግ የተቀመጡ የይለፍ ቃላትዎን ያግኙ</translation> <translation id="4049507953662678203">የአውታረ መረብ ግንኙነት እንዳለዎት ያረጋግጡና እንደገና ይሞክሩ።</translation> -<translation id="4063300985191096908">ወደ ምግብ ይሂዱ</translation> <translation id="4066639687323968621">የእርስዎን ዕልባቶች፣ ታሪክ እና ሌሎችንም ለማመሳሰል በእርስዎ Google መለያ ይግቡ።</translation> <translation id="4092655288299341041">እገዛ አሳይ</translation> <translation id="4105841739161771091">{count,plural, =1{አድራሻን ሰርዝ}one{አድራሻን ሰርዝ}other{አድራሻዎችን ሰርዝ}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">በሁሉም መሣሪያዎችዎ ላይ የይለፍ ቃላትን ይጠቀሙ</translation> <translation id="730958329302570991">ወደ Google የይለፍ ቃል አስተዳዳሪ በማንኛውም ጊዜ የጣቢያ የይለፍ ቃላትን በቀላሉ ያክሉ።</translation> <translation id="7313347584264171202">የእርስዎን ማንነት የማያሳውቁ ትሮች እዚህ ያገኛሉ</translation> -<translation id="7331371412779932885">የእርስዎን Google መለያ በመጠቀም ሌሎች መሣሪያዎችዎ ላይ ባለዎት የአሰሳ እንቅስቃሴ መሰረት ጥቆማዎችን ይሰጥዎታል። መሣሪያዎችዎ ተመሳሳይ የሆነው Google መለያን በመጠቀም በመለያ የገቡ እና የሰመሩ መሆን አለባቸው።</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> በመቶ ወርዷል</translation> <translation id="7340958967809483333">ለምርምር አማራጮች</translation> <translation id="7346909386216857016">እሺ፣ ገባኝ</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">ትሮች ለ<ph name="THRESHOLD" /> ቀናት ጥቅም ላይ አልዋሉም</translation> <translation id="8395339334550012808">በቅርቡ በሚከተሏቸው ውስጥ ከ እና ስለ <ph name="CHANNEL_NAME" /> ይዘትን ያያሉ።</translation> <translation id="8395378633507873708">የአድራሻ አሞሌ</translation> +<translation id="8402673309244746971">ወደ በመከተል ላይ ሂድ</translation> <translation id="8403629764260204788">«ማሰስ ቀጥል»ን ደብቅ</translation> <translation id="8407669440184693619">ለዚህ ጣቢያ ምንም የይለፍ ቃላት አልተገኙም</translation> <translation id="842017693807136194">በሚከተለው በመለያ ተገብቷል፦</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb index a8a4a2b..fc4d044 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -557,7 +557,6 @@ <translation id="40433179647657191">يمكنك إنشاء ومشاركة رابط مباشر لجزء من صفحة تم تمييزه.</translation> <translation id="4045648459118332842">الوصول بنقرة واحدة إلى كلمات المرور المحفوظة في أي تطبيق</translation> <translation id="4049507953662678203">تأكد من اتصالك بالشبكة، وأعد المحاولة.</translation> -<translation id="4063300985191096908">الانتقال إلى الخلاصة</translation> <translation id="4066639687323968621">سجِّل الدخول باستخدام حسابك على Google لمزامنة الإشارات المرجعية والسجلّ وغير ذلك.</translation> <translation id="4092655288299341041">عرض معلومات المساعدة</translation> <translation id="4105841739161771091">{count,plural, =1{حذف العنوان}zero{حذف العناوين}two{حذف العنوانَين}few{حذف العناوين}many{حذف العناوين}other{حذف العناوين}}</translation> @@ -1154,7 +1153,6 @@ <translation id="7302503784943202842">استخدام كلمات المرور على جميع أجهزتك</translation> <translation id="730958329302570991">يمكنك متى شئت إضافة كلمات مرور المواقع الإلكترونية بسهولة إلى "مدير كلمات المرور في Google".</translation> <translation id="7313347584264171202">ستظهر لك علامات تبويب في وضع التصفّح المتخفي هنا</translation> -<translation id="7331371412779932885">يقدّم لك هذا الإعداد اقتراحات علامات التبويب استنادًا إلى نشاط التصفّح على الأجهزة الأخرى باستخدام حسابك على Google. ويجب تسجيل الدخول إلى أجهزتك ومزامنتها باستخدام حساب Google نفسه.</translation> <translation id="7336264872878993241">تم تنزيل <ph name="PERCENT" /> بالمائة</translation> <translation id="7340958967809483333">خيارات الاقتراحات</translation> <translation id="7346909386216857016">حسنًا</translation> @@ -1350,6 +1348,7 @@ <translation id="8393889347136007944">علامات التبويب التي لم يتم استخدامها لمدة <ph name="THRESHOLD" /> يوم</translation> <translation id="8395339334550012808">سيظهر لك قريبًا محتوى من "<ph name="CHANNEL_NAME" />" وحولها في القسم "تتم متابعته حاليًا".</translation> <translation id="8395378633507873708">شريط العناوين (Address Bar)</translation> +<translation id="8402673309244746971">الانتقال إلى "المواقع التي تتابعها"</translation> <translation id="8403629764260204788">إخفاء ميزة "التصفُّح المستمر"</translation> <translation id="8407669440184693619">لم يتم العثور على كلمات مرور لهذا الموقع الإلكتروني</translation> <translation id="842017693807136194">تم تسجيل الدخول باستخدام</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb index 4c0153cf..dd40626 100644 --- a/ios/chrome/app/strings/resources/ios_strings_as.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">এটা পোনপটীয়া লিংক সৃষ্টি কৰক আৰু আপুনি হাইলাইট কৰা পৃষ্ঠা এখনৰ অংশলৈ সেইটো শ্বেয়াৰ কৰক।</translation> <translation id="4045648459118332842">এবাৰ টিপিয়েই যিকোনো এপত আপোনাৰ ছেভ কৰা পাছৱৰ্ডসমূহ লাভ কৰক</translation> <translation id="4049507953662678203">আপোনাৰ নেটৱৰ্ক সংযোগ থকাটো নিশ্চিত কৰি আকৌ চেষ্টা কৰক।</translation> -<translation id="4063300985191096908">ফীডলৈ যাওক</translation> <translation id="4066639687323968621">আপোনাৰ বুকমাৰ্ক, ইতিহাস আৰু বহুতো বস্তু ছিংক কৰিবলৈ আপোনাৰ Google একাউণ্টৰ জৰিয়তে ছাইন ইন কৰক।</translation> <translation id="4092655288299341041">সহায় দেখুৱাওক</translation> <translation id="4105841739161771091">{count,plural, =1{ঠিকনাটো মচক}one{ঠিকনাসমূহ মচক}other{ঠিকনাসমূহ মচক}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">আপোনাৰ আটাইবোৰ ডিভাইচত পাছৱৰ্ড ব্যৱহাৰ কৰক</translation> <translation id="730958329302570991">যিকোনো সময়তে সহজে Google Password Managerত ছাইটৰ পাছৱৰ্ডসমূহ যোগ দিয়ক।</translation> <translation id="7313347584264171202">ইয়াত আপুনি নিজৰ ইনক’গনিট’ টেবসমূহ বিচাৰি পাব</translation> -<translation id="7331371412779932885">আপোনাৰ Google একাউণ্ট ব্যৱহাৰ কৰি অন্য ডিভাইচসমূহত কৰা আপোনাৰ ব্ৰাউজিঙৰ কাৰ্যকলাপৰ ভিত্তিত টেবৰ পৰামৰ্শ দিয়ে। আপোনাৰ ডিভাইচসমূহ একেটা Google একাউণ্ট ব্যৱহাৰ কৰি ছাইন ইন আৰু ছিংক কৰিবই লাগিব।</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> শতাংশ ডাউনল’ড কৰা হ’ল</translation> <translation id="7340958967809483333">Discoverৰ বিকল্পসমূহ</translation> <translation id="7346909386216857016">ঠিক আছে, বুজি পালোঁ</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> দিন ব্যৱহাৰ নকৰা টেবসমূহ</translation> <translation id="8395339334550012808">সোনকালেই আপুনি অনুসৰণ শিতানত <ph name="CHANNEL_NAME" />ৰ পৰা আৰু সেইটোৰ সৈতে সম্পৰ্কিত সমল দেখা পাব।</translation> <translation id="8395378633507873708">ঠিকনাৰ বাৰ</translation> +<translation id="8402673309244746971">ফ’ল’ কৰি থকা হৈছেলৈ যাওক</translation> <translation id="8403629764260204788">"ব্ৰাউজিং অব্যাহত ৰাখক" লুকুৱাওক</translation> <translation id="8407669440184693619">এই ছাইটটোৰ বাবে কোনো পাছৱৰ্ড বিচাৰি পোৱা নগ’ল</translation> <translation id="842017693807136194">ৰ জৰিয়তে ছাইন ইন কৰি থোৱা হৈছে</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb index a04fffa9..fecc36d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_az.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Birbaşa keçid yaradın və vurğuladığınız səhifənin bir hissəsində paylaşın.</translation> <translation id="4045648459118332842">Saxlanmış parollarınızı bir toxunuşla istənilən tətbiqdə əldə edin</translation> <translation id="4049507953662678203">Şəbəkə bağlantısının olmasına əmin olun və yenidən cəhd edin.</translation> -<translation id="4063300985191096908">Lentə keçin</translation> <translation id="4066639687323968621">Əlfəcin, tarixçə və s. sinxronlaşdırmaq üçün Google Hesabı ilə daxil olun.</translation> <translation id="4092655288299341041">Yardımı göstərin</translation> <translation id="4105841739161771091">{count,plural, =1{Ünvanı silin}other{Ünvanları silin}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Parolları bütün cihazlarda istifadə edin</translation> <translation id="730958329302570991">İstənilən vaxt Google Parol Menecerinə sayt parollarını asanlıqla əlavə edin.</translation> <translation id="7313347584264171202">Anonim tabları burada tapa bilərsiniz</translation> -<translation id="7331371412779932885">Google Hesabından istifadə edən digər cihazlardakı axtarış fəaliyyətinə əsasən tablar təklif edir. Cihazlara giriş və sinxronlaşdırma üçün eyni Google Hesabı istifadə edilməlidir.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> faiz endirilib</translation> <translation id="7340958967809483333">"Kəşf edin" üçün seçimlər</translation> <translation id="7346909386216857016">Ok, anladım</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> gün istifadə edilməmiş tablar</translation> <translation id="8395339334550012808">Tezliklə İzlənilənlər bölməsində <ph name="CHANNEL_NAME" /> üzrə kontent görəcəksiniz.</translation> <translation id="8395378633507873708">Ünvan paneli</translation> +<translation id="8402673309244746971">İzlənənlərə keçin</translation> <translation id="8403629764260204788">"Baxmağa davam" bölməsini gizlədin</translation> <translation id="8407669440184693619">Bu sayt üçün parol tapılmadı</translation> <translation id="842017693807136194">Bununla Daxil Olunub</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb index e0d08d1..39e0456 100644 --- a/ios/chrome/app/strings/resources/ios_strings_be.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Стварайце прамыя спасылкі на вылучаныя часткі старонак і абагульвайце іх.</translation> <translation id="4045648459118332842">Выкарыстоўвайце захаваныя паролі ў любой праграме адным дотыкам</translation> <translation id="4049507953662678203">Праверце, ці ёсць у вас падключэнне да сеткі, і паўтарыце спробу.</translation> -<translation id="4063300985191096908">Перайсці да стужкі</translation> <translation id="4066639687323968621">Каб сінхранізаваць закладкі, гісторыю і іншыя даныя, увайдзіце ва Уліковы запіс Google.</translation> <translation id="4092655288299341041">Паказаць даведку</translation> <translation id="4105841739161771091">{count,plural, =1{Выдаліць адрас}one{Выдаліць адрас}few{Выдаліць адрасы}many{Выдаліць адрасы}other{Выдаліць адрасы}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Выкарыстоўвайце паролі на ўсіх сваіх прыладах</translation> <translation id="730958329302570991">З лёгкасцю і ў любы час дадавайце паролі для сайтаў у Менеджар пароляў Google.</translation> <translation id="7313347584264171202">Вашы ўкладкі ў рэжыме інкогніта знаходзяцца тут</translation> -<translation id="7331371412779932885">Дае прапановы ўкладак на аснове дзеянняў у браўзеры на іншых прыладах, якія выкарыстоўваюць ваш Уліковы запіс Google. На прыладах трэба ўвайсці з дапамогай аднаго і таго ж Уліковага запісу Google і ўключыць сінхранізацыю.</translation> <translation id="7336264872878993241">Спампавана: <ph name="PERCENT" /> %</translation> <translation id="7340958967809483333">Параметры рэкамендацый</translation> <translation id="7346909386216857016">OK</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Укладкі, якія не выкарыстоўваліся на працягу <ph name="THRESHOLD" /> сут</translation> <translation id="8395339334550012808">Хутка вы ўбачыце змесціва канала "<ph name="CHANNEL_NAME" />" і інфармацыю пра яго ў раздзеле "Вы падпісаны".</translation> <translation id="8395378633507873708">Адрасны радок</translation> +<translation id="8402673309244746971">Перайсці да стужкі падпісак</translation> <translation id="8403629764260204788">Схаваць модуль "Працягвайце прагляд"</translation> <translation id="8407669440184693619">Паролі для гэтага сайта не знойдзены</translation> <translation id="842017693807136194">Вы ўвайшлі праз</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb index 25c13b4c..0ce1196 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Можете да създадете и споделите директна връзка към откроена от вас част от страница.</translation> <translation id="4045648459118332842">Получаване на запазените ви пароли с едно докосване във всяко приложение</translation> <translation id="4049507953662678203">Уверете се, че сте свързани с мрежа, и опитайте отново.</translation> -<translation id="4063300985191096908">Към емисията</translation> <translation id="4066639687323968621">Влезте с профила си в Google, за да синхронизирате своите отметки, история и др.</translation> <translation id="4092655288299341041">Показване на помощна информация</translation> <translation id="4105841739161771091">{count,plural, =1{Изтриване на адреса}other{Изтриване на адресите}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Използване на паролите на всичките ви устройства</translation> <translation id="730958329302570991">Можете лесно да добавяте пароли за сайтове към Google Мениджър на пароли по всяко време.</translation> <translation id="7313347584264171202">Тук ще се показват разделите ви в режим „инкогнито“</translation> -<translation id="7331371412779932885">Дава ви предложения за раздели въз основа на активността ви при сърфиране на другите ви устройства, на които сте влезли в профила си в Google. Съответните устройства трябва да използват един и същ профил и да са синхронизирани с него.</translation> <translation id="7336264872878993241">Изтеглено: <ph name="PERCENT" />%</translation> <translation id="7340958967809483333">Опции за Discover</translation> <translation id="7346909386216857016">Добре, разбрах</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Разделите не са използвани от <ph name="THRESHOLD" /> дни</translation> <translation id="8395339334550012808">Скоро в „Следено“ ще виждате съдържание от и за <ph name="CHANNEL_NAME" />.</translation> <translation id="8395378633507873708">Адресна лента</translation> +<translation id="8402673309244746971">Към „Следено“</translation> <translation id="8403629764260204788">Скриване на „Прелистване без прекъсване“</translation> <translation id="8407669440184693619">Няма намерени пароли за този сайт</translation> <translation id="842017693807136194">Влезли сте със:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb index a685b91..5d2f4d8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">আপনি হাইলাইট করেছেন এমন একটি পৃষ্ঠার অংশের সরাসরি লিঙ্ক তৈরি করে শেয়ার করুন।</translation> <translation id="4045648459118332842">যেকোনও অ্যাপে আপনার সেভ করা পাসওয়ার্ডগুলি এক ট্যাপে পেয়ে যান</translation> <translation id="4049507953662678203">আপনি একটি নেটওয়ার্ক সংযোগে আছেন কিনা তা নিশ্চিত করুন এবং আবার চেষ্টা করুন।</translation> -<translation id="4063300985191096908">ফিডে যান</translation> <translation id="4066639687323968621">আপনার পাসওয়ার্ড, ইতিহাস এবং আরও অনেক কিছু সিঙ্ক করতে Google অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করুন।</translation> <translation id="4092655288299341041">সহায়তা দেখান</translation> <translation id="4105841739161771091">{count,plural, =1{ঠিকানা মুছুন}one{ঠিকানা মুছুন}other{ঠিকানা মুছুন}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">আপনার সমস্ত ডিভাইসে পাসওয়ার্ড ব্যবহার করুন</translation> <translation id="730958329302570991">Google Password Manager-এ যেকোনও সময় সহজেই সাইটের পাসওয়ার্ড যোগ করুন।</translation> <translation id="7313347584264171202">আপনি এখানে নিজের ছদ্মবেশী ট্যাবগুলি খুঁজে পাবেন</translation> -<translation id="7331371412779932885">আপনার Google অ্যাকাউন্টের মাধ্যমে অন্যান্য ডিভাইসে করা ব্রাউজিং অ্যাক্টিভিটির উপর নির্ভর করে আপনাকে ট্যাব সংক্রান্ত সাজেশন দেওয়া হয়। একই Google অ্যাকাউন্ট ব্যবহার করে ডিভাইসে সাইন-ইন ও সিঙ্ক করতে হবে।</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> শতাংশ ডাউনলোড হয়েছে</translation> <translation id="7340958967809483333">Discover-এর বিকল্প</translation> <translation id="7346909386216857016">ঠিক আছে, বুঝেছি</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> দিন ট্যাব ব্যবহার করা হয়নি</translation> <translation id="8395339334550012808">শীঘ্রই, আপনি 'ফলো করা হচ্ছে' বিভাগ থেকে <ph name="CHANNEL_NAME" /> সম্পর্কে এবং থেকে কন্টেন্ট দেখতে পাবেন।</translation> <translation id="8395378633507873708">অ্যাড্রেস বার</translation> +<translation id="8402673309244746971">'ফলো করা হচ্ছে' ফিডে যান</translation> <translation id="8403629764260204788">"ব্রাউজ করা চালিয়ে যান" লুকান</translation> <translation id="8407669440184693619">এই সাইটের জন্য কোনও পাসওয়ার্ড পাওয়া যায়নি</translation> <translation id="842017693807136194">এটি দিয়ে সাইন-ইন করেছেন</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb index 4f17a17..fc7f8d66 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Kreirajte i dijelite direktni link dijela stranice koji ste istaknuli.</translation> <translation id="4045648459118332842">Dobijte sačuvane lozinke u bilo kojoj aplikaciji jednim dodirom</translation> <translation id="4049507953662678203">Provjerite imate li mrežnu vezu i pokušajte ponovo.</translation> -<translation id="4063300985191096908">Idi u sažetak sadržaja</translation> <translation id="4066639687323968621">Prijavite se s Google računom da sinhronizirate oznake, historiju i drugo.</translation> <translation id="4092655288299341041">Prikaz pomoći</translation> <translation id="4105841739161771091">{count,plural, =1{Izbriši adresu}one{Izbriši adrese}few{Izbriši adrese}other{Izbriši adrese}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Koristite lozinke na svim svojim uređajima</translation> <translation id="730958329302570991">Možete jednostavno i u svakom trenutku dodati lozinke za web lokacije u Google upravitelju lozinki.</translation> <translation id="7313347584264171202">Anonimne kartice ćete pronaći ovdje</translation> -<translation id="7331371412779932885">Pruža vam prijedloge za kartice na osnovu vaše aktivnosti pregledanja na drugom uređaju pomoću Google računa. Uređaji moraju biti prijavljeni i sinhronizirani pomoću istog Google računa.</translation> <translation id="7336264872878993241">Preuzeto je <ph name="PERCENT" /> posto</translation> <translation id="7340958967809483333">Opcije za Discover</translation> <translation id="7346909386216857016">Uredu, razumijem</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Kartice koje nisu korištene <ph name="THRESHOLD" /> dan(a)</translation> <translation id="8395339334550012808">Uskoro ćete vidjeti sadržaj kanala <ph name="CHANNEL_NAME" /> i o njemu u opciji Pratite.</translation> <translation id="8395378633507873708">Traka za adresu</translation> +<translation id="8402673309244746971">Idi na Praćenje</translation> <translation id="8403629764260204788">Sakrijte opciju "Nastavite pregledati"</translation> <translation id="8407669440184693619">Nije pronađena nijedna lozinka za ovu web lokaciju</translation> <translation id="842017693807136194">Prijavljeni ste sa</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index 5892372..be80eee 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Crea i comparteix un enllaç directe a una part d'una pàgina que hagis marcat.</translation> <translation id="4045648459118332842">Obtén les contrasenyes desades en qualsevol aplicació amb un sol toc</translation> <translation id="4049507953662678203">Assegureu-vos que teniu una connexió a la xarxa i torneu-ho a provar.</translation> -<translation id="4063300985191096908">Ves al feed</translation> <translation id="4066639687323968621">Inicia la sessió amb el teu Compte de Google per sincronitzar les adreces d'interès, l'historial i més.</translation> <translation id="4092655288299341041">Mostra l'ajuda</translation> <translation id="4105841739161771091">{count,plural, =1{Suprimeix l'adreça}other{Suprimeix les adreces}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Utilitza contrasenyes en tots els teus dispositius</translation> <translation id="730958329302570991">Afegeix fàcilment contrasenyes de llocs web al gestor de contrasenyes de Google en qualsevol moment.</translation> <translation id="7313347584264171202">Trobaràs les pestanyes d'incògnit aquí</translation> -<translation id="7331371412779932885">Et fa suggeriments de pestanyes basats en la teva activitat de navegació en altres dispositius que utilitzen el teu Compte de Google. Els dispositius han de tenir la sessió iniciada i han d'estar sincronitzats amb el mateix Compte de Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> per cent baixat</translation> <translation id="7340958967809483333">Opcions per a Discover</translation> <translation id="7346909386216857016">D'acord</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Pestanyes que no s'han utilitzat durant <ph name="THRESHOLD" /> dies</translation> <translation id="8395339334550012808">Aviat veuràs contingut de <ph name="CHANNEL_NAME" /> i sobre aquest canal a Seguint.</translation> <translation id="8395378633507873708">Barra d'adreces</translation> +<translation id="8402673309244746971">Ves a Seguint</translation> <translation id="8403629764260204788">Amaga Continua navegant</translation> <translation id="8407669440184693619">No s'ha trobat cap contrasenya per a aquest lloc web</translation> <translation id="842017693807136194">S'ha iniciat la sessió amb</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb index a77e11bc9..91cc3d8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Vytvořte a sdílejte přímý odkaz na část stránky, kterou jste označili.</translation> <translation id="4045648459118332842">Používejte uložená hesla jedním klepnutím v libovolné aplikaci</translation> <translation id="4049507953662678203">Zkontrolujte, zda jste připojeni k síti a zkuste to znovu.</translation> -<translation id="4063300985191096908">Přejít na informační kanál</translation> <translation id="4066639687323968621">Pokud chcete synchronizovat své záložky, historii a další položky, přihlaste se pomocí účtu Google.</translation> <translation id="4092655288299341041">Zobrazit nápovědu</translation> <translation id="4105841739161771091">{count,plural, =1{Smazat adresu}few{Smazat adresy}many{Smazat adresy}other{Smazat adresy}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Používejte hesla na všech svých zařízeních</translation> <translation id="730958329302570991">Hesla webů můžete kdykoli snadno přidat do Správce hesel Google.</translation> <translation id="7313347584264171202">Zde najdete své anonymní karty</translation> -<translation id="7331371412779932885">Dává vám návrhy karet na základě vaší aktivity procházení na ostatních zařízeních pomocí vašeho účtu Google. Vaše zařízení musí být přihlášena a synchronizována pomocí stejného účtu Google.</translation> <translation id="7336264872878993241">Staženo <ph name="PERCENT" /> %</translation> <translation id="7340958967809483333">Možnosti funkce Objevit</translation> <translation id="7346909386216857016">Dobře, rozumím</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Karty nebyly používány <ph name="THRESHOLD" /> d</translation> <translation id="8395339334550012808">Brzy na kartě Sledováno uvidíte obsah z webu <ph name="CHANNEL_NAME" /> nebo o něm.</translation> <translation id="8395378633507873708">Adresní řádek</translation> +<translation id="8402673309244746971">Přejít na sledované</translation> <translation id="8403629764260204788">Skrýt Pokračovat v prohlížení</translation> <translation id="8407669440184693619">Pro tento web nebyla nalezena žádná hesla</translation> <translation id="842017693807136194">Poskytovatel přihlášení</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb index d90af6b..cd4926e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Creu a rhannu dolen uniongyrchol i ran o dudalen rydych wedi'i hamlygu.</translation> <translation id="4045648459118332842">Cael eich cyfrineiriau sydd wedi'u cadw mewn unrhyw ap arall gydag un tap</translation> <translation id="4049507953662678203">Gwnewch yn siŵr bod gennych gysylltiad rhwydwaith, a rhowch gynnig arall arni.</translation> -<translation id="4063300985191096908">Mynd i'r Ffrwd</translation> <translation id="4066639687323968621">Mewngofnodwch gyda'ch Cyfrif Google i gysoni'ch nodau tudalen, eich hanes a rhagor.</translation> <translation id="4092655288299341041">Dangos Help</translation> <translation id="4105841739161771091">{count,plural, =1{Dileu'r Cyfeiriad}zero{Dileu'r Cyfeiriadau}two{Dileu'r Cyfeiriadau}few{Dileu'r Cyfeiriadau}many{Dileu'r Cyfeiriadau}other{Dileu'r Cyfeiriadau}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Defnyddio Cyfrineiriau ar Eich Holl Ddyfeisiadau</translation> <translation id="730958329302570991">Gallwch ychwanegu cyfrineiriau gwefan yn hawdd at Reolwr Cyfrineiriau Google unrhyw bryd.</translation> <translation id="7313347584264171202">Byddwch yn gweld eich tabiau Anhysbys yma</translation> -<translation id="7331371412779932885">Yn rhoi awgrymiadau tab i chi yn seiliedig ar eich gweithgarwch pori ar eich dyfeisiau eraill gan ddefnyddio'ch cyfrif Google. Rhaid i'ch dyfeisiau gael eu mewngofnodi a'u cysoni gan ddefnyddio'r un cyfrif Google.</translation> <translation id="7336264872878993241">Mae <ph name="PERCENT" /> y cant wedi'i lawrlwytho</translation> <translation id="7340958967809483333">Dewisiadau ar gyfer Discover</translation> <translation id="7346909386216857016">Iawn, rwy'n deall</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Tabiau sydd heb eu defnyddio am <ph name="THRESHOLD" /> o ddiwrnodau</translation> <translation id="8395339334550012808">Yn fuan, byddwch yn gweld cynnwys gan ac ynglŷn â <ph name="CHANNEL_NAME" /> yn Dilyn.</translation> <translation id="8395378633507873708">Bar Cyfeiriad</translation> +<translation id="8402673309244746971">Mynd i Yn Dilyn</translation> <translation id="8403629764260204788">Cuddio "Parhau i Bori"</translation> <translation id="8407669440184693619">Nid ydym wedi dod o hyd i unrhyw gyfrineiriau ar gyfer y wefan hon</translation> <translation id="842017693807136194">Wedi Mewngofnodi Gyda</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb index b50d58e..d4763b3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_da.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Opret og del et direkte link til en del af en side, du har fremhævet.</translation> <translation id="4045648459118332842">Få adgang til dine gemte adgangskoder i enhver app med et enkelt tryk</translation> <translation id="4049507953662678203">Sørg for, at du har forbindelse til et netværk, og prøv igen.</translation> -<translation id="4063300985191096908">Gå til feed</translation> <translation id="4066639687323968621">Log ind med din Google-konto for at synkronisere dine bogmærker, din historik m.m.</translation> <translation id="4092655288299341041">Vis Hjælp</translation> <translation id="4105841739161771091">{count,plural, =1{Slet adresse}one{Slet adresse}other{Slet adresser}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Brug adgangskoder på alle dine enheder</translation> <translation id="730958329302570991">Du kan til enhver tid nemt føje adgangskoder til websites til Google Adgangskodeadministrator.</translation> <translation id="7313347584264171202">Her finder du dine inkognitofaner</translation> -<translation id="7331371412779932885">Giver dig faneforslag baseret på din browseraktivitet på dine andre enheder ved hjælp af din Google-konto. Dine enheder skal være logget ind og synkroniseret med den samme Google-konto.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> procent er downloadet</translation> <translation id="7340958967809483333">Indstillinger for Discover</translation> <translation id="7346909386216857016">OK</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Faner, der ikke er blevet brugt i <ph name="THRESHOLD" /> dage</translation> <translation id="8395339334550012808">Du får snart vist indhold fra og om <ph name="CHANNEL_NAME" /> i Følger.</translation> <translation id="8395378633507873708">Adresselinje</translation> +<translation id="8402673309244746971">Gå til Følger</translation> <translation id="8403629764260204788">Skjul "Fortsæt med at browse"</translation> <translation id="8407669440184693619">Der blev ikke fundet nogen adgangskoder til dette website</translation> <translation id="842017693807136194">Logget ind med</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb index b86ace5e..a312e4b8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_de.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -551,7 +551,6 @@ <translation id="40433179647657191">Du kannst einen direkten Link zu einer von dir markierten Seite erstellen und teilen.</translation> <translation id="4045648459118332842">Deine gespeicherten Passwörter in allen Apps mit einmal tippen abrufen</translation> <translation id="4049507953662678203">Überprüfe deiner Netzwerkverbindung und versuche es noch einmal.</translation> -<translation id="4063300985191096908">Zum Feed</translation> <translation id="4066639687323968621">Melde dich mit deinem Google-Konto an, um deine Lesezeichen, deinen Verlauf und mehr zu synchronisieren.</translation> <translation id="4092655288299341041">Hilfe anzeigen</translation> <translation id="4105841739161771091">{count,plural, =1{Adresse löschen}other{Adressen löschen}}</translation> @@ -1144,7 +1143,6 @@ <translation id="7302503784943202842">Passwörter auf allen deinen Geräten verwenden</translation> <translation id="730958329302570991">Du kannst Google Passwortmanager jederzeit problemlos Passwörter für Websites hinzufügen.</translation> <translation id="7313347584264171202">Hier werden deine Inkognitotabs angezeigt</translation> -<translation id="7331371412779932885">Du erhältst Vorschläge für Tabs, die auf den Browseraktivitäten auf anderen Geräten in deinem Google-Konto basieren. Deine Geräte müssen dazu im gleichen Google-Konto angemeldet und synchronisiert sein.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> % heruntergeladen</translation> <translation id="7340958967809483333">Optionen für Discover</translation> <translation id="7346909386216857016">Ok</translation> @@ -1337,6 +1335,7 @@ <translation id="8393889347136007944">Tabs, die <ph name="THRESHOLD" /> Tage lang nicht verwendet wurden</translation> <translation id="8395339334550012808">Bald siehst du unter „Folge ich“ Inhalte von und über <ph name="CHANNEL_NAME" />.</translation> <translation id="8395378633507873708">Adressleiste</translation> +<translation id="8402673309244746971">Zu „Folge ich“</translation> <translation id="8403629764260204788">„Weitersurfen“ ausblenden</translation> <translation id="8407669440184693619">Keine Passwörter für diese Website gefunden</translation> <translation id="842017693807136194">Angemeldet mit</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb index a4f44b4e..6ef0fd1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_el.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Δημιουργήστε και μοιραστείτε έναν απευθείας σύνδεσμο προς ένα τμήμα μιας σελίδας που έχετε επισημάνει.</translation> <translation id="4045648459118332842">Λάβετε τους αποθηκευμένους κωδικούς πρόσβασης σε οποιαδήποτε εφαρμογή με ένα πάτημα</translation> <translation id="4049507953662678203">Βεβαιωθείτε ότι έχετε μια σύνδεση δικτύου και δοκιμάστε ξανά.</translation> -<translation id="4063300985191096908">Μετάβαση στη Ροή</translation> <translation id="4066639687323968621">Συνδεθείτε με τον Λογαριασμό σας Google για να συγχρονίσετε τους σελιδοδείκτες, το ιστορικό σας και άλλα.</translation> <translation id="4092655288299341041">Εμφάνιση βοήθειας</translation> <translation id="4105841739161771091">{count,plural, =1{Διαγραφή διεύθυνσης}other{Διαγραφή διευθύνσεων}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Χρησιμοποιήστε κωδικούς πρόσβασης σε όλες τις συσκευές σας</translation> <translation id="730958329302570991">Προσθέστε με ευκολία κωδικούς πρόσβασης ιστοτόπων στον Διαχειριστή κωδικών πρόσβασης Google ανά πάσα στιγμή.</translation> <translation id="7313347584264171202">Εδώ θα βρείτε τις καρτέλες ανώνυμης περιήγησής σας</translation> -<translation id="7331371412779932885">Σας παρέχει προτάσεις καρτελών με βάση τη δραστηριότητα περιήγησής σας σε άλλες συσκευές χρησιμοποιώντας τον Λογαριασμό σας Google. Οι συσκευές σας πρέπει να συνδέονται και να συγχρονίζονται χρησιμοποιώντας τον ίδιο Λογαριασμό Google.</translation> <translation id="7336264872878993241">Έγινε λήψη του <ph name="PERCENT" /> τοις εκατό</translation> <translation id="7340958967809483333">Επιλογές για Discover</translation> <translation id="7346909386216857016">OK, το κατάλαβα</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Καρτέλες που δεν έχουν χρησιμοποιηθεί για <ph name="THRESHOLD" /> ημέρες</translation> <translation id="8395339334550012808">Σύντομα, θα βλέπετε περιεχόμενο από και σχετικά με το κανάλι <ph name="CHANNEL_NAME" /> στην ενότητα Ακολουθείτε.</translation> <translation id="8395378633507873708">Γραμμή διευθύνσεων</translation> +<translation id="8402673309244746971">Μετάβαση στην παρακολούθηση</translation> <translation id="8403629764260204788">Απόκρυψη της λειτουργίας Συνέχιση περιήγησης</translation> <translation id="8407669440184693619">Δεν βρέθηκαν κωδικοί πρόσβασης για αυτόν τον ιστότοπο</translation> <translation id="842017693807136194">Σε σύνδεση με</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb index 73b12a7..2f1ebdd 100644 --- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Create and share a direct link to part of a page that you've highlighted.</translation> <translation id="4045648459118332842">Get your saved passwords in any app with one tap</translation> <translation id="4049507953662678203">Make sure you have a network connection, and try again.</translation> -<translation id="4063300985191096908">Go to feed</translation> <translation id="4066639687323968621">Sign in with your Google Account to sync your bookmarks, history and more.</translation> <translation id="4092655288299341041">Show help</translation> <translation id="4105841739161771091">{count,plural, =1{Delete address}other{Delete addresses}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Use passwords on all your devices</translation> <translation id="730958329302570991">Easily add site passwords to Google Password Manager at any time.</translation> <translation id="7313347584264171202">You'll find your Incognito tabs here</translation> -<translation id="7331371412779932885">Gives you tab suggestions based on your browsing activity on your other devices using your Google account. Your devices must be signed in and synced using the same Google account.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> percent downloaded</translation> <translation id="7340958967809483333">Options for Discover</translation> <translation id="7346909386216857016">OK, got it</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Tabs not used for <ph name="THRESHOLD" /> days</translation> <translation id="8395339334550012808">Soon, you’ll see content from and about <ph name="CHANNEL_NAME" /> in Following.</translation> <translation id="8395378633507873708">Address bar</translation> +<translation id="8402673309244746971">Go to Following</translation> <translation id="8403629764260204788">Hide 'Continue Browsing'</translation> <translation id="8407669440184693619">No passwords found for this site</translation> <translation id="842017693807136194">Signed in with</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb index 246dc935..49a8642f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Crea y comparte un vínculo directo a una parte de una página que hayas destacado</translation> <translation id="4045648459118332842">Obtén tus contraseñas guardadas en cualquier app con solo presionar una vez</translation> <translation id="4049507953662678203">Asegúrate de tener una conexión de red y vuelve a intentarlo.</translation> -<translation id="4063300985191096908">Ir al feed</translation> <translation id="4066639687323968621">Accede con tu Cuenta de Google para sincronizar tus favoritos, historial y más.</translation> <translation id="4092655288299341041">Mostrar ayuda</translation> <translation id="4105841739161771091">{count,plural, =1{Borrar dirección}other{Borrar direcciones}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Usa contraseñas en todos tus dispositivos</translation> <translation id="730958329302570991">Agrega contraseñas de sitios al Administrador de contraseñas de Google fácilmente en cualquier momento.</translation> <translation id="7313347584264171202">Aquí encontrarás tus pestañas de incógnito</translation> -<translation id="7331371412779932885">Te brinda sugerencias de pestañas en función de tu actividad de navegación en los otros dispositivos que usan tu Cuenta de Google. Debes acceder en los dispositivos y sincronizarlos usando la misma Cuenta de Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> % descargado</translation> <translation id="7340958967809483333">Opciones para Descubre</translation> <translation id="7346909386216857016">Entendido</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Pestañas que no se usaron durante <ph name="THRESHOLD" /> días</translation> <translation id="8395339334550012808">Pronto, verás lo que publica <ph name="CHANNEL_NAME" />, así como contenido sobre ese canal en Siguiendo.</translation> <translation id="8395378633507873708">Barra de direcciones</translation> +<translation id="8402673309244746971">Ir a Seguidos</translation> <translation id="8403629764260204788">Ocultar "Seguir navegando"</translation> <translation id="8407669440184693619">No se encontraron contraseñas para este sitio</translation> <translation id="842017693807136194">Accediste con</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index 151065a..204e07f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Crea y comparte un enlace directo a una parte de una página que hayas resaltado.</translation> <translation id="4045648459118332842">Obtén tus contraseñas guardadas en cualquier aplicación con un toque</translation> <translation id="4049507953662678203">Comprueba que tienes una conexión de red y vuelve a intentarlo.</translation> -<translation id="4063300985191096908">Ir al Feed</translation> <translation id="4066639687323968621">Inicia sesión con tu cuenta de Google para sincronizar tus marcadores, tu historial y más.</translation> <translation id="4092655288299341041">Mostrar ayuda</translation> <translation id="4105841739161771091">{count,plural, =1{Eliminar dirección}other{Eliminar direcciones}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Usar contraseñas en todos tus dispositivos</translation> <translation id="730958329302570991">Añade contraseñas de sitios web al Gestor de contraseñas de Google fácilmente y en cualquier momento.</translation> <translation id="7313347584264171202">Aquí verás tus pestañas de incógnito</translation> -<translation id="7331371412779932885">Te ofrece sugerencias de pestañas basadas en tu actividad de navegación en tus otros dispositivos usando tu cuenta de Google. Debes haber iniciado sesión y tener la sincronización activada en tus dispositivos con la misma cuenta de Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" />% descargado</translation> <translation id="7340958967809483333">Opciones de Discover</translation> <translation id="7346909386216857016">Entendido</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Pestañas que no se han usado en <ph name="THRESHOLD" /> días</translation> <translation id="8395339334550012808">Pronto verás contenido de <ph name="CHANNEL_NAME" /> y sobre el canal en Siguiendo.</translation> <translation id="8395378633507873708">Barra de direcciones</translation> +<translation id="8402673309244746971">Ir a Siguiendo</translation> <translation id="8403629764260204788">Ocultar Navegación continua</translation> <translation id="8407669440184693619">No se han encontrado contraseñas para este sitio web</translation> <translation id="842017693807136194">Has iniciado sesión como</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index 132ab4b..e7d34b69 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Looge otselink enda lehe esiletõstetud osale ja jagage seda.</translation> <translation id="4045648459118332842">Pääsege mis tahes rakenduses oma salvestatud paroolidele juurde vaid ühe puudutusega</translation> <translation id="4049507953662678203">Veenduge, et oleksite võrguga ühendatud, ja proovige uuesti.</translation> -<translation id="4063300985191096908">Ava voog</translation> <translation id="4066639687323968621">Järjehoidjate, ajaloo ja muu sisu sünkroonimiseks logige sisse oma Google'i kontoga.</translation> <translation id="4092655288299341041">Abi kuvamine</translation> <translation id="4105841739161771091">{count,plural, =1{Kustuta aadress}other{Kustuta aadressid}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Paroolide kasutamine kõigis oma seadmetes</translation> <translation id="730958329302570991">Saate saitide paroole igal ajal hõlpsasti Google'i paroolihaldurisse lisada.</translation> <translation id="7313347584264171202">Oma inkognito vahelehed leiate siit</translation> -<translation id="7331371412779932885">Soovitab vahelehti teie muude seadmete sirvimisajaloo alusel, kasutades teie Google’i kontot. Peate olema seadmetes sama Google’i kontoga sisse logitud ja seadmed peavad olema sünkroonitud.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> protsenti on alla laaditud</translation> <translation id="7340958967809483333">Funktsiooni Discover valikud</translation> <translation id="7346909386216857016">Selge, sain aru</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Vahelehed, mida pole <ph name="THRESHOLD" /> päeva kasutatud</translation> <translation id="8395339334550012808">Varsti näete jaotises Jälgitav sisu, mis on kanalilt <ph name="CHANNEL_NAME" /> pärit ja käib selle kohta.</translation> <translation id="8395378633507873708">Aadressiriba</translation> +<translation id="8402673309244746971">Ava voog Jälgitav</translation> <translation id="8403629764260204788">Funktsioon „Pidev sirvimine“ peidetakse</translation> <translation id="8407669440184693619">Selle saidi jaoks ei leitud paroole</translation> <translation id="842017693807136194">Sisse logitud:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb index b3d0119f..57a6cd7 100644 --- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -554,7 +554,6 @@ <translation id="40433179647657191">Sortu eta partekatu orri batean nabarmendutako zati baterako zuzeneko esteka.</translation> <translation id="4045648459118332842">Lortu gordetako pasahitzak edozein aplikaziotan sakatze hutsarekin</translation> <translation id="4049507953662678203">Ziurtatu sarera konektatuta zaudela eta saiatu berriro.</translation> -<translation id="4063300985191096908">Joan jariora</translation> <translation id="4066639687323968621">Hasi saioa Google-ko kontuan eta sinkronizatu laster-markak, historia eta beste.</translation> <translation id="4092655288299341041">Erakutsi laguntza</translation> <translation id="4105841739161771091">{count,plural, =1{Ezabatu helbidea}other{Ezabatu helbideak}}</translation> @@ -1149,7 +1148,6 @@ <translation id="7302503784943202842">Erabili pasahitzak gailu guztietan</translation> <translation id="730958329302570991">Gehitu erraz webguneetako pasahitzak Google-ren Pasahitz-kudeatzailea zerbitzuan edonoiz.</translation> <translation id="7313347584264171202">Ezkutuko moduko fitxak aurkituko dituzu hemen</translation> -<translation id="7331371412779932885">Fitxen iradokizunak ematen dizkizu beste gailuetan Google-ko kontuarekin egin dituzun arakatze-jardueretan oinarrituta. Gailuetan Google-ko kontu berarekin saioa hasita eduki behar duzu, eta gailuak sinkronizatu behar dituzu.</translation> <translation id="7336264872878993241">% <ph name="PERCENT" /> deskargatu da</translation> <translation id="7340958967809483333">Discover-en aukerak</translation> <translation id="7346909386216857016">Ados, ulertu dut</translation> @@ -1344,6 +1342,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> egunetan erabili ez diren fitxak</translation> <translation id="8395339334550012808">Laster, <ph name="CHANNEL_NAME" /> kanalaren edukia ikusiko duzu Jarraitzen atalean, baita kanal horri buruzko edukia ere.</translation> <translation id="8395378633507873708">Helbide-barra</translation> +<translation id="8402673309244746971">Joan hurrengora</translation> <translation id="8403629764260204788">Ezkutatu "Jarraitu arakatzen"</translation> <translation id="8407669440184693619">Ez da aurkitu webgune honen pasahitzik</translation> <translation id="842017693807136194">Honekin hasi da saioa:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb index 5067edeb..d54f70d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">پیوند مستقیمی به بخشی از صفحه که برجسته کردهاید ایجاد و آن را همرسانی کنید.</translation> <translation id="4045648459118332842">گذرواژههای ذخیرهشدهتان را با یک ضربه در هر برنامهای دریافت کنید</translation> <translation id="4049507953662678203">مطمئن شوید اتصال شبکه دارید و دوباره امتحان کنید.</translation> -<translation id="4063300985191096908">رفتن به جارزن</translation> <translation id="4066639687323968621">با «حساب Google» به سیستم وارد شوید تا نشانکها، سابقه، و اطلاعات دیگر همگامسازی شود.</translation> <translation id="4092655288299341041">نمایش راهنما</translation> <translation id="4105841739161771091">{count,plural, =1{حذف نشانی}one{حذف نشانیها}other{حذف نشانیها}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">استفاده از گذرواژههای ذخیرهشده در همه دستگاههایتان</translation> <translation id="730958329302570991">هرزمان بخواهید میتوانید گذرواژههای سایت را به Google Password Manager (مدیر گذرواژه Google) اضافه کنید.</translation> <translation id="7313347584264171202">برگههای ناشناس را اینجا خواهید دید</translation> -<translation id="7331371412779932885">براساس فعالیت مرور در دستگاههای دیگر، پیشنهادهای برگه را بااستفاده از «حساب Google» ارائه میدهد. دستگاهها باید با «حساب Google» یکسان وارد سیستم و همگامسازی شده باشند.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> درصد بارگیری شد</translation> <translation id="7340958967809483333">گزینههای «یافتهها»</translation> <translation id="7346909386216857016">بله متوجه شدم.</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">برگههایی که بهمدت <ph name="THRESHOLD" /> روز استفاده نشدهاند</translation> <translation id="8395339334550012808">بهزودی محتوای برگرفته از <ph name="CHANNEL_NAME" /> و محتوای مربوط به آن را در «دنبال میکنید» خواهید دید.</translation> <translation id="8395378633507873708">نوار نشانی</translation> +<translation id="8402673309244746971">رفتن به «دنبال میکنید»</translation> <translation id="8403629764260204788">پنهان کردن «مرور پیوسته»</translation> <translation id="8407669440184693619">هیچ گذرواژهای برای این سایت پیدا نشد</translation> <translation id="842017693807136194">ورود به سیستم با</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb index 0b88261..940ceae 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Luo ja jaa suora linkki korostamaasi sivun kohtaan.</translation> <translation id="4045648459118332842">Tallennetut salasanat missä tahansa sovelluksessa yhdellä napautuksella</translation> <translation id="4049507953662678203">Varmista, että käytössäsi on verkkoyhteys, ja yritä uudelleen.</translation> -<translation id="4063300985191096908">Siirry fiidiin</translation> <translation id="4066639687323968621">Kirjaudu sisään Google-tililläsi, niin voit synkronoida esimerkiksi kirjanmerkit ja historian.</translation> <translation id="4092655288299341041">Näytä ohjeet</translation> <translation id="4105841739161771091">{count,plural, =1{Poista osoite}other{Poista osoitteet}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Käytä salasanoja kaikilla laitteillasi</translation> <translation id="730958329302570991">Voit helposti lisätä sivustojen salasanoja Googlen Salasanoihin milloin tahansa.</translation> <translation id="7313347584264171202">Näet incognito-välilehtesi täällä</translation> -<translation id="7331371412779932885">Saat välilehtiehdotuksia perustuen selaustoimintaasi Google-tililläsi muilla laitteilla. Laitteiden on oltava kirjautuneena sisään ja synkronoitu samalla Google-tilillä.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> prosenttia ladattu</translation> <translation id="7340958967809483333">Discover-asetukset</translation> <translation id="7346909386216857016">Selvä</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Välilehdet, joita ei ole käytetty <ph name="THRESHOLD" /> päivään</translation> <translation id="8395339334550012808">Näet Seurataan-kohdassa pian tähän kanavaan liittyvää sisältöä: <ph name="CHANNEL_NAME" /></translation> <translation id="8395378633507873708">Osoitepalkki</translation> +<translation id="8402673309244746971">Siirry Seurataan-fiidiin</translation> <translation id="8403629764260204788">Piilota "Jatkuva selaaminen"</translation> <translation id="8407669440184693619">Tälle sivustolle ei löytynyt salasanoja</translation> <translation id="842017693807136194">Kirjauduttu palvelulla</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb index b8d7de2..52676b56 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Gumawa at magbahagi ng direktang link sa isang bahagi ng page na na-highlight mo.</translation> <translation id="4045648459118332842">Kunin ang iyong mga naka-save na password sa anumang app sa pamamagitan ng isang pag-tap</translation> <translation id="4049507953662678203">Tiyaking mayroon kang koneksyon sa network, at subukan ulit.</translation> -<translation id="4063300985191096908">Pumunta Sa Feed</translation> <translation id="4066639687323968621">Mag-sign in sa Google Account mo para ma-sync ang iyong mga bookmark, history, at higit pa.</translation> <translation id="4092655288299341041">Ipakita ang Tulong</translation> <translation id="4105841739161771091">{count,plural, =1{I-delete ang Address}one{I-delete ang Mga Address}other{I-delete ang Mga Address}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Gamitin ang Mga Passward sa Lahat ng Iyong Device</translation> <translation id="730958329302570991">Magdagdag ng mga password ng site sa Google Password Manager anumang oras nang walang kahirap-hirap.</translation> <translation id="7313347584264171202">Makikita mo rito ang iyong mga tab na Incognito</translation> -<translation id="7331371412779932885">Nagbibigay sa iyo ng mga suhestyon sa tab batay sa iyong aktibidad sa pag-browse sa iba mo pang device gamit ang iyong Google account. Dapat naka-sign in at naka-sync ang iyong mga device sa iisang Google account.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> (na) porsyento ang na-download na</translation> <translation id="7340958967809483333">Mga opsyon para sa Discover</translation> <translation id="7346909386216857016">Ok, nakuha ko</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Mga tab na hindi ginamit sa loob ng <ph name="THRESHOLD" /> (na) araw</translation> <translation id="8395339334550012808">Malapit ka nang makakita ng content mula at tungkol sa <ph name="CHANNEL_NAME" /> sa Sinusubaybayan.</translation> <translation id="8395378633507873708">Address Bar</translation> +<translation id="8402673309244746971">Pumunta sa Sinusubaybayan</translation> <translation id="8403629764260204788">I-hide ang "Ipagpatuloy ang Pag-browse"</translation> <translation id="8407669440184693619">Walang nahanap na password para sa site na ito</translation> <translation id="842017693807136194">Naka-sign In Gamit ang</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb index b5afb60..f5d58d51 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -554,7 +554,6 @@ <translation id="40433179647657191">Créez et partagez un lien direct vers une partie d'une page que vous avez mise en surbrillance.</translation> <translation id="4045648459118332842">Utilisez vos mots de passe enregistrés dans n'importe quelle application en un seul clic</translation> <translation id="4049507953662678203">Assurez-vous d'avoir une connexion réseau et réessayez.</translation> -<translation id="4063300985191096908">Accéder au flux</translation> <translation id="4066639687323968621">Connectez-vous avec votre compte Google pour synchroniser vos favoris, votre historique et bien plus encore.</translation> <translation id="4092655288299341041">Afficher l'aide</translation> <translation id="4105841739161771091">{count,plural, =1{Supprimer l'adresse}one{Supprimer les adresses}other{Supprimer les adresses}}</translation> @@ -1149,7 +1148,6 @@ <translation id="7302503784943202842">Utiliser des mots de passe sur tous vos appareils</translation> <translation id="730958329302570991">Ajoutez facilement et à tout moment des mots de passe de site au gestionnaire de mots de passe de Google.</translation> <translation id="7313347584264171202">Vous trouverez vos onglets de navigation privée ici</translation> -<translation id="7331371412779932885">Vous donne des suggestions d'onglets en fonction de votre activité de navigation sur vos autres appareils à l'aide de votre compte Google. Vos appareils doivent être connectés et synchronisés avec le même compte Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> pour cent téléchargé(s)</translation> <translation id="7340958967809483333">Options pour Découvertes</translation> <translation id="7346909386216857016">OK, j'ai compris</translation> @@ -1342,6 +1340,7 @@ <translation id="8393889347136007944">Onglets non utilisés pendant <ph name="THRESHOLD" /> jours</translation> <translation id="8395339334550012808">Bientôt, vous verrez du contenu provenant de <ph name="CHANNEL_NAME" /> dans l'onglet Contenus suivis.</translation> <translation id="8395378633507873708">Barre d'adresse</translation> +<translation id="8402673309244746971">Aller au suivant</translation> <translation id="8403629764260204788">Masquer la « Navigation continue »</translation> <translation id="8407669440184693619">Aucun mot de passé trouvé pour ce site</translation> <translation id="842017693807136194">Connecté avec</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb index 9cd2665d..ee562c4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Créez et partagez un lien direct vers une partie de la page que vous avez mise en évidence.</translation> <translation id="4045648459118332842">Récupérez d'un seul geste vos mots de passe enregistrés dans n'importe quelle appli</translation> <translation id="4049507953662678203">Vérifiez si vous disposez bien d'une connexion réseau, puis réessayez.</translation> -<translation id="4063300985191096908">Accéder au flux</translation> <translation id="4066639687323968621">Connectez-vous avec votre compte Google pour synchroniser vos favoris, votre historique et plus encore.</translation> <translation id="4092655288299341041">Afficher l'aide</translation> <translation id="4105841739161771091">{count,plural, =1{Supprimer l'adresse}one{Supprimer l'adresse}other{Supprimer les adresses}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Utiliser des mots de passe sur tous vos appareils</translation> <translation id="730958329302570991">Ajoutez facilement et à tout moment des mots de passe de site au Gestionnaire de mots de passe de Google.</translation> <translation id="7313347584264171202">Les onglets de navigation privée s'afficheront ici</translation> -<translation id="7331371412779932885">Des suggestions d'onglets vous sont faites en fonction de votre activité de navigation sur vos autres appareils utilisant votre compte Google. Vos appareils doivent être connectés et synchronisés à l'aide du même compte Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> % téléchargés</translation> <translation id="7340958967809483333">Options pour Discover</translation> <translation id="7346909386216857016">OK</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Onglets non utilisés pendant <ph name="THRESHOLD" /> jours</translation> <translation id="8395339334550012808">Vous verrez bientôt des contenus provenant de <ph name="CHANNEL_NAME" /> ou la concernant dans "Suivis".</translation> <translation id="8395378633507873708">Barre d'adresse</translation> +<translation id="8402673309244746971">Accéder aux sites suivis</translation> <translation id="8403629764260204788">Masquer "Poursuivre la navigation"</translation> <translation id="8407669440184693619">Aucun mot de passe trouvé pour ce site</translation> <translation id="842017693807136194">Connecté avec</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb index f35715b..03d7aa3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Crea e comparte unha ligazón directa a unha parte dunha páxina que destacases.</translation> <translation id="4045648459118332842">Usa en calquera aplicación e cun toque os contrasinais gardados</translation> <translation id="4049507953662678203">Asegúrate de ter conexión de rede e téntao de novo.</translation> -<translation id="4063300985191096908">Ir ao feed</translation> <translation id="4066639687323968621">Inicia sesión coa túa Conta de Google para sincronizar os marcadores ou o historial, entre outras opcións.</translation> <translation id="4092655288299341041">Mostrar axuda:</translation> <translation id="4105841739161771091">{count,plural, =1{Eliminar enderezo}other{Eliminar enderezos}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Usar contrasinais en todos os dispositivos</translation> <translation id="730958329302570991">Engade facilmente contrasinais de sitios ao xestor de contrasinais de Google en calquera momento.</translation> <translation id="7313347584264171202">Aquí atoparás as túas pestanas do modo de incógnito</translation> -<translation id="7331371412779932885">Suxíreche pestanas en función da túa actividade de navegación noutros dispositivos coa túa Conta de Google. Debes ter a sesión iniciada coa mesma Conta de Google nos teus dispositivos e deben estar sincronizados.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> por cento descargado</translation> <translation id="7340958967809483333">Opcións de Discover</translation> <translation id="7346909386216857016">Entendido</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Estas pestanas levan sen usarse <ph name="THRESHOLD" /> días</translation> <translation id="8395339334550012808">Pronto verás contido da canle <ph name="CHANNEL_NAME" /> e sobre ela en Seguindo.</translation> <translation id="8395378633507873708">Barra de enderezos</translation> +<translation id="8402673309244746971">Ir a Seguindo</translation> <translation id="8403629764260204788">Oculta Continuar navegando</translation> <translation id="8407669440184693619">Non se atopou ningún contrasinal para este sitio</translation> <translation id="842017693807136194">Sesión iniciada con</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb index bae2f80b..2229c74 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">તમે હાઇલાઇટ કરેલા પેજના ભાગની ડાયરેક્ટ લિંક બનાવો અને શેર કરો.</translation> <translation id="4045648459118332842">કોઈપણ ઍપમાં તમારા સાચવેલા પાસવર્ડ માત્ર એક ટૅપમાં મેળવો</translation> <translation id="4049507953662678203">તમારી પાસે નેટવર્ક કનેક્શન છે તેની ખાતરી કરો અને ફરીથી પ્રયાસ કરો.</translation> -<translation id="4063300985191096908">ફીડ પર જાઓ</translation> <translation id="4066639687323968621">તમારા બુકમાર્ક, ઇતિહાસ જેવું બીજું ઘણું સિંક કરવા માટે, તમારા Google એકાઉન્ટ વડે સાઇન ઇન કરો.</translation> <translation id="4092655288299341041">સહાય બતાવો</translation> <translation id="4105841739161771091">{count,plural, =1{સરનામું ડિલીટ કરો}one{સરનામું ડિલીટ કરો}other{સરનામા ડિલીટ કરો}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">તમારા બધા ડિવાઇસ પર પાસવર્ડનો ઉપયોગ કરો</translation> <translation id="730958329302570991">Google Password Managerમાં કોઈપણ સમયે સાઇટના પાસવર્ડ સરળતાથી ઉમેરો.</translation> <translation id="7313347584264171202">તમને તમારી છૂપી ટૅબ અહીં મળશે</translation> -<translation id="7331371412779932885">તમારા Google એકાઉન્ટનો ઉપયોગ કરીને, તમારા અન્ય ડિવાઇસ પરની તમારી બ્રાઉઝિંગ પ્રવૃત્તિના આધારે તમને ટૅબ માટેના સૂચનો આપે છે. તમારા ડિવાઇસ એક જ Google એકાઉન્ટનો ઉપયોગ કરીને સાઇન ઇન કરેલા તેમજ સિંક કરેલા હોવા જોઈએ.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ટકા ડાઉનલોડ થઈ</translation> <translation id="7340958967809483333">Discover માટેના વિકલ્પો</translation> <translation id="7346909386216857016">બરાબર, સમજાઇ ગયું</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> દિવસથી ઉપયોગમાં ન લેવાયેલી ટૅબ</translation> <translation id="8395339334550012808">ટૂંક સમયમાં, તમને 'ફૉલો કરી રહ્યાં છો'માં <ph name="CHANNEL_NAME" /> પરથી અને વિશેનું કન્ટેન્ટ જોવા મળશે.</translation> <translation id="8395378633507873708">ઍડ્રેસ બાર</translation> +<translation id="8402673309244746971">અનુસરે છે ફીડ પર જાઓ</translation> <translation id="8403629764260204788">"બ્રાઉઝ કરવા આગળ વધો" છુપાવો</translation> <translation id="8407669440184693619">આ સાઇટ માટે કોઈ પાસવર્ડ મળ્યાં નથી</translation> <translation id="842017693807136194">ની સાથે સાઇન ઇન કરેલ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb index 7bc1085..58e76d2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -554,7 +554,6 @@ <translation id="40433179647657191">सीधे पेज के हाइलाइट किए गए हिस्से पर ले जाने वाला लिंक बनाएं और उसे शेयर करें.</translation> <translation id="4045648459118332842">सेव किए गए पासवर्ड को किसी भी ऐप्लिकेशन में इस्तेमाल करने के लिए, सिर्फ़ एक बार टैप करें</translation> <translation id="4049507953662678203">पक्का करें कि आपके पास नेटवर्क कनेक्शन है और फिर से प्रयास करें.</translation> -<translation id="4063300985191096908">फ़ीड पर जाएं</translation> <translation id="4066639687323968621">अपने बुकमार्क, इतिहास वगैरह को सिंक करने के लिए, अपने Google खाते से साइन इन करें.</translation> <translation id="4092655288299341041">ऐप्लिकेशन से जुड़ी मदद पाएं</translation> <translation id="4105841739161771091">{count,plural, =1{पता मिटाएं}one{पता मिटाएं}other{पते मिटाएं}}</translation> @@ -1150,7 +1149,6 @@ <translation id="7302503784943202842">अपने सभी डिवाइसों पर पासवर्ड इस्तेमाल करें</translation> <translation id="730958329302570991">Google Password Manager में, किसी भी समय साइट के पासवर्ड आसानी से जोड़ें.</translation> <translation id="7313347584264171202">आपको अपने गुप्त टैब यहां मिलेंगे</translation> -<translation id="7331371412779932885">आपको टैब के सुझाव, अपने Google खाते का इस्तेमाल करके दूसरे डिवाइसों पर की गई आपकी ब्राउज़िंग गतिविधि के आधार पर मिलते हैं. हालांकि, इसके लिए यह ज़रूरी है कि आपने डिवाइसों में एक ही Google खाते से साइन इन और सिंक किया हो.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> प्रतिशत डाउनलोड हो गई</translation> <translation id="7340958967809483333">'डिस्कवर' के लिए विकल्प</translation> <translation id="7346909386216857016">ठीक है, समझ लिया</translation> @@ -1345,6 +1343,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> दिनों से इस्तेमाल नहीं किए गए टैब</translation> <translation id="8395339334550012808">जल्द ही, आपको 'फ़ॉलो किया जा रहा है' सेक्शन में <ph name="CHANNEL_NAME" /> के बारे में और उसका कॉन्टेंट दिखेगा.</translation> <translation id="8395378633507873708">पता बार</translation> +<translation id="8402673309244746971">'फ़ॉलो किए जा रहे फ़ीड' पर ले जाएं</translation> <translation id="8403629764260204788">"ब्राउज़िंग जारी रखें" छिपाता है</translation> <translation id="8407669440184693619">इस साइट के लिए कोई पासवर्ड नहीं मिला</translation> <translation id="842017693807136194">इससे प्रवेश किया गया है</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index a9f8189..60712357 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Izradite i dijelite izravnu vezu na dio stranice koji ste istaknuli.</translation> <translation id="4045648459118332842">Dohvatite svoje spremljene zaporke u bilo kojoj aplikaciju jednim dodirom</translation> <translation id="4049507953662678203">Provjerite mrežnu vezu i pokušajte ponovo.</translation> -<translation id="4063300985191096908">Otvori feed</translation> <translation id="4066639687323968621">Prijavite se Google računom da biste sinkronizirali oznake, povijest i ostalo.</translation> <translation id="4092655288299341041">Prikaži pomoć</translation> <translation id="4105841739161771091">{count,plural, =1{Brisanje adrese}one{Brisanje adresa}few{Brisanje adresa}other{Brisanje adresa}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Upotreba zaporki na svim uređajima</translation> <translation id="730958329302570991">Jednostavno dodajte zaporke web-lokacija na Google upravitelj zaporki kad god želite.</translation> <translation id="7313347584264171202">Ovdje ćete pronaći svoje anonimne kartice</translation> -<translation id="7331371412779932885">Pruža vam prijedloge kartica na temelju vaše aktivnosti pregledavanja na drugim uređajima pomoću vašeg Google računa. Uređaji moraju biti prijavljeni i sinkronizirani s pomoću istog Google računa.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> posto preuzeto</translation> <translation id="7340958967809483333">Opcije za Discover</translation> <translation id="7346909386216857016">Dobro, shvaćam</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Kartice koje se ne upotrebljavaju <ph name="THRESHOLD" /> dan/dana</translation> <translation id="8395339334550012808">Uskoro će se na kartici Praćeno prikazivati sadržaj s kanala <ph name="CHANNEL_NAME" /> i o tom kanalu.</translation> <translation id="8395378633507873708">Adresna traka</translation> +<translation id="8402673309244746971">Otvorite feed Praćeno</translation> <translation id="8403629764260204788">Sakrij "Nastavite pregledavati"</translation> <translation id="8407669440184693619">Nije pronađena nijedna zaporka za ovu web-lokaciju</translation> <translation id="842017693807136194">Prijavljeni ste na uslugu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb index 8d9dba9..d555d92 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Létrehozhat és megoszthat az oldal kiemelt részére mutató közvetlen linket.</translation> <translation id="4045648459118332842">Egyetlen koppintással hozzáférhet mentett jelszavaihoz bármilyen alkalmazásban</translation> <translation id="4049507953662678203">Győződjön meg róla, hogy rendelkezik hálózati kapcsolattal, majd próbálja újra.</translation> -<translation id="4063300985191096908">Hírcsatorna megnyitása</translation> <translation id="4066639687323968621">Könyvjelzői, előzményei és egyéb tartalmai szinkronizálásához jelentkezzen be Google-fiókjába.</translation> <translation id="4092655288299341041">Súgó megjelenítése</translation> <translation id="4105841739161771091">{count,plural, =1{Cím törlése}other{Címek törlése}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Használhatja jelszavait az összes eszközén</translation> <translation id="730958329302570991">Bármikor egyszerűen hozzáadhatja a webhelyekhez tartozó jelszavakat a Google Jelszókezelőhöz.</translation> <translation id="7313347584264171202">Itt láthatja majd az inkognitó lapjait</translation> -<translation id="7331371412779932885">Lapjavaslatokat ad a Google-fiókját használó más eszközökön végzett böngészési tevékenységei alapján. Szükséges, hogy az eszközök ugyanabba a Google-fiókba legyenek bejelentkezve, és ugyanazzal a fiókkal szinkronizálódjanak.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> százalék letöltve</translation> <translation id="7340958967809483333">A Discover beállításai</translation> <translation id="7346909386216857016">Rendben, értem</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> napja nem használt lapok</translation> <translation id="8395339334550012808">Hamarosan látni fogja a(z) <ph name="CHANNEL_NAME" /> webhelytől, illetve webhelyről származó tartalmakat a Követve szakaszban.</translation> <translation id="8395378633507873708">Címsáv</translation> +<translation id="8402673309244746971">Ugrás a követésekhez</translation> <translation id="8403629764260204788">A „Böngészés folytatása” elrejtése</translation> <translation id="8407669440184693619">Nem található jelszó a webhelyhez</translation> <translation id="842017693807136194">Bejelentkezve a következővel:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb index fe13793..e568afc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Ստեղծեք էջի այն հատվածի ուղիղ հղումը, որն առանձնացրել եք, և կիսվեք դրանով։</translation> <translation id="4045648459118332842">Մեկ հպումով մուտքագրեք ձեր պահված գաղտնաբառերը ցանկացած հավելվածում</translation> <translation id="4049507953662678203">Համոզվեք, որ կապակցված եք համացանցին և փորձեք նորից:</translation> -<translation id="4063300985191096908">Անցնել ֆիդ</translation> <translation id="4066639687323968621">Մուտք գործեք Google հաշիվ՝ ձեր էջանիշները, պատմությունը և այլ տվյալներ համաժամացնելու համար։</translation> <translation id="4092655288299341041">Ցույց տալ օգնության էջը</translation> <translation id="4105841739161771091">{count,plural, =1{Ջնջել հասցեն}one{Ջնջել հասցեն}other{Ջնջել հասցեները}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Օգտագործեք գաղտնաբառերը ձեր բոլոր սարքերում</translation> <translation id="730958329302570991">Ցանկացած ժամանակ հեշտությամբ ավելացրեք կայքերի գաղտնաբառեր Google գաղտնաբառերի կառավարիչում։</translation> <translation id="7313347584264171202">Ձեր ինկոգնիտո ներդիրները կգտնեք այստեղ</translation> -<translation id="7331371412779932885">Տալիս է ներդիրների համար հուշումներ՝ հաշվի առնելով դիտարկիչում գործողությունները ձեր մյուս սարքերում, որտեղ մուտք եք գործել ձեր Google հաշիվ։ Դուք պետք է մուտք գործեք ձեր սարքերում և համաժամացնեք դրանք նույն Google հաշվի միջոցով։</translation> <translation id="7336264872878993241">Ներբեռնվել է <ph name="PERCENT" /> տոկոսը</translation> <translation id="7340958967809483333">Discover-ի կարգավորումներ</translation> <translation id="7346909386216857016">Եղավ</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Ներդիրները <ph name="THRESHOLD" /> օր չեն օգտագործվել</translation> <translation id="8395339334550012808">Շուտով «Բաժանորդագրություններ» բաժնում կցուցադրվի բովանդակություն <ph name="CHANNEL_NAME" /> ալիքից և դրա մասին։</translation> <translation id="8395378633507873708">Հասցեագոտի</translation> +<translation id="8402673309244746971">Անցնել «Հետևում եք» բաժին</translation> <translation id="8403629764260204788">Թաքցնել «Շարունակել դիտարկումը» բաժինը</translation> <translation id="8407669440184693619">Այս կայքի համար գաղտնաբառեր չեն գտնվել</translation> <translation id="842017693807136194">Մուտք եք գործել որպես</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb index 3179e9b..ea98c01 100644 --- a/ios/chrome/app/strings/resources/ios_strings_id.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Buat dan bagikan link langsung ke bagian halaman yang telah Anda tandai.</translation> <translation id="4045648459118332842">Dapatkan sandi tersimpan di aplikasi apa pun dengan sekali ketuk</translation> <translation id="4049507953662678203">Pastikan Anda memiliki koneksi jaringan dan coba lagi.</translation> -<translation id="4063300985191096908">Buka Feed</translation> <translation id="4066639687323968621">Login dengan Akun Google Anda untuk menyinkronkan bookmark, histori, dan lainnya.</translation> <translation id="4092655288299341041">Tampilkan Bantuan</translation> <translation id="4105841739161771091">{count,plural, =1{Hapus Alamat}other{Hapus Alamat}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Gunakan Sandi di Semua Perangkat Anda</translation> <translation id="730958329302570991">Tambahkan sandi situs dengan mudah ke Pengelola Sandi Google kapan saja.</translation> <translation id="7313347584264171202">Tab Samaran Anda akan ditampilkan di sini</translation> -<translation id="7331371412779932885">Memberikan saran tab berdasarkan aktivitas penjelajahan Anda di perangkat lain menggunakan Akun Google Anda. Perangkat Anda harus login dan disinkronkan menggunakan Akun Google yang sama.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> persen berhasil didownload</translation> <translation id="7340958967809483333">Opsi untuk Discover</translation> <translation id="7346909386216857016">Oke, mengerti</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Tab tidak digunakan selama <ph name="THRESHOLD" /> hari</translation> <translation id="8395339334550012808">Anda akan segera melihat konten dari dan tentang <ph name="CHANNEL_NAME" /> di tab Mengikuti.</translation> <translation id="8395378633507873708">Kolom URL</translation> +<translation id="8402673309244746971">Buka feed Mengikuti</translation> <translation id="8403629764260204788">Menyembunyikan "Lanjutkan Menjelajah"</translation> <translation id="8407669440184693619">Tidak ada sandi yang ditemukan untuk situs ini</translation> <translation id="842017693807136194">Login Dengan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb index 4eba384..717b948 100644 --- a/ios/chrome/app/strings/resources/ios_strings_is.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Búðu til og deildu tengli á þann hluta vefsvæðisins sem þú hefur merkt.</translation> <translation id="4045648459118332842">Fáðu aðgang að vistuðum aðgangsorðum í hvaða forriti sem er með einum smelli</translation> <translation id="4049507953662678203">Gakktu úr skugga um að þú sért tengd(ur) netinu og reyndu svo aftur.</translation> -<translation id="4063300985191096908">Opna straum</translation> <translation id="4066639687323968621">Skráðu þig inn á Google-reikninginn þinn til að samstilla bókamerki, feril og fleira.</translation> <translation id="4092655288299341041">Sýna hjálp</translation> <translation id="4105841739161771091">{count,plural, =1{Eyða heimilisfangi}one{Eyða heimilisföngum}other{Eyða heimilisföngum}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Nota aðgangsorð í öllum tækjum</translation> <translation id="730958329302570991">Bættu aðgangsorðum vefsvæða við Google-aðgangsorðastjórnun hvenær sem er á einfaldan hátt.</translation> <translation id="7313347584264171202">Þú finnur huliðsflipana þína hér</translation> -<translation id="7331371412779932885">Sýnir þér flipatillögur sem byggjast á vafranotkun þinni í öðrum tækjum sem nota Google-reikninginn þinn. Tækin þín verða að vera innskráð og samstillt með sama Google-reikningi.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> prósent sótt</translation> <translation id="7340958967809483333">Valkostir fyrir Tillögur</translation> <translation id="7346909386216857016">Ég skil</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Flipar ónotaðir í <ph name="THRESHOLD" /> daga</translation> <translation id="8395339334550012808">Bráðlega sérðu efni frá og um <ph name="CHANNEL_NAME" /> í „Fylgir“.</translation> <translation id="8395378633507873708">Veffangastika</translation> +<translation id="8402673309244746971">Opna „Fylgist með“</translation> <translation id="8403629764260204788">Fela „Halda áfram að vafra“</translation> <translation id="8407669440184693619">Engin aðgangsorð fundust fyrir þetta vefsvæði</translation> <translation id="842017693807136194">Skráð inn með</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index d500fb6..319799bf 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Crea e condividi un link diretto a una porzione di una pagina che hai evidenziato.</translation> <translation id="4045648459118332842">Recupera le tue password salvate con un solo tocco in qualsiasi app</translation> <translation id="4049507953662678203">Controlla la connessione di rete e riprova.</translation> -<translation id="4063300985191096908">Vai al feed</translation> <translation id="4066639687323968621">Accedi con il tuo Account Google per sincronizzare i preferiti, la cronologia e altri dati.</translation> <translation id="4092655288299341041">Mostra la Guida</translation> <translation id="4105841739161771091">{count,plural, =1{Elimina indirizzo}other{Elimina indirizzi}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Usa le password su tutti i tuoi dispositivi</translation> <translation id="730958329302570991">Aggiungi facilmente le password dei siti a Gestore delle password di Google in qualsiasi momento.</translation> <translation id="7313347584264171202">Qui troverai le tue schede di navigazione in incognito</translation> -<translation id="7331371412779932885">Ti offre suggerimenti di schede basati sulla tua attività di navigazione su altri dispositivi usando il tuo Account Google. I dispositivi devono avere eseguito l'accesso e deve essere attiva la sincronizzazione con lo stesso Account Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" />% scaricato</translation> <translation id="7340958967809483333">Opzioni per Discover</translation> <translation id="7346909386216857016">OK</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Schede non utilizzate per <ph name="THRESHOLD" /> giorni</translation> <translation id="8395339334550012808">A breve vedrai contenuti di e relativi a <ph name="CHANNEL_NAME" /> in Stai seguendo.</translation> <translation id="8395378633507873708">Barra degli indirizzi</translation> +<translation id="8402673309244746971">Vai a Stai seguendo</translation> <translation id="8403629764260204788">Nascondi "Continua la navigazione"</translation> <translation id="8407669440184693619">Non è stata trovata alcuna password per questo sito</translation> <translation id="842017693807136194">Accesso eseguito con</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb index 26527b94e..02f557a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">יצירה ושיתוף של קישור ישיר לקטע דף שהדגשת.</translation> <translation id="4045648459118332842">גישה לסיסמאות השמורות שלך בכל אפליקציה בהקשה אחת</translation> <translation id="4049507953662678203">צריך לוודא שיש חיבור לרשת ולנסות שוב.</translation> -<translation id="4063300985191096908">לכניסה אל הפיד</translation> <translation id="4066639687323968621">כניסה באמצעות חשבון Google לצורך סנכרון הסימניות, ההיסטוריה ועוד.</translation> <translation id="4092655288299341041">הצגת העזרה</translation> <translation id="4105841739161771091">{count,plural, =1{מחיקת הכתובת}one{מחיקת הכתובות}two{מחיקת הכתובות}other{מחיקת הכתובות}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">שימוש בסיסמאות בכל המכשירים</translation> <translation id="730958329302570991">קל להוסיף סיסמאות לאתרים במנהל הסיסמאות של Google מתי שרוצים.</translation> <translation id="7313347584264171202">הכרטיסיות במצב אנונימי זמינות כאן</translation> -<translation id="7331371412779932885">קבלת הצעות לכרטיסייה על סמך פעילות הגלישה במכשירים האחרים שלך, באמצעות חשבון Google. המכשירים צריכים להיות מחוברים לאותו חשבון Google ומסונכרנים איתו.</translation> <translation id="7336264872878993241">הושלמה הורדה של <ph name="PERCENT" /> אחוז</translation> <translation id="7340958967809483333">אפשרויות של Discover</translation> <translation id="7346909386216857016">בסדר, הבנתי</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">כרטיסיות שלא היו בשימוש במשך <ph name="THRESHOLD" /> ימים</translation> <translation id="8395339334550012808">בקרוב יוצג לך תוכן מאתר <ph name="CHANNEL_NAME" />, ותוכן לגביו, בקטע 'במעקב'.</translation> <translation id="8395378633507873708">סרגל הכתובות</translation> +<translation id="8402673309244746971">מעבר אל הפיד 'במעקב'</translation> <translation id="8403629764260204788">הסתרת האפשרות 'המשך הגלישה'</translation> <translation id="8407669440184693619">לא נמצאו סיסמאות בשביל האתר הזה</translation> <translation id="842017693807136194">מחובר באמצעות</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb index c9fa4098..90749a61 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">ページでハイライトした部分への直接リンクを作成して共有します。</translation> <translation id="4045648459118332842">ワンタップで、保存したパスワードを他のアプリでも利用できます</translation> <translation id="4049507953662678203">ネットワークに接続していることを確認してから、もう一度お試しください。</translation> -<translation id="4063300985191096908">フィードに移動</translation> <translation id="4066639687323968621">Google アカウントでログインすると、ブックマークや履歴などを同期できます。</translation> <translation id="4092655288299341041">ヘルプを表示</translation> <translation id="4105841739161771091">{count,plural, =1{住所を削除}other{住所を削除}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">すべてのデバイスでパスワードを使用する</translation> <translation id="730958329302570991">サイトのパスワードを Google パスワード マネージャーにいつでも簡単に追加できます。</translation> <translation id="7313347584264171202">シークレット タブはここに表示されます</translation> -<translation id="7331371412779932885">Google アカウントを使用する他のデバイスでの閲覧アクティビティに基づいてタブの候補が表示されます。同じ Google アカウントを使用してデバイスにログインし、同期する必要があります。</translation> <translation id="7336264872878993241"><ph name="PERCENT" />%ダウンロード</translation> <translation id="7340958967809483333">Discover のオプション</translation> <translation id="7346909386216857016">OK</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> 日間使用されていません</translation> <translation id="8395339334550012808">まもなく、[フォロー中] に <ph name="CHANNEL_NAME" /> のコンテンツや関連するコンテンツが表示されるようになります。</translation> <translation id="8395378633507873708">アドレスバー</translation> +<translation id="8402673309244746971">フォロー中のフィードに移動</translation> <translation id="8403629764260204788">[もっと見る] を非表示にする</translation> <translation id="8407669440184693619">このサイト用のパスワードが見つかりません</translation> <translation id="842017693807136194">ログインに使用した ID プロバイダ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb index 7dc2f9623..3c4f87e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">შექმენით და გააზიარეთ პირდაპირი ბმული გვერდის თქვენ მიერ გამოყოფილ ნაწილზე.</translation> <translation id="4045648459118332842">ერთი შეხებით ისარგებლეთ თქვენი შენახული პაროლებით ნებისმიერ აპში</translation> <translation id="4049507953662678203">დარწმუნდით, რომ დაკავშირებული ხართ ქსელთან და ხელახლა ცადეთ.</translation> -<translation id="4063300985191096908">არხზე გადასვლა</translation> <translation id="4066639687323968621">შედით სისტემაში თქვენი Google ანგარიშით თქვენი სანიშნეების, ისტორიისა და სხვა კონტენტის სინქრონიზაციისთვის.</translation> <translation id="4092655288299341041">დახმარების ჩვენება</translation> <translation id="4105841739161771091">{count,plural, =1{მისამართის წაშლა}other{მისამართების წაშლა}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">გამოიყენეთ პაროლები თქვენს ყველა მოწყობილობაზე</translation> <translation id="730958329302570991">მარტივად დაამატეთ საიტების პაროლები Google პაროლების მმართველს ნებისმიერ დროს.</translation> <translation id="7313347584264171202">აქ იპოვით თქვენს ინკოგნიტო ჩანართებს</translation> -<translation id="7331371412779932885">შემოგთავაზებთ ჩანართებს დათვალიერების იმ აქტივობის საფუძველზე, რომელიც თქვენი Google ანგარიშით სხვა მოწყობილობებზე დაფიქსირდა. თქვენს მოწყობილობებზე შესული უნდა იყოს ერთი და იმავე Google ანგარიშით და შესრულებული უნდა გქონდეთ სინქრონიზაცია.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> პროცენტი ჩამოიტვირთა</translation> <translation id="7340958967809483333">Discover-ის ვარიანტები</translation> <translation id="7346909386216857016">კარგი, გასაგებია</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> დღის განმავლობაში გამოუყენებელი ჩანართები</translation> <translation id="8395339334550012808">მალე, სექციაში „თვალმიდევნებული“ იხილავთ <ph name="CHANNEL_NAME" />-ის და მასთან დაკავშირებულ კონტენტს.</translation> <translation id="8395378633507873708">მისამართთა ზოლი</translation> +<translation id="8402673309244746971">თვალმიდევნებულზე გადასვლა</translation> <translation id="8403629764260204788">„დათვალიერების გაგრძელების“ დამალვა</translation> <translation id="8407669440184693619">ამ საიტისთვის პაროლები ვერ მოიძებნა</translation> <translation id="842017693807136194">შესულია</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb index cd7705a..96d88ec 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Өзіңіз ерекшелеген бет бөлігіне тікелей сілтеме жасап, бөлісіңіз.</translation> <translation id="4045648459118332842">Сақталған құпия сөздерді кез келген қолданбада бір түртіп алыңыз</translation> <translation id="4049507953662678203">Желімен байланысты тексеріп, әрекетті қайталап көріңіз.</translation> -<translation id="4063300985191096908">Фидке өту</translation> <translation id="4066639687323968621">Бетбелгілерді, тарихты және т.б. синхрондау үшін Google аккаунтымен кіріңіз.</translation> <translation id="4092655288299341041">Анықтаманы көрсету</translation> <translation id="4105841739161771091">{count,plural, =1{Мекенжайды жою}other{Мекенжайларды жою}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Құпия сөздерді барлық құрылғыда пайдалану</translation> <translation id="730958329302570991">Кез келген уақытта Google Құпия сөз менеджеріне сайттағы құпия сөздерді қосыңыз.</translation> <translation id="7313347584264171202">Инкогнито қойындылары осы жерге шығады</translation> -<translation id="7331371412779932885">Google аккаунты арқылы басқа құрылғылардағы браузерді пайдалану тарихыңызға негізделген қойынды ұсыныстарын береді. Құрылғылар бір Google аккаунты арқылы кіріп, синхрондалуы қажет.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> пайыз жүктелді</translation> <translation id="7340958967809483333">Discover опциялары</translation> <translation id="7346909386216857016">Жарайды, түсінікті</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> күн бойы пайдаланылмаған қойындылар</translation> <translation id="8395339334550012808"><ph name="CHANNEL_NAME" /> туралы және соның ішіндегі контентті жақында "Жазылымдар" бөлімінен көресіз.</translation> <translation id="8395378633507873708">Мекенжай жолағы</translation> +<translation id="8402673309244746971">Жазылу фидіне өтіңіз.</translation> <translation id="8403629764260204788">"Үздіксіз көру" қойындысын жасыру</translation> <translation id="8407669440184693619">Бұл сайт үшін ешқандай құпия сөз табылмады.</translation> <translation id="842017693807136194">Жүйеге кіруге қолданылған хост атауы</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb index d7b07da..1e5099f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">បង្កើត និងចែករំលែកតំណផ្ទាល់ទៅផ្នែកនៃទំព័រដែលអ្នកបានរំលេច។</translation> <translation id="4045648459118332842">យកពាក្យសម្ងាត់ដែលបានរក្សាទុករបស់អ្នកនៅក្នុងកម្មវិធីណាមួយដោយចុចម្ដង</translation> <translation id="4049507953662678203">សូមប្រាកដថាអ្នកមានការតភ្ជាប់បណ្តាញ ហើយសូមព្យាយាមម្តងទៀត។</translation> -<translation id="4063300985191096908">ចូលទៅកាន់ព័ត៌មាន</translation> <translation id="4066639687323968621">ចូលដោយប្រើគណនី Google របស់អ្នក ដើម្បីធ្វើសមកាលកម្មចំណាំ ប្រវត្តិ និងអ្វីៗជាច្រើនទៀតរបស់អ្នក។</translation> <translation id="4092655288299341041">បង្ហាញជំនួយ</translation> <translation id="4105841739161771091">{count,plural, =1{លុបអាសយដ្ឋាន}other{លុបអាសយដ្ឋាន}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">ប្រើពាក្យសម្ងាត់នៅលើឧបករណ៍ទាំងអស់របស់អ្នក</translation> <translation id="730958329302570991">ងាយស្រួលបញ្ចូលពាក្យសម្ងាត់គេហទំព័រទៅក្នុងកម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់បានគ្រប់ពេល។</translation> <translation id="7313347584264171202">អ្នកនឹងឃើញផ្ទាំងឯកជនរបស់អ្នកនៅទីនេះ</translation> -<translation id="7331371412779932885">ផ្ដល់ការណែនាំផ្ទាំងដល់អ្នក ដោយផ្អែកលើសកម្មភាពរុករកតាមអ៊ីនធឺណិតរបស់អ្នកនៅលើឧបករណ៍ផ្សេងទៀតរបស់អ្នក ដោយប្រើគណនី Google របស់អ្នក។ ត្រូវតែចូលគណនី និងធ្វើសមកាលកម្មឧបករណ៍របស់អ្នក ដោយប្រើគណនី Google តែមួយ។</translation> <translation id="7336264872878993241">ទាញយកបាន <ph name="PERCENT" /></translation> <translation id="7340958967809483333">ជម្រើសសម្រាប់ Discover</translation> <translation id="7346909386216857016">យល់ព្រម ខ្ញុំយល់ហើយ</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">ផ្ទាំងមិនត្រូវបានប្រើប្រាស់រយៈពេល <ph name="THRESHOLD" /> ថ្ងៃ</translation> <translation id="8395339334550012808">ក្នុងពេលឆាប់ៗនេះ អ្នកនឹងឃើញខ្លឹមសារពី និងពាក់ព័ន្ធនឹង <ph name="CHANNEL_NAME" /> នៅក្នុង "កំពុងតាមដាន"។</translation> <translation id="8395378633507873708">របារអាសយដ្ឋាន</translation> +<translation id="8402673309244746971">ចូលទៅកាន់ "កំពុងតាមដាន"</translation> <translation id="8403629764260204788">លាក់ "បន្តការរុករក"</translation> <translation id="8407669440184693619">រកមិនឃើញពាក្យសម្ងាត់សម្រាប់គេហទំព័រនេះទេ</translation> <translation id="842017693807136194">បានចូលគណនីដោយប្រើ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb index 77a78e8..2d1fba6e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">ನೀವು ಹೈಲೈಟ್ ಮಾಡಿರುವ ಪುಟದ ಭಾಗವೊಂದಕ್ಕೆ ನೇರ ಲಿಂಕ್ ಅನ್ನು ರಚಿಸಿ ಮತ್ತು ಹಂಚಿಕೊಳ್ಳಿ.</translation> <translation id="4045648459118332842">ಒಂದೇ ಟ್ಯಾಪ್ನಲ್ಲಿ ನಿಮ್ಮ ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಯಾವುದೇ ಆ್ಯಪ್ನಲ್ಲಿ ಪಡೆಯಿರಿ</translation> <translation id="4049507953662678203">ನೀವು ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕ ಹೊಂದಿರುವಿರಾ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation> -<translation id="4063300985191096908">ಫೀಡ್ಗೆ ಹೋಗಿ</translation> <translation id="4066639687323968621">ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಇನ್ನಷ್ಟನ್ನು ಸಿಂಕ್ ಮಾಡಲು ನಿಮ್ಮ Google ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation> <translation id="4092655288299341041">ಸಹಾಯವನ್ನು ತೋರಿಸಿ</translation> <translation id="4105841739161771091">{count,plural, =1{ವಿಳಾಸವನ್ನು ಅಳಿಸಿ}one{ವಿಳಾಸಗಳನ್ನು ಅಳಿಸಿ}other{ವಿಳಾಸಗಳನ್ನು ಅಳಿಸಿ}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಬಳಸಿ</translation> <translation id="730958329302570991">ಸೈಟ್ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಯಾವಾಗ ಬೇಕಾದರೂ Google Password Manager ನಲ್ಲಿ ಸುಲಭವಾಗಿ ಸೇರಿಸಿ.</translation> <translation id="7313347584264171202">ನಿಮ್ಮ ಅಜ್ಞಾತ ಟ್ಯಾಬ್ಗಳನ್ನು ಇಲ್ಲಿ ಕಾಣಬಹುದು</translation> -<translation id="7331371412779932885">ನಿಮ್ಮ Google ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಲ್ಲಿನ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಚಟುವಟಿಕೆಯ ಆಧಾರದ ಮೇಲೆ ನಿಮಗೆ ಟ್ಯಾಬ್ ಸಲಹೆಗಳನ್ನು ನೀಡುತ್ತದೆ. ನಿಮ್ಮ ಸಾಧನಗಳು ಸೈನ್ ಇನ್ ಆಗಿರಬೇಕು ಮತ್ತು ಒಂದೇ Google ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಿಂಕ್ ಮಾಡಬೇಕು.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ಪ್ರತಿಶತ ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="7340958967809483333">Discover ಗಾಗಿ ಆಯ್ಕೆಗಳು</translation> <translation id="7346909386216857016">ಸರಿ, ಅರ್ಥವಾಯಿತು</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">ಟ್ಯಾಬ್ಗಳನ್ನು <ph name="THRESHOLD" /> ದಿನಗಳವರೆಗೆ ಬಳಸಲಾಗಿಲ್ಲ</translation> <translation id="8395339334550012808">ಶೀಘ್ರದಲ್ಲೇ, ನೀವು <ph name="CHANNEL_NAME" /> ನಿಂದ ಮತ್ತು ಅದರ ಬಗೆಗಿನ ಕಂಟೆಂಟ್ ಅನ್ನು ಫಾಲೋ ಮಾಡಲಾಗುತ್ತಿದೆ ಎಂಬಲ್ಲಿ ನೋಡುತ್ತೀರಿ.</translation> <translation id="8395378633507873708">ವಿಳಾಸ ಪಟ್ಟಿ</translation> +<translation id="8402673309244746971">ಅನುಸರಿಸುವಿಕೆಗೆ ಹೋಗಿ</translation> <translation id="8403629764260204788">"ಬ್ರೌಸಿಂಗ್ ಮುಂದುವರಿಸಿ" ಅನ್ನು ಮರೆಮಾಡಿ</translation> <translation id="8407669440184693619">ಈ ಸೈಟ್ಗಾಗಿ ಯಾವುದೇ ಪಾಸ್ವರ್ಡ್ ಕಂಡುಬಂದಿಲ್ಲ</translation> <translation id="842017693807136194">ಇದರಿಂದ ಸೈನ್ ಇನ್ ಮಾಡಲಾಗಿದೆ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb index 553d3c8d..4b6f372 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">페이지에 강조표시한 부분에 직접 연결되는 링크를 만들어 공유합니다</translation> <translation id="4045648459118332842">저장된 비밀번호를 어느 앱에서나 탭 한 번으로 사용하세요</translation> <translation id="4049507953662678203">네트워크에 연결되었는지 확인한 후 다시 시도해 주세요.</translation> -<translation id="4063300985191096908">피드로 이동</translation> <translation id="4066639687323968621">Google 계정으로 로그인하여 북마크, 방문 기록 등을 동기화하세요.</translation> <translation id="4092655288299341041">도움말 표시</translation> <translation id="4105841739161771091">{count,plural, =1{주소 삭제}other{주소 삭제}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">모든 기기에서 비밀번호 사용</translation> <translation id="730958329302570991">언제든지 Google 비밀번호 관리자에 사이트 비밀번호를 손쉽게 추가할 수 있습니다</translation> <translation id="7313347584264171202">여기에서 시크릿 탭을 확인할 수 있습니다</translation> -<translation id="7331371412779932885">Google 계정을 사용하여 다른 기기에서 탐색한 활동을 기반으로 탭 추천을 제공합니다. 동일한 Google 계정을 사용하여 기기에 로그인하고 동기화해야 합니다.</translation> <translation id="7336264872878993241"><ph name="PERCENT" />% 다운로드됨</translation> <translation id="7340958967809483333">디스커버용 옵션</translation> <translation id="7346909386216857016">확인</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">탭을 <ph name="THRESHOLD" />일 동안 사용하지 않음</translation> <translation id="8395339334550012808">곧 팔로잉에서 <ph name="CHANNEL_NAME" />와 관련된 콘텐츠를 볼 수 있게 됩니다</translation> <translation id="8395378633507873708">주소 표시줄</translation> +<translation id="8402673309244746971">팔로우 중으로 이동</translation> <translation id="8403629764260204788">'계속 둘러보기' 숨기기</translation> <translation id="8407669440184693619">이 사이트의 비밀번호를 찾을 수 없음</translation> <translation id="842017693807136194">다음을 사용하여 로그인함</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb index a37f84d3..4b76135 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Бөлүп көрсөткөн барактын бөлүгүнө түз шилтеме түзүп, бөлүшүңүз.</translation> <translation id="4045648459118332842">Сакталган сырсөздөрдү каалаган колдонмодо бир таптоо менен териңиз</translation> <translation id="4049507953662678203">Тармакка туташып турганыңызды текшерип, кайталап көрүңүз.</translation> -<translation id="4063300985191096908">Түрмөккө өтүү</translation> <translation id="4066639687323968621">Кыстармаларды, таржымалды жана башкаларды шайкештирүү үчүн Google аккаунтуңуз менен кириңиз.</translation> <translation id="4092655288299341041">Жардам бөлүмүн көрсөтүү</translation> <translation id="4105841739161771091">{count,plural, =1{Даректи өчүрүү}other{Даректерди өчүрүү}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Бардык түзмөктөрүңүздө сырсөздөрдү колдонуңуз</translation> <translation id="730958329302570991">Каалаган убакта Сырсөздөрдү башкаргычка сайттагы сырсөздөрдү оңой кошо аласыз.</translation> <translation id="7313347584264171202">Жашыруун өтмөктөрүңүздү ушул жерден табасыз</translation> -<translation id="7331371412779932885">Google аккаунтуңузга кирип турган башка түзмөктөрдө көргөн вебсайттарыңыздын негизинде өтмөктөр боюнча сунуштар көрсөтүлөт. Түзмөктөрүңүз бир Google аккаунтуна кирип, шайкештирилиши керек.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> пайыз жүктөлүп алынды</translation> <translation id="7340958967809483333">Сунуштардын параметрлери</translation> <translation id="7346909386216857016">Жарайт, түшүндүм</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Өтмөктөр <ph name="THRESHOLD" /> күн колдонулган жок</translation> <translation id="8395339334550012808">Жакында <ph name="CHANNEL_NAME" /> каналындагы контентти жана маалыматты Жазылгансыз бөлүмүндө көрөсүз.</translation> <translation id="8395378633507873708">Дарек тилкеси</translation> +<translation id="8402673309244746971">Жазылгандарга өтүү</translation> <translation id="8403629764260204788">"Үзгүлтүксүз серептөөнү" жашыруу</translation> <translation id="8407669440184693619">Бул сайт үчүн бир да сырсөз табылган жок</translation> <translation id="842017693807136194">Төмөнкү дайындар менен кирүү:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb index cbfb83b..236f9ae0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">ສ້າງ ແລະ ແບ່ງປັນລິ້ງໂດຍກົງໄປຫາພາກສ່ວນຂອງໜ້າທີ່ທ່ານໄຮໄລ້ໄວ້.</translation> <translation id="4045648459118332842">ເພື່ອເບິ່ງລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ຂອງທ່ານໃນແອັບຕ່າງໆດ້ວຍການແຕະພຽງເທື່ອດຽວ</translation> <translation id="4049507953662678203">ກະລຸນາກວດສອບວ່າທ່ານມີການເຊື່ອມຕໍ່ເຄືອຂ່າຍ ແລ້ວລອງອີກຄັ້ງ.</translation> -<translation id="4063300985191096908">ໄປຫາຟີດ</translation> <translation id="4066639687323968621">ເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານເພື່ອຊິ້ງບຸກມາກ, ປະຫວັດ ແລະ ອື່ນໆຂອງທ່ານ.</translation> <translation id="4092655288299341041">ສະແດງຂໍ້ມູນຊ່ວຍເຫຼືອ</translation> <translation id="4105841739161771091">{count,plural, =1{ລຶບທີ່ຢູ່}other{ລຶບທີ່ຢູ່}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">ໃຊ້ລະຫັດຜ່ານຢູ່ອຸປະກອນທັງໝົດຂອງທ່ານ</translation> <translation id="730958329302570991">ເພີ່ມລະຫັດຜ່ານເວັບໄຊໄປໃສ່ຕົວຈັດການລະຫັດຜ່ານ Google ຕອນໃດກໍໄດ້.</translation> <translation id="7313347584264171202">ທ່ານຈະເຫັນແຖບທີ່ບໍ່ເປີດເຜີຍຕົວຕົນຂອງທ່ານຢູ່ບ່ອນນີ້</translation> -<translation id="7331371412779932885">ໃຫ້ການແນະນຳແຖບທ່ານໂດຍອ້າງອີງໃສ່ການເຄື່ອນໄຫວການທ່ອງເວັບຂອງທ່ານຢູ່ອຸປະກອນອື່ນໆໂດຍໃຊ້ບັນຊີ Google ຂອງທ່ານ. ອຸປະກອນຂອງທ່ານຈະຕ້ອງເຂົ້າສູ່ລະບົບ ແລະ ຊິ້ງຂໍ້ມູນໂດຍໃຊ້ບັນຊີ Google ດຽວກັນ.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ເປີເຊັນຖືກດາວໂຫຼດແລ້ວ</translation> <translation id="7340958967809483333">ຕົວເລືອກສຳລັບ Discover</translation> <translation id="7346909386216857016">ຕົກລົງ, ເຂົ້າໃຈແລ້ວ</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">ແຖບທີ່ບໍ່ໄດ້ນຳໃຊ້ເປັນເວລາ <ph name="THRESHOLD" /> ມື້</translation> <translation id="8395339334550012808">ໃນໄວໆນີ້, ທ່ານຈະເຫັນເນື້ອຫາຈາກ ແລະ ກ່ຽວກັບ<ph name="CHANNEL_NAME" /> ໃນກຳລັງຕິດຕາມ.</translation> <translation id="8395378633507873708">ແຖບທີ່ຢູ່</translation> +<translation id="8402673309244746971">ເຂົ້າໄປທີ່ ກຳລັງຕິດຕາມ</translation> <translation id="8403629764260204788">ເຊື່ອງ "ການທ່ອງເນັດຕໍ່ເນື່ອງ"</translation> <translation id="8407669440184693619">ບໍ່ເຫັນລະຫັດຜ່ານສຳລັບເວັບໄຊນີ້</translation> <translation id="842017693807136194">ເຂົ້າສູ່ລະບົບດ້ວຍ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index f6a5724..411740a1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Sukurkite ir bendrinkite tiesioginę nuorodą į puslapio dalį, kurią paryškinote.</translation> <translation id="4045648459118332842">Vienu palietimu gaukite išsaugotus slaptažodžius bet kurioje programoje</translation> <translation id="4049507953662678203">Įsitikinkite, kad yra tinklo ryšys ir bandykite dar kartą.</translation> -<translation id="4063300985191096908">Eiti į sklaidos kanalą</translation> <translation id="4066639687323968621">Prisijunkite naudodami „Google“ paskyrą, kad sinchronizuotumėte žymes, istoriją ir kt.</translation> <translation id="4092655288299341041">Rodyti pagalbą</translation> <translation id="4105841739161771091">{count,plural, =1{Ištrinti adresą}one{Ištrinti adresus}few{Ištrinti adresus}many{Ištrinti adresus}other{Ištrinti adresus}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Slaptažodžių naudojimas visuose įrenginiuose</translation> <translation id="730958329302570991">Bet kada galite lengvai pridėti svetainių slaptažodžių prie „Google“ slaptažodžių tvarkyklės.</translation> <translation id="7313347584264171202">Čia rasite inkognito skirtukus</translation> -<translation id="7331371412779932885">Teikiami skirtukų pasiūlymai pagal jūsų naršymo veiklą kituose įrenginiuose naudojant „Google“ paskyrą. Tuose įrenginiuose turite būti prisijungę naudodami tą pačią „Google“ paskyrą ir sinchronizuoti įrenginius.</translation> <translation id="7336264872878993241">Atsisiųsta <ph name="PERCENT" /> proc.</translation> <translation id="7340958967809483333">„Discover“ parinktys</translation> <translation id="7346909386216857016">Gerai, supratau</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Skirtukai nenaudojami <ph name="THRESHOLD" /> d.</translation> <translation id="8395339334550012808">Netrukus skiltyje „Stebima“ matysite turinį iš kanalo <ph name="CHANNEL_NAME" /> ir apie jį.</translation> <translation id="8395378633507873708">Adreso juosta</translation> +<translation id="8402673309244746971">Eiti į skiltį „Stebima“</translation> <translation id="8403629764260204788">Slėpti parinktį „Tęsti naršymą“</translation> <translation id="8407669440184693619">Nerasta šios svetainės slaptažodžių</translation> <translation id="842017693807136194">Prisijungta naudojant</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb index 3c94a85f..753e76a3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Izveidojiet un kopīgojiet tiešo saiti uz izceltu lapas sadaļu.</translation> <translation id="4045648459118332842">Iegūstiet savas saglabātās paroles jebkurā lietotnē ar vienu pieskārienu</translation> <translation id="4049507953662678203">Pārbaudiet, vai ir izveidots tīkla savienojums, un mēģiniet vēlreiz.</translation> -<translation id="4063300985191096908">Pāriet uz plūsmu</translation> <translation id="4066639687323968621">Pierakstieties savā Google kontā, lai sinhronizētu grāmatzīmes, vēsturi un citus datus.</translation> <translation id="4092655288299341041">Rādīt palīdzību</translation> <translation id="4105841739161771091">{count,plural, =1{Dzēst adresi}zero{Dzēst adreses}one{Dzēst adreses}other{Dzēst adreses}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Paroļu izmantošana visās jūsu ierīcēs</translation> <translation id="730958329302570991">Varat jebkurā laikā ērti pievienot vietņu paroles Google paroļu pārvaldniekam.</translation> <translation id="7313347584264171202">Šeit varēsiet skatīt savas inkognito cilnes</translation> -<translation id="7331371412779932885">Sniedz ciļņu ieteikumus, kas balstīti uz jūsu pārlūkošanas darbībām citās ierīcēs, izmantojot jūsu Google kontu. Ierīcēs ir jāpierakstās un jāveic sinhronizācija, izmantojot vienu un to pašu Google kontu.</translation> <translation id="7336264872878993241">Lejupielādēti <ph name="PERCENT" /> %</translation> <translation id="7340958967809483333">Discover iespējas</translation> <translation id="7346909386216857016">Labi, sapratu</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Cilnes, kas nav izmantotas <ph name="THRESHOLD" /> dienu(-as)</translation> <translation id="8395339334550012808">Drīzumā sadaļā “Sekojat” tiks rādīts saturs no vietnes <ph name="CHANNEL_NAME" /> vai par šo vietni.</translation> <translation id="8395378633507873708">Adreses josla</translation> +<translation id="8402673309244746971">Pāriet uz sadaļu “Sekojat”</translation> <translation id="8403629764260204788">Paslēpt vienumu “Turpināt pārlūkošanu”</translation> <translation id="8407669440184693619">Šai vietnei nav atrasta neviena parole</translation> <translation id="842017693807136194">Pierakstījies kā</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb index d1464ae..9f801ea 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Создајте и споделете директен линк до делот од страницата што сте го нагласиле.</translation> <translation id="4045648459118332842">Добивајте ги зачуваните лозинки во која било апликација со еден допир</translation> <translation id="4049507953662678203">Проверете дали имате мрежна врска и обидете се повторно.</translation> -<translation id="4063300985191096908">Оди на активноста</translation> <translation id="4066639687323968621">Најавете се со сметката на Google за да ги синхронизирате вашите обележувачи, историја и друго.</translation> <translation id="4092655288299341041">Прикажи помош</translation> <translation id="4105841739161771091">{count,plural, =1{Избриши ја адресата}one{Избриши ги адресите}other{Избриши ги адресите}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Користете ги лозинките на сите ваши уреди</translation> <translation id="730958329302570991">Лесно додавајте лозинки за сајтови во Google Password Manager во секое време.</translation> <translation id="7313347584264171202">Вашите картички „Инкогнито“ ќе ги најдете тука</translation> -<translation id="7331371412779932885">Ви дава предлози за картички според вашата активност од прелистувањето на вашите други уреди со вашата сметка на Google. Уредите мора да бидат најавени и синхронизирани со истата сметка на Google.</translation> <translation id="7336264872878993241">Преземено <ph name="PERCENT" /> проценти</translation> <translation id="7340958967809483333">Опции за Discover</translation> <translation id="7346909386216857016">Добро, сфатив</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Картички што не се користат <ph name="THRESHOLD" /> дена</translation> <translation id="8395339334550012808">Наскоро, ќе гледате содржини од и за <ph name="CHANNEL_NAME" /> во „Се следи“.</translation> <translation id="8395378633507873708">Лента за адреси</translation> +<translation id="8402673309244746971">Одете на „Следите“</translation> <translation id="8403629764260204788">Скриј „Продолжи со прелистување“</translation> <translation id="8407669440184693619">Не се најдени лозинки за сајтов</translation> <translation id="842017693807136194">Најавен со</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index 2bd516ff..52d0868 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">നിങ്ങൾ ഹൈലൈറ്റ് ചെയ്ത പേജിന്റെ ഒരു ഭാഗത്തേക്ക് നേരിട്ടുള്ള ലിങ്ക് സൃഷ്ടിക്കുക, പങ്കിടുക.</translation> <translation id="4045648459118332842">ഒരൊറ്റ ടാപ്പിലൂടെ നിങ്ങളുടെ സംരക്ഷിച്ച പാസ്വേഡുകൾ ഏത് ആപ്പിലും നേടൂ</translation> <translation id="4049507953662678203">നിങ്ങൾക്ക് നെറ്റ്വർക്ക് കണക്ഷനുണ്ടെന്ന് ഉറപ്പാക്കി, വീണ്ടും ശ്രമിക്കുക.</translation> -<translation id="4063300985191096908">ഫീഡിലേക്ക് പോകുക</translation> <translation id="4066639687323968621">നിങ്ങളുടെ ബുക്ക്മാർക്കുകളും ചരിത്രവും മറ്റും സമന്വയിപ്പിക്കാൻ Google Account ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യുക.</translation> <translation id="4092655288299341041">സഹായം കാണിക്കുക</translation> <translation id="4105841739161771091">{count,plural, =1{വിലാസം ഇല്ലാതാക്കുക}other{വിലാസങ്ങൾ ഇല്ലാതാക്കുക}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും പാസ്വേഡുകൾ ഉപയോഗിക്കുക</translation> <translation id="730958329302570991">സൈറ്റിന്റെ പാസ്വേഡുകൾ Google Password Manager-ലേക്ക് ഏതുസമയത്തും എളുപ്പത്തിൽ ചേർക്കുക.</translation> <translation id="7313347584264171202">നിങ്ങളുടെ അദൃശ്യ ടാബുകൾ ഇവിടെ കാണാം</translation> -<translation id="7331371412779932885">നിങ്ങളുടെ Google Account ഉപയോഗിക്കുന്ന മറ്റ് ഉപകരണങ്ങളിലെ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി അടിസ്ഥാനമാക്കി നിങ്ങൾക്ക് ടാബ് നിർദ്ദേശങ്ങൾ നൽകുന്നു. അതേ Google Account ഉപയോഗിച്ച് നിങ്ങളുടെ ഉപകരണങ്ങളിൽ സൈൻ ഇൻ ചെയ്യുകയും അവ സമന്വയിപ്പിക്കുകയും വേണം.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ശതമാനം ഡൗൺലോഡുചെയ്തു</translation> <translation id="7340958967809483333">Discover-നുള്ള ഓപ്ഷനുകൾ</translation> <translation id="7346909386216857016">മനസ്സിലായി</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> ദിവസത്തിനിടെ ഉപയോഗിച്ചിട്ടില്ലാത്ത ടാബുകൾ</translation> <translation id="8395339334550012808">ഉടൻ, നിങ്ങൾ ഫോളോ ചെയ്യുന്നതിൽ <ph name="CHANNEL_NAME" /> എന്ന ചാനലിൽ നിന്നുള്ളതും അതിനെ സംബന്ധിച്ചതുമായ ഉള്ളടക്കം കാണും.</translation> <translation id="8395378633507873708">വിലാസ ബാർ</translation> +<translation id="8402673309244746971">പിന്തുടരുന്നവ എന്നതിലേക്ക് പോകുക</translation> <translation id="8403629764260204788">"ബ്രൗസിംഗ് തുടരുക" മറയ്ക്കുക</translation> <translation id="8407669440184693619">ഈ സൈറ്റിനുള്ള പാസ്വേഡുകളൊന്നും കണ്ടെത്തിയില്ല</translation> <translation id="842017693807136194">ഇതുപയോഗിച്ച് സൈൻ ഇൻ ചെയ്തു</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb index 9380593..ed8a9a91 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Хуудасныхаа тодруулсан хэсгийнхээ шууд холбоосыг үүсгэж, хуваалцаарай.</translation> <translation id="4045648459118332842">Дурын аппад хадгалсан нууц үгнүүдээ нэг товшилтоор аваарай</translation> <translation id="4049507953662678203">Сүлжээнд холбогдсон эсэхээ шалгаад, дахин оролдоно уу.</translation> -<translation id="4063300985191096908">Хангамж руу очих</translation> <translation id="4066639687323968621">Хавчуурга, түүх болон бусад зүйлээ синк хийхийн тулд Google Бүртгэлээрээ нэвтэрнэ үү.</translation> <translation id="4092655288299341041">Тусламжийг харуулах</translation> <translation id="4105841739161771091">{count,plural, =1{Хаягийг устгах}other{Хаягуудыг устгах}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Бүх төхөөрөмждөө нууц үгнүүдээ ашиглах</translation> <translation id="730958329302570991">Google Password Manager-т сайтын нууц үгийг хүссэн үедээ хялбархан нэмээрэй.</translation> <translation id="7313347584264171202">Та нууцлалтай табуудаа эндээс олох болно</translation> -<translation id="7331371412779932885">Таны Google бүртгэлийг ашиглаж буй бусад төхөөрөмжийн тань хөтчийн үйл ажиллагаанд тулгуурлан табын зөвлөмжүүдийг танд өгнө. Таны төхөөрөмжүүдэд ижил Google бүртгэлийг ашиглан нэвтэрсэн бөгөөд синк хийсэн байх ёстой.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> хувь татагдсан байна</translation> <translation id="7340958967809483333">Discover-н сонголт</translation> <translation id="7346909386216857016">OK, ойлголоо</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> хоногийн турш ашиглаагүй табууд</translation> <translation id="8395339334550012808">Удахгүй та <ph name="CHANNEL_NAME" />-с болон түүний талаарх контентыг Дагаж буй табд харна.</translation> <translation id="8395378633507873708">Хаяг оруулах хэсэг</translation> +<translation id="8402673309244746971">Дагаж буй руу очих</translation> <translation id="8403629764260204788">"Үргэлжлүүлэн үзэх"-ийг нуух</translation> <translation id="8407669440184693619">Энэ сайтад нууц үг олдсонгүй</translation> <translation id="842017693807136194">Дараахаар нэвтэрсэн</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb index 33362b6e..7528f17 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">तुम्ही हायलाइट केलेल्या पेजच्या भागाची थेट लिंक तयार करा आणि शेअर करा.</translation> <translation id="4045648459118332842">एका टॅपसह तुमचे पासवर्ड कोणत्याही अॅपमध्ये सेव्ह करा</translation> <translation id="4049507953662678203">आपल्याकडे नेटवर्क कनेक्शन आहे हे सुनिश्चित करा आणि पुन्हा प्रयत्न करा.</translation> -<translation id="4063300985191096908">फीड वर जा</translation> <translation id="4066639687323968621">तुमचे बुकमार्क, इतिहास आणि आणखी बरेच काही सिंक करण्यासाठी तुमचे Google खाते वापरून साइन इन करा.</translation> <translation id="4092655288299341041">मदत दाखवा</translation> <translation id="4105841739161771091">{count,plural, =1{पत्ता हटवा}other{पत्ते हटवा}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">तुमच्या सर्व डिव्हाइसवर पासवर्ड वापरा</translation> <translation id="730958329302570991">Google Password Manager मध्ये साइटचे पासवर्ड कधीही सहजपणे जोडा.</translation> <translation id="7313347584264171202">तुमचे गुप्त टॅब तुम्हाला येथे सापडतील</translation> -<translation id="7331371412779932885">तुमचे Google खाते वापरून तुमच्या इतर डिव्हाइसवर तुमच्या ब्राउझिंग ॲक्टिव्हिटीवर आधारित तुम्हाला टॅब सूचना देते. तुमची डिव्हाइस समान Google खाते वापरून साइन इन आणि सिंक करणे आवश्यक आहे.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> टक्के डाउनलोड केले</translation> <translation id="7340958967809483333">Discover चे पर्याय</translation> <translation id="7346909386216857016">ठीक आहे, समजले</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">टॅब <ph name="THRESHOLD" /> दिवस वापरलेले नाहीत</translation> <translation id="8395339334550012808">लवकरच, तुम्हाला फॉलो करत आहे यामध्ये <ph name="CHANNEL_NAME" /> मधील आणि त्याबद्दल आशय दिसेल.</translation> <translation id="8395378633507873708">अॅड्रेस बार</translation> +<translation id="8402673309244746971">फॉलो करत आहे वर जा</translation> <translation id="8403629764260204788">"ब्राउझिंग सुरू ठेवा" लपवा</translation> <translation id="8407669440184693619">या साइटसाठी पासवर्ड सापडले नाहीत</translation> <translation id="842017693807136194">यासह साइन इन केले</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index 52ddc78..2f8f6df 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Buat dan kongsi pautan terus ke bahagian halaman yang telah anda serlahkan.</translation> <translation id="4045648459118332842">Dapatkan kata laluan anda yang disimpan dalam mana-mana apl dengan satu ketikan</translation> <translation id="4049507953662678203">Pastikan anda mempunyai sambungan rangkaian dan cuba lagi.</translation> -<translation id="4063300985191096908">Pergi Ke Suapan</translation> <translation id="4066639687323968621">Log masuk dengan Google Account anda untuk menyegerakkan penanda halaman dan sejarah anda serta pelbagai lagi.</translation> <translation id="4092655288299341041">Tunjukkan Bantuan</translation> <translation id="4105841739161771091">{count,plural, =1{Padamkan Alamat}other{Padamkan Alamat}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Gunakan Kata Laluan pada Semua Peranti Anda</translation> <translation id="730958329302570991">Tambah kata laluan pada Google Password Manager dengan mudah pada bila-bila masa.</translation> <translation id="7313347584264171202">Anda dapat menemukan tab Inkognito anda di sini</translation> -<translation id="7331371412779932885">Memberi anda cadangan tab berdasarkan aktiviti penyemakan imbas anda pada peranti anda yang lain menggunakan Google Account anda. Peranti anda hendaklah dilog masuk dan disegerakkan menggunakan Google Account yang sama.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> peratus dimuat turun</translation> <translation id="7340958967809483333">Pilihan untuk Discover</translation> <translation id="7346909386216857016">Ok, faham</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Tab tidak digunakan selama <ph name="THRESHOLD" /> hari</translation> <translation id="8395339334550012808">Tidak lama lagi, anda akan dapat melihat kandungan daripada dan tentang <ph name="CHANNEL_NAME" /> dalam Diikut.</translation> <translation id="8395378633507873708">Bar Alamat</translation> +<translation id="8402673309244746971">Pergi ke Mengikuti</translation> <translation id="8403629764260204788">Sembunyikan "Penyemakan Imbas Berterusan"</translation> <translation id="8407669440184693619">Tiada kata laluan ditemui untuk tapak ini</translation> <translation id="842017693807136194">Dilog Masuk dengan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb index 925a9ae..3d7204f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_my.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">သင်မြင်သာထင်သာဖြစ်အောင်လုပ်ထားသည့် စာမျက်နှာ တစ်စိတ်တစ်ပိုင်းသို့ တိုက်ရိုက်လင့်ခ် ပြုလုပ်ပြီး မျှဝေနိုင်သည်။</translation> <translation id="4045648459118332842">တစ်ချက်တို့၍ မည်သည့်အက်ပ်တွင်မဆို သိမ်းထားသော သင်၏စကားဝှက်များကို ရယူနိုင်သည်</translation> <translation id="4049507953662678203">ကွန်ယက်ချိတ်ဆက်မှု ရှိမရှိသေချာစေပြီး ထပ်စမ်းကြည့်ပါ။</translation> -<translation id="4063300985191096908">ဖိဒ်သို့သွားရန်</translation> <translation id="4066639687323968621">သင့်လိပ်စာ၊ မှတ်တမ်း စသည်တို့ကို စင့်ခ်လုပ်ရန် သင်၏ Google Account ဖြင့် လက်မှတ်ထိုးဝင်ရမည်။</translation> <translation id="4092655288299341041">အကူအညီပြပါ</translation> <translation id="4105841739161771091">{count,plural, =1{လိပ်စာ ဖျက်ရန်}other{လိပ်စာများ ဖျက်ရန်}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">သင့်စက်အားလုံးတွင် စကားဝှက်များသုံးရန်</translation> <translation id="730958329302570991">‘Google စကားဝှက်မန်နေဂျာ’ တွင် ဝဘ်ဆိုက်စကားဝှက်ကို အချိန်မရွေး လွယ်ကူစွာထည့်နိုင်သည်။</translation> <translation id="7313347584264171202">သင့်ရုပ်ဖျက်တဘ်များကို ဤနေရာတွင် ပြပါမည်</translation> -<translation id="7331371412779932885">သင့် Google အကောင့် သုံးနေသော အခြားစက်များပေါ်ရှိ ကြည့်ရှုခြင်းများပေါ် အခြေခံပြီး တဘ်အကြံပြုချက်များ ပေးသည်။ သင့်စက်များကို လက်မှတ်ထိုးဝင်ထားပြီး တူညီသော Google အကောင့်သုံးကာ စင့်ခ်လုပ်ထားရမည်။</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ရာခိုင်နှုန်းဒေါင်းလုဒ်လုပ်ပြီးပါပြီ</translation> <translation id="7340958967809483333">Discover အတွက် ရွေးစရာများ</translation> <translation id="7346909386216857016">OK</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> ရက်ကြာ အသုံးမပြုသည့် တဘ်များ</translation> <translation id="8395339334550012808">မကြာမီ သင်သည် <ph name="CHANNEL_NAME" /> အကြောင်းနှင့် ၎င်း၏အကြောင်းအရာများကို ‘လိုက်ကြည့်နေသည်များ’ တွင်တွေ့ရပါမည်။</translation> <translation id="8395378633507873708">လိပ်စာဘား</translation> +<translation id="8402673309244746971">‘လိုက်ကြည့်နေသည်များ’ သို့သွားရန်</translation> <translation id="8403629764260204788">“ဆက်တိုက် ရှာကြည့်မှု” ကိုဖျောက်ရန်</translation> <translation id="8407669440184693619">ဤဝဘ်ဆိုက်အတွက် စကားဝှက်မရှိပါ</translation> <translation id="842017693807136194">လက်မှတ်ထိုးဝင်ထားသည့် အကောင့်</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb index 8e25bc28..3f293cc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">सीधै पेजको हाइलाइट गरिएको खण्डमा लैजाने लिंक बनाउनुहोस् र सो लिंक सेयर गर्नुहोस्।</translation> <translation id="4045648459118332842">एक पटक ट्याप गरेकै भरमा सेभ गरिएका पासवर्डहरू जुनसुकै एपमा प्रयोग गर्नुहोस्</translation> <translation id="4049507953662678203">तपाईँसँग नेटवर्क जडान छ भनी निश्चित गर्नुहोस् र फेरि प्रयास गर्नुहोस्।</translation> -<translation id="4063300985191096908">फिडमा जानुहोस्</translation> <translation id="4066639687323968621">आफ्ना बुकमार्क र हिस्ट्रीलगायतका कुराहरू सिंक गर्न Google खातामार्फत साइन इन गर्नुहोस्।</translation> <translation id="4092655288299341041">मद्दत केन्द्र देखाइयोस्</translation> <translation id="4105841739161771091">{count,plural, =1{ठेगाना मेटाउनुहोस्}other{ठेगानाहरू मेटाउनुहोस्}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">आफ्ना सबै डिभाइसमा पासवर्ड प्रयोग गर्नुहोस्</translation> <translation id="730958329302570991">जुनसुकै बेला Google पासवर्ड म्यानेजरमा साइटको पासवर्ड सजिलैसँग हाल्नुहोस्।</translation> <translation id="7313347584264171202">तपाईंका इन्कोग्निटो ट्याबहरू यहाँ देखिने छन्</translation> -<translation id="7331371412779932885">यसले तपाईंलाई तपाईंको Google खाता प्रयोग गरेर तपाईंका अन्य डिभाइसहरूमा तपाईंले ब्राउजर प्रयोग गरी गरेको क्रियाकलापका आधारमा ट्याबमा दिइने सुझावहरू दिन्छ। तपाईंका डिभाइसहरूमा अनिवार्य रूपमा एउटै Google खाता प्रयोग गरेर साइन इन तथा सिंक गरिनु पर्छ।</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> प्रतिशत डाउनलोड भयो</translation> <translation id="7340958967809483333">Discover का विकल्पहरू</translation> <translation id="7346909386216857016">ठिक छ, बुझेँ</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">गत <ph name="THRESHOLD" /> दिनदेखि प्रयोग नगरिएका ट्याबहरू</translation> <translation id="8395339334550012808">तपाईं चाँडै नै "फलो गरिएका" ट्याबमा <ph name="CHANNEL_NAME" /> का तथा सो च्यानलका बारेमा सामग्री देख्नु हुने छ।</translation> <translation id="8395378633507873708">एड्रेस बार</translation> +<translation id="8402673309244746971">"फलो गरिरहेको" मा जानुहोस्</translation> <translation id="8403629764260204788">"ब्राउज गरिराख्नुहोस्" लुकाउनुहोस्</translation> <translation id="8407669440184693619">यो साइटका लागि कुनै पनि पासवर्ड फेला परेन</translation> <translation id="842017693807136194">निम्न प्रमाणमार्फत साइन इन ...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb index 5568960..0005937 100644 --- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Maak en deel een rechtstreekse link naar een gemarkeerd deel van een pagina.</translation> <translation id="4045648459118332842">Gebruik met één tik je opgeslagen wachtwoorden in elke app</translation> <translation id="4049507953662678203">Zorg ervoor dat je beschikt over een netwerkverbinding en probeer het opnieuw.</translation> -<translation id="4063300985191096908">Naar feed</translation> <translation id="4066639687323968621">Log in met je Google-account om onder andere je bookmarks en geschiedenis te synchroniseren.</translation> <translation id="4092655288299341041">Hulp tonen</translation> <translation id="4105841739161771091">{count,plural, =1{Adres verwijderen}other{Adressen verwijderen}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Wachtwoorden gebruiken op al je apparaten</translation> <translation id="730958329302570991">Voeg makkelijk sitewachtwoorden toe aan Google Wachtwoordmanager.</translation> <translation id="7313347584264171202">Hier vind je je incognitotabbladen</translation> -<translation id="7331371412779932885">Hiermee krijg je suggesties voor tabbladen op basis van je browse-activiteit op je andere apparaten via je Google-account. Je apparaten moeten zijn ingelogd en gesynchroniseerd met hetzelfde Google-account.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> procent gedownload</translation> <translation id="7340958967809483333">Opties voor Discover</translation> <translation id="7346909386216857016">OK, begrepen</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Tabbladen die <ph name="THRESHOLD" /> dagen niet zijn gebruikt</translation> <translation id="8395339334550012808">Binnenkort zie je content van en over <ph name="CHANNEL_NAME" /> in Je volgt.</translation> <translation id="8395378633507873708">Adresbalk</translation> +<translation id="8402673309244746971">Naar Je volgt</translation> <translation id="8403629764260204788">Verder browsen verbergen</translation> <translation id="8407669440184693619">Geen wachtwoorden gevonden voor deze site</translation> <translation id="842017693807136194">Ingelogd met</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb index dab8a5d..104a966 100644 --- a/ios/chrome/app/strings/resources/ios_strings_no.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Opprett og del en direktelink til en del av en side du har markert.</translation> <translation id="4045648459118332842">Se de lagrede passordene dine i hvilken som helst app med ett trykk</translation> <translation id="4049507953662678203">Sørg for at du er koblet til et nettverk, og prøv igjen.</translation> -<translation id="4063300985191096908">Gå til feeden</translation> <translation id="4066639687323968621">Logg på med Google-kontoen din for å synkronisere blant annet bokmerker og loggen.</translation> <translation id="4092655288299341041">Vis Hjelp</translation> <translation id="4105841739161771091">{count,plural, =1{Slett adresse}other{Slett adresser}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Bruk passord på alle enhetene dine</translation> <translation id="730958329302570991">Du kan enkelt legge til nettstedspassord i Google Passordlagring når som helst.</translation> <translation id="7313347584264171202">Her finner du inkognitofanene dine</translation> -<translation id="7331371412779932885">Gir deg forslag til faner basert på nettleseraktiviteten din på andre enheter der Google-kontoen din har vært brukt. Enhetene dine må være pålogget og synkronisert med den samme Google-kontoen.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> prosent fullført</translation> <translation id="7340958967809483333">Alternativer for Discover</translation> <translation id="7346909386216857016">Greit</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Faner som ikke er brukt på <ph name="THRESHOLD" /> dager</translation> <translation id="8395339334550012808">Snart ser du innhold fra og om <ph name="CHANNEL_NAME" /> i Følger.</translation> <translation id="8395378633507873708">Adressefelt</translation> +<translation id="8402673309244746971">Gå til Følger</translation> <translation id="8403629764260204788">Skjul «Bla videre»</translation> <translation id="8407669440184693619">Fant ingen passord for dette nettstedet</translation> <translation id="842017693807136194">Logget på med</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb index 0068a9c5..305d93a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_or.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">ଆପଣ ହାଇଲାଇଟ କରିଥିବା ଏକ ପୃଷ୍ଠାର ଅଂଶ ପାଇଁ ଏକ ସିଧାସଳଖ ଲିଙ୍କ ତିଆରି କରନ୍ତୁ ଏବଂ ଏହାକୁ ସେୟାର କରନ୍ତୁ।</translation> <translation id="4045648459118332842">ଗୋଟିଏ ଟାପ ମାଧ୍ୟମରେ ଯେ କୌଣସି ଆପରେ ଆପଣଙ୍କର ସେଭ କରାଯାଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକ ପାଆନ୍ତୁ</translation> <translation id="4049507953662678203">ସୁନିଶ୍ଚିତ କରନ୍ତୁ ଯେ ଆପଣଙ୍କର ଏକ ନେଟ୍ୱର୍କ ସଂଯୋଗ ଅଛି ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> -<translation id="4063300985191096908">ଫିଡକୁ ଯାଆନ୍ତୁ</translation> <translation id="4066639687323968621">ଆପଣଙ୍କ ବୁକମାର୍କ, ଇତିହାସ ଏବଂ ଆହୁରି ଅନେକ କିଛି ସିଙ୍କ କରିବାକୁ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସାଇନ ଇନ କରନ୍ତୁ।</translation> <translation id="4092655288299341041">ସହାୟତା ଦେଖାନ୍ତୁ</translation> <translation id="4105841739161771091">{count,plural, =1{ଠିକଣାକୁ ଡିଲିଟ କରନ୍ତୁ}other{ଠିକଣାଗୁଡ଼ିକୁ ଡିଲିଟ କରନ୍ତୁ}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">ଆପଣଙ୍କ ସମସ୍ତ ଡିଭାଇସରେ ପାସୱାର୍ଡଗୁଡ଼ିକ ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="730958329302570991">ଯେ କୌଣସି ସମୟରେ Google Password Managerରେ ସାଇଟ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ସହଜରେ ଯୋଗ କରନ୍ତୁ।</translation> <translation id="7313347584264171202">ଆପଣ ଏଠାରେ ଆପଣଙ୍କ ଇନକଗ୍ନିଟୋ ଟାବଗୁଡ଼ିକ ପାଇବେ</translation> -<translation id="7331371412779932885">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରି ଆପଣଙ୍କ ଅନ୍ୟ ଡିଭାଇସଗୁଡ଼ିକରେ ଆପଣଙ୍କର ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପ ଆଧାରରେ ଆପଣଙ୍କୁ ଟାବ ପରାମର୍ଶ ଦିଏ। ସମାନ Google ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରି ଆପଣଙ୍କ ଡିଭାଇସଗୁଡ଼ିକରେ ସାଇନ ଇନ କରି ସିଙ୍କ କରାଯିବା ଆବଶ୍ୟକ।</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ପ୍ରତିଶତ ଡାଉନ୍ଲୋଡ୍ ହୋଇଛି</translation> <translation id="7340958967809483333">Discover ପାଇଁ ବିକଳ୍ପଗୁଡ଼ିକ</translation> <translation id="7346909386216857016">ଠିକ ଅଛି, ଏହା ବୁଝିଗଲି</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> ଦିନ ପାଇଁ ଟାବଗୁଡ଼ିକୁ ବ୍ୟବହାର କରାଯାଇନାହିଁ</translation> <translation id="8395339334550012808">ଶୀଘ୍ର, ଆପଣ 'ଫଲୋ କରୁଛନ୍ତି'ରେ <ph name="CHANNEL_NAME" />ରୁ ଏବଂ ଏହା ବିଷୟରେ ବିଷୟବସ୍ତୁ ଦେଖିବେ।</translation> <translation id="8395378633507873708">ଠିକଣା ବାର</translation> +<translation id="8402673309244746971">ନିମ୍ନୋକ୍ତ ଫିଡକୁ ଯାଆନ୍ତୁ</translation> <translation id="8403629764260204788">"ବ୍ରାଉଜ କରିବା ଜାରି ରଖନ୍ତୁ"କୁ ଲୁଚାନ୍ତୁ</translation> <translation id="8407669440184693619">ଏହି ସାଇଟ୍ ପାଇଁ କୌଣସି ପାସ୍ୱର୍ଡ ମିଳିଲା ନାହିଁ</translation> <translation id="842017693807136194">ଏହା ମାଧ୍ୟମରେ ସାଇନ୍ ଇନ୍ କରିଛନ୍ତି</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb index 8031ca4..65e74c8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">ਤੁਹਾਡੇ ਵੱਲੋਂ ਉਜਾਗਰ ਕੀਤੇ ਪੰਨੇ ਦੇ ਹਿੱਸੇ ਦਾ ਸਿੱਧਾ ਲਿੰਕ ਬਣਾਓ ਅਤੇ ਉਸਨੂੰ ਸਾਂਝਾ ਕਰੋ।</translation> <translation id="4045648459118332842">ਇੱਕ ਟੈਪ ਨਾਲ ਆਪਣੇ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡ ਕਿਸੇ ਵੀ ਐਪ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰੋ</translation> <translation id="4049507953662678203">ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਹੈ, ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> -<translation id="4063300985191096908">ਫ਼ੀਡ 'ਤੇ ਜਾਓ</translation> <translation id="4066639687323968621">ਆਪਣੇ ਬੁੱਕਮਾਰਕਾਂ, ਇਤਿਹਾਸ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਸਿੰਕ ਕਰਨ ਲਈ ਆਪਣੇ Google ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕਰੋ।</translation> <translation id="4092655288299341041">ਮਦਦ ਦਿਖਾਓ</translation> <translation id="4105841739161771091">{count,plural, =1{ਪਤਾ ਮਿਟਾਓ}one{ਪਤਾ ਮਿਟਾਓ}other{ਪਤੇ ਮਿਟਾਓ}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">ਆਪਣੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਪਾਸਵਰਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ</translation> <translation id="730958329302570991">ਕਿਸੇ ਵੇਲੇ ਵੀ ਆਸਾਨੀ ਨਾਲ Google Password Manager ਵਿੱਚ ਸਾਈਟ ਪਾਸਵਰਡਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ।</translation> <translation id="7313347584264171202">ਤੁਹਾਨੂੰ ਆਪਣੀਆਂ ਇਨਕੋਗਨਿਟੋ ਟੈਬਾਂ ਇੱਥੇ ਮਿਲਣਗੀਆਂ</translation> -<translation id="7331371412779932885">ਇਹ ਸੈਟਿੰਗ ਤੁਹਾਡੇ Google ਖਾਤੇ ਨੂੰ ਵਰਤ ਕੇ ਤੁਹਾਡੇ ਹੋਰ ਡੀਵਾਈਸਾਂ ਦੀ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸਰਗਰਮੀ ਦੇ ਆਧਾਰ 'ਤੇ ਤੁਹਾਨੂੰ ਟੈਬ ਦੇ ਸੁਝਾਅ ਦਿੰਦੀ ਹੈ। ਤੁਹਾਡੇ ਡੀਵਾਈਸਾਂ ਦਾ ਸਾਈਨ-ਇਨ ਹੋਣਾ ਅਤੇ ਇੱਕੋ Google ਖਾਤੇ ਨਾਲ ਸਿੰਕ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ।</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ਪ੍ਰਤਿਸ਼ਤ ਡਾਊਨਲੋਡ ਹੋਇਆ</translation> <translation id="7340958967809483333">'ਡਿਸਕਵਰ' ਲਈ ਵਿਕਲਪ</translation> <translation id="7346909386216857016">ਠੀਕ, ਸਮਝ ਲਿਆ</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> ਦਿਨਾਂ ਤੋਂ ਨਹੀਂ ਵਰਤੀਆਂ ਗਈਆਂ ਟੈਬਾਂ</translation> <translation id="8395339334550012808">ਜਲਦ ਹੀ, ਤੁਸੀਂ 'ਅਨੁਸਰਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ' ਵਿੱਚ <ph name="CHANNEL_NAME" /> ਤੋਂ ਅਤੇ ਇਸ ਬਾਰੇ ਸਮੱਗਰੀ ਦੇਖੋਗੇ।</translation> <translation id="8395378633507873708">ਪਤਾ ਬਾਰ</translation> +<translation id="8402673309244746971">'ਅਨੁਸਰਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ' 'ਤੇ ਜਾਓ</translation> <translation id="8403629764260204788">"ਬ੍ਰਾਊਜ਼ ਕਰਨਾ ਜਾਰੀ ਰੱਖੋ" ਨੂੰ ਲੁਕਾਓ</translation> <translation id="8407669440184693619">ਇਸ ਸਾਈਟ ਲਈ ਕੋਈ ਪਾਸਵਰਡ ਨਹੀਂ ਲੱਭਿਆ</translation> <translation id="842017693807136194">ਇਸ ਨਾਲ ਸਾਈਨ ਇਨ ਕੀਤਾ ਗਿਆ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index 972d321..d9f08231 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Utwórz i udostępnij bezpośredni link do zaznaczonego fragmentu strony.</translation> <translation id="4045648459118332842">Uzyskaj dostęp do zapisanych haseł w dowolnej aplikacji jednym kliknięciem</translation> <translation id="4049507953662678203">Upewnij się, że masz połączenie z siecią, i spróbuj ponownie.</translation> -<translation id="4063300985191096908">Przejdź do kanału</translation> <translation id="4066639687323968621">Zaloguj się na konto Google, aby synchronizować swoje hasła, historię i inne dane.</translation> <translation id="4092655288299341041">Pokaż pomoc</translation> <translation id="4105841739161771091">{count,plural, =1{Usuń adres}few{Usuń adresy}many{Usuń adresy}other{Usuń adresy}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Używaj haseł na wszystkich swoich urządzeniach</translation> <translation id="730958329302570991">W usłudze Menedżer haseł Google możesz w każdej chwili łatwo dodawać hasła do witryn.</translation> <translation id="7313347584264171202">Tu znajdziesz swoje karty incognito</translation> -<translation id="7331371412779932885">Wyświetla sugestie dotyczące kart na podstawie Twojej aktywności związanej z przeglądaniem na innych urządzeniach, na których używasz swojego konta Google. Na urządzeniach musisz się zalogować na to samo konto Google i włączyć synchronizację.</translation> <translation id="7336264872878993241">Pobrano <ph name="PERCENT" /> procent</translation> <translation id="7340958967809483333">Opcje kart Discover</translation> <translation id="7346909386216857016">Rozumiem</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Karty nie były używane przez <ph name="THRESHOLD" /> dni</translation> <translation id="8395339334550012808">Wkrótce w sekcji Obserwujesz zaczną pojawiać się treści pochodzące z witryny <ph name="CHANNEL_NAME" /> oraz treści na jej temat.</translation> <translation id="8395378633507873708">Pasek adresu</translation> +<translation id="8402673309244746971">Przejdź do obserwowanych</translation> <translation id="8403629764260204788">Ukryj opcję „Przeglądaj dalej”</translation> <translation id="8407669440184693619">Nie znaleziono haseł do tej strony</translation> <translation id="842017693807136194">Zalogowano za pomocą:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb index ce164a0a..0fb4e14 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Crie e compartilhe um link direto para parte de uma página destacada.</translation> <translation id="4045648459118332842">Acesse suas senhas salvas em qualquer app com um toque</translation> <translation id="4049507953662678203">Verifique se você tem uma conexão de rede e tente novamente.</translation> -<translation id="4063300985191096908">Acessar o feed</translation> <translation id="4066639687323968621">Faça login com sua Conta do Google para sincronizar favoritos, histórico e muito mais.</translation> <translation id="4092655288299341041">Mostrar "Ajuda"</translation> <translation id="4105841739161771091">{count,plural, =1{Excluir endereço}one{Excluir endereço}other{Excluir endereços}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Usar senhas em todos os seus dispositivos</translation> <translation id="730958329302570991">Adicione senhas de sites com facilidade ao Gerenciador de senhas do Google sempre que quiser.</translation> <translation id="7313347584264171202">Você verá suas guias anônimas aqui</translation> -<translation id="7331371412779932885">Oferece sugestões de guias com base na sua atividade de navegação nos outros dispositivos que usam sua Conta do Google. Seus dispositivos precisam estar conectados e sincronizados na mesma Conta do Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> por cento baixados</translation> <translation id="7340958967809483333">Opções do Discover</translation> <translation id="7346909386216857016">Ok, entendi.</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Guias não usadas há <ph name="THRESHOLD" /> dias</translation> <translation id="8395339334550012808">Em breve, você vai receber conteúdo de e sobre <ph name="CHANNEL_NAME" /> na guia "Seguindo".</translation> <translation id="8395378633507873708">Barra de endereço</translation> +<translation id="8402673309244746971">Acessar "Seguindo"</translation> <translation id="8403629764260204788">Ocultar a opção "Continuar navegando"</translation> <translation id="8407669440184693619">Nenhuma senha encontrada para este site</translation> <translation id="842017693807136194">Conectado com</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb index ebe85fc..398baa0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Crie e partilhe um link direto para parte de uma página que realçou.</translation> <translation id="4045648459118332842">Obtenha as palavras-passe guardadas em qualquer app com um toque</translation> <translation id="4049507953662678203">Certifique-se de que tem uma ligação de rede e tente novamente.</translation> -<translation id="4063300985191096908">Aceder ao feed</translation> <translation id="4066639687323968621">Inicie sessão com a sua Conta Google para sincronizar os marcadores, o histórico e muito mais.</translation> <translation id="4092655288299341041">Mostrar ajuda</translation> <translation id="4105841739161771091">{count,plural, =1{Eliminar morada}other{Eliminar moradas}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">Use palavras-passe em todos os dispositivos</translation> <translation id="730958329302570991">Adicione facilmente palavras-passe de sites ao Gestor de Palavras-passe da Google em qualquer altura.</translation> <translation id="7313347584264171202">Os seus separadores de navegação anónima serão apresentados aqui</translation> -<translation id="7331371412779932885">Dá-lhe sugestões de separadores com base na atividade de navegação nos seus outros dispositivos através da sua Conta Google. Os seus dispositivos têm de ter sessão iniciada e estar sincronizados com a mesma Conta Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> por cento transferido</translation> <translation id="7340958967809483333">Opções para o Discover</translation> <translation id="7346909386216857016">OK</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">Separadores não usados há <ph name="THRESHOLD" /> dias</translation> <translation id="8395339334550012808">Em breve, vai ver conteúdo de e sobre o canal <ph name="CHANNEL_NAME" /> no separador A seguir.</translation> <translation id="8395378633507873708">Barra de endereço</translation> +<translation id="8402673309244746971">Ir para A seguir</translation> <translation id="8403629764260204788">Oculte a opção "Continuar a navegar"</translation> <translation id="8407669440184693619">Não foram encontradas palavras-passe para este site</translation> <translation id="842017693807136194">Iniciar sessão com</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb index a987f71..eddc4ac5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Creează și trimite un link direct către o parte a unei pagini pe care ai evidențiat-o.</translation> <translation id="4045648459118332842">Accesează parolele salvate în orice aplicație cu o singură atingere</translation> <translation id="4049507953662678203">Asigură-te că ai o conexiune la rețea și încearcă din nou.</translation> -<translation id="4063300985191096908">Accesează feedul</translation> <translation id="4066639687323968621">Conectează-te cu Contul Google pentru a sincroniza marcajele, istoricul și alte date.</translation> <translation id="4092655288299341041">Afișează secțiunea Ajutor</translation> <translation id="4105841739161771091">{count,plural, =1{Șterge adresa}few{Șterge adresele}other{Șterge adresele}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Folosește parole pe toate dispozitivele</translation> <translation id="730958329302570991">Adaugă cu ușurință parole de pe site-uri în Managerul de parole Google oricând.</translation> <translation id="7313347584264171202">Aici vei vedea filele incognito</translation> -<translation id="7331371412779932885">Îți oferă sugestii de file bazate pe activitatea ta de navigare de pe celelalte dispozitive cu Contul Google. Dispozitivele trebuie să fie conectate și sincronizate cu același Cont Google.</translation> <translation id="7336264872878993241"><ph name="PERCENT" />% descărcat</translation> <translation id="7340958967809483333">Opțiuni pentru Discover</translation> <translation id="7346909386216857016">OK, am înțeles</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Filele nu au fost folosite de <ph name="THRESHOLD" /> zile</translation> <translation id="8395339334550012808">În curând, vei vedea conținut de la și despre <ph name="CHANNEL_NAME" /> în secțiunea Urmărești.</translation> <translation id="8395378633507873708">Bară de adrese</translation> +<translation id="8402673309244746971">Accesează Urmărești</translation> <translation id="8403629764260204788">Ascunde opțiunea Continuă navigarea</translation> <translation id="8407669440184693619">Nu s-au găsit parole pentru acest site</translation> <translation id="842017693807136194">Conectat(ă) cu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb index 80a5d3c..70aee27e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Создавайте прямые ссылки на выделенные части страниц и делитесь ими.</translation> <translation id="4045648459118332842">Вводите сохраненные пароли в любом приложении одним нажатием</translation> <translation id="4049507953662678203">Проверьте подключение к Интернету и повторите попытку.</translation> -<translation id="4063300985191096908">Перейти к ленте</translation> <translation id="4066639687323968621">Чтобы синхронизировать закладки, историю и другие данные, достаточно войти в аккаунт Google.</translation> <translation id="4092655288299341041">Справочная информация</translation> <translation id="4105841739161771091">{count,plural, =1{Удалить адрес}one{Удалить адреса}few{Удалить адреса}many{Удалить адреса}other{Удалить адреса}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Использование паролей на всех устройствах</translation> <translation id="730958329302570991">Легко добавляйте пароли для сайтов в Google Менеджер паролей.</translation> <translation id="7313347584264171202">Здесь вы найдете свои вкладки инкогнито</translation> -<translation id="7331371412779932885">Подсказки по вкладкам предлагаются на основе ваших действий в браузере на других устройствах, где вы вошли в аккаунт Google. Убедитесь, что устройства синхронизированы, а вход выполнен в один и тот же аккаунт.</translation> <translation id="7336264872878993241">Скачивается: <ph name="PERCENT" />%</translation> <translation id="7340958967809483333">Параметры рекомендаций</translation> <translation id="7346909386216857016">ОК</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Не использовались в течение <ph name="THRESHOLD" /> дн.</translation> <translation id="8395339334550012808">Скоро в ленте "Вы подписаны" будет появляться контент <ph name="CHANNEL_NAME" /> и связанная информация.</translation> <translation id="8395378633507873708">Адресная строка</translation> +<translation id="8402673309244746971">Перейти к подпискам</translation> <translation id="8403629764260204788">Скрыть действие "Продолжить просмотр"</translation> <translation id="8407669440184693619">Паролей для этого сайта не найдено</translation> <translation id="842017693807136194">Выполнен вход через</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb index 10081f8..efc361d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_si.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">ඔබ උද්දීපනය කළ පිටුවක කොටසකට සෘජු සබැඳියක් සාදා බෙදා ගන්න.</translation> <translation id="4045648459118332842">ඔබේ සුරකින ලද මුරපද එක තට්ටු කිරීමකින් ඕනෑම යෙදුමකින් ලබා ගන්න</translation> <translation id="4049507953662678203">ඔබට ජාල සම්බන්ධතාවක් ඇති බව සහතික කරගෙන, නැවත උත්සාහ කරන්න.</translation> -<translation id="4063300985191096908">සංග්රහය වෙත යන්න</translation> <translation id="4066639687323968621">ඔබේ පිටුසන්, ඉතිහාසය, සහ තවත් දේ සමමුහුර්ත කිරීමට ඔබේ Google ගිණුම සමගින් පුරන්න.</translation> <translation id="4092655288299341041">උදවු පෙන්වන්න</translation> <translation id="4105841739161771091">{count,plural, =1{ලිපිනය මකන්න}one{ලිපින මකන්න}other{ලිපින මකන්න}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">ඔබේ සියලු උපාංග මත මුරපද භාවිතා කරන්න</translation> <translation id="730958329302570991">ඕනෑම වේලාවක Google මුරපද කළමනාකරු වෙත පහසුවෙන් අඩවි මුරපද එක් කරන්න.</translation> <translation id="7313347584264171202">ඔබට ඔබේ අප්රකට ටැබ මෙහි හමුවනු ඇත</translation> -<translation id="7331371412779932885">ඔබේ Google ගිණුම භාවිතයෙන් ඔබේ අනෙකුත් උපාංගවල ඔබේ බ්රවුස් කිරීමේ ක්රියාකාරකම් මත පදනම්ව ඔබට පටිති යෝජනා ලබා දෙයි. ඔබේ උපාංග එකම Google ගිණුම භාවිතයෙන් පුරනය වී සමමුහුර්ත කළ යුතු යි.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ක් බාගන්නා ලදි</translation> <translation id="7340958967809483333">Discover සඳහා විකල්ප</translation> <translation id="7346909386216857016">හරි, තේරුම් ගත්තා!</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">දින <ph name="THRESHOLD" />ක් සඳහා පටිති භාවිතා නොවේ</translation> <translation id="8395339334550012808">ළඟදීම, ඔබ අනුගමනය කිරීම තුළ <ph name="CHANNEL_NAME" /> වෙතින් සහ ඒ පිළිබඳව අන්තර්ගතයන් දකිනු ඇත.</translation> <translation id="8395378633507873708">ලිපින තීරුව</translation> +<translation id="8402673309244746971">පහත දේ වෙත යන්න</translation> <translation id="8403629764260204788">"දිගටම බ්රවුස් කරන්න" සඟවන්න</translation> <translation id="8407669440184693619">මෙම වෙබ් අඩවිය සඳහා මුරපද කිසිවක් හමු නොවිය</translation> <translation id="842017693807136194">පුරා ඇත</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb index 9115dc3a..5898c861 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Vytvorte a zdieľajte priamy odkaz na sekciu stránky, ktorú ste zvýraznili.</translation> <translation id="4045648459118332842">Získajte svoje uložené heslá v ľubovoľnej aplikácii jedným klepnutím</translation> <translation id="4049507953662678203">Uistite sa, že máte pripojenie k sieti, a skúste to znova.</translation> -<translation id="4063300985191096908">Prejsť na feed</translation> <translation id="4066639687323968621">Ak chcete synchronizovať záložky, históriu a ďalší obsah, prihláste sa účtom Google.</translation> <translation id="4092655288299341041">Zobraziť pomocníka</translation> <translation id="4105841739161771091">{count,plural, =1{Odstrániť adresu}few{Odstrániť adresy}many{Odstrániť adresy}other{Odstrániť adresy}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Používajte heslá vo všetkých zariadeniach</translation> <translation id="730958329302570991">Kedykoľvek jednoducho pridávajte heslá webov do Správcu hesiel Google.</translation> <translation id="7313347584264171202">Tu nájdete svoje karty inkognito</translation> -<translation id="7331371412779932885">Poskytuje návrhy kariet na základe aktivity prehliadania vo vašich iných zariadeniach pomocou vášho účtu Google. Zariadenia musia byť prihlásené a synchronizované pomocou rovnakého účtu Google.</translation> <translation id="7336264872878993241">Stiahnuté: <ph name="PERCENT" /> percent</translation> <translation id="7340958967809483333">Možnosti kanála Objaviť</translation> <translation id="7346909386216857016">Dobre</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Karty, ktoré neboli použité tento počet dní: <ph name="THRESHOLD" /></translation> <translation id="8395339334550012808">Čoskoro uvidíte obsah z kanála <ph name="CHANNEL_NAME" /> a o ňom v sekcii Sledované.</translation> <translation id="8395378633507873708">Panel s adresou</translation> +<translation id="8402673309244746971">Prejsť na Sledované</translation> <translation id="8403629764260204788">Skryť „Pokračovať v prehliadaní“</translation> <translation id="8407669440184693619">Nenašli sa žiadne heslá tohto webu</translation> <translation id="842017693807136194">Prihlásenie pomocou</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb index 695c504..1227879 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Ustvarite in delite neposredno povezavo do dela strani, ki ste ga označili.</translation> <translation id="4045648459118332842">Z enim dotikom do shranjenih gesel v poljubni aplikaciji</translation> <translation id="4049507953662678203">Make sure you have a network connection, and try again.</translation> -<translation id="4063300985191096908">Na vir</translation> <translation id="4066639687323968621">Prijavite se v račun Google, če želite sinhronizirati zaznamke, zgodovino in drugo.</translation> <translation id="4092655288299341041">Pokaži pomoč</translation> <translation id="4105841739161771091">{count,plural, =1{Izbriši naslov}one{Izbriši naslove}two{Izbriši naslove}few{Izbriši naslove}other{Izbriši naslove}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Uporaba gesel v vseh napravah</translation> <translation id="730958329302570991">Kadar koli lahko preprosto dodate gesla za spletna mesta v Googlovega upravitelja gesel.</translation> <translation id="7313347584264171202">Tu bodo prikazani anonimni zavihki</translation> -<translation id="7331371412779932885">Predlaga vam zavihke glede na dejavnost brskanja v drugih napravah z računom Google. V napravah morate biti prijavljeni in sinhronizirani z istim računom Google.</translation> <translation id="7336264872878993241">Preneseno: <ph name="PERCENT" /> %</translation> <translation id="7340958967809483333">Možnosti za Odkrivanje</translation> <translation id="7346909386216857016">V redu, razumem</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Zavihki niso bili uporabljeni toliko dni: <ph name="THRESHOLD" /></translation> <translation id="8395339334550012808">Kmalu bo v razdelku »Spremljano« prikazana vsebina iz vira <ph name="CHANNEL_NAME" /> in o njem.</translation> <translation id="8395378633507873708">Naslovna vrstica</translation> +<translation id="8402673309244746971">Na vir za spremljanje</translation> <translation id="8403629764260204788">Skrij »Nadaljuj brskanje«</translation> <translation id="8407669440184693619">Za to spletno mesto ni najdenih gesel</translation> <translation id="842017693807136194">Prijava z/s</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb index 2805a12..5f55642 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Krijo dhe ndaj një lidhje të drejtpërdrejtë për te pjesa e një faqeje që ke theksuar.</translation> <translation id="4045648459118332842">Merri fjalëkalimet e tua të ruajtura në çdo aplikacion me një trokitje</translation> <translation id="4049507953662678203">Sigurohu që ke një lidhje interneti dhe provo përsëri.</translation> -<translation id="4063300985191096908">Shko te "Furnizimi"</translation> <translation id="4066639687323968621">Identifikohu me "Llogarinë tënde të Google" për të sinkronizuar faqeshënuesit, historikun tënd etj.</translation> <translation id="4092655288299341041">Shfaq ndihmën</translation> <translation id="4105841739161771091">{count,plural, =1{Fshi adresën}other{Fshi adresat}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Përdor fjalëkalime në të gjitha pajisjet e tua</translation> <translation id="730958329302570991">Shto me lehtësi fjalëkalimet e sajteve te "Menaxheri i fjalëkalimeve i Google" në çdo kohë.</translation> <translation id="7313347584264171202">Këtu do të gjesh skedat e tua "të fshehta"</translation> -<translation id="7331371412779932885">Të jep sugjerime për skedat bazuar në aktivitetin tënd të shfletimit në pajisjet e tjera duke përdorur "Llogarinë tënde të Google". Duhet të jesh i identifikuar në pajisjet e tua me të njëjtën "Llogari të Google" dhe ato duhet të jenë të sinkronizuara duke përdorur të njëjtën llogari.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> përqind të shkarkuara</translation> <translation id="7340958967809483333">Opsionet për "Zbulo"</translation> <translation id="7346909386216857016">Në rregull, kuptova</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Skedat nuk janë përdorur për <ph name="THRESHOLD" /> ditë</translation> <translation id="8395339334550012808">Së shpejti, do të shohësh përmbajtje nga dhe rreth <ph name="CHANNEL_NAME" /> te "Ndjekjet".</translation> <translation id="8395378633507873708">Shiriti i adresave</translation> +<translation id="8402673309244746971">Shko te "Po ndjek"</translation> <translation id="8403629764260204788">Fshih "Vazhdo shfletimin"</translation> <translation id="8407669440184693619">Nuk u gjetën fjalëkalime për këtë sajt</translation> <translation id="842017693807136194">Identifikuar me</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb index f506fc3..010e845 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Napravite i delite direktan link do dela stranice koji ste istakli.</translation> <translation id="4045648459118332842">Pristupajte sačuvanim lozinkama u bilo kojoj aplikaciji jednim dodirom</translation> <translation id="4049507953662678203">Proverite da li ste povezani na mrežu i pokušajte ponovo.</translation> -<translation id="4063300985191096908">Idi na fid</translation> <translation id="4066639687323968621">Prijavite se pomoću Google naloga da biste sinhronizovali obeleživače, istoriju i drugo.</translation> <translation id="4092655288299341041">Prikazuje pomoć</translation> <translation id="4105841739161771091">{count,plural, =1{Izbriši adresu}one{Izbriši adrese}few{Izbriši adrese}other{Izbriši adrese}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Koristite lozinke na svim uređajima</translation> <translation id="730958329302570991">Lako dodajte lozinke za sajtove u Google menadžer lozinki u bilo kom trenutku.</translation> <translation id="7313347584264171202">Ovde ćete pronaći kartice bez arhiviranja</translation> -<translation id="7331371412779932885">Daje vam predloge kartica na osnovu aktivnosti pregledanja na drugim uređajima pomoću Google naloga. Uređaji moraju da budu prijavljeni i sinhronizovani pomoću istog Google naloga.</translation> <translation id="7336264872878993241">Procenat preuzimanja: <ph name="PERCENT" /></translation> <translation id="7340958967809483333">Opcije za Discover</translation> <translation id="7346909386216857016">Važi</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Kartice se ne koriste <ph name="THRESHOLD" /> dana</translation> <translation id="8395339334550012808">Uskoro ćete videti sadržaj sa kanala <ph name="CHANNEL_NAME" /> i o njemu u odeljku Praćenja.</translation> <translation id="8395378633507873708">Traka za adresu</translation> +<translation id="8402673309244746971">Idi na Pratite</translation> <translation id="8403629764260204788">Sakrijte Nastavi pregledanje</translation> <translation id="8407669440184693619">Nije pronađena nijedna lozinka za ovaj sajt</translation> <translation id="842017693807136194">Prijavljeni ste pomoću:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index d605760..c935c0d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Направите и делите директан линк до дела странице који сте истакли.</translation> <translation id="4045648459118332842">Приступајте сачуваним лозинкама у било којој апликацији једним додиром</translation> <translation id="4049507953662678203">Проверите да ли сте повезани на мрежу и покушајте поново.</translation> -<translation id="4063300985191096908">Иди на фид</translation> <translation id="4066639687323968621">Пријавите се помоћу Google налога да бисте синхронизовали обележиваче, историју и друго.</translation> <translation id="4092655288299341041">Приказује помоћ</translation> <translation id="4105841739161771091">{count,plural, =1{Избриши адресу}one{Избриши адресе}few{Избриши адресе}other{Избриши адресе}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Користите лозинке на свим уређајима</translation> <translation id="730958329302570991">Лако додајте лозинке за сајтове у Google менаџер лозинки у било ком тренутку.</translation> <translation id="7313347584264171202">Овде ћете пронаћи картице без архивирања</translation> -<translation id="7331371412779932885">Даје вам предлоге картица на основу активности прегледања на другим уређајима помоћу Google налога. Уређаји морају да буду пријављени и синхронизовани помоћу истог Google налога.</translation> <translation id="7336264872878993241">Проценат преузимања: <ph name="PERCENT" /></translation> <translation id="7340958967809483333">Опције за Discover</translation> <translation id="7346909386216857016">Важи</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Картице се не користе <ph name="THRESHOLD" /> дана</translation> <translation id="8395339334550012808">Ускоро ћете видети садржај са канала <ph name="CHANNEL_NAME" /> и о њему у одељку Праћења.</translation> <translation id="8395378633507873708">Трака за адресу</translation> +<translation id="8402673309244746971">Иди на Пратите</translation> <translation id="8403629764260204788">Сакријте Настави прегледање</translation> <translation id="8407669440184693619">Није пронађена ниједна лозинка за овај сајт</translation> <translation id="842017693807136194">Пријављени сте помоћу:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb index be33527..afb1916 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Skapa och dela en direktlänk till en del av en sida som du markerat.</translation> <translation id="4045648459118332842">Få tillgång till sparade lösenord i alla appar med ett tryck</translation> <translation id="4049507953662678203">Kontrollera att du är ansluten till nätverket och försök igen.</translation> -<translation id="4063300985191096908">Visa flödet</translation> <translation id="4066639687323968621">Logga in med ditt Google-konto för att synkronisera bokmärken, historik med mera.</translation> <translation id="4092655288299341041">Visa hjälp</translation> <translation id="4105841739161771091">{count,plural, =1{Radera adressen}other{Radera adresser}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Använd lösenorden på alla dina enheter</translation> <translation id="730958329302570991">Du kan enkelt lägga till webbplatslösenord i Google Lösenordshantering när du vill.</translation> <translation id="7313347584264171202">Du hittar dina inkognitoflikar här</translation> -<translation id="7331371412779932885">Ger förslag på flikar utifrån din webbaktivitet på andra enheter med ditt Google-konto. Du måste vara inloggad på och synkronisera enheterna med samma Google-konto.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> procent har laddats ned</translation> <translation id="7340958967809483333">Alternativ för Förslag</translation> <translation id="7346909386216857016">Ok, jag förstår</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Flikar som inte har använts på <ph name="THRESHOLD" /> dagar</translation> <translation id="8395339334550012808">Snart visas innehåll från och om <ph name="CHANNEL_NAME" /> i Följer.</translation> <translation id="8395378633507873708">Adressfält</translation> +<translation id="8402673309244746971">Öppna Följer</translation> <translation id="8403629764260204788">Dölj kontinuerlig bläddring</translation> <translation id="8407669440184693619">Inga lösenord hittades för webbplatsen</translation> <translation id="842017693807136194">Inloggad med</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index ea6ae56..045b892 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Unda na ushiriki kiungo cha moja kwa moja kinachoelekeza kwenye sehemu ya ukurasa ulioangazia.</translation> <translation id="4045648459118332842">Pata manenosiri uliyohifadhi kwenye programu yoyote kwa kugusa mara moja tu</translation> <translation id="4049507953662678203">Hakikisha una muunganisho wa mtandao, kisha ujaribu tena.</translation> -<translation id="4063300985191096908">Nenda Kwenye Mipasho</translation> <translation id="4066639687323968621">Ingia ukitumia Akaunti yako ya Google ili usawazishe alamisho, historia yako na mambo yako mengine.</translation> <translation id="4092655288299341041">Onyesha Usaidizi</translation> <translation id="4105841739161771091">{count,plural, =1{Futa Anwani}other{Futa Anwani}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Kutumia Manenosiri kwenye Vifaa Vyako Vyote</translation> <translation id="730958329302570991">Weka kwa urahisi manenosiri ya tovuti kwenye Kidhibiti cha Manenosiri cha Google wakati wowote.</translation> <translation id="7313347584264171202">Utapata vichupo fiche hapa</translation> -<translation id="7331371412779932885">Inakupa mapendekezo ya vichupo kulingana na shughuli zako za kuvinjari kwenye vifaa vingine ukitumia Akaunti yako ya Google. Lazima vifaa vyako viwe vimeingia na kusawazishwa kwenye Akaunti sawa ya Google.</translation> <translation id="7336264872878993241">Faili imepakuliwa asilimia <ph name="PERCENT" /></translation> <translation id="7340958967809483333">Chaguo za Dokezo</translation> <translation id="7346909386216857016">Sawa, nimeelewa</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Vichupo ambavyo havijatumika kwa siku <ph name="THRESHOLD" /></translation> <translation id="8395339334550012808">Hivi karibuni, utaona maudhui kutoka na kuhusu <ph name="CHANNEL_NAME" /> katika sehemu ya Unazofuatilia.</translation> <translation id="8395378633507873708">Sehemu ya Anwani</translation> +<translation id="8402673309244746971">Nenda kwenye Yafuatayo</translation> <translation id="8403629764260204788">Ficha kipengele cha "Endelea Kuvinjari"</translation> <translation id="8407669440184693619">Hatukupata manenosiri yoyote ya tovuti hii</translation> <translation id="842017693807136194">Umeingia katika Akaunti Ukitumia</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index a69f58d6..8a4ed01 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">ஒரு பக்கத்தில் நீங்கள் ஹைலைட் செய்த பகுதிக்கு நேரடி இணைப்பை உருவாக்கி அதைப் பகிரலாம்.</translation> <translation id="4045648459118332842">நீங்கள் சேமித்துள்ள கடவுச்சொற்களை அனைத்து ஆப்ஸிலும் ஒரே தட்டலில் பெறுங்கள்</translation> <translation id="4049507953662678203">இணைய இணைப்பு இருப்பதை உறுதிசெய்து, மீண்டும் முயலவும்.</translation> -<translation id="4063300985191096908">ஊட்டத்திற்குச் செல்</translation> <translation id="4066639687323968621">உங்கள் புக்மார்க்குகள், பதிவு மற்றும் பலவற்றை ஒத்திசைக்க உங்கள் Google கணக்கு மூலம் உள்நுழையவும்.</translation> <translation id="4092655288299341041">உதவியைக் காட்டு</translation> <translation id="4105841739161771091">{count,plural, =1{முகவரியை நீக்கு}other{முகவரிகளை நீக்கு}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">உங்கள் சாதனங்கள் அனைத்திலும் கடவுச்சொற்களைப் பயன்படுத்துங்கள்</translation> <translation id="730958329302570991">தளத்திற்கான கடவுச்சொற்களை Google Password Managerரில் எப்போது வேண்டுமானாலும் எளிதாகச் சேர்க்கலாம்.</translation> <translation id="7313347584264171202">மறைநிலைத் தாவல்களை இங்கே பார்ப்பீர்கள்</translation> -<translation id="7331371412779932885">உங்கள் Google கணக்கைப் பயன்படுத்தி, பிற சாதனங்களில் உள்ள உங்கள் உலாவல் செயல்பாட்டின் அடிப்படையில் உலாவிப் பக்கத்திற்கான பரிந்துரைகளை வழங்கும். ஒரே Google கணக்கைப் பயன்படுத்தி உங்கள் சாதனங்களில் உள்நுழைந்து, ஒத்திசைத்திருக்க வேண்டும்.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> சதவீதம் பதிவிறக்கப்பட்டது</translation> <translation id="7340958967809483333">Discoverருக்கான விருப்பங்கள்</translation> <translation id="7346909386216857016">சரி, புரிந்தது</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> நாட்களாகப் பயன்படுத்தப்படாத பக்கங்கள்</translation> <translation id="8395339334550012808"><ph name="CHANNEL_NAME" /> சேனலில் உள்ள உள்ளடக்கமும், அதைப் பற்றிய உள்ளடக்கமும் 'பின்தொடர்பவையில்' விரைவில் காட்டப்படும்.</translation> <translation id="8395378633507873708">முகவரிப் பட்டி</translation> +<translation id="8402673309244746971">'பின்தொடர்பவை' ஊட்டத்திற்குச் செல்</translation> <translation id="8403629764260204788">"உலாவலைத் தொடருங்கள்" என்பதை மறைக்கவும்</translation> <translation id="8407669440184693619">இந்தத் தளத்திற்கான கடவுச்சொற்கள் எதுவும் இல்லை</translation> <translation id="842017693807136194">இதன் மூலம் உள்நுழைந்துள்ளீர்கள்:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb index 47200c0d..e3a280c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_te.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">మీరు హైలైట్ చేసిన పేజీలోని భాగానికి నేరుగా లింక్ను క్రియేట్ చేసి, షేర్ చేయండి.</translation> <translation id="4045648459118332842">సేవ్ చేసిన మీ పాస్వర్డ్లను ఏ యాప్లో అయినా ఒక్క ట్యాప్తో పొందండి</translation> <translation id="4049507953662678203">మీ ఇంటర్నెట్ పని చేస్తోందో లేదో చెక్ చేసుకుని మళ్లీ ట్రై చేయండి.</translation> -<translation id="4063300985191096908">ఫీడ్కు వెళ్లండి</translation> <translation id="4066639687323968621">మీ బుక్మార్క్లు, హిస్టరీ, అలాగే మరిన్నింటిని సింక్ చేయడానికి మీ Google ఖాతాతో సైన్ ఇన్ చేయండి.</translation> <translation id="4092655288299341041">సహాయాన్ని చూడండి</translation> <translation id="4105841739161771091">{count,plural, =1{అడ్రస్ను తొలగించండి}other{అడ్రస్లను తొలగించండి}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">మీ పరికరాలన్నింటిలో పాస్వర్డ్లను ఉపయోగించండి</translation> <translation id="730958329302570991">Google Password Managerకు ఎప్పుడైనా సైట్ పాస్వర్డ్లను సులభంగా జోడించండి.</translation> <translation id="7313347584264171202">మీ అజ్ఞాత ట్యాబ్లను ఇక్కడ చూడగలరు</translation> -<translation id="7331371412779932885">మీ Google ఖాతాను ఉపయోగించి, మీకు చెందిన ఇతర పరికరాలలో మీరు జరిపిన బ్రౌజింగ్ యాక్టివిటీ ఆధారంగా మీకు ట్యాబ్ సూచనలను అందిస్తుంది. దీని కోసం తప్పనిసరిగా మీ పరికరాలు ఒకే Google ఖాతాతో సైన్ ఇన్ అయ్యి ఉండటంతో పాటు, సింక్ అయ్యి కూడా ఉండాలి.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> శాతం డౌన్లోడ్ అయ్యింది</translation> <translation id="7340958967809483333">Discover కోసం ఆప్షన్లు</translation> <translation id="7346909386216857016">సరే, అర్థమైంది</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">ట్యాబ్లు <ph name="THRESHOLD" /> రోజుల పాటు ఉపయోగించబడలేదు</translation> <translation id="8395339334550012808">త్వరలో, మీరు ఫాలో అవుతున్న <ph name="CHANNEL_NAME" /> నుండి, దాని గురించిన కంటెంట్ను చూస్తారు.</translation> <translation id="8395378633507873708">అడ్రస్ బార్</translation> +<translation id="8402673309244746971">తర్వాతి దానికి వెళ్లండి</translation> <translation id="8403629764260204788">"నిరంతర బ్రౌజింగ్"ను దాచండి</translation> <translation id="8407669440184693619">ఈ సైట్ కోసం పాస్వర్డ్లు కనుగొనబడలేదు</translation> <translation id="842017693807136194">దీనితో సైన్ ఇన్ చేయబడింది</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index 8aabb00..dfa16fc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">สร้างและแชร์ลิงก์โดยตรงของหน้าที่คุณไฮไลต์</translation> <translation id="4045648459118332842">เรียกข้อมูลรหัสผ่านที่บันทึกไว้ในแอปต่างๆ ด้วยการแตะเพียงครั้งเดียว</translation> <translation id="4049507953662678203">ตรวจสอบว่าคุณมีการเชื่อมต่อเครือข่าย และลองอีกครั้ง</translation> -<translation id="4063300985191096908">ไปที่ฟีด</translation> <translation id="4066639687323968621">ลงชื่อเข้าใช้ด้วยบัญชี Google เพื่อซิงค์บุ๊กมาร์ก ประวัติการเข้าชม และอื่นๆ</translation> <translation id="4092655288299341041">แสดงความช่วยเหลือ</translation> <translation id="4105841739161771091">{count,plural, =1{ลบที่อยู่}other{ลบที่อยู่}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">ใช้รหัสผ่านในอุปกรณ์ทุกเครื่อง</translation> <translation id="730958329302570991">เพิ่มรหัสผ่านของเว็บไซต์ในเครื่องมือจัดการรหัสผ่านบน Google ได้ง่ายๆ ทุกเมื่อ</translation> <translation id="7313347584264171202">คุณจะเห็นแท็บที่ไม่ระบุตัวตนที่นี่</translation> -<translation id="7331371412779932885">แสดงคำแนะนำแท็บโดยอิงตามกิจกรรมการท่องเว็บในอุปกรณ์อื่นๆ ของคุณที่ใช้บัญชี Google ทั้งนี้อุปกรณ์จะต้องลงชื่อเข้าใช้และซิงค์ด้วยบัญชี Google เดียวกัน</translation> <translation id="7336264872878993241">ดาวน์โหลดแล้ว <ph name="PERCENT" /> เปอร์เซ็นต์</translation> <translation id="7340958967809483333">ตัวเลือกสำหรับฟีดสำรวจ</translation> <translation id="7346909386216857016">รับทราบ</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944">แท็บที่ไม่มีการใช้งานเป็นเวลา <ph name="THRESHOLD" /> วัน</translation> <translation id="8395339334550012808">เร็วๆ นี้ คุณจะเห็นเนื้อหาจาก และเกี่ยวกับ <ph name="CHANNEL_NAME" /> ใน "กำลังติดตาม"</translation> <translation id="8395378633507873708">แถบที่อยู่</translation> +<translation id="8402673309244746971">ไปยังฟีด "กำลังติดตาม"</translation> <translation id="8403629764260204788">ซ่อน "เรียกดูต่อ"</translation> <translation id="8407669440184693619">ไม่พบรหัสผ่านสำหรับเว็บไซต์นี้</translation> <translation id="842017693807136194">ลงชื่อเข้าใช้ด้วย</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb index 4ac229b..674ec8f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Bir sayfada vurguladığınız kısma doğrudan bağlantı oluşturun ve bağlantıyı paylaşın.</translation> <translation id="4045648459118332842">Kayıtlı şifrelerinizi tek dokunuşla diğer uygulamalarınızda görün</translation> <translation id="4049507953662678203">Ağ bağlantınız olduğundan emin olun ve tekrar deneyin.</translation> -<translation id="4063300985191096908">Feed'e Git</translation> <translation id="4066639687323968621">Yer işaretlerinizi, geçmişinizi ve daha fazlasını senkronize etmek için Google Hesabınızla oturum açın.</translation> <translation id="4092655288299341041">Yardımı Göster</translation> <translation id="4105841739161771091">{count,plural, =1{Adresi Sil}other{Adresleri Sil}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Şifreleri Tüm Cihazlarınızda Kullanın</translation> <translation id="730958329302570991">Sitelerdeki şifreleri istediğiniz zaman Google Şifre Yöneticisi'ne kolayca ekleyin.</translation> <translation id="7313347584264171202">Gizli sekmelerinizi burada bulabilirsiniz</translation> -<translation id="7331371412779932885">Google Hesabınızın kullanıldığı diğer cihazlarınızdaki tarama etkinliğinize dayalı sekme önerileri sunar. Cihazlarınızda aynı Google Hesabı ile oturum açılmış ve senkronizasyon gerçekleştirilmiş olmalıdır.</translation> <translation id="7336264872878993241">Yüzde <ph name="PERCENT" /> indirildi</translation> <translation id="7340958967809483333">Keşfet seçenekleri</translation> <translation id="7346909386216857016">Tamam, anladım</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Sekmeler <ph name="THRESHOLD" /> gün boyunca kullanılmıyor</translation> <translation id="8395339334550012808">Yakında, Takip Edilenler bölümünde <ph name="CHANNEL_NAME" /> kanalından ve bu kanalla ilgili içerikler göreceksiniz.</translation> <translation id="8395378633507873708">Adres Çubuğu</translation> +<translation id="8402673309244746971">Takip edilenler bölümüne git</translation> <translation id="8403629764260204788">"Göz Atmaya Devam Edin" seçeneğini gizleyin</translation> <translation id="8407669440184693619">Bu site için şifre bulunamadı</translation> <translation id="842017693807136194">Şununla Oturum Açıldı:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb index ac5f02e4..6a9982c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Створіть пряме посилання на виділену сторінку та поділіться ним.</translation> <translation id="4045648459118332842">Входьте одним дотиком у додатки за допомогою збережених паролів</translation> <translation id="4049507953662678203">Переконайтеся, що з’єднання з мережею встановлено, і повторіть спробу.</translation> -<translation id="4063300985191096908">Перейти до стрічки</translation> <translation id="4066639687323968621">Увійдіть в обліковий запис Google, щоб синхронізувати закладки, історію тощо.</translation> <translation id="4092655288299341041">Показати довідку</translation> <translation id="4105841739161771091">{count,plural, =1{Видалити адресу}one{Видалити адреси}few{Видалити адреси}many{Видалити адреси}other{Видалити адреси}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Використовувати паролі на всіх пристроях</translation> <translation id="730958329302570991">Легко додавайте паролі для сайтів у Google Менеджер паролів.</translation> <translation id="7313347584264171202">Тут відображатимуться ваші анонімні вкладки</translation> -<translation id="7331371412779932885">Пропонує вкладки на основі ваших дій у веб-переглядачі на інших пристроях, де використовується ваш обліковий запис Google. Для цього ви маєте ввійти в той самий обліковий запис Google і ввімкнути синхронізацію на всіх своїх пристроях.</translation> <translation id="7336264872878993241">Завантажено <ph name="PERCENT" />%</translation> <translation id="7340958967809483333">Налаштування рекомендацій</translation> <translation id="7346909386216857016">OK</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Вкладки, які не використовуються протягом <ph name="THRESHOLD" /> дн.</translation> <translation id="8395339334550012808">Невдовзі в розділі "Підписки" відображатиметься контент із каналу <ph name="CHANNEL_NAME" /> і про нього.</translation> <translation id="8395378633507873708">Адресний рядок</translation> +<translation id="8402673309244746971">Перейти до стрічки "У підписках"</translation> <translation id="8403629764260204788">Приховати розділ "Продовжити перегляд"</translation> <translation id="8407669440184693619">Немає паролів для цього сайту</translation> <translation id="842017693807136194">Ви ввійшли як</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb index 29b63467..d7e7c919 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">آپ نے جس صفحہ کو نمایاں کیا ہے اس کے حصے کا براہ راست لنک بنائیں اور تخلیق کریں۔</translation> <translation id="4045648459118332842">ایک بار تھپتھپا کر کسی بھی ایپ میں اپنے محفوظ کردہ پاس ورڈز پائیں</translation> <translation id="4049507953662678203">یقینی بنائیں کہ آپ کے پاس نیٹ ورک کنکشن ہے اور دوبارہ کوشش کریں۔</translation> -<translation id="4063300985191096908">فیڈ پر جائیں</translation> <translation id="4066639687323968621">اپنے بُک مارکس، سرگزشت کو مطابقت پذیر بنانے اور مزید بہت کچھ کرنے کے لیے اپنے Google اکاؤنٹ کے ساتھ سائن ان کریں۔</translation> <translation id="4092655288299341041">مدد دکھائیں</translation> <translation id="4105841739161771091">{count,plural, =1{پتہ حذف کریں}other{پتوں کو حذف کریں}}</translation> @@ -1153,7 +1152,6 @@ <translation id="7302503784943202842">اپنے تمام آلات پر پاس ورڈز استعمال کریں</translation> <translation id="730958329302570991">Google پاس ورڈ مینیجر میں کسی بھی وقت سائٹ کے پاس ورڈز آسانی سے شامل کریں۔</translation> <translation id="7313347584264171202">آپ کو اپنے پوشیدگی ٹیبز یہاں ملیں گے</translation> -<translation id="7331371412779932885">آپ کے Google اکاؤنٹ کا استعمال کرنے والے آپ کے دوسرے آلات پر موجود براؤزنگ کی سرگرمی کی بنیاد پر آپ کو ٹیب کی تجاویز فراہم کرتی ہے۔ آپ کے آلات اسی Google اکاؤنٹ سے سائن ان اور مطابقت پذیر ہونے چاہئیں۔</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> فیصد ڈاؤن لوڈ ہوگئی۔</translation> <translation id="7340958967809483333">Discover کے لیے اختیارات</translation> <translation id="7346909386216857016">ٹھیک ہے، سمجھ آ گئی</translation> @@ -1349,6 +1347,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> دن تک ٹیبز کا استعمال نہیں کیا گیا</translation> <translation id="8395339334550012808">جلد ہی آپ کو پیروی کر رہے ہیں میں <ph name="CHANNEL_NAME" /> سے اور اس کے متعلق مواد دکھائی دے گا۔</translation> <translation id="8395378633507873708">ایڈریس بار</translation> +<translation id="8402673309244746971">درج ذيل پر جائيں</translation> <translation id="8403629764260204788">"براؤزنگ جاری رکھیں" کو چھپائیں</translation> <translation id="8407669440184693619">اس سائٹ کے لیے کوئی پاس ورڈ نہیں ملا</translation> <translation id="842017693807136194">سائن ان کردہ بذریعہ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb index 378a64ca2..2ac18c9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Ajratib belgilangan sahifaga havola yarating va ulashing.</translation> <translation id="4045648459118332842">Istalgan qurilmada bitta harakat bilan saqlangan parollaringizdan foydalaning</translation> <translation id="4049507953662678203">Internet yoniqligini tekshiring va qayta urinib ko‘ring.</translation> -<translation id="4063300985191096908">Tasmani ochish</translation> <translation id="4066639687323968621">Bukmarklar, tarix va boshqa maʼlumotlarni sinxronlash uchun Google hisobiga kiring.</translation> <translation id="4092655288299341041">Yordamni ochish</translation> <translation id="4105841739161771091">{count,plural, =1{Manzilni oʻchirish}other{Manzillarni oʻchirish}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Parollarni barcha qurilmalarda ishlating</translation> <translation id="730958329302570991">Saytlardagi parollaringizni istalgan vaqt Google Parollar menejeriga oson kiriting.</translation> <translation id="7313347584264171202">Brauzer Inkognito varaqlari shu yerda chiqadi</translation> -<translation id="7331371412779932885">Google hisobingizdan foydalangan holda boshqa qurilmalaringizdagi koʻrish faolligingiz asosida sizga varaq takliflarini beradi. Qurilmalaringiz bir xil Google hisobi yordamida hisobga kirgan va sinxronlangan boʻlishi kerak.</translation> <translation id="7336264872878993241"><ph name="PERCENT" />% yuklab olindi</translation> <translation id="7340958967809483333">Discover parametrlari</translation> <translation id="7346909386216857016">OK</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Varaqlar <ph name="THRESHOLD" /> kun ishlatilmadi</translation> <translation id="8395339334550012808">Tez orada Kuzatuvdagi sahifasida <ph name="CHANNEL_NAME" /> kontenti va xabarlari chiqadi.</translation> <translation id="8395378633507873708">Manzillar qatori</translation> +<translation id="8402673309244746971">Kuzatuvdagilarni ochish</translation> <translation id="8403629764260204788">Kezishda davom etish chiqmasin</translation> <translation id="8407669440184693619">Bu sayt uchun hech qanday parol topilmadi</translation> <translation id="842017693807136194">Kirilgan hisob:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index c2989f4..d107a0c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Tạo và chia sẻ đường liên kết trực tiếp đến một phần của trang mà bạn đã đánh dấu.</translation> <translation id="4045648459118332842">Sử dụng mật khẩu đã lưu trong mọi ứng dụng chỉ bằng một lần nhấn</translation> <translation id="4049507953662678203">Hãy đảm bảo rằng bạn có kết nối mạng và thử lại.</translation> -<translation id="4063300985191096908">Chuyển đến nguồn cấp dữ liệu</translation> <translation id="4066639687323968621">Đăng nhập bằng Tài khoản Google để đồng bộ hoá dấu trang, nhật ký hoạt động và nhiều nội dung khác.</translation> <translation id="4092655288299341041">Hiện thông tin trợ giúp</translation> <translation id="4105841739161771091">{count,plural, =1{Xoá địa chỉ}other{Xoá các địa chỉ}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Sử dụng mật khẩu trên tất cả thiết bị của bạn</translation> <translation id="730958329302570991">Dễ dàng thêm mật khẩu trang web vào Trình quản lý mật khẩu của Google bất cứ lúc nào.</translation> <translation id="7313347584264171202">Bạn sẽ thấy các thẻ ẩn danh ở đây</translation> -<translation id="7331371412779932885">Đề xuất thẻ cho bạn dựa theo hoạt động duyệt web trên các thiết bị khác bằng cách sử dụng Tài khoản Google của bạn. Các thiết bị của bạn phải được đăng nhập và đồng bộ hoá bằng cùng một Tài khoản Google.</translation> <translation id="7336264872878993241">Đã tải xuống <ph name="PERCENT" /> phần trăm</translation> <translation id="7340958967809483333">Các tùy chọn của tính năng Khám phá</translation> <translation id="7346909386216857016">Ok</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Các thẻ mà bạn đã không sử dụng trong <ph name="THRESHOLD" /> ngày</translation> <translation id="8395339334550012808">Sắp tới, bạn sẽ có thể xem thông tin về <ph name="CHANNEL_NAME" /> và nội dung của kênh trong phần Đang theo dõi.</translation> <translation id="8395378633507873708">Thanh địa chỉ</translation> +<translation id="8402673309244746971">Chuyển đến phần Đang theo dõi</translation> <translation id="8403629764260204788">Ẩn thẻ "Tiếp tục duyệt web"</translation> <translation id="8407669440184693619">Không tìm thấy mật khẩu nào cho trang web này</translation> <translation id="842017693807136194">Đăng nhập bằng</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index bc27b7e..cd1477c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -552,7 +552,6 @@ <translation id="40433179647657191">为您突出显示的部分网页内容创建直接链接并分享。</translation> <translation id="4045648459118332842">在任意应用中点按一下即可获取您已保存的密码</translation> <translation id="4049507953662678203">请确保已连接到网络,然后重试。</translation> -<translation id="4063300985191096908">前往 Feed</translation> <translation id="4066639687323968621">只需使用您的 Google 账号登录,即可同步您的书签、历史记录等信息。</translation> <translation id="4092655288299341041">显示帮助</translation> <translation id="4105841739161771091">{count,plural, =1{删除这个地址}other{删除这些地址}}</translation> @@ -1145,7 +1144,6 @@ <translation id="7302503784943202842">在您的所有设备上使用密码</translation> <translation id="730958329302570991">随时都可轻松将登录网站时所用的密码添加到 Google 密码管理工具中。</translation> <translation id="7313347584264171202">您已打开的无痕模式标签页会显示在此处</translation> -<translation id="7331371412779932885">根据您使用自己的 Google 账号在其他设备上进行的浏览活动,向您提供标签页建议。您的设备必须使用同一 Google 账号登录并开启同步功能。</translation> <translation id="7336264872878993241">已下载<ph name="PERCENT" />%</translation> <translation id="7340958967809483333">“探索”功能的选项</translation> <translation id="7346909386216857016">知道了</translation> @@ -1338,6 +1336,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> 天未用过的标签页</translation> <translation id="8395339334550012808">不久之后,您就会在“已关注”部分中看到来自<ph name="CHANNEL_NAME" />及与其相关的内容。</translation> <translation id="8395378633507873708">地址栏</translation> +<translation id="8402673309244746971">前往“已关注”</translation> <translation id="8403629764260204788">隐藏“继续浏览”</translation> <translation id="8407669440184693619">未找到任何用于此网站的密码</translation> <translation id="842017693807136194">所用登录身份</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb index 003192c6..464000d8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">為頁面上突顯的內容建立直接連結並分享。</translation> <translation id="4045648459118332842">輕按一下即可在任何應用程式中取得已儲存的密碼</translation> <translation id="4049507953662678203">請確定您已連接網絡,然後再試一次。</translation> -<translation id="4063300985191096908">前往「動態消息」</translation> <translation id="4066639687323968621">登入 Google 帳戶便可同步處理書籤、記錄等等。</translation> <translation id="4092655288299341041">顯示說明</translation> <translation id="4105841739161771091">{count,plural, =1{刪除地址}other{刪除地址}}</translation> @@ -1150,7 +1149,6 @@ <translation id="7302503784943202842">在所有裝置上使用密碼</translation> <translation id="730958329302570991">隨時可在「Google 密碼管理工具」中輕鬆新增網站密碼。</translation> <translation id="7313347584264171202">您可在此查看無痕式分頁</translation> -<translation id="7331371412779932885">系統會根據你在其他裝置的 Google 帳戶瀏覽活動,為你提供分頁建議。你的裝置必須使用相同的 Google 帳戶登入並完成同步。</translation> <translation id="7336264872878993241">下載咗百分之 <ph name="PERCENT" /></translation> <translation id="7340958967809483333">「探索」的選項</translation> <translation id="7346909386216857016">好,我知道了</translation> @@ -1346,6 +1344,7 @@ <translation id="8393889347136007944">分頁已有 <ph name="THRESHOLD" /> 日未曾使用</translation> <translation id="8395339334550012808">你即將會在「追蹤中」分頁看到「<ph name="CHANNEL_NAME" />」的內容和簡介。</translation> <translation id="8395378633507873708">網址列</translation> +<translation id="8402673309244746971">前往「追蹤中」</translation> <translation id="8403629764260204788">隱藏「連續瀏覽」</translation> <translation id="8407669440184693619">找不到此網站的密碼</translation> <translation id="842017693807136194">目前登入身分</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb index 0ba37b4..84c5f42 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -553,7 +553,6 @@ <translation id="40433179647657191">反白標示頁面上的某個部分,然後建立可以直接連結的網址,輕鬆與其他人分享頁面上的內容。</translation> <translation id="4045648459118332842">輕觸一下即可在任何應用程式中取得已儲存的密碼</translation> <translation id="4049507953662678203">請確定您已連上網路,然後再試一次。</translation> -<translation id="4063300985191096908">前往「動態饋給」</translation> <translation id="4066639687323968621">登入 Google 帳戶就能同步處理書籤、歷史記錄等資料。</translation> <translation id="4092655288299341041">顯示說明資訊</translation> <translation id="4105841739161771091">{count,plural, =1{刪除地址}other{刪除地址}}</translation> @@ -1150,7 +1149,6 @@ <translation id="7302503784943202842">在所有裝置上使用密碼</translation> <translation id="730958329302570991">隨時可以在 Google 密碼管理工具中輕鬆新增網站密碼。</translation> <translation id="7313347584264171202">這裡會顯示你的無痕分頁</translation> -<translation id="7331371412779932885">系統會根據你在其他裝置的 Google 帳戶瀏覽活動,為你提供分頁建議。你的裝置必須使用同一個 Google 帳戶登入並完成同步。</translation> <translation id="7336264872878993241">已下載 <ph name="PERCENT" /> %</translation> <translation id="7340958967809483333">探索的選項</translation> <translation id="7346909386216857016">好,我知道了</translation> @@ -1346,6 +1344,7 @@ <translation id="8393889347136007944">已有 <ph name="THRESHOLD" /> 天未使用的分頁</translation> <translation id="8395339334550012808">不久後,你會在「追蹤中」分頁看到「<ph name="CHANNEL_NAME" />」的內容和簡介。</translation> <translation id="8395378633507873708">網址列</translation> +<translation id="8402673309244746971">前往「追蹤中」</translation> <translation id="8403629764260204788">隱藏「繼續瀏覽」</translation> <translation id="8407669440184693619">找不到這個網站的密碼</translation> <translation id="842017693807136194">目前登入身分</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb index 101bc83..36cca6e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -555,7 +555,6 @@ <translation id="40433179647657191">Sungula futhi wabelane ngelinki eqondile engxenyeni yekhasi oyigqamisile.</translation> <translation id="4045648459118332842">Thola amaphasiwedi akho alondoloziwe kunoma iyiphi i-app ngokuthepha okukodwa</translation> <translation id="4049507953662678203">Qiniseksa ukuthi unoxhumo lenethiwekhi, bese uyazama futhi.</translation> -<translation id="4063300985191096908">Iya Kokuphakelayo</translation> <translation id="4066639687323968621">Ngena ngemvume nge-Google Account yakho ukuze uvumelanise amabhukhimakhi akho, umlando, nokuningi.</translation> <translation id="4092655288299341041">Bonisa Usizo:</translation> <translation id="4105841739161771091">{count,plural, =1{Sula ikheli}one{Sula Amakheli}other{Sula Amakheli}}</translation> @@ -1152,7 +1151,6 @@ <translation id="7302503784943202842">Sebenzisa Amaphasiwedi Kuwo onke Amadivaysi Akho</translation> <translation id="730958329302570991">Engeza kalula amaphasiwedi esayithi Kumphathi Wephasiwedi Ye-Google noma kunini.</translation> <translation id="7313347584264171202">Uzothola amathebhu wakho we-Incognito lapha</translation> -<translation id="7331371412779932885">Ikunikeza iziphakamiso zethebhu ngokusekelwe kumsebenzi wakho wokubhrawuza kwamanye amadivayisi akho usebenzisa i-Google Account yakho. Amadivayisi akho kufanele angene ngemvume futhi avunyelaniswe kusetshenziswa i-Google Account efanayo.</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> iphesenti elilandiwe</translation> <translation id="7340958967809483333">Izinketho zokuthola</translation> <translation id="7346909386216857016">Ok, ngiyezwa</translation> @@ -1348,6 +1346,7 @@ <translation id="8393889347136007944">Amathebhu angasetshenziswa izinsuku ezingu-<ph name="THRESHOLD" /></translation> <translation id="8395339334550012808">Maduze, uzobona okuqukethwe okuvela noma mayelana ne-<ph name="CHANNEL_NAME" /> kulokho Okulandelayo.</translation> <translation id="8395378633507873708">Ibha Lekheli</translation> +<translation id="8402673309244746971">Iya Kokulandelayo</translation> <translation id="8403629764260204788">Fihla "Ukwedlulisa Amehlo Okuqhubekayo"</translation> <translation id="8407669440184693619">Awekho amaphasiwedi atholakele waleli sayithi</translation> <translation id="842017693807136194">Ingene ngemvume nge-</translation>
diff --git a/ios/chrome/browser/browser_state/model/BUILD.gn b/ios/chrome/browser/browser_state/model/BUILD.gn index 3bfefe81..f2f9094 100644 --- a/ios/chrome/browser/browser_state/model/BUILD.gn +++ b/ios/chrome/browser/browser_state/model/BUILD.gn
@@ -81,7 +81,7 @@ "//ios/chrome/browser/consent_auditor/model", "//ios/chrome/browser/content_settings/model", "//ios/chrome/browser/crash_report/model/breadcrumbs", - "//ios/chrome/browser/credential_provider:buildflags", + "//ios/chrome/browser/credential_provider/model:buildflags", "//ios/chrome/browser/device_sharing", "//ios/chrome/browser/discover_feed:discover_feed_factory", "//ios/chrome/browser/dom_distiller", @@ -158,7 +158,7 @@ ] } if (ios_enable_credential_provider_extension) { - deps += [ "//ios/chrome/browser/credential_provider" ] + deps += [ "//ios/chrome/browser/credential_provider/model" ] } allow_circular_includes_from = [ "//ios/chrome/browser/browser_state_metrics/model",
diff --git a/ios/chrome/browser/browser_state/model/browser_state_keyed_service_factories.mm b/ios/chrome/browser/browser_state/model/browser_state_keyed_service_factories.mm index 8e17322b..b510d58 100644 --- a/ios/chrome/browser/browser_state/model/browser_state_keyed_service_factories.mm +++ b/ios/chrome/browser/browser_state/model/browser_state_keyed_service_factories.mm
@@ -19,7 +19,7 @@ #import "ios/chrome/browser/consent_auditor/model/consent_auditor_factory.h" #import "ios/chrome/browser/content_settings/model/cookie_settings_factory.h" #import "ios/chrome/browser/crash_report/model/breadcrumbs/breadcrumb_manager_keyed_service_factory.h" -#import "ios/chrome/browser/credential_provider/credential_provider_buildflags.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_buildflags.h" #import "ios/chrome/browser/device_sharing/device_sharing_manager_factory.h" #import "ios/chrome/browser/discover_feed/discover_feed_service_factory.h" #import "ios/chrome/browser/dom_distiller/dom_distiller_service_factory.h" @@ -94,7 +94,7 @@ #import "ios/chrome/browser/webdata_services/model/web_data_service_factory.h" #if BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED) -#import "ios/chrome/browser/credential_provider/credential_provider_service_factory.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_service_factory.h" #endif #if BUILDFLAG(IOS_SCREEN_TIME_ENABLED)
diff --git a/ios/chrome/browser/credential_provider/credential_provider_support.cc b/ios/chrome/browser/credential_provider/credential_provider_support.cc deleted file mode 100644 index 2d3499b..0000000 --- a/ios/chrome/browser/credential_provider/credential_provider_support.cc +++ /dev/null
@@ -1,11 +0,0 @@ -// Copyright 2020 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ios/chrome/browser/credential_provider/credential_provider_support.h" - -#include "ios/chrome/browser/credential_provider/credential_provider_buildflags.h" - -bool IsCredentialProviderExtensionSupported() { - return BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED); -}
diff --git a/ios/chrome/browser/credential_provider/credential_provider_support.h b/ios/chrome/browser/credential_provider/credential_provider_support.h deleted file mode 100644 index f485d80..0000000 --- a/ios/chrome/browser/credential_provider/credential_provider_support.h +++ /dev/null
@@ -1,11 +0,0 @@ -// Copyright 2020 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SUPPORT_H_ -#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SUPPORT_H_ - -// Whether the Credential Provider Extension is supported. -bool IsCredentialProviderExtensionSupported(); - -#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SUPPORT_H_
diff --git a/ios/chrome/browser/credential_provider/BUILD.gn b/ios/chrome/browser/credential_provider/model/BUILD.gn similarity index 97% rename from ios/chrome/browser/credential_provider/BUILD.gn rename to ios/chrome/browser/credential_provider/model/BUILD.gn index 7983cc0..741d047 100644 --- a/ios/chrome/browser/credential_provider/BUILD.gn +++ b/ios/chrome/browser/credential_provider/model/BUILD.gn
@@ -14,7 +14,7 @@ } if (ios_enable_credential_provider_extension) { - source_set("credential_provider") { + source_set("model") { sources = [ "archivable_credential+password_form.h", "archivable_credential+password_form.mm", @@ -70,7 +70,7 @@ "credential_provider_util_unittest.mm", ] deps = [ - ":credential_provider", + ":model", "//base/test:test_support", "//components/autofill/core/common", "//components/favicon/core",
diff --git a/ios/chrome/browser/credential_provider/DEPS b/ios/chrome/browser/credential_provider/model/DEPS similarity index 100% rename from ios/chrome/browser/credential_provider/DEPS rename to ios/chrome/browser/credential_provider/model/DEPS
diff --git a/ios/chrome/browser/credential_provider/OWNERS b/ios/chrome/browser/credential_provider/model/OWNERS similarity index 100% rename from ios/chrome/browser/credential_provider/OWNERS rename to ios/chrome/browser/credential_provider/model/OWNERS
diff --git a/ios/chrome/browser/credential_provider/archivable_credential+password_form.h b/ios/chrome/browser/credential_provider/model/archivable_credential+password_form.h similarity index 75% rename from ios/chrome/browser/credential_provider/archivable_credential+password_form.h rename to ios/chrome/browser/credential_provider/model/archivable_credential+password_form.h index 051e2e38..082250c2 100644 --- a/ios/chrome/browser/credential_provider/archivable_credential+password_form.h +++ b/ios/chrome/browser/credential_provider/model/archivable_credential+password_form.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_ARCHIVABLE_CREDENTIAL_PASSWORD_FORM_H_ -#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_ARCHIVABLE_CREDENTIAL_PASSWORD_FORM_H_ +#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_ARCHIVABLE_CREDENTIAL_PASSWORD_FORM_H_ +#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_ARCHIVABLE_CREDENTIAL_PASSWORD_FORM_H_ #import "ios/chrome/common/credential_provider/archivable_credential.h" @@ -26,4 +26,4 @@ @end -#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_ARCHIVABLE_CREDENTIAL_PASSWORD_FORM_H_ +#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_ARCHIVABLE_CREDENTIAL_PASSWORD_FORM_H_
diff --git a/ios/chrome/browser/credential_provider/archivable_credential+password_form.mm b/ios/chrome/browser/credential_provider/model/archivable_credential+password_form.mm similarity index 95% rename from ios/chrome/browser/credential_provider/archivable_credential+password_form.mm rename to ios/chrome/browser/credential_provider/model/archivable_credential+password_form.mm index 389b171..1d8eac42 100644 --- a/ios/chrome/browser/credential_provider/archivable_credential+password_form.mm +++ b/ios/chrome/browser/credential_provider/model/archivable_credential+password_form.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/archivable_credential+password_form.h" +#import "ios/chrome/browser/credential_provider/model/archivable_credential+password_form.h" #import "base/strings/sys_string_conversions.h" #import "base/strings/utf_string_conversions.h" @@ -10,15 +10,15 @@ #import "components/password_manager/core/browser/password_form.h" #import "components/password_manager/core/browser/password_manager_util.h" #import "components/password_manager/core/browser/password_ui_utils.h" -#import "ios/chrome/browser/credential_provider/credential_provider_util.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_util.h" #import "url/gurl.h" namespace { -using base::SysNSStringToUTF8; using base::SysNSStringToUTF16; -using base::SysUTF8ToNSString; +using base::SysNSStringToUTF8; using base::SysUTF16ToNSString; +using base::SysUTF8ToNSString; } // namespace
diff --git a/ios/chrome/browser/credential_provider/archivable_credential+password_form_unittest.mm b/ios/chrome/browser/credential_provider/model/archivable_credential+password_form_unittest.mm similarity index 98% rename from ios/chrome/browser/credential_provider/archivable_credential+password_form_unittest.mm rename to ios/chrome/browser/credential_provider/model/archivable_credential+password_form_unittest.mm index c4f28d2..9ea56b6 100644 --- a/ios/chrome/browser/credential_provider/archivable_credential+password_form_unittest.mm +++ b/ios/chrome/browser/credential_provider/model/archivable_credential+password_form_unittest.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/archivable_credential+password_form.h" +#import "ios/chrome/browser/credential_provider/model/archivable_credential+password_form.h" #import "base/strings/sys_string_conversions.h" #import "base/strings/utf_string_conversions.h"
diff --git a/ios/chrome/browser/credential_provider/credential_provider_migrator.h b/ios/chrome/browser/credential_provider/model/credential_provider_migrator.h similarity index 77% rename from ios/chrome/browser/credential_provider/credential_provider_migrator.h rename to ios/chrome/browser/credential_provider/model/credential_provider_migrator.h index 13462fd..5b71d29 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_migrator.h +++ b/ios/chrome/browser/credential_provider/model/credential_provider_migrator.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_MIGRATOR_H_ -#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_MIGRATOR_H_ +#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_MIGRATOR_H_ +#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_MIGRATOR_H_ #import <Foundation/Foundation.h> @@ -26,4 +26,4 @@ @end -#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_MIGRATOR_H_ +#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_MIGRATOR_H_
diff --git a/ios/chrome/browser/credential_provider/credential_provider_migrator.mm b/ios/chrome/browser/credential_provider/model/credential_provider_migrator.mm similarity index 93% rename from ios/chrome/browser/credential_provider/credential_provider_migrator.mm rename to ios/chrome/browser/credential_provider/model/credential_provider_migrator.mm index eef4436..b9f28a2 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_migrator.mm +++ b/ios/chrome/browser/credential_provider/model/credential_provider_migrator.mm
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/credential_provider_migrator.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_migrator.h" #import "components/password_manager/core/browser/password_form.h" #import "components/password_manager/core/browser/password_store_interface.h" -#import "ios/chrome/browser/credential_provider/archivable_credential+password_form.h" +#import "ios/chrome/browser/credential_provider/model/archivable_credential+password_form.h" #import "ios/chrome/common/credential_provider/user_defaults_credential_store.h" using password_manager::PasswordStoreInterface;
diff --git a/ios/chrome/browser/credential_provider/credential_provider_migrator_unittest.mm b/ios/chrome/browser/credential_provider/model/credential_provider_migrator_unittest.mm similarity index 92% rename from ios/chrome/browser/credential_provider/credential_provider_migrator_unittest.mm rename to ios/chrome/browser/credential_provider/model/credential_provider_migrator_unittest.mm index 0159357..1070b90 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_migrator_unittest.mm +++ b/ios/chrome/browser/credential_provider/model/credential_provider_migrator_unittest.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/credential_provider_migrator.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_migrator.h" #import "base/strings/sys_string_conversions.h" #import "base/strings/utf_string_conversions.h" @@ -10,7 +10,7 @@ #import "base/test/task_environment.h" #import "components/password_manager/core/browser/mock_password_store_interface.h" #import "components/password_manager/core/browser/password_form.h" -#import "ios/chrome/browser/credential_provider/archivable_credential+password_form.h" +#import "ios/chrome/browser/credential_provider/model/archivable_credential+password_form.h" #import "ios/chrome/common/credential_provider/archivable_credential.h" #import "ios/chrome/common/credential_provider/user_defaults_credential_store.h" #import "testing/gtest_mac.h" @@ -43,12 +43,8 @@ class CredentialProviderMigratorTest : public PlatformTest { protected: - void SetUp() override { - [user_defaults_ removeObjectForKey:store_key_]; - } - void TearDown() override { - [user_defaults_ removeObjectForKey:store_key_]; - } + void SetUp() override { [user_defaults_ removeObjectForKey:store_key_]; } + void TearDown() override { [user_defaults_ removeObjectForKey:store_key_]; } NSUserDefaults* user_defaults_ = [NSUserDefaults standardUserDefaults]; NSString* store_key_ = @"store_key";
diff --git a/ios/chrome/browser/credential_provider/credential_provider_service.h b/ios/chrome/browser/credential_provider/model/credential_provider_service.h similarity index 95% rename from ios/chrome/browser/credential_provider/credential_provider_service.h rename to ios/chrome/browser/credential_provider/model/credential_provider_service.h index 55a7ea37..00df895 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_service.h +++ b/ios/chrome/browser/credential_provider/model/credential_provider_service.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SERVICE_H_ -#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SERVICE_H_ +#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SERVICE_H_ +#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SERVICE_H_ #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" @@ -24,7 +24,7 @@ namespace password_manager { class AffiliationService; class AffiliatedMatchHelper; -} +} // namespace password_manager namespace syncer { class SyncService; @@ -180,4 +180,4 @@ base::WeakPtrFactory<CredentialProviderService> weak_ptr_factory_{this}; }; -#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SERVICE_H_ +#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SERVICE_H_
diff --git a/ios/chrome/browser/credential_provider/credential_provider_service.mm b/ios/chrome/browser/credential_provider/model/credential_provider_service.mm similarity index 98% rename from ios/chrome/browser/credential_provider/credential_provider_service.mm rename to ios/chrome/browser/credential_provider/model/credential_provider_service.mm index acc3791..508f656e 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_service.mm +++ b/ios/chrome/browser/credential_provider/model/credential_provider_service.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/credential_provider_service.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_service.h" #import <AuthenticationServices/AuthenticationServices.h> @@ -26,8 +26,8 @@ #import "components/sync/service/sync_service.h" #import "components/sync/service/sync_service_utils.h" #import "components/sync/service/sync_user_settings.h" -#import "ios/chrome/browser/credential_provider/archivable_credential+password_form.h" -#import "ios/chrome/browser/credential_provider/credential_provider_util.h" +#import "ios/chrome/browser/credential_provider/model/archivable_credential+password_form.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_util.h" #import "ios/chrome/browser/signin/system_identity.h" #import "ios/chrome/common/app_group/app_group_constants.h" #import "ios/chrome/common/credential_provider/archivable_credential.h" @@ -37,12 +37,12 @@ namespace { -using password_manager::PasswordForm; using password_manager::AffiliatedMatchHelper; +using password_manager::AffiliationService; +using password_manager::PasswordForm; using password_manager::PasswordStoreChange; using password_manager::PasswordStoreChangeList; using password_manager::PasswordStoreInterface; -using password_manager::AffiliationService; // ASCredentialIdentityStoreError enum to report UMA metrics. Must be in sync // with iOSCredentialIdentityStoreErrorForReporting in
diff --git a/ios/chrome/browser/credential_provider/credential_provider_service_factory.h b/ios/chrome/browser/credential_provider/model/credential_provider_service_factory.h similarity index 81% rename from ios/chrome/browser/credential_provider/credential_provider_service_factory.h rename to ios/chrome/browser/credential_provider/model/credential_provider_service_factory.h index 3af4a04..447c833 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_service_factory.h +++ b/ios/chrome/browser/credential_provider/model/credential_provider_service_factory.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SERVICE_FACTORY_H_ -#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SERVICE_FACTORY_H_ +#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SERVICE_FACTORY_H_ +#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SERVICE_FACTORY_H_ #include "base/no_destructor.h" #include "components/keyed_service/ios/browser_state_keyed_service_factory.h" @@ -37,4 +37,4 @@ web::BrowserState* context) const override; }; -#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_SERVICE_FACTORY_H_ +#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SERVICE_FACTORY_H_
diff --git a/ios/chrome/browser/credential_provider/credential_provider_service_factory.mm b/ios/chrome/browser/credential_provider/model/credential_provider_service_factory.mm similarity index 95% rename from ios/chrome/browser/credential_provider/credential_provider_service_factory.mm rename to ios/chrome/browser/credential_provider/model/credential_provider_service_factory.mm index cc18933d..d1bd638 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_service_factory.mm +++ b/ios/chrome/browser/credential_provider/model/credential_provider_service_factory.mm
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/credential_provider_service_factory.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_service_factory.h" #import "base/no_destructor.h" #import "components/keyed_service/core/service_access_type.h" #import "components/keyed_service/ios/browser_state_dependency_manager.h" #import "components/password_manager/core/common/password_manager_features.h" -#import "ios/chrome/browser/credential_provider/credential_provider_service.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_service.h" #import "ios/chrome/browser/favicon/favicon_loader.h" #import "ios/chrome/browser/favicon/ios_chrome_favicon_loader_factory.h" #import "ios/chrome/browser/passwords/ios_chrome_account_password_store_factory.h"
diff --git a/ios/chrome/browser/credential_provider/credential_provider_service_unittest.mm b/ios/chrome/browser/credential_provider/model/credential_provider_service_unittest.mm similarity index 99% rename from ios/chrome/browser/credential_provider/credential_provider_service_unittest.mm rename to ios/chrome/browser/credential_provider/model/credential_provider_service_unittest.mm index 32eb710..45bdbc1 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_service_unittest.mm +++ b/ios/chrome/browser/credential_provider/model/credential_provider_service_unittest.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/credential_provider_service.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_service.h" #import <memory> #import <string>
diff --git a/ios/chrome/browser/credential_provider/model/credential_provider_support.cc b/ios/chrome/browser/credential_provider/model/credential_provider_support.cc new file mode 100644 index 0000000..c5beba3 --- /dev/null +++ b/ios/chrome/browser/credential_provider/model/credential_provider_support.cc
@@ -0,0 +1,11 @@ +// Copyright 2020 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ios/chrome/browser/credential_provider/model/credential_provider_support.h" + +#include "ios/chrome/browser/credential_provider/model/credential_provider_buildflags.h" + +bool IsCredentialProviderExtensionSupported() { + return BUILDFLAG(IOS_CREDENTIAL_PROVIDER_ENABLED); +}
diff --git a/ios/chrome/browser/credential_provider/model/credential_provider_support.h b/ios/chrome/browser/credential_provider/model/credential_provider_support.h new file mode 100644 index 0000000..65f2852d6 --- /dev/null +++ b/ios/chrome/browser/credential_provider/model/credential_provider_support.h
@@ -0,0 +1,11 @@ +// Copyright 2020 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SUPPORT_H_ +#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SUPPORT_H_ + +// Whether the Credential Provider Extension is supported. +bool IsCredentialProviderExtensionSupported(); + +#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_SUPPORT_H_
diff --git a/ios/chrome/browser/credential_provider/credential_provider_util.h b/ios/chrome/browser/credential_provider/model/credential_provider_util.h similarity index 81% rename from ios/chrome/browser/credential_provider/credential_provider_util.h rename to ios/chrome/browser/credential_provider/model/credential_provider_util.h index 4d3b684..de4f494 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_util.h +++ b/ios/chrome/browser/credential_provider/model/credential_provider_util.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_UTIL_H_ -#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_UTIL_H_ +#ifndef IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_UTIL_H_ +#define IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_UTIL_H_ #import <Foundation/Foundation.h> @@ -32,4 +32,4 @@ base::WeakPtr<ChromeBrowserState> weak_browser_state, bool fallback_to_google_server); -#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_CREDENTIAL_PROVIDER_UTIL_H_ +#endif // IOS_CHROME_BROWSER_CREDENTIAL_PROVIDER_MODEL_CREDENTIAL_PROVIDER_UTIL_H_
diff --git a/ios/chrome/browser/credential_provider/credential_provider_util.mm b/ios/chrome/browser/credential_provider/model/credential_provider_util.mm similarity index 98% rename from ios/chrome/browser/credential_provider/credential_provider_util.mm rename to ios/chrome/browser/credential_provider/model/credential_provider_util.mm index 5527580..d4fff85 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_util.mm +++ b/ios/chrome/browser/credential_provider/model/credential_provider_util.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/credential_provider_util.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_util.h" #import <CommonCrypto/CommonDigest.h> @@ -158,8 +158,9 @@ objectForKey:kFaviconsLastSyncDatePrefKey]); // If no value stored in the NSUserDefaults, consider that the last sync // happened forever ago. - if (!last_sync_date) + if (!last_sync_date) { return base::Time(); + } return base::Time::FromNSDate(last_sync_date); }
diff --git a/ios/chrome/browser/credential_provider/credential_provider_util_unittest.mm b/ios/chrome/browser/credential_provider/model/credential_provider_util_unittest.mm similarity index 92% rename from ios/chrome/browser/credential_provider/credential_provider_util_unittest.mm rename to ios/chrome/browser/credential_provider/model/credential_provider_util_unittest.mm index b12f5ca8..8856c256 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_util_unittest.mm +++ b/ios/chrome/browser/credential_provider/model/credential_provider_util_unittest.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/credential_provider/credential_provider_util.h" +#import "ios/chrome/browser/credential_provider/model/credential_provider_util.h" #import "testing/gtest_mac.h" #import "testing/platform_test.h"
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index f24da2d..d82a96c 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -975,11 +975,6 @@ flag_descriptions::kNTPViewHierarchyRepairName, flag_descriptions::kNTPViewHierarchyRepairDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableNTPViewHierarchyRepair)}, - {"enable-tailored-security-integration", - flag_descriptions::kTailoredSecurityIntegrationName, - flag_descriptions::kTailoredSecurityIntegrationDescription, - flags_ui::kOsIos, - FEATURE_VALUE_TYPE(safe_browsing::kTailoredSecurityIntegration)}, {"autofill-enable-card-product-name", flag_descriptions::kAutofillEnableCardProductNameName, flag_descriptions::kAutofillEnableCardProductNameDescription,
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc index 620f9ea..343243d 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -513,12 +513,6 @@ "Enable folowing content from web and display Following feed on NTP based " "on sites that users followed."; -const char kTailoredSecurityIntegrationName[] = - "Enable Tailored Security Integration"; -const char kTailoredSecurityIntegrationDescription[] = - "Enable integration between account level enhanced safe browsing and " - "chrome enhanced safe browsing"; - const char kFeedBackgroundRefreshName[] = "Enable feed background refresh"; const char kFeedBackgroundRefreshDescription[] = "Schedules a feed background refresh after some minimum period of time has "
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h index 723a290..ec11c4c 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -357,11 +357,6 @@ extern const char kEditPasswordsInSettingsName[]; extern const char kEditPasswordsInSettingsDescription[]; -// Title and description for the flag to enable kTailoredSecurityIntegration -// flag on iOS. -extern const char kTailoredSecurityIntegrationName[]; -extern const char kTailoredSecurityIntegrationDescription[]; - // Title and description for the flag to enable address verification support in // autofill address save prompts. extern const char kEnableAutofillAddressSavePromptAddressVerificationName[];
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.mm b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.mm index 18376fa0..4149e56 100644 --- a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.mm +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.mm
@@ -16,11 +16,8 @@ InfobarOverlayBrowserAgent* browser_agent = InfobarOverlayBrowserAgent::FromBrowser(browser); - if (base::FeatureList::IsEnabled( - safe_browsing::kTailoredSecurityIntegration)) { - browser_agent->AddDefaultInfobarInteractionHandlerForInfobarType( - InfobarType::kInfobarTypeTailoredSecurityService); - } + browser_agent->AddDefaultInfobarInteractionHandlerForInfobarType( + InfobarType::kInfobarTypeTailoredSecurityService); browser_agent->AddDefaultInfobarInteractionHandlerForInfobarType( InfobarType::kInfobarTypePasswordSave);
diff --git a/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.h b/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.h index 320862d..776e9dcdb 100644 --- a/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.h +++ b/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.h
@@ -31,7 +31,7 @@ IOSChromeSavePasswordInfoBarDelegate( absl::optional<std::string> account_to_store_password, bool password_update, - password_manager::metrics_util::PasswordAccountStorageUserState + password_manager::features_util::PasswordAccountStorageUserState account_storage_user_state, std::unique_ptr<password_manager::PasswordFormManagerForUI> form_to_save, CommandDispatcher* dispatcher); @@ -123,7 +123,7 @@ const absl::optional<std::string> account_to_store_password_; // Used to record metrics related to passwords account storage. - const password_manager::metrics_util::PasswordAccountStorageUserState + const password_manager::features_util::PasswordAccountStorageUserState account_storage_user_state_; // Used to track the results we get from the info bar.
diff --git a/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.mm b/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.mm index a0c21f8..6feba2f 100644 --- a/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.mm +++ b/ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.mm
@@ -90,7 +90,7 @@ void RecordDismissalMetrics( password_manager::PasswordFormManagerForUI* form_to_save, password_manager::metrics_util::UIDismissalReason infobar_response, - password_manager::metrics_util::PasswordAccountStorageUserState + password_manager::features_util::PasswordAccountStorageUserState account_storage_user_state, bool update_infobar) { form_to_save->GetMetricsRecorder()->RecordUIDismissalReason(infobar_response); @@ -124,7 +124,7 @@ IOSChromeSavePasswordInfoBarDelegate::IOSChromeSavePasswordInfoBarDelegate( absl::optional<std::string> account_to_store_password, bool password_update, - password_manager::metrics_util::PasswordAccountStorageUserState + password_manager::features_util::PasswordAccountStorageUserState account_storage_user_state, std::unique_ptr<PasswordFormManagerForUI> form_to_save, CommandDispatcher* dispatcher)
diff --git a/ios/chrome/browser/passwords/password_controller.mm b/ios/chrome/browser/passwords/password_controller.mm index 5026011..2b4cbf8 100644 --- a/ios/chrome/browser/passwords/password_controller.mm +++ b/ios/chrome/browser/passwords/password_controller.mm
@@ -33,13 +33,13 @@ #import "components/autofill/ios/form_util/form_activity_params.h" #import "components/autofill/ios/form_util/unique_id_data_tab_helper.h" #import "components/infobars/core/infobar_manager.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/password_manager/core/browser/password_bubble_experiment.h" #import "components/password_manager/core/browser/password_form.h" #import "components/password_manager/core/browser/password_form_manager_for_ui.h" #import "components/password_manager/core/browser/password_generation_frame_helper.h" #import "components/password_manager/core/browser/password_manager.h" #import "components/password_manager/core/browser/password_manager_client.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" #import "components/password_manager/core/browser/password_manager_metrics_util.h" #import "components/password_manager/core/browser/password_sync_util.h" #import "components/password_manager/core/common/password_manager_features.h" @@ -450,7 +450,7 @@ SyncServiceFactory::GetForBrowserState(self.browserState); const absl::optional<std::string> accountToStorePassword = password_manager::sync_util::GetAccountForSaving(prefs, syncService); - const password_manager::metrics_util::PasswordAccountStorageUserState + const password_manager::features_util::PasswordAccountStorageUserState accountStorageUserState = password_manager::features_util:: ComputePasswordAccountStorageUserState(prefs, syncService);
diff --git a/ios/chrome/browser/passwords/test/mock_ios_chrome_save_passwords_infobar_delegate.mm b/ios/chrome/browser/passwords/test/mock_ios_chrome_save_passwords_infobar_delegate.mm index 3566cf7..8335cc1 100644 --- a/ios/chrome/browser/passwords/test/mock_ios_chrome_save_passwords_infobar_delegate.mm +++ b/ios/chrome/browser/passwords/test/mock_ios_chrome_save_passwords_infobar_delegate.mm
@@ -53,9 +53,9 @@ account_to_store_password, /*password_update=*/false, account_to_store_password.has_value() - ? password_manager::metrics_util:: + ? password_manager::features_util:: PasswordAccountStorageUserState::kSyncUser - : password_manager::metrics_util:: + : password_manager::features_util:: PasswordAccountStorageUserState::kSignedOutUser, CreateFormManager(form.get(), url.get()), [[CommandDispatcher alloc] init]),
diff --git a/ios/chrome/browser/sessions/BUILD.gn b/ios/chrome/browser/sessions/BUILD.gn index 6ed97acf..1fd3203 100644 --- a/ios/chrome/browser/sessions/BUILD.gn +++ b/ios/chrome/browser/sessions/BUILD.gn
@@ -42,6 +42,7 @@ deps = [ ":restoration_observer", ":serialisation", + ":session_constants", ":session_service", "//base", "//components/favicon/ios",
diff --git a/ios/chrome/browser/sessions/session_restoration_browser_agent.mm b/ios/chrome/browser/sessions/session_restoration_browser_agent.mm index 45c1210c..bdc15dc0 100644 --- a/ios/chrome/browser/sessions/session_restoration_browser_agent.mm +++ b/ios/chrome/browser/sessions/session_restoration_browser_agent.mm
@@ -4,6 +4,9 @@ #import "ios/chrome/browser/sessions/session_restoration_browser_agent.h" +#import <vector> + +#import "base/apple/foundation_util.h" #import "base/ios/ios_util.h" #import "base/memory/ptr_util.h" #import "base/metrics/histogram_functions.h" @@ -11,6 +14,7 @@ #import "base/time/time.h" #import "components/favicon/ios/web_favicon_driver.h" #import "components/previous_session_info/previous_session_info.h" +#import "ios/chrome/browser/sessions/session_constants.h" #import "ios/chrome/browser/sessions/session_restoration_observer.h" #import "ios/chrome/browser/sessions/session_service_ios.h" #import "ios/chrome/browser/sessions/session_window_ios.h" @@ -20,6 +24,9 @@ #import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h" #import "ios/chrome/browser/shared/model/url/chrome_url_constants.h" #import "ios/chrome/browser/shared/model/web_state_list/all_web_state_observation_forwarder.h" +#import "ios/chrome/browser/shared/model/web_state_list/order_controller.h" +#import "ios/chrome/browser/shared/model/web_state_list/order_controller_source.h" +#import "ios/chrome/browser/shared/model/web_state_list/removing_indexes.h" #import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h" #import "ios/chrome/browser/web/features.h" #import "ios/chrome/browser/web/page_placeholder_tab_helper.h" @@ -28,8 +35,179 @@ #import "ios/web/public/navigation/navigation_item.h" #import "ios/web/public/navigation/navigation_manager.h" #import "ios/web/public/session/crw_session_storage.h" +#import "ios/web/public/session/crw_session_user_data.h" #import "ios/web/public/web_state.h" +namespace { + +// A concrete implementation of OrderControllerSource that query data +// from a SessionWindowIOS. +class OrderControllerSourceFromSessionWindowIOS final + : public OrderControllerSource { + public: + // Constructor taking the `session_window` used to return the data, + explicit OrderControllerSourceFromSessionWindowIOS( + SessionWindowIOS* session_window); + + // OrderControllerSource implementation. + int GetCount() const final; + int GetPinnedCount() const final; + int GetOpenerOfItemAt(int index) const final; + bool IsOpenerOfItemAt(int index, + int opener_index, + bool check_navigation_index) const final; + + private: + SessionWindowIOS* session_window_; +}; + +OrderControllerSourceFromSessionWindowIOS:: + OrderControllerSourceFromSessionWindowIOS(SessionWindowIOS* session_window) + : session_window_(session_window) {} + +int OrderControllerSourceFromSessionWindowIOS::GetCount() const { + return static_cast<int>(session_window_.sessions.count); +} + +int OrderControllerSourceFromSessionWindowIOS::GetPinnedCount() const { + int pinned_count = 0; + for (CRWSessionStorage* session in session_window_.sessions) { + CRWSessionUserData* user_data = session.userData; + NSNumber* pinned_obj = base::apple::ObjCCast<NSNumber>( + [user_data objectForKey:kLegacyWebStateListOpenerIndexKey]); + + // All pinned items are at the beginning of the list, so stop as + // soon as the first unpinned tab is found. + if (!pinned_obj || ![pinned_obj boolValue]) { + break; + } + + ++pinned_count; + } + return pinned_count; +} + +int OrderControllerSourceFromSessionWindowIOS::GetOpenerOfItemAt( + int index) const { + CRWSessionUserData* user_data = session_window_.sessions[index].userData; + NSNumber* opener_index_obj = base::apple::ObjCCast<NSNumber>( + [user_data objectForKey:kLegacyWebStateListOpenerIndexKey]); + if (!opener_index_obj) { + return WebStateList::kInvalidIndex; + } + + return [opener_index_obj intValue]; +} + +bool OrderControllerSourceFromSessionWindowIOS::IsOpenerOfItemAt( + int index, + int opener_index, + bool check_navigation_index) const { + // `check_navigation_index` is only used for `DetermineInsertionIndex()` + // which should not be used, so we can assert that the parameter is false. + DCHECK(!check_navigation_index); + + CRWSessionUserData* user_data = session_window_.sessions[index].userData; + NSNumber* opener_index_obj = base::apple::ObjCCast<NSNumber>( + [user_data objectForKey:kLegacyWebStateListOpenerIndexKey]); + if (!opener_index_obj || [opener_index_obj intValue] != opener_index) { + return false; + } + + return true; +} + +// Determines the new active index. +NSUInteger GetActiveIndex(SessionWindowIOS* session_window, + const RemovingIndexes& removing_indexes) { + int active_index = session_window.selectedIndex != NSNotFound + ? static_cast<int>(session_window.selectedIndex) + : WebStateList::kInvalidIndex; + + const OrderControllerSourceFromSessionWindowIOS source(session_window); + const OrderController order_controller(source); + + // Update the `active_index` using the shared logic and the knowledge + // of the removed items. + active_index = + order_controller.DetermineNewActiveIndex(active_index, removing_indexes); + + return active_index != WebStateList::kInvalidIndex + ? static_cast<NSUInteger>(active_index) + : NSNotFound; +} + +// Updates opener_index for `session` according to `removing_indexes`. +void UpdateOpenerIndex(CRWSessionUserData* user_data, + const RemovingIndexes& removing_indexes) { + NSNumber* opener_index_obj = base::apple::ObjCCast<NSNumber>( + [user_data objectForKey:kLegacyWebStateListOpenerIndexKey]); + if (!opener_index_obj) { + return; + } + + const int opener_index = + removing_indexes.IndexAfterRemoval([opener_index_obj intValue]); + if (opener_index == WebStateList::kInvalidIndex) { + [user_data removeObjectForKey:kLegacyWebStateListOpenerIndexKey]; + [user_data removeObjectForKey:kLegacyWebStateListOpenerNavigationIndexKey]; + } else { + [user_data setObject:@(opener_index) + forKey:kLegacyWebStateListOpenerIndexKey]; + } +} + +// Filters out session items that would be empty after restoration. +SessionWindowIOS* FilterEmptyTabs(SessionWindowIOS* session_window) { + DCHECK_LE(session_window.sessions.count, static_cast<NSUInteger>(INT_MAX)); + const int sessions_count = static_cast<int>(session_window.sessions.count); + + std::vector<int> items_to_drop; + for (int index = 0; index < sessions_count; ++index) { + CRWSessionStorage* session = session_window.sessions[index]; + if (session.itemStorages.count == 0) { + items_to_drop.push_back(index); + } + } + + // Nothing to do. + if (items_to_drop.empty()) { + return session_window; + } + + // Compute the new value of selectedIndex before updating the opener-opened + // relationship, as OrderController take into account the closed WebStates. + const RemovingIndexes removing_indexes(std::move(items_to_drop)); + const NSUInteger selected_index = + GetActiveIndex(session_window, removing_indexes); + + // Create the new list of sessions, updating the opener-opened relationship + // to take into account the dropped CRWSessionStorage items. + NSMutableArray<CRWSessionStorage*>* sessions = [[NSMutableArray alloc] init]; + for (int index = 0; index < sessions_count; ++index) { + if (removing_indexes.Contains(index)) { + continue; + } + + CRWSessionStorage* session = session_window.sessions[index]; + UpdateOpenerIndex(session.userData, removing_indexes); + [sessions addObject:session]; + } + + return [[SessionWindowIOS alloc] initWithSessions:sessions + selectedIndex:selected_index]; +} + +// Struct representing a range of tabs. +struct Range { + const int min; + const int max; + + int size() const { return max - min; } +}; + +} // namespace + BROWSER_USER_DATA_KEY_IMPL(SessionRestorationBrowserAgent) SessionRestorationBrowserAgent::SessionRestorationBrowserAgent( @@ -89,9 +267,12 @@ } const int old_count = web_state_list_->count(); - const int old_first_non_pinned = web_state_list_->pinned_tabs_count(); + const int old_pinned_tabs_count = web_state_list_->pinned_tabs_count(); DCHECK_GE(old_count, 0); + // Filter all tabs that would be empty before restoration. + window = FilterEmptyTabs(window); + web_state_list_->PerformBatchOperation( base::BindOnce(^(WebStateList* web_state_list) { web::WebState::CreateParams create_params(browser_state_); @@ -102,85 +283,57 @@ })); DCHECK_GE(web_state_list_->count(), old_count); - int restored_count = web_state_list_->count() - old_count; - int restored_pinned_count = - web_state_list_->pinned_tabs_count() - old_first_non_pinned; + DCHECK_GE(web_state_list_->pinned_tabs_count(), old_pinned_tabs_count); - NSArray<CRWSessionStorage*>* restored_session_storages = - GetRestoredSessionStoragesForScope(scope, window.sessions, - restored_count); - DCHECK_EQ(restored_session_storages.count, - static_cast<NSUInteger>(restored_count)); + // If the restored tabs include pinned tabs, they would have been restored + // after the existing tabs, so they would range from old_pinned_tabs_count + // to web_state_list_->pinned_tabs_count(). + const Range pinned_tabs_range{ + .min = old_pinned_tabs_count, + .max = web_state_list_->pinned_tabs_count(), + }; + // The remaining regular tabs would have been restored at the end of the + // WebStateList, so from old_count plus the number of pinned tabs restored + // to web_state_list_->count(). + const Range regular_tabs_range{ + .min = old_count + pinned_tabs_range.size(), + .max = web_state_list_->count(), + }; + + // Check that all the tabs have been restored. + DCHECK_LE(pinned_tabs_range.size() + regular_tabs_range.size(), + static_cast<int>(window.sessions.count)); + + // Collect the list of restored tabs, setup the placeholder and start + // fetching the favicon if possible. std::vector<web::WebState*> restored_web_states; - restored_web_states.reserve(restored_count); - - std::vector<web::WebState*> web_states_to_remove; - web_states_to_remove.reserve(restored_count); - - // Find restored pinned WebStates. - for (int index = old_first_non_pinned; - index < web_state_list_->pinned_tabs_count(); ++index) { - web::WebState* web_state = web_state_list_->GetWebStateAt(index); - - const int session_index = index - old_first_non_pinned; - DCHECK_EQ(restored_session_storages[session_index].uniqueIdentifier, - web_state->GetUniqueIdentifier()); - - if (restored_session_storages[session_index].itemStorages.count > 0) { + for (Range range : {pinned_tabs_range, regular_tabs_range}) { + for (int index = range.min; index < range.max; ++index) { + web::WebState* web_state = web_state_list_->GetWebStateAt(index); restored_web_states.push_back(web_state); - } else { - web_states_to_remove.push_back(web_state); - } - } - // Find restored non-pinned WebStates. - for (int index = old_count + restored_pinned_count; - index < web_state_list_->count(); ++index) { - web::WebState* web_state = web_state_list_->GetWebStateAt(index); + const GURL& visible_url = web_state->GetVisibleURL(); + if (!visible_url.is_valid()) { + continue; + } - const int session_index = index - old_count; - DCHECK_EQ(restored_session_storages[session_index].uniqueIdentifier, - web_state->GetUniqueIdentifier()); - - if (restored_session_storages[session_index].itemStorages.count > 0) { - restored_web_states.push_back(web_state); - } else { - web_states_to_remove.push_back(web_state); - } - } - - // Do not count WebState that are going to be removed. - restored_count -= web_states_to_remove.size(); - - DCHECK_EQ(restored_web_states.size(), - static_cast<unsigned long>(restored_count)); - - // Iterating backwards to avoid messing up the indexes. - for (int index = restored_count - 1; index >= 0; --index) { - web::WebState* web_state = restored_web_states[index]; - - const GURL& visible_url = web_state->GetVisibleURL(); - - if (visible_url != kChromeUINewTabURL) { - PagePlaceholderTabHelper::FromWebState(web_state) - ->AddPlaceholderForNextNavigation(); - } - - if (visible_url.is_valid()) { favicon::WebFaviconDriver::FromWebState(web_state)->FetchFavicon( visible_url, /*is_same_document=*/false); + + if (visible_url != kChromeUINewTabURL) { + PagePlaceholderTabHelper::FromWebState(web_state) + ->AddPlaceholderForNextNavigation(); + } } } - for (web::WebState* web_state_to_remove : web_states_to_remove) { - const int index = web_state_list_->GetIndexOfWebState(web_state_to_remove); - DCHECK(index != WebStateList::kInvalidIndex); - web_state_list_->CloseWebStateAt(index, WebStateList::CLOSE_NO_FLAGS); - } + // Check that all the restored tabs have been accounted for. + DCHECK_EQ(pinned_tabs_range.size() + regular_tabs_range.size(), + static_cast<int>(restored_web_states.size())); // If there was only one tab and it was the new tab page, clobber it. - if (old_count == 1) { + if (old_count == 1 && !restored_web_states.empty()) { web::WebState* web_state = web_state_list_->GetWebStateAt(0); // An "unrealized" WebState has no pending load. Checking for realization
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm index 5600b24..2486507 100644 --- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm +++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
@@ -610,7 +610,7 @@ base::apple::ObjCCastStrict<NSDate>([defaults objectForKey:key]); if (value) { [defaults removeObjectForKey:key]; - prefs->SetTime(kAppStoreRatingTotalDaysOnChromeKey, + prefs->SetTime(kAppStoreRatingLastShownPromoDayKey, base::Time::FromNSDate(value)); } }
diff --git a/ios/chrome/browser/shared/model/web_state_list/order_controller.h b/ios/chrome/browser/shared/model/web_state_list/order_controller.h index 6f768d76..939c282 100644 --- a/ios/chrome/browser/shared/model/web_state_list/order_controller.h +++ b/ios/chrome/browser/shared/model/web_state_list/order_controller.h
@@ -58,7 +58,7 @@ // will be removed from the WebStateList). // Logic diagram: crbug.com/1395319 int DetermineNewActiveIndex(int active_index, - RemovingIndexes removing_indexes) const; + const RemovingIndexes& removing_indexes) const; private: raw_ref<const OrderControllerSource> source_;
diff --git a/ios/chrome/browser/shared/model/web_state_list/order_controller.mm b/ios/chrome/browser/shared/model/web_state_list/order_controller.mm index 12ea1c1..597009d 100644 --- a/ios/chrome/browser/shared/model/web_state_list/order_controller.mm +++ b/ios/chrome/browser/shared/model/web_state_list/order_controller.mm
@@ -162,7 +162,7 @@ int OrderController::DetermineNewActiveIndex( int active_index, - RemovingIndexes removing_indexes) const { + const RemovingIndexes& removing_indexes) const { // If there is no active element, then there will be no new active element // after closing the element. if (active_index == WebStateList::kInvalidIndex) {
diff --git a/ios/chrome/browser/sync/model/BUILD.gn b/ios/chrome/browser/sync/model/BUILD.gn new file mode 100644 index 0000000..790a97b --- /dev/null +++ b/ios/chrome/browser/sync/model/BUILD.gn
@@ -0,0 +1,20 @@ +# Copyright 2023 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("model") { + sources = [ + "sync_service_factory.h", + "sync_setup_service.h", + "sync_setup_service_factory.h", + ] + public_deps = [ "//ios/chrome/browser/sync" ] +} + +source_set("test_support") { + testonly = true + public_deps = [ + "//ios/chrome/browser/sync", + "//ios/chrome/browser/sync:test_support", + ] +}
diff --git a/ios/chrome/browser/sync/model/sync_service_factory.h b/ios/chrome/browser/sync/model/sync_service_factory.h new file mode 100644 index 0000000..c94ab7f --- /dev/null +++ b/ios/chrome/browser/sync/model/sync_service_factory.h
@@ -0,0 +1,10 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SERVICE_FACTORY_H_ +#define IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SERVICE_FACTORY_H_ + +#import "ios/chrome/browser/sync/sync_service_factory.h" + +#endif // IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SERVICE_FACTORY_H_
diff --git a/ios/chrome/browser/sync/model/sync_setup_service.h b/ios/chrome/browser/sync/model/sync_setup_service.h new file mode 100644 index 0000000..c40d905b --- /dev/null +++ b/ios/chrome/browser/sync/model/sync_setup_service.h
@@ -0,0 +1,10 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SETUP_SERVICE_H_ +#define IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SETUP_SERVICE_H_ + +#import "ios/chrome/browser/sync/sync_setup_service.h" + +#endif // IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SETUP_SERVICE_H_
diff --git a/ios/chrome/browser/sync/model/sync_setup_service_factory.h b/ios/chrome/browser/sync/model/sync_setup_service_factory.h new file mode 100644 index 0000000..1da88caf --- /dev/null +++ b/ios/chrome/browser/sync/model/sync_setup_service_factory.h
@@ -0,0 +1,10 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SETUP_SERVICE_FACTORY_H_ +#define IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SETUP_SERVICE_FACTORY_H_ + +#import "ios/chrome/browser/sync/sync_setup_service_factory.h" + +#endif // IOS_CHROME_BROWSER_SYNC_MODEL_SYNC_SETUP_SERVICE_FACTORY_H_
diff --git a/ios/chrome/browser/tabs/tab_helper_util.mm b/ios/chrome/browser/tabs/tab_helper_util.mm index 0b2c9075..3b4bcce 100644 --- a/ios/chrome/browser/tabs/tab_helper_util.mm +++ b/ios/chrome/browser/tabs/tab_helper_util.mm
@@ -174,12 +174,9 @@ SafeBrowsingUrlAllowList::CreateForWebState(web_state); SafeBrowsingUnsafeResourceContainer::CreateForWebState(web_state); - if (base::FeatureList::IsEnabled( - safe_browsing::kTailoredSecurityIntegration)) { - TailoredSecurityTabHelper::CreateForWebState( - web_state, - TailoredSecurityServiceFactory::GetForBrowserState(browser_state)); - } + TailoredSecurityTabHelper::CreateForWebState( + web_state, + TailoredSecurityServiceFactory::GetForBrowserState(browser_state)); PolicyUrlBlockingTabHelper::CreateForWebState(web_state);
diff --git a/ios/chrome/browser/text_selection/model/text_selection_util.mm b/ios/chrome/browser/text_selection/model/text_selection_util.mm index afa95dfc..2318103 100644 --- a/ios/chrome/browser/text_selection/model/text_selection_util.mm +++ b/ios/chrome/browser/text_selection/model/text_selection_util.mm
@@ -6,4 +6,4 @@ BASE_FEATURE(kEnableExpKitTextClassifier, "EnableExpKitTextClassifier", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/ios/chrome/browser/ui/context_menu/context_menu_egtest.mm b/ios/chrome/browser/ui/context_menu/context_menu_egtest.mm index 22a572bd..572a141b 100644 --- a/ios/chrome/browser/ui/context_menu/context_menu_egtest.mm +++ b/ios/chrome/browser/ui/context_menu/context_menu_egtest.mm
@@ -512,7 +512,9 @@ // Checks that "open in new window" shows up on a long press of a url link // and that it actually opens in a new window. -- (void)testOpenLinkInNewWindow { +// TODO(crbug.com/1487586): This test is very flaky on both device and +// simulator. +- (void)DISABLED_testOpenLinkInNewWindow { if (![ChromeEarlGrey areMultipleWindowsSupported]) EARL_GREY_TEST_DISABLED(@"Multiple windows can't be opened.");
diff --git a/ios/chrome/browser/ui/fullscreen/BUILD.gn b/ios/chrome/browser/ui/fullscreen/BUILD.gn index b855744..f11084c 100644 --- a/ios/chrome/browser/ui/fullscreen/BUILD.gn +++ b/ios/chrome/browser/ui/fullscreen/BUILD.gn
@@ -151,6 +151,8 @@ "//base", "//base/test:test_support", "//components/translate/core/browser:translate_pref_names", + "//ios/chrome/browser/shared/model/prefs:pref_names", + "//ios/chrome/browser/shared/public/features", "//ios/chrome/browser/shared/ui/util", "//ios/chrome/browser/ui/fullscreen/test:eg_test_support+eg2", "//ios/chrome/test:eg_test_support+eg2",
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_egtest.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_egtest.mm index 8e83315..cee6d73f 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_egtest.mm +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_egtest.mm
@@ -9,6 +9,8 @@ #import "base/strings/utf_string_conversions.h" #import "base/test/ios/wait_util.h" #import "components/translate/core/browser/translate_pref_names.h" +#import "ios/chrome/browser/shared/model/prefs/pref_names.h" +#import "ios/chrome/browser/shared/public/features/features.h" #import "ios/chrome/browser/ui/fullscreen/test/fullscreen_app_interface.h" #import "ios/chrome/test/earl_grey/chrome_earl_grey.h" #import "ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h" @@ -101,6 +103,8 @@ setBoolValue:NO forUserPref:base::SysUTF8ToNSString( translate::prefs::kOfferTranslateEnabled)]; + + [ChromeEarlGrey setBoolValue:NO forUserPref:prefs::kBottomOmnibox]; } - (void)tearDown { @@ -411,6 +415,31 @@ [ChromeEarlGreyUI waitForToolbarVisible:YES]; } +// Tests collapsing of toolbar when a user scroll on a long page and rotate. +- (void)testCollapseToolbarOnScrollAndRotate { + std::map<GURL, std::string> responses; + const GURL URL = web::test::HttpServer::MakeUrl("http://tallpage"); + // A page long enough to ensure that the toolbar goes away on scrolling. + responses[URL] = + base::StringPrintf("<p style='height:%dem'>a</p><p>b</p>", kPageHeightEM); + web::test::SetUpSimpleHttpServer(responses); + + [ChromeEarlGrey loadURL:URL]; + [ChromeEarlGreyUI waitForToolbarVisible:YES]; + + // Scroll and check that toolbar is collapsed. + HideToolbarUsingUI(); + [ChromeEarlGreyUI waitForToolbarVisible:NO]; + + // Rotate and check that toolbar is still collapsed. + [EarlGrey rotateDeviceToOrientation:UIDeviceOrientationLandscapeLeft + error:nil]; + [ChromeEarlGreyUI waitForToolbarVisible:NO]; + + // Cancel the rotation. + [EarlGrey rotateDeviceToOrientation:UIDeviceOrientationPortrait error:nil]; +} + @end #pragma mark - Smooth scrolling enabled Tests @@ -432,3 +461,28 @@ } @end + +#pragma mark - Bottom omnibox enabled Tests + +// Fullscreens tests for Chrome with bottom omnibox enabled by default. +@interface FullscreenBottomOmniboxTestCase : ZZZFullscreenTestCase +@end + +@implementation FullscreenBottomOmniboxTestCase + +- (AppLaunchConfiguration)appConfigurationForTestCase { + AppLaunchConfiguration config; + config.features_enabled.push_back(kBottomOmniboxSteadyState); + return config; +} + +- (void)setUp { + [super setUp]; + [ChromeEarlGrey setBoolValue:YES forUserPref:prefs::kBottomOmnibox]; +} + +// This is currently needed to prevent this test case from being ignored. +- (void)testEmpty { +} + +@end
diff --git a/ios/chrome/browser/ui/infobars/test/test_infobar_password_delegate.mm b/ios/chrome/browser/ui/infobars/test/test_infobar_password_delegate.mm index e0d8512..d6a8e45b 100644 --- a/ios/chrome/browser/ui/infobars/test/test_infobar_password_delegate.mm +++ b/ios/chrome/browser/ui/infobars/test/test_infobar_password_delegate.mm
@@ -83,7 +83,7 @@ : IOSChromeSavePasswordInfoBarDelegate( "foobar@gmail.com", false, - password_manager::metrics_util::PasswordAccountStorageUserState:: + password_manager::features_util::PasswordAccountStorageUserState:: kSyncUser, CreateFormManager(), nullptr),
diff --git a/ios/chrome/browser/ui/menu/browser_action_factory.mm b/ios/chrome/browser/ui/menu/browser_action_factory.mm index 77d5f815..0a2d21e 100644 --- a/ios/chrome/browser/ui/menu/browser_action_factory.mm +++ b/ios/chrome/browser/ui/menu/browser_action_factory.mm
@@ -281,12 +281,8 @@ webState:webState]; #if BUILDFLAG(IOS_USE_BRANDED_SYMBOLS) - UIImage* image = CustomSymbolWithConfiguration( - kGooglePhotosSymbol, - [UIImageSymbolConfiguration - configurationWithPointSize:kSymbolActionPointSize - weight:UIImageSymbolWeightThin - scale:UIImageSymbolScaleMedium]); + UIImage* image = + CustomSymbolWithPointSize(kGooglePhotosSymbol, kSymbolActionPointSize); #else UIImage* image = DefaultSymbolWithPointSize(kSaveImageActionSymbol, kSymbolActionPointSize);
diff --git a/ios/chrome/browser/ui/menu/browser_action_factory_unittest.mm b/ios/chrome/browser/ui/menu/browser_action_factory_unittest.mm index 4c9e814..b9e791c 100644 --- a/ios/chrome/browser/ui/menu/browser_action_factory_unittest.mm +++ b/ios/chrome/browser/ui/menu/browser_action_factory_unittest.mm
@@ -450,12 +450,8 @@ scenario:kTestMenuScenario]; #if BUILDFLAG(IOS_USE_BRANDED_SYMBOLS) - UIImage* expectedImage = CustomSymbolWithConfiguration( - kGooglePhotosSymbol, - [UIImageSymbolConfiguration - configurationWithPointSize:kSymbolActionPointSize - weight:UIImageSymbolWeightThin - scale:UIImageSymbolScaleMedium]); + UIImage* expectedImage = + CustomSymbolWithPointSize(kGooglePhotosSymbol, kSymbolActionPointSize); #else UIImage* expectedImage = DefaultSymbolWithPointSize(kSaveImageActionSymbol, kSymbolActionPointSize);
diff --git a/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm b/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm index 2210f849..652233c 100644 --- a/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm +++ b/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm
@@ -188,7 +188,7 @@ @property(nonatomic, strong) TableViewURLDragDropHandler* dragDropHandler; @end -@implementation RecentTabsTableViewController : ChromeTableViewController +@implementation RecentTabsTableViewController #pragma mark - Public Interface
diff --git a/ios/chrome/browser/ui/save_to_photos/save_to_photos_mediator.mm b/ios/chrome/browser/ui/save_to_photos/save_to_photos_mediator.mm index 8ea4bd45..3255d909 100644 --- a/ios/chrome/browser/ui/save_to_photos/save_to_photos_mediator.mm +++ b/ios/chrome/browser/ui/save_to_photos/save_to_photos_mediator.mm
@@ -259,16 +259,6 @@ _photosService->UploadImage(_imageName, _imageData, _identity, base::DoNothing(), std::move(uploadCompletionCallback)); - [self showSnackbarWithUploadingMessageAndCancelButton]; -} - -// Cancels the ongoing upload and exit hide Save to Photos. -- (void)cancelUpload { - _photosService->CancelUpload(); - base::UmaHistogramEnumeration( - kSaveToPhotosActionsHistogram, - SaveToPhotosActions::kFailureUserCancelledWithSnackbar); - [self.delegate hideSaveToPhotos]; } // Called when the Photos service reports upload completion. @@ -313,22 +303,6 @@ }]; } -// Shows a snackbar to let the user know the Photos service started to upload -// the image with a button to cancel the upload. -- (void)showSnackbarWithUploadingMessageAndCancelButton { - NSString* message = l10n_util::GetNSStringF( - IDS_IOS_SAVE_TO_PHOTOS_SNACKBAR_SAVING_IMAGE_MESSAGE, - base::SysNSStringToUTF16(_identity.userEmail)); - NSString* buttonText = l10n_util::GetNSString(IDS_CANCEL); - __weak __typeof(self) weakSelf = self; - [self.delegate showSnackbarWithMessage:message - buttonText:buttonText - messageAction:^{ - [weakSelf cancelUpload]; - } - completionAction:nil]; -} - // Shows a snackbar to let the user know the Photos service is done uploading // the image with a button to either open the Photos app if it is installed or // show the Photos app in the AppStore otherwise.
diff --git a/ios/chrome/browser/ui/save_to_photos/save_to_photos_mediator_unittest.mm b/ios/chrome/browser/ui/save_to_photos/save_to_photos_mediator_unittest.mm index 8a04aa31..9066605f 100644 --- a/ios/chrome/browser/ui/save_to_photos/save_to_photos_mediator_unittest.mm +++ b/ios/chrome/browser/ui/save_to_photos/save_to_photos_mediator_unittest.mm
@@ -353,17 +353,8 @@ SaveToPhotosAccountPickerActions::kSelectedIdentity, 1); EXPECT_OCMOCK_VERIFY(mock_save_to_photos_mediator_delegate); - // Expect the the mediator will start uploading and show a snackbar when the - // account picker has been hidden. - NSString* expected_message = l10n_util::GetNSStringF( - IDS_IOS_SAVE_TO_PHOTOS_SNACKBAR_SAVING_IMAGE_MESSAGE, - base::SysNSStringToUTF16(fake_identity_.userEmail)); - NSString* expected_button_text = l10n_util::GetNSString(IDS_CANCEL); - OCMExpect([mock_save_to_photos_mediator_delegate - showSnackbarWithMessage:expected_message - buttonText:expected_button_text - messageAction:[OCMArg isNotNil] - completionAction:[OCMArg isNil]]); + // Notify the mediator that the account picker was hidden and run until it + // calls the Photos service. SetUpPhotosServiceQuitClosure(); [mediator accountPickerWasHidden]; @@ -378,12 +369,12 @@ EXPECT_NSEQ(GetTestPhotosService()->GetImageData(), GetFakeImageData()); EXPECT_EQ(GetTestPhotosService()->GetIdentity(), fake_identity_); - // Expect that the second snackbar is shown once the PhotosService is done + // Expect that the success snackbar is shown once the PhotosService is done // uploading. - expected_message = l10n_util::GetNSStringF( + NSString* expected_message = l10n_util::GetNSStringF( IDS_IOS_SAVE_TO_PHOTOS_SNACKBAR_IMAGE_SAVED_MESSAGE, base::SysNSStringToUTF16(fake_identity_.userEmail)); - expected_button_text = l10n_util::GetNSString( + NSString* expected_button_text = l10n_util::GetNSString( IDS_IOS_SAVE_TO_PHOTOS_SNACKBAR_IMAGE_SAVED_OPEN_BUTTON); OCMExpect([mock_save_to_photos_mediator_delegate showSnackbarWithMessage:expected_message @@ -394,12 +385,13 @@ // Run until the PhotosService finishes to upload the image. task_environment_.RunUntilQuit(); - // Verify that the second snackbar has been shown. + // Verify that the success snackbar has been shown. EXPECT_OCMOCK_VERIFY(mock_save_to_photos_mediator_delegate); } // Tests that the SaveToPhotosMediator tries to open the Google Photos app if it -// detects that it is installed and the user taps "Open" in the second snackbar. +// detects that it is installed and the user taps "Open" in the success +// snackbar. TEST_F(SaveToPhotosMediatorTest, SnackbarOpenButtonOpensPhotosAppIfInstalled) { // The feature requires the user being signed-in. SignIn(); @@ -419,7 +411,7 @@ webState:web_state_.get()]; task_environment_.RunUntilQuit(); - // Expect the second snackbar (with a non-nil completion) is shown and save + // Expect the success snackbar (with a non-nil completion) is shown and save // the message and completion actions to later simulate the snackbar being // dismissed by the user tapping the "Open" button. __block ProceduralBlock savedMessageAction = nil; @@ -438,14 +430,14 @@ return completionAction != nil; }]]); - // Run until the PhotosService is done uploading, at which point the second + // Run until the PhotosService is done uploading, at which point the success // snackbar is presented to the user. SetUpPhotosServiceQuitClosure(); [mediator accountPickerDidSelectIdentity:fake_identity_ askEveryTime:YES]; [mediator accountPickerWasHidden]; task_environment_.RunUntilQuit(); - // Verify that the second snackbar was shown. + // Verify that the success snackbar was shown. EXPECT_OCMOCK_VERIFY(mock_save_to_photos_mediator_delegate); ASSERT_TRUE(savedMessageAction); ASSERT_TRUE(savedCompletionAction); @@ -489,7 +481,7 @@ // Tests that the SaveToPhotosMediator tries to show the StoreKit if it detects // that the Google Photos app is not installed and the user taps "Open" in the -// second snackbar. +// success snackbar. TEST_F(SaveToPhotosMediatorTest, SnackbarOpenButtonOpensStoreKitIfAppNotInstalled) { // The feature requires the user being signed-in. @@ -510,7 +502,7 @@ webState:web_state_.get()]; task_environment_.RunUntilQuit(); - // Expect the second snackbar (with a non-nil completion) is shown and save + // Expect the success snackbar (with a non-nil completion) is shown and save // the message and completion actions to later simulate the snackbar being // dismissed by the user tapping the "Open" button. __block ProceduralBlock savedMessageAction = nil; @@ -529,14 +521,14 @@ return completionAction != nil; }]]); - // Run until the PhotosService is done uploading, at which point the second + // Run until the PhotosService is done uploading, at which point the success // snackbar is presented to the user. SetUpPhotosServiceQuitClosure(); [mediator accountPickerDidSelectIdentity:fake_identity_ askEveryTime:YES]; [mediator accountPickerWasHidden]; task_environment_.RunUntilQuit(); - // Verify that the second snackbar was shown. + // Verify that the success snackbar was shown. EXPECT_OCMOCK_VERIFY(mock_save_to_photos_mediator_delegate); ASSERT_TRUE(savedMessageAction); ASSERT_TRUE(savedCompletionAction);
diff --git a/ios/chrome/browser/ui/settings/about_chrome_table_view_controller.mm b/ios/chrome/browser/ui/settings/about_chrome_table_view_controller.mm index f49d4c7..3f5b293 100644 --- a/ios/chrome/browser/ui/settings/about_chrome_table_view_controller.mm +++ b/ios/chrome/browser/ui/settings/about_chrome_table_view_controller.mm
@@ -16,6 +16,7 @@ #import "components/version_info/version_info.h" #import "ios/chrome/browser/shared/model/url/chrome_url_constants.h" #import "ios/chrome/browser/shared/public/commands/application_commands.h" +#import "ios/chrome/browser/shared/public/commands/open_new_tab_command.h" #import "ios/chrome/browser/shared/public/commands/snackbar_commands.h" #import "ios/chrome/browser/shared/public/features/features.h" #import "ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_text_item.h" @@ -26,7 +27,6 @@ #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h" #import "ios/chrome/browser/ui/settings/cells/version_item.h" #import "ios/chrome/browser/ui/settings/settings_table_view_controller_constants.h" -#import "ios/chrome/browser/ui/settings/utils/settings_utils.h" #import "ios/chrome/common/channel_info.h" #import "ios/chrome/common/ui/colors/semantic_color_names.h" #import "ios/chrome/grit/ios_branded_strings.h" @@ -174,7 +174,8 @@ #pragma mark - Private methods - (void)openURL:(GURL)URL { - BlockToOpenURL(self, self.applicationCommandsHandler)(URL); + OpenNewTabCommand* command = [OpenNewTabCommand commandWithURLFromChrome:URL]; + [self.applicationCommandsHandler closeSettingsUIAndOpenURL:command]; } - (std::string)versionString {
diff --git a/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_mediator.mm b/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_mediator.mm index 78d14b88..8c4a1603 100644 --- a/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_mediator.mm +++ b/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_mediator.mm
@@ -827,6 +827,12 @@ TableViewModel* model = self.consumer.tableViewModel; DCHECK(![model hasSectionForSectionIdentifier:SyncErrorsSectionIdentifier]); + // During some signout flows, it can happen that the Account section doesn't + // exist at this point. In that case, there's nothing to update here. + if (![model hasSectionForSectionIdentifier:AccountSectionIdentifier]) { + return; + } + NSInteger previousSection = [model sectionForSectionIdentifier:AccountSectionIdentifier]; DCHECK_NE(NSNotFound, previousSection);
diff --git a/ios/chrome/browser/ui/settings/language/language_settings_table_view_controller.mm b/ios/chrome/browser/ui/settings/language/language_settings_table_view_controller.mm index 0edab4f..97bc5fa 100644 --- a/ios/chrome/browser/ui/settings/language/language_settings_table_view_controller.mm +++ b/ios/chrome/browser/ui/settings/language/language_settings_table_view_controller.mm
@@ -188,12 +188,6 @@ - (void)updateUIForEditState { [super updateUIForEditState]; - // The following two lines cause the table view to refresh the cell heights - // with animation without reloading the cells. This is needed for language - // cells that can be significantly taller in edit mode. - [self.tableView beginUpdates]; - [self.tableView endUpdates]; - [self setAddLanguageItemEnabled:!self.isEditing]; if (_translateSwitchItem) { [self setTranslateSwitchItemEnabled:!self.isEditing];
diff --git a/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.mm b/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.mm index 7c3182b..bd0911a 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.mm +++ b/ios/chrome/browser/ui/settings/password/password_details/add_password_mediator.mm
@@ -14,9 +14,9 @@ #import "base/task/cancelable_task_tracker.h" #import "base/task/sequenced_task_runner.h" #import "base/task/thread_pool.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/password_manager/core/browser/form_parsing/form_data_parser.h" #import "components/password_manager/core/browser/password_form.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" #import "components/password_manager/core/browser/password_manager_util.h" #import "components/password_manager/core/browser/password_sync_util.h" #import "components/password_manager/core/browser/ui/credential_ui_entry.h"
diff --git a/ios/chrome/browser/ui/settings/password/password_details/password_details_mediator.mm b/ios/chrome/browser/ui/settings/password/password_details/password_details_mediator.mm index f77c248..8b31561 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/password_details_mediator.mm +++ b/ios/chrome/browser/ui/settings/password/password_details/password_details_mediator.mm
@@ -14,8 +14,8 @@ #import "base/memory/raw_ptr.h" #import "base/ranges/algorithm.h" #import "base/strings/sys_string_conversions.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/password_manager/core/browser/password_form.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" #import "components/password_manager/core/browser/password_sync_util.h" #import "components/password_manager/core/browser/ui/credential_ui_entry.h" #import "components/password_manager/core/common/password_manager_features.h" @@ -163,37 +163,6 @@ _syncService = syncService; _delegate = delegate; - // TODO(crbug.com/1400692): Improve saved passwords logic when helper is - // available in SavedPasswordsPresenter. - _usernamesWithSameDomainDict = [[NSMutableDictionary alloc] init]; - NSMutableSet<NSString*>* signonRealms = [[NSMutableSet alloc] init]; - auto savedCredentials = - manager->GetSavedPasswordsPresenter()->GetSavedCredentials(); - - // Store all usernames by domain. - for (const auto& credential : self.credentials) { - [signonRealms - addObject:[NSString - stringWithCString:credential.GetFirstSignonRealm().c_str() - encoding:[NSString defaultCStringEncoding]]]; - } - for (const auto& cred : savedCredentials) { - NSString* signonRealm = - [NSString stringWithCString:cred.GetFirstSignonRealm().c_str() - encoding:[NSString defaultCStringEncoding]]; - if ([signonRealms containsObject:signonRealm]) { - NSMutableSet* set = - [_usernamesWithSameDomainDict objectForKey:signonRealm]; - if (!set) { - set = [[NSMutableSet alloc] init]; - [set addObject:base::SysUTF16ToNSString(cred.username)]; - [_usernamesWithSameDomainDict setObject:set forKey:signonRealm]; - - } else { - [set addObject:base::SysUTF16ToNSString(cred.username)]; - } - } - } return self; } @@ -243,7 +212,7 @@ } // Use the iterator before base::Erase() makes it invalid. - _manager->GetSavedPasswordsPresenter()->RemoveCredential(*it); + self.savedPasswordsPresenter->RemoveCredential(*it); // TODO(crbug.com/1359392). Once kPasswordsGrouping launches, the mediator // should update the passwords model and receive the updates via // SavedPasswordsPresenterObserver, instead of replicating the updates to its @@ -271,7 +240,7 @@ } it->stored_in = {password_manager::PasswordForm::Store::kAccountStore}; - _manager->GetSavedPasswordsPresenter()->MoveCredentialsToAccount( + self.savedPasswordsPresenter->MoveCredentialsToAccount( {*it}, password_manager::metrics_util::MoveToAccountStoreTrigger:: kExplicitlyTriggeredInSettings); [self providePasswordsToConsumer]; @@ -354,7 +323,7 @@ updated_credential.username = SysNSStringToUTF16(password.username); updated_credential.password = SysNSStringToUTF16(password.password); updated_credential.note = SysNSStringToUTF16(password.note); - if (_manager->GetSavedPasswordsPresenter()->EditSavedCredentials( + if (self.savedPasswordsPresenter->EditSavedCredentials( original_credential, updated_credential) == password_manager::SavedPasswordsPresenter::EditResult::kSuccess) { // Update the usernames by domain dictionary. @@ -414,7 +383,7 @@ - (BOOL)isUsernameReused:(NSString*)newUsername forDomain:(NSString*)domain { // It is more efficient to check set of the usernames for the same origin // instead of delegating this to the `_manager`. - return [[_usernamesWithSameDomainDict objectForKey:domain] + return [[self.usernamesWithSameDomainDict objectForKey:domain] containsObject:newUsername]; } @@ -447,6 +416,44 @@ #pragma mark - Private +- (NSMutableDictionary<NSString*, NSMutableSet<NSString*>*>*) + usernamesWithSameDomainDict { + if (!_usernamesWithSameDomainDict) { + // TODO(crbug.com/1400692): Improve saved passwords logic when helper is + // available in SavedPasswordsPresenter. + _usernamesWithSameDomainDict = [[NSMutableDictionary alloc] init]; + NSMutableSet<NSString*>* signonRealms = [[NSMutableSet alloc] init]; + auto savedCredentials = self.savedPasswordsPresenter->GetSavedCredentials(); + + // Store all usernames by domain. + for (const auto& credential : self.credentials) { + [signonRealms + addObject:[NSString + stringWithCString:credential.GetFirstSignonRealm() + .c_str() + encoding:[NSString defaultCStringEncoding]]]; + } + for (const auto& cred : savedCredentials) { + NSString* signonRealm = + [NSString stringWithCString:cred.GetFirstSignonRealm().c_str() + encoding:[NSString defaultCStringEncoding]]; + if ([signonRealms containsObject:signonRealm]) { + NSMutableSet* set = + [_usernamesWithSameDomainDict objectForKey:signonRealm]; + if (!set) { + set = [[NSMutableSet alloc] init]; + [set addObject:base::SysUTF16ToNSString(cred.username)]; + [_usernamesWithSameDomainDict setObject:set forKey:signonRealm]; + + } else { + [set addObject:base::SysUTF16ToNSString(cred.username)]; + } + } + } + } + return _usernamesWithSameDomainDict; +} + // Pushes password details to the consumer. - (void)providePasswordsToConsumer { NSMutableArray<PasswordDetails*>* passwords = [NSMutableArray array]; @@ -491,7 +498,8 @@ return; } - NSMutableSet* set = [_usernamesWithSameDomainDict objectForKey:signonRealm]; + NSMutableSet* set = + [self.usernamesWithSameDomainDict objectForKey:signonRealm]; if (set) { [set removeObject:oldUsername]; [set addObject:newUsername];
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm index 45fce62..ebf7935 100644 --- a/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm +++ b/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm
@@ -72,7 +72,6 @@ #import "ios/chrome/browser/ui/settings/settings_root_table_view_controller+toolbar_add.h" #import "ios/chrome/browser/ui/settings/settings_root_table_view_controller+toolbar_settings.h" #import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h" -#import "ios/chrome/browser/ui/settings/utils/settings_utils.h" #import "ios/chrome/common/string_util.h" #import "ios/chrome/common/ui/colors/semantic_color_names.h" #import "ios/chrome/common/ui/elements/popover_label_view_controller.h"
diff --git a/ios/chrome/browser/ui/settings/password/password_settings/password_settings_coordinator.mm b/ios/chrome/browser/ui/settings/password/password_settings/password_settings_coordinator.mm index a7d4c3c..645b2c1 100644 --- a/ios/chrome/browser/ui/settings/password/password_settings/password_settings_coordinator.mm +++ b/ios/chrome/browser/ui/settings/password/password_settings/password_settings_coordinator.mm
@@ -41,7 +41,6 @@ #import "ios/chrome/browser/ui/settings/password/reauthentication/reauthentication_coordinator.h" #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" #import "ios/chrome/browser/ui/settings/utils/password_utils.h" -#import "ios/chrome/browser/ui/settings/utils/settings_utils.h" #import "ios/chrome/common/ui/reauthentication/reauthentication_module.h" #import "ios/chrome/grit/ios_branded_strings.h" #import "ios/chrome/grit/ios_strings.h" @@ -317,15 +316,17 @@ } - (void)showOnDeviceEncryptionSetUp { - GURL url = google_util::AppendGoogleLocaleParam( + GURL URL = google_util::AppendGoogleLocaleParam( GURL(kOnDeviceEncryptionOptInURL), GetApplicationContext()->GetApplicationLocale()); - BlockToOpenURL(self.passwordSettingsViewController, self.dispatcher)(url); + OpenNewTabCommand* command = [OpenNewTabCommand commandWithURLFromChrome:URL]; + [self.dispatcher closeSettingsUIAndOpenURL:command]; } - (void)showOnDeviceEncryptionHelp { - GURL url = GURL(kOnDeviceEncryptionLearnMoreURL); - BlockToOpenURL(self.passwordSettingsViewController, self.dispatcher)(url); + GURL URL = GURL(kOnDeviceEncryptionLearnMoreURL); + OpenNewTabCommand* command = [OpenNewTabCommand commandWithURLFromChrome:URL]; + [self.dispatcher closeSettingsUIAndOpenURL:command]; } #pragma mark - PopoverLabelViewControllerDelegate @@ -595,6 +596,13 @@ #pragma mark - Private +// Closes the settings and load the passcode help article in a new tab. +- (void)showPasscodeHelp { + GURL URL = GURL(kPasscodeArticleURL); + OpenNewTabCommand* command = [OpenNewTabCommand commandWithURLFromChrome:URL]; + [self.dispatcher closeSettingsUIAndOpenURL:command]; +} + // Helper to show the "set passcode" dialog with customizable content. - (void)showSetPasscodeDialogWithContent:(NSString*)content { UIAlertController* alertController = [UIAlertController @@ -603,14 +611,13 @@ message:content preferredStyle:UIAlertControllerStyleAlert]; - void (^blockOpenURL)(const GURL&) = - BlockToOpenURL(self.passwordSettingsViewController, self.dispatcher); + __weak PasswordSettingsCoordinator* weakSelf = self; UIAlertAction* learnAction = [UIAlertAction actionWithTitle:l10n_util::GetNSString( IDS_IOS_SETTINGS_SET_UP_SCREENLOCK_LEARN_HOW) style:UIAlertActionStyleDefault handler:^(UIAlertAction*) { - blockOpenURL(GURL(kPasscodeArticleURL)); + [weakSelf showPasscodeHelp]; }]; [alertController addAction:learnAction]; UIAlertAction* okAction =
diff --git a/ios/chrome/browser/ui/settings/password/password_settings/password_settings_mediator.mm b/ios/chrome/browser/ui/settings/password/password_settings/password_settings_mediator.mm index a0e6d362..d99cfc63 100644 --- a/ios/chrome/browser/ui/settings/password/password_settings/password_settings_mediator.mm +++ b/ios/chrome/browser/ui/settings/password/password_settings/password_settings_mediator.mm
@@ -10,7 +10,7 @@ #import "base/metrics/user_metrics.h" #import "base/strings/sys_string_conversions.h" #import "components/password_manager/core/browser/features/password_features.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/password_manager/core/browser/ui/credential_ui_entry.h" #import "components/password_manager/core/common/password_manager_features.h" #import "components/password_manager/core/common/password_manager_pref_names.h"
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn b/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn index 3752b12b..65e315f 100644 --- a/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn +++ b/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn
@@ -40,6 +40,8 @@ "//components/version_info:channel", "//ios/chrome/app:tests_hook", "//ios/chrome/app/strings", + "//ios/chrome/browser/favicon", + "//ios/chrome/browser/net:crurl", "//ios/chrome/browser/passwords:sharing_factory", "//ios/chrome/browser/shared/coordinator/alert", "//ios/chrome/browser/shared/coordinator/chrome_coordinator", @@ -53,6 +55,7 @@ "//ios/chrome/browser/ui/authentication:authentication_constants", "//ios/chrome/common:common", "//ios/chrome/common/ui/confirmation_alert", + "//ios/chrome/common/ui/favicon:favicon_constants", "//ui/base", "//ui/gfx", ] @@ -87,6 +90,7 @@ "//components/password_manager/core/browser/sharing", "//components/strings", "//ios/chrome/app/strings", + "//ios/chrome/browser/net:crurl", "//ios/chrome/browser/shared/ui/bottom_sheet", "//ios/chrome/browser/shared/ui/symbols", "//ios/chrome/browser/shared/ui/table_view", @@ -97,6 +101,7 @@ "//ios/chrome/common/ui/colors", "//ios/chrome/common/ui/confirmation_alert", "//ios/chrome/common/ui/elements:popover_label_view_controller", + "//ios/chrome/common/ui/favicon", "//ios/chrome/common/ui/table_view:cells_constants", "//ui/base", ] @@ -144,9 +149,11 @@ "//components/password_manager/core/browser", "//components/password_manager/core/browser/sharing", "//ios/chrome/app/strings", + "//ios/chrome/browser/net:crurl", "//ios/chrome/browser/shared/ui/symbols", "//ios/chrome/browser/shared/ui/table_view:test_support", "//ios/chrome/browser/shared/ui/table_view:utils", + "//ios/chrome/browser/shared/ui/table_view/cells:cells", "//ios/chrome/browser/ui/settings/cells", "//ui/base", ]
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_coordinator.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_coordinator.mm index b7f37c4..9fc60d9f 100644 --- a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_coordinator.mm +++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_coordinator.mm
@@ -5,6 +5,8 @@ #import "ios/chrome/browser/ui/settings/password/password_sharing/password_picker_coordinator.h" #import "components/password_manager/core/browser/ui/credential_ui_entry.h" +#import "ios/chrome/browser/favicon/ios_chrome_favicon_loader_factory.h" +#import "ios/chrome/browser/shared/model/browser/browser.h" #import "ios/chrome/browser/shared/ui/table_view/table_view_navigation_controller.h" #import "ios/chrome/browser/shared/ui/table_view/table_view_utils.h" #import "ios/chrome/browser/ui/settings/password/password_sharing/password_picker_coordinator_delegate.h" @@ -55,8 +57,11 @@ self.viewController = [[PasswordPickerViewController alloc] initWithStyle:ChromeTableViewStyle()]; self.viewController.delegate = self; - self.mediator = - [[PasswordPickerMediator alloc] initWithCredentials:_credentials]; + self.mediator = [[PasswordPickerMediator alloc] + initWithCredentials:_credentials + faviconLoader:IOSChromeFaviconLoaderFactory::GetForBrowserState( + self.browser->GetBrowserState())]; + self.viewController.imageDataSource = self.mediator; self.mediator.consumer = self.viewController; self.navigationController = [[TableViewNavigationController alloc] initWithTable:self.viewController];
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.h b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.h index ab0b803..40b3c4c 100644 --- a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.h +++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.h
@@ -8,20 +8,23 @@ #import <Foundation/Foundation.h> #import "base/apple/foundation_util.h" +#import "ios/chrome/browser/shared/ui/table_view/table_view_favicon_data_source.h" namespace password_manager { struct CredentialUIEntry; } +class FaviconLoader; @protocol PasswordPickerConsumer; // Passes display information about passwords that were part of a details group // from which the sharing flow originated to its consumer. -@interface PasswordPickerMediator : NSObject +@interface PasswordPickerMediator : NSObject <TableViewFaviconDataSource> -- (instancetype)initWithCredentials: - (const std::vector<password_manager::CredentialUIEntry>&)credentials - NS_DESIGNATED_INITIALIZER; +- (instancetype) + initWithCredentials: + (const std::vector<password_manager::CredentialUIEntry>&)credentials + faviconLoader:(FaviconLoader*)faviconLoader NS_DESIGNATED_INITIALIZER; - (instancetype)init NS_UNAVAILABLE;
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.mm index ccc548ac..6d002fb 100644 --- a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.mm +++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.mm
@@ -5,10 +5,19 @@ #import "ios/chrome/browser/ui/settings/password/password_sharing/password_picker_mediator.h" #import "components/password_manager/core/browser/ui/credential_ui_entry.h" +#import "ios/chrome/browser/favicon/favicon_loader.h" +#import "ios/chrome/browser/net/crurl.h" #import "ios/chrome/browser/ui/settings/password/password_sharing/password_picker_consumer.h" +#import "ios/chrome/common/ui/favicon/favicon_constants.h" +#import "url/gurl.h" @interface PasswordPickerMediator () { + // Information about credentials for affiliated group from which this password + // sharing flow originated. std::vector<password_manager::CredentialUIEntry> _credentials; + + // Used to fetch favicon images. + raw_ptr<FaviconLoader> _faviconLoader; } @end @@ -16,10 +25,13 @@ @implementation PasswordPickerMediator - (instancetype)initWithCredentials: - (const std::vector<password_manager::CredentialUIEntry>&)credentials { + (const std::vector<password_manager::CredentialUIEntry>&) + credentials + faviconLoader:(FaviconLoader*)faviconLoader { self = [super init]; if (self) { _credentials = credentials; + _faviconLoader = faviconLoader; } return self; } @@ -33,4 +45,15 @@ [_consumer setCredentials:_credentials]; } +#pragma mark - TableViewFaviconDataSource + +- (void)faviconForPageURL:(CrURL*)URL + completion:(void (^)(FaviconAttributes*))completion { + _faviconLoader->FaviconForPageUrl( + URL.gurl, kDesiredSmallFaviconSizePt, kMinFaviconSizePt, + /*fallback_to_google_server=*/true, ^(FaviconAttributes* attributes) { + completion(attributes); + }); +} + @end
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.h b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.h index 2b62185..7dc56cea 100644 --- a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.h +++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.h
@@ -9,6 +9,7 @@ #import "ios/chrome/browser/ui/settings/password/password_sharing/password_picker_consumer.h" @protocol PasswordPickerViewControllerPresentationDelegate; +@protocol TableViewFaviconDataSource; // Screen that presents a list of password credential groups for passwords that // have more than 1 affiliated group. @@ -19,6 +20,9 @@ @property(nonatomic, weak) id<PasswordPickerViewControllerPresentationDelegate> delegate; +// Data source for favicon images. +@property(nonatomic, weak) id<TableViewFaviconDataSource> imageDataSource; + @end #endif // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_PICKER_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.mm index 2aa9452fc..698424e 100644 --- a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.mm +++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.mm
@@ -7,10 +7,13 @@ #import "base/strings/sys_string_conversions.h" #import "components/password_manager/core/browser/password_ui_utils.h" #import "components/password_manager/core/browser/ui/credential_ui_entry.h" +#import "ios/chrome/browser/net/crurl.h" #import "ios/chrome/browser/shared/ui/symbols/symbols.h" -#import "ios/chrome/browser/ui/settings/cells/settings_image_detail_text_item.h" +#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_url_item.h" +#import "ios/chrome/browser/shared/ui/table_view/table_view_favicon_data_source.h" #import "ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller_presentation_delegate.h" #import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_constants.h" +#import "ios/chrome/common/ui/favicon/favicon_view.h" #import "ios/chrome/grit/ios_strings.h" #import "ui/base/l10n/l10n_util_mac.h" @@ -112,12 +115,21 @@ cell.userInteractionEnabled = YES; cell.textLabel.numberOfLines = 1; cell.detailTextLabel.numberOfLines = 1; - cell.accessibilityIdentifier = - [self accessibilityIdentifierForIndexPath:indexPath]; cell.accessoryView = [[UIImageView alloc] initWithImage:cell.isSelected ? [self checkmarkCircleIcon] : [self circleIcon]]; + TableViewItem* item = [self.tableViewModel itemAtIndexPath:indexPath]; + TableViewURLItem* URLItem = + base::apple::ObjCCastStrict<TableViewURLItem>(item); + TableViewURLCell* URLCell = + base::apple::ObjCCastStrict<TableViewURLCell>(cell); + [self.imageDataSource + faviconForPageURL:URLItem.URL + completion:^(FaviconAttributes* attributes) { + [URLCell.faviconView configureWithAttributes:attributes]; + }]; + return cell; } @@ -133,16 +145,12 @@ #pragma mark - Items -- (SettingsImageDetailTextItem*)credentialItem: +- (TableViewURLItem*)credentialItem: (const password_manager::CredentialUIEntry&)credential { - SettingsImageDetailTextItem* item = - [[SettingsImageDetailTextItem alloc] initWithType:ItemTypeCredential]; - item.text = base::SysUTF16ToNSString(credential.username); - // TODO(crbug.com/1463882): Double check which origin should be displayed. For - // now first is returned. - item.detailText = base::SysUTF8ToNSString( - password_manager::GetShownOrigin(credential.facets[0])); - // TODO(crbug.com/1463882): Add favicon. + TableViewURLItem* item = + [[TableViewURLItem alloc] initWithType:ItemTypeCredential]; + item.title = base::SysUTF16ToNSString(credential.username); + item.URL = [[CrURL alloc] initWithGURL:GURL(credential.GetURL())]; return item; } @@ -176,12 +184,4 @@ self.tableView.indexPathsForSelectedRows.count > 0; } -- (NSString*)accessibilityIdentifierForIndexPath:(NSIndexPath*)indexPath { - password_manager::CredentialUIEntry credential = _credentials[indexPath.row]; - return [NSString - stringWithFormat:@"%@, %@", base::SysUTF16ToNSString(credential.username), - base::SysUTF8ToNSString(password_manager::GetShownOrigin( - credential.facets[0]))]; -} - @end
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller_unittest.mm index 155beeb..29d512c 100644 --- a/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller_unittest.mm
@@ -4,11 +4,13 @@ #import "ios/chrome/browser/ui/settings/password/password_sharing/password_picker_view_controller.h" +#import "base/strings/sys_string_conversions.h" #import "components/password_manager/core/browser/password_form.h" #import "components/password_manager/core/browser/ui/credential_ui_entry.h" +#import "ios/chrome/browser/net/crurl.h" +#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_url_item.h" #import "ios/chrome/browser/shared/ui/table_view/chrome_table_view_controller_test.h" #import "ios/chrome/browser/shared/ui/table_view/table_view_utils.h" -#import "ios/chrome/browser/ui/settings/cells/settings_image_detail_text_item.h" #import "testing/gtest/include/gtest/gtest.h" #import "testing/gtest_mac.h" @@ -50,13 +52,13 @@ EXPECT_EQ(NumberOfSections(), 1); EXPECT_EQ(NumberOfItemsInSection(0), 5); for (int i = 0; i < 5; i++) { - SettingsImageDetailTextItem* item = - static_cast<SettingsImageDetailTextItem*>( - GetTableViewItem(/*section=*/0, i)); + TableViewURLItem* item = + static_cast<TableViewURLItem*>(GetTableViewItem(/*section=*/0, i)); EXPECT_NSEQ( ([NSString stringWithFormat:@"%@%d%@", @"user", i, @"@gmail.com"]), - item.text); - EXPECT_NSEQ(([NSString stringWithFormat:@"%@%d%@", @"example", i, @".com"]), - item.detailText); + item.title); + EXPECT_NSEQ( + ([NSString stringWithFormat:@"%@%d%@", @"www.example", i, @".com"]), + base::SysUTF8ToNSString(item.URL.gurl.host())); } }
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm index 445158e..292816d 100644 --- a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm +++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm
@@ -354,8 +354,7 @@ // Select first row and click "Next". [[EarlGrey - selectElementWithMatcher:grey_allOf(grey_accessibilityID( - @"username1, example.com"), + selectElementWithMatcher:grey_allOf(grey_accessibilityID(@"username1"), grey_sufficientlyVisible(), nil)] performAction:grey_tap()]; [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
diff --git a/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm b/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm index b9e0cd9..16a0b02 100644 --- a/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm +++ b/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm
@@ -100,7 +100,6 @@ _prefService = browserState->GetPrefs(); [self setTitle:l10n_util::GetNSString(IDS_IOS_SEARCH_ENGINE_SETTING_TITLE)]; self.shouldDisableDoneButtonOnEdit = YES; - [self updateUIForEditState]; } return self; } @@ -179,7 +178,10 @@ self.tableView.separatorInset = UIEdgeInsetsMake(0, kTableViewSeparatorLeadingInset, 0, 0); + [self updateUIForEditState]; [self loadModel]; + // The toolbar edit button's state depends on the `loadModel`. + [self updatedToolbarForEditState]; } - (void)viewWillAppear:(BOOL)animated {
diff --git a/ios/chrome/browser/ui/settings/settings_root_table_view_controller.mm b/ios/chrome/browser/ui/settings/settings_root_table_view_controller.mm index 17ef7e58..a6d96a6 100644 --- a/ios/chrome/browser/ui/settings/settings_root_table_view_controller.mm +++ b/ios/chrome/browser/ui/settings/settings_root_table_view_controller.mm
@@ -86,6 +86,12 @@ self.tableView.editing ? [self createEditModeCancelButton] : self.backButtonItem; } + + // The following two lines cause the table view to refresh the cell heights + // with animation without reloading the cells. This is needed for + // cells that can be significantly taller in edit mode. + [self.tableView beginUpdates]; + [self.tableView endUpdates]; } - (void)updatedToolbarForEditState {
diff --git a/ios/chrome/browser/ui/settings/utils/BUILD.gn b/ios/chrome/browser/ui/settings/utils/BUILD.gn index dc46bb81..2fac16b 100644 --- a/ios/chrome/browser/ui/settings/utils/BUILD.gn +++ b/ios/chrome/browser/ui/settings/utils/BUILD.gn
@@ -11,8 +11,6 @@ "password_auto_fill_status_observer.h", "password_utils.h", "password_utils.mm", - "settings_utils.h", - "settings_utils.mm", ] deps = [ "//base",
diff --git a/ios/chrome/browser/ui/settings/utils/settings_utils.h b/ios/chrome/browser/ui/settings/utils/settings_utils.h deleted file mode 100644 index f3c8a00..0000000 --- a/ios/chrome/browser/ui/settings/utils/settings_utils.h +++ /dev/null
@@ -1,20 +0,0 @@ -// Copyright 2013 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_UTILS_SETTINGS_UTILS_H_ -#define IOS_CHROME_BROWSER_UI_SETTINGS_UTILS_SETTINGS_UTILS_H_ - -#import <UIKit/UIKit.h> - -@protocol ApplicationCommands; -class GURL; - -typedef void (^ProceduralBlockWithURL)(const GURL&); - -// Returns a ProceduralBlockWithURL that uses the dispatcher and opens url -// (parameter to the block) in a new tab. -ProceduralBlockWithURL BlockToOpenURL(UIResponder* responder, - id<ApplicationCommands> handler); - -#endif // IOS_CHROME_BROWSER_UI_SETTINGS_UTILS_SETTINGS_UTILS_H_
diff --git a/ios/chrome/browser/ui/settings/utils/settings_utils.mm b/ios/chrome/browser/ui/settings/utils/settings_utils.mm deleted file mode 100644 index 1e99400..0000000 --- a/ios/chrome/browser/ui/settings/utils/settings_utils.mm +++ /dev/null
@@ -1,23 +0,0 @@ -// Copyright 2013 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ios/chrome/browser/ui/settings/utils/settings_utils.h" - -#import "ios/chrome/browser/shared/public/commands/application_commands.h" -#import "ios/chrome/browser/shared/public/commands/open_new_tab_command.h" - -ProceduralBlockWithURL BlockToOpenURL(UIResponder* responder, - id<ApplicationCommands> handler) { - __weak UIResponder* weakResponder = responder; - __weak id<ApplicationCommands> weakHandler = handler; - auto blockToOpenURL = ^(const GURL& url) { - UIResponder* strongResponder = weakResponder; - if (!strongResponder) - return; - OpenNewTabCommand* command = - [OpenNewTabCommand commandWithURLFromChrome:url]; - [weakHandler closeSettingsUIAndOpenURL:command]; - }; - return blockToOpenURL; -}
diff --git a/ios/chrome/browser/ui/side_swipe/BUILD.gn b/ios/chrome/browser/ui/side_swipe/BUILD.gn index 4c6f11c3..6a2adea 100644 --- a/ios/chrome/browser/ui/side_swipe/BUILD.gn +++ b/ios/chrome/browser/ui/side_swipe/BUILD.gn
@@ -79,6 +79,8 @@ sources = [ "side_swipe_egtest.mm" ] deps = [ "//base", + "//ios/chrome/browser/shared/model/prefs:pref_names", + "//ios/chrome/browser/shared/public/features", "//ios/chrome/test/earl_grey:eg_test_support+eg2", "//ios/testing/earl_grey:eg_test_support+eg2", "//ios/web/public/test/http_server",
diff --git a/ios/chrome/browser/ui/side_swipe/side_swipe_egtest.mm b/ios/chrome/browser/ui/side_swipe/side_swipe_egtest.mm index 07aea372..b4d3662 100644 --- a/ios/chrome/browser/ui/side_swipe/side_swipe_egtest.mm +++ b/ios/chrome/browser/ui/side_swipe/side_swipe_egtest.mm
@@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#import "ios/chrome/browser/shared/model/prefs/pref_names.h" +#import "ios/chrome/browser/shared/public/features/features.h" #import "ios/chrome/test/earl_grey/chrome_earl_grey.h" #import "ios/chrome/test/earl_grey/chrome_earl_grey_ui.h" #import "ios/chrome/test/earl_grey/chrome_matchers.h" @@ -16,6 +18,11 @@ @implementation SideSwipeTestCase +- (void)setUp { + [super setUp]; + [ChromeEarlGrey setBoolValue:NO forUserPref:prefs::kBottomOmnibox]; +} + #pragma mark - Tests // Tests that swiping horizontally on the bottom toolbar is changing tab. @@ -63,3 +70,28 @@ } @end + +#pragma mark - Bottom omnibox enabled tests + +// SideSwipeTestCase with a bottom default omnibox position. +@interface SideSwipeBottomOmniboxTestCase : SideSwipeTestCase +@end + +@implementation SideSwipeBottomOmniboxTestCase + +- (AppLaunchConfiguration)appConfigurationForTestCase { + AppLaunchConfiguration config; + config.features_enabled.push_back(kBottomOmniboxSteadyState); + return config; +} + +- (void)setUp { + [super setUp]; + [ChromeEarlGrey setBoolValue:YES forUserPref:prefs::kBottomOmnibox]; +} + +// This is currently needed to prevent this test case from being ignored. +- (void)testEmpty { +} + +@end
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_af.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_af.xtb index 0861004f..0e7a9570 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_af.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_af.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="af"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_am.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_am.xtb index 6c985cb8..887b07a 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_am.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_am.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="am"> -</translationbundle> +<translation id="6965382102122355670">እሺ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ar.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ar.xtb index e8b5562..018e4f1 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ar.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ar.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ar"> -</translationbundle> +<translation id="6965382102122355670">حسنًا</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_as.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_as.xtb index 3ad7206d..37208d3 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_as.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_as.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="as"> -</translationbundle> +<translation id="6965382102122355670">ঠিক আছে</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_az.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_az.xtb index 6d09f4cd..1f5c1946 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_az.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_az.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="az"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_be.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_be.xtb index 09e9a3ad..eafab28 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_be.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_be.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="be"> -</translationbundle> +<translation id="6965382102122355670">ОК</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bg.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bg.xtb index ebab473..78681f5c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bg.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bg.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="bg"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bn.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bn.xtb index a66cc1fc..6ee77530 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bn.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bn.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="bn"> -</translationbundle> +<translation id="6965382102122355670">ঠিক আছে</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bs.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bs.xtb index 7b6fabc..c2fc664 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bs.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_bs.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="bs"> -</translationbundle> +<translation id="6965382102122355670">Uredu</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ca.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ca.xtb index 1438d89..56ae5959 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ca.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ca.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ca"> -</translationbundle> +<translation id="6965382102122355670">D'acord</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_cs.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_cs.xtb index 2d95130..312d59f 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_cs.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_cs.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="cs"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_cy.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_cy.xtb index eae5ddc..fa13d4e3 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_cy.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_cy.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="cy"> -</translationbundle> +<translation id="6965382102122355670">Iawn</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_da.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_da.xtb index 751fa4a8..425ea63 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_da.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_da.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="da"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_de.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_de.xtb index 91de7f51..6d7ad080 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_de.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_de.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="de"> -</translationbundle> +<translation id="6965382102122355670">Ok</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_el.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_el.xtb index 6e5e7d8..764952c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_el.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_el.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="el"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_en-GB.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_en-GB.xtb index 0fb2133..4d193d3 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_en-GB.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_en-GB.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="en-GB"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_es-419.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_es-419.xtb index 2fe4770..dc97a028 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_es-419.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_es-419.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="es-419"> -</translationbundle> +<translation id="6965382102122355670">Aceptar</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_es.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_es.xtb index 64022ec..40d94db 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_es.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_es.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="es"> -</translationbundle> +<translation id="6965382102122355670">Aceptar</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_et.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_et.xtb index 5244dfd..31e9c66e 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_et.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_et.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="et"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_eu.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_eu.xtb index 981c85fb..a2ca7d8 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_eu.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_eu.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="eu"> -</translationbundle> +<translation id="6965382102122355670">Ados</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fa.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fa.xtb index 18626f8..24108380 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fa.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fa.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fa"> -</translationbundle> +<translation id="6965382102122355670">تأیید</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fi.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fi.xtb index 4691cd5..798bd12 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fi.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fi.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fi"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fil.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fil.xtb index 443630e7..95c2357c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fil.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fil.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fil"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fr-CA.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fr-CA.xtb index 6330f524..e207d088 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fr-CA.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fr-CA.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fr-CA"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fr.xtb index 63026a3..d8c1996 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_fr.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fr"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_gl.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_gl.xtb index ad1197a..569263941 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_gl.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_gl.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="gl"> -</translationbundle> +<translation id="6965382102122355670">Aceptar</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_gu.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_gu.xtb index 7d8a4df1..c84be54 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_gu.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_gu.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="gu"> -</translationbundle> +<translation id="6965382102122355670">બરાબર, સમજાઇ ગયું</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hi.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hi.xtb index a6ddd5d..ee4ce222 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hi.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hi.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hi"> -</translationbundle> +<translation id="6965382102122355670">ठीक है</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hr.xtb index 26f99d0..b6a27ce6b 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hr.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hr"> -</translationbundle> +<translation id="6965382102122355670">U redu</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hu.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hu.xtb index 7ef9a5e0..dfea096 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hu.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hu.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hu"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hy.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hy.xtb index 2ae4ee1..356de12 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hy.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_hy.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hy"> -</translationbundle> +<translation id="6965382102122355670">Եղավ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_id.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_id.xtb index aa34783..cf8923671 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_id.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_id.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="id"> -</translationbundle> +<translation id="6965382102122355670">Oke</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_is.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_is.xtb index b93d5071..81cc417 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_is.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_is.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="is"> -</translationbundle> +<translation id="6965382102122355670">Í lagi</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_it.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_it.xtb index a6ac8d46..9a329f1 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_it.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_it.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="it"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_iw.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_iw.xtb index 86b5533..4eecb45 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_iw.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_iw.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="iw"> -</translationbundle> +<translation id="6965382102122355670">אישור</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ja.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ja.xtb index 23139e6..b3283eb 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ja.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ja.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ja"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ka.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ka.xtb index 57c55dd..0a5f7afd 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ka.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ka.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ka"> -</translationbundle> +<translation id="6965382102122355670">კარგი</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_kk.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_kk.xtb index 84420c1..920cce06 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_kk.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_kk.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="kk"> -</translationbundle> +<translation id="6965382102122355670">Жарайды</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_km.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_km.xtb index fe55255..483615a 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_km.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_km.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="km"> -</translationbundle> +<translation id="6965382102122355670">យល់ព្រម</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_kn.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_kn.xtb index cc3643a2..18ae3a96 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_kn.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_kn.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="kn"> -</translationbundle> +<translation id="6965382102122355670">ಸರಿ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ko.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ko.xtb index e0fc370..af189b4e 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ko.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ko.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ko"> -</translationbundle> +<translation id="6965382102122355670">확인</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ky.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ky.xtb index 71a0883..44e1449 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ky.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ky.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ky"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lo.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lo.xtb index eb6216c..ea97c40 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lo.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lo.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lo"> -</translationbundle> +<translation id="6965382102122355670">ຕົກລົງ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lt.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lt.xtb index 5804ae2a..047cf76 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lt.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lt.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lt"> -</translationbundle> +<translation id="6965382102122355670">Gerai</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lv.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lv.xtb index a0a1c477..e1d1a62 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lv.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_lv.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lv"> -</translationbundle> +<translation id="6965382102122355670">Labi</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mk.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mk.xtb index 2949071..c0a1401 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mk.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mk.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="mk"> -</translationbundle> +<translation id="6965382102122355670">Во ред</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ml.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ml.xtb index f7db315..d3cf0ad7 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ml.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ml.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ml"> -</translationbundle> +<translation id="6965382102122355670">ശരി</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mn.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mn.xtb index a2218675..a307561 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mn.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mn.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="mn"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mr.xtb index 098d29c..51160dc 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_mr.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="mr"> -</translationbundle> +<translation id="6965382102122355670">ठीक आहे</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ms.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ms.xtb index 1fb470a..06be3f38 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ms.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ms.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ms"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_my.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_my.xtb index 674ca27..dfe8341 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_my.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_my.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="my"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ne.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ne.xtb index 30c7e065..20f2685 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ne.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ne.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ne"> -</translationbundle> +<translation id="6965382102122355670">ठिक छ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_nl.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_nl.xtb index e782410..71ecd82 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_nl.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_nl.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="nl"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_no.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_no.xtb index 913638b..40ccbb3 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_no.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_no.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="no"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_or.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_or.xtb index fe2ddbc9..bd7d56e 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_or.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_or.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="or"> -</translationbundle> +<translation id="6965382102122355670">ଓକେ ବଟନ୍</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pa.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pa.xtb index 5c7ac50..8ec87cc 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pa.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pa.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pa"> -</translationbundle> +<translation id="6965382102122355670">ਠੀਕ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pl.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pl.xtb index 4519e3d..ec94dea 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pl.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pl.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pl"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pt-BR.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pt-BR.xtb index e95eb56b..c15d6ba 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pt-BR.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pt-BR.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pt-BR"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pt-PT.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pt-PT.xtb index 1dcf557a..11377ec 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pt-PT.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_pt-PT.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pt-PT"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ro.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ro.xtb index 9e43493..ce6f343 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ro.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ro.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ro"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ru.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ru.xtb index c4a621b..63db5a7 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ru.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ru.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ru"> -</translationbundle> +<translation id="6965382102122355670">ОК</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_si.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_si.xtb index 712d890..9dcf6a4c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_si.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_si.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="si"> -</translationbundle> +<translation id="6965382102122355670">හරි</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sk.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sk.xtb index 00750d31..a0c90d1f 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sk.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sk.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sk"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sl.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sl.xtb index 489b7e46..b3d8240f 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sl.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sl.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sl"> -</translationbundle> +<translation id="6965382102122355670">V redu</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sq.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sq.xtb index 3fecfc5..d4b386a 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sq.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sq.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sq"> -</translationbundle> +<translation id="6965382102122355670">Në rregull</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sr-Latn.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sr-Latn.xtb index 14178c3..483bce46 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sr-Latn.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sr-Latn.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sr-Latn"> -</translationbundle> +<translation id="6965382102122355670">Potvrdi</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sr.xtb index 38f6f35..7e1d2ba 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sr.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sr"> -</translationbundle> +<translation id="6965382102122355670">Потврди</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sv.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sv.xtb index ddea3dc..bd67b55 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sv.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sv.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sv"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sw.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sw.xtb index b7750886..80be9b4 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sw.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_sw.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sw"> -</translationbundle> +<translation id="6965382102122355670">Sawa</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ta.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ta.xtb index ef90687..4a8bb6bc 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ta.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ta.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ta"> -</translationbundle> +<translation id="6965382102122355670">சரி</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_te.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_te.xtb index 48c714b..be881e7 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_te.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_te.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="te"> -</translationbundle> +<translation id="6965382102122355670">సరే</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_th.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_th.xtb index fae31966..068bcd1 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_th.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_th.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="th"> -</translationbundle> +<translation id="6965382102122355670">ตกลง</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_tr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_tr.xtb index 9a29951..13d87a3b 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_tr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_tr.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="tr"> -</translationbundle> +<translation id="6965382102122355670">Tamam</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_uk.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_uk.xtb index f0db52c..03294ddd 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_uk.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_uk.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="uk"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ur.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ur.xtb index ffd34cf8..bc487da5 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ur.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_ur.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ur"> -</translationbundle> +<translation id="6965382102122355670">ٹھیک ہے</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_uz.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_uz.xtb index 1d58ed4c..38cab70 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_uz.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_uz.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="uz"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_vi.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_vi.xtb index b2957da..87f544d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_vi.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_vi.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="vi"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-CN.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-CN.xtb index 26e8b40..22eddd2 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-CN.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-CN.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zh-CN"> -</translationbundle> +<translation id="6965382102122355670">确定</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-HK.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-HK.xtb index 3ecd9e3..3a2cb3d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-HK.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-HK.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zh-HK"> -</translationbundle> +<translation id="6965382102122355670">確定</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-TW.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-TW.xtb index 935ef485..f1a0d1a 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-TW.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zh-TW.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zh-TW"> -</translationbundle> +<translation id="6965382102122355670">確定</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zu.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zu.xtb index f9c1cd3..31a9c67 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zu.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_chromium_strings_zu.xtb
@@ -1,4 +1,5 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zu"> -</translationbundle> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_af.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_af.xtb index 0861004f..4c4c705d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_af.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_af.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="af"> -</translationbundle> +<translation id="4655616150233109325">Maak in Chrome oop</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_am.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_am.xtb index 6c985cb8..95fa807 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_am.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_am.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="am"> -</translationbundle> +<translation id="4655616150233109325">በChrome ውስጥ ክፈት</translation> +<translation id="6965382102122355670">እሺ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ar.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ar.xtb index e8b5562..ddca4b8730 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ar.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ar.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ar"> -</translationbundle> +<translation id="4655616150233109325">فتح في Chrome</translation> +<translation id="6965382102122355670">حسنًا</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_as.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_as.xtb index 3ad7206d..ed2dba2 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_as.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_as.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="as"> -</translationbundle> +<translation id="4655616150233109325">Chromeত খোলক</translation> +<translation id="6965382102122355670">ঠিক আছে</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_az.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_az.xtb index 6d09f4cd..038548e 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_az.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_az.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="az"> -</translationbundle> +<translation id="4655616150233109325">Chrome'da açın</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_be.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_be.xtb index 09e9a3ad..34f100d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_be.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_be.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="be"> -</translationbundle> +<translation id="4655616150233109325">Адкрыць у Chrome</translation> +<translation id="6965382102122355670">ОК</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bg.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bg.xtb index ebab473..dc436e34 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bg.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bg.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="bg"> -</translationbundle> +<translation id="4655616150233109325">Отваряне в Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bn.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bn.xtb index a66cc1fc..4ecc38f 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bn.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bn.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="bn"> -</translationbundle> +<translation id="4655616150233109325">Chrome-এ খুলুন</translation> +<translation id="6965382102122355670">ঠিক আছে</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bs.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bs.xtb index 7b6fabc..05d1df0f 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bs.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_bs.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="bs"> -</translationbundle> +<translation id="4655616150233109325">Otvori u Chromeu</translation> +<translation id="6965382102122355670">Uredu</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ca.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ca.xtb index 1438d89..3f24849e 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ca.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ca.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ca"> -</translationbundle> +<translation id="4655616150233109325">Obre a Chrome</translation> +<translation id="6965382102122355670">D'acord</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_cs.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_cs.xtb index 2d95130..ffe37dc7 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_cs.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_cs.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="cs"> -</translationbundle> +<translation id="4655616150233109325">Otevřít v Chromu</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_cy.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_cy.xtb index eae5ddc..e8ecc28 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_cy.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_cy.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="cy"> -</translationbundle> +<translation id="4655616150233109325">Agor yn Chrome</translation> +<translation id="6965382102122355670">Iawn</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_da.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_da.xtb index 751fa4a8..1851a7d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_da.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_da.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="da"> -</translationbundle> +<translation id="4655616150233109325">Åbn i Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_de.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_de.xtb index 91de7f51..15fa086 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_de.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_de.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="de"> -</translationbundle> +<translation id="4655616150233109325">In Chrome öffnen</translation> +<translation id="6965382102122355670">Ok</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_el.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_el.xtb index 6e5e7d8..fe3eda96 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_el.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_el.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="el"> -</translationbundle> +<translation id="4655616150233109325">Άνοιγμα στο Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_en-GB.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_en-GB.xtb index 0fb2133..aae73b31 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_en-GB.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_en-GB.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="en-GB"> -</translationbundle> +<translation id="4655616150233109325">Open in Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_es-419.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_es-419.xtb index 2fe4770..8e4dae2 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_es-419.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_es-419.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="es-419"> -</translationbundle> +<translation id="4655616150233109325">Abrir en Chrome</translation> +<translation id="6965382102122355670">Aceptar</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_es.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_es.xtb index 64022ec..679ed8d5 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_es.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_es.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="es"> -</translationbundle> +<translation id="4655616150233109325">Abrir en Chrome</translation> +<translation id="6965382102122355670">Aceptar</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_et.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_et.xtb index 5244dfd..c2c8c0a4 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_et.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_et.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="et"> -</translationbundle> +<translation id="4655616150233109325">Ava Chrome’is</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_eu.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_eu.xtb index 981c85fb..1791ffe6 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_eu.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_eu.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="eu"> -</translationbundle> +<translation id="4655616150233109325">Ireki Chrome-n</translation> +<translation id="6965382102122355670">Ados</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fa.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fa.xtb index 18626f8..51706fd 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fa.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fa.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fa"> -</translationbundle> +<translation id="4655616150233109325">باز کردن در Chrome</translation> +<translation id="6965382102122355670">تأیید</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fi.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fi.xtb index 4691cd5..2841b851 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fi.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fi.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fi"> -</translationbundle> +<translation id="4655616150233109325">Avaa Chromessa</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fil.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fil.xtb index 443630e7..b05ff10 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fil.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fil.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fil"> -</translationbundle> +<translation id="4655616150233109325">Buksan sa Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fr-CA.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fr-CA.xtb index 6330f524..8e0ac469 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fr-CA.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fr-CA.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fr-CA"> -</translationbundle> +<translation id="4655616150233109325">Ouvrir dans Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fr.xtb index 63026a3..1ec5e46 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_fr.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fr"> -</translationbundle> +<translation id="4655616150233109325">Ouvrir dans Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_gl.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_gl.xtb index ad1197a..5117c3e 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_gl.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_gl.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="gl"> -</translationbundle> +<translation id="4655616150233109325">Abrir en Chrome</translation> +<translation id="6965382102122355670">Aceptar</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_gu.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_gu.xtb index 7d8a4df1..f2ab29c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_gu.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_gu.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="gu"> -</translationbundle> +<translation id="4655616150233109325">Chromeમાં ખોલો</translation> +<translation id="6965382102122355670">બરાબર, સમજાઇ ગયું</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hi.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hi.xtb index a6ddd5d..0c02d792 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hi.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hi.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hi"> -</translationbundle> +<translation id="4655616150233109325">Chrome में खोलें</translation> +<translation id="6965382102122355670">ठीक है</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hr.xtb index 26f99d0..af9ff65 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hr.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hr"> -</translationbundle> +<translation id="4655616150233109325">Otvori u Chromeu</translation> +<translation id="6965382102122355670">U redu</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hu.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hu.xtb index 7ef9a5e0..dd2d8ea 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hu.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hu.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hu"> -</translationbundle> +<translation id="4655616150233109325">Megnyitás Chrome-ban</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hy.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hy.xtb index 2ae4ee1..464b044c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hy.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_hy.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hy"> -</translationbundle> +<translation id="4655616150233109325">Բացել Chrome-ով</translation> +<translation id="6965382102122355670">Եղավ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_id.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_id.xtb index aa34783..3b25600 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_id.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_id.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="id"> -</translationbundle> +<translation id="4655616150233109325">Buka di Chrome</translation> +<translation id="6965382102122355670">Oke</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_is.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_is.xtb index b93d5071..c36bfc3f 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_is.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_is.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="is"> -</translationbundle> +<translation id="4655616150233109325">Opna í Chrome</translation> +<translation id="6965382102122355670">Í lagi</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_it.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_it.xtb index a6ac8d46..eafb8a0 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_it.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_it.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="it"> -</translationbundle> +<translation id="4655616150233109325">Apri in Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_iw.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_iw.xtb index 86b5533..b1a2d64b 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_iw.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_iw.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="iw"> -</translationbundle> +<translation id="4655616150233109325">פתיחה ב-Chrome</translation> +<translation id="6965382102122355670">אישור</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ja.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ja.xtb index 23139e6..3f413e41 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ja.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ja.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ja"> -</translationbundle> +<translation id="4655616150233109325">Chrome で開く</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ka.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ka.xtb index 57c55dd..db9aabe1 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ka.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ka.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ka"> -</translationbundle> +<translation id="4655616150233109325">Chrome-ში გახსნა</translation> +<translation id="6965382102122355670">კარგი</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_kk.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_kk.xtb index 84420c1..9467d91 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_kk.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_kk.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="kk"> -</translationbundle> +<translation id="4655616150233109325">Chrome браузерінде ашу</translation> +<translation id="6965382102122355670">Жарайды</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_km.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_km.xtb index fe55255..8ae025b 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_km.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_km.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="km"> -</translationbundle> +<translation id="4655616150233109325">បើកនៅក្នុង Chrome</translation> +<translation id="6965382102122355670">យល់ព្រម</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_kn.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_kn.xtb index cc3643a2..efb36319 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_kn.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_kn.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="kn"> -</translationbundle> +<translation id="4655616150233109325">Chrome ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation> +<translation id="6965382102122355670">ಸರಿ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ko.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ko.xtb index e0fc370..491eaa8 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ko.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ko.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ko"> -</translationbundle> +<translation id="4655616150233109325">Chrome에서 열기</translation> +<translation id="6965382102122355670">확인</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ky.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ky.xtb index 71a0883..6a7a89d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ky.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ky.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ky"> -</translationbundle> +<translation id="4655616150233109325">Chrome'до ачуу</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lo.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lo.xtb index eb6216c..a3f9595a 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lo.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lo.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lo"> -</translationbundle> +<translation id="4655616150233109325">ເປີດໃນ Chrome</translation> +<translation id="6965382102122355670">ຕົກລົງ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lt.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lt.xtb index 5804ae2a..11947d2 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lt.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lt.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lt"> -</translationbundle> +<translation id="4655616150233109325">Atidaryti naudojant „Chrome“</translation> +<translation id="6965382102122355670">Gerai</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lv.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lv.xtb index a0a1c477..c9e26e81 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lv.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_lv.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lv"> -</translationbundle> +<translation id="4655616150233109325">Atvērt pārlūkā Chrome</translation> +<translation id="6965382102122355670">Labi</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mk.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mk.xtb index 2949071..27ce681 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mk.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mk.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="mk"> -</translationbundle> +<translation id="4655616150233109325">Отвори во Chrome</translation> +<translation id="6965382102122355670">Во ред</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ml.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ml.xtb index f7db315..a4a1630 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ml.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ml.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ml"> -</translationbundle> +<translation id="4655616150233109325">Chrome-ൽ തുറക്കുക</translation> +<translation id="6965382102122355670">ശരി</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mn.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mn.xtb index a2218675..51c7b935 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mn.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mn.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="mn"> -</translationbundle> +<translation id="4655616150233109325">Chrome-д нээх</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mr.xtb index 098d29c..2fdc5eec 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_mr.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="mr"> -</translationbundle> +<translation id="4655616150233109325">Chrome मध्ये उघडा</translation> +<translation id="6965382102122355670">ठीक आहे</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ms.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ms.xtb index 1fb470a..b6d612828 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ms.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ms.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ms"> -</translationbundle> +<translation id="4655616150233109325">Buka dalam Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_my.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_my.xtb index 674ca27..a3e40101 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_my.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_my.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="my"> -</translationbundle> +<translation id="4655616150233109325">Chrome တွင် ဖွင့်ရန်</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ne.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ne.xtb index 30c7e065..5084cf3 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ne.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ne.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ne"> -</translationbundle> +<translation id="4655616150233109325">Chrome मा खोल्नुहोस्</translation> +<translation id="6965382102122355670">ठिक छ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_nl.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_nl.xtb index e782410..3cbda0d8 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_nl.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_nl.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="nl"> -</translationbundle> +<translation id="4655616150233109325">Openen in Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_no.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_no.xtb index 913638b..7fd1565 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_no.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_no.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="no"> -</translationbundle> +<translation id="4655616150233109325">Åpne i Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_or.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_or.xtb index fe2ddbc9..98fe427c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_or.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_or.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="or"> -</translationbundle> +<translation id="4655616150233109325">Chromeରେ ଖୋଲନ୍ତୁ</translation> +<translation id="6965382102122355670">ଓକେ ବଟନ୍</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pa.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pa.xtb index 5c7ac50..d795a2b 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pa.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pa.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pa"> -</translationbundle> +<translation id="4655616150233109325">Chrome ਵਿੱਚ ਖੋਲ੍ਹੋ</translation> +<translation id="6965382102122355670">ਠੀਕ</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pl.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pl.xtb index 4519e3d..c7140b4 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pl.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pl.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pl"> -</translationbundle> +<translation id="4655616150233109325">Otwórz w Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pt-BR.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pt-BR.xtb index e95eb56b..5aa057c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pt-BR.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pt-BR.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pt-BR"> -</translationbundle> +<translation id="4655616150233109325">Abrir no Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pt-PT.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pt-PT.xtb index 1dcf557a..1aacac8c 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pt-PT.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_pt-PT.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pt-PT"> -</translationbundle> +<translation id="4655616150233109325">Abrir no Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ro.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ro.xtb index 9e43493..f1bfa9ac 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ro.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ro.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ro"> -</translationbundle> +<translation id="4655616150233109325">Deschide în Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ru.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ru.xtb index c4a621b..b561fb4 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ru.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ru.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ru"> -</translationbundle> +<translation id="4655616150233109325">Открыть в Chrome</translation> +<translation id="6965382102122355670">ОК</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_si.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_si.xtb index 712d890..6443a9d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_si.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_si.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="si"> -</translationbundle> +<translation id="4655616150233109325">Chrome තුළ විවෘත කරන්න</translation> +<translation id="6965382102122355670">හරි</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sk.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sk.xtb index 00750d31..941cdb9 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sk.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sk.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sk"> -</translationbundle> +<translation id="4655616150233109325">Otvoriť v Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sl.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sl.xtb index 489b7e46..0782dd89 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sl.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sl.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sl"> -</translationbundle> +<translation id="4655616150233109325">Odpri v Chromu</translation> +<translation id="6965382102122355670">V redu</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sq.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sq.xtb index 3fecfc5..b20eb2d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sq.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sq.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sq"> -</translationbundle> +<translation id="4655616150233109325">Hape në Chrome</translation> +<translation id="6965382102122355670">Në rregull</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sr-Latn.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sr-Latn.xtb index 14178c3..0e76413 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sr-Latn.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sr-Latn.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sr-Latn"> -</translationbundle> +<translation id="4655616150233109325">Otvori u Chrome-u</translation> +<translation id="6965382102122355670">Potvrdi</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sr.xtb index 38f6f35..6c7b750 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sr.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sr"> -</translationbundle> +<translation id="4655616150233109325">Отвори у Chrome-у</translation> +<translation id="6965382102122355670">Потврди</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sv.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sv.xtb index ddea3dc..cca6611 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sv.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sv.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sv"> -</translationbundle> +<translation id="4655616150233109325">Öppna i Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sw.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sw.xtb index b7750886..5726155 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sw.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_sw.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sw"> -</translationbundle> +<translation id="4655616150233109325">Fungua katika Chrome</translation> +<translation id="6965382102122355670">Sawa</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ta.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ta.xtb index ef90687..16fcfe47 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ta.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ta.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ta"> -</translationbundle> +<translation id="4655616150233109325">Chromeமில் திற</translation> +<translation id="6965382102122355670">சரி</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_te.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_te.xtb index 48c714b..389501f 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_te.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_te.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="te"> -</translationbundle> +<translation id="4655616150233109325">Chromeలో తెరువు</translation> +<translation id="6965382102122355670">సరే</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_th.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_th.xtb index fae31966..cb3dc36 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_th.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_th.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="th"> -</translationbundle> +<translation id="4655616150233109325">เปิดใน Chrome</translation> +<translation id="6965382102122355670">ตกลง</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_tr.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_tr.xtb index 9a29951..e671683b 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_tr.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_tr.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="tr"> -</translationbundle> +<translation id="4655616150233109325">Chrome'da Aç</translation> +<translation id="6965382102122355670">Tamam</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_uk.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_uk.xtb index f0db52c..244f887 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_uk.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_uk.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="uk"> -</translationbundle> +<translation id="4655616150233109325">Відкрити в Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ur.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ur.xtb index ffd34cf8..92fa1241 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ur.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_ur.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ur"> -</translationbundle> +<translation id="4655616150233109325">Chrome میں کھولیں</translation> +<translation id="6965382102122355670">ٹھیک ہے</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_uz.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_uz.xtb index 1d58ed4c..696a7b6d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_uz.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_uz.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="uz"> -</translationbundle> +<translation id="4655616150233109325">Chrome orqali ochish</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_vi.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_vi.xtb index b2957da..f0595ef3 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_vi.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_vi.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="vi"> -</translationbundle> +<translation id="4655616150233109325">Mở bằng Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-CN.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-CN.xtb index 26e8b40..0685822 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-CN.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-CN.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zh-CN"> -</translationbundle> +<translation id="4655616150233109325">在 Chrome 中打开</translation> +<translation id="6965382102122355670">确定</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-HK.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-HK.xtb index 3ecd9e3..bb9e2009 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-HK.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-HK.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zh-HK"> -</translationbundle> +<translation id="4655616150233109325">在 Chrome 中開啟</translation> +<translation id="6965382102122355670">確定</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-TW.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-TW.xtb index 935ef485..075a239 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-TW.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zh-TW.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zh-TW"> -</translationbundle> +<translation id="4655616150233109325">在 Chrome 中開啟</translation> +<translation id="6965382102122355670">確定</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zu.xtb b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zu.xtb index f9c1cd3..29a010d 100644 --- a/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zu.xtb +++ b/ios/chrome/open_extension/strings/resources/ios_open_extension_google_chrome_strings_zu.xtb
@@ -1,4 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zu"> -</translationbundle> +<translation id="4655616150233109325">Vula ku-Chrome</translation> +<translation id="6965382102122355670">OK</translation> +</translationbundle> \ No newline at end of file
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn index 18a2772..b084f9d 100644 --- a/ios/chrome/test/BUILD.gn +++ b/ios/chrome/test/BUILD.gn
@@ -458,7 +458,7 @@ if (ios_enable_credential_provider_extension) { deps += [ - "//ios/chrome/browser/credential_provider:unit_tests", + "//ios/chrome/browser/credential_provider/model:unit_tests", "//ios/chrome/credential_provider_extension:unit_tests", "//ios/chrome/credential_provider_extension/ui:unit_tests", ]
diff --git a/ios/web_view/internal/passwords/web_view_password_feature_manager.h b/ios/web_view/internal/passwords/web_view_password_feature_manager.h index 6bea88f4..c906913 100644 --- a/ios/web_view/internal/passwords/web_view_password_feature_manager.h +++ b/ios/web_view/internal/passwords/web_view_password_feature_manager.h
@@ -39,7 +39,7 @@ const override; bool IsDefaultPasswordStoreSet() const override; - password_manager::metrics_util::PasswordAccountStorageUsageLevel + password_manager::features_util::PasswordAccountStorageUsageLevel ComputePasswordAccountStorageUsageLevel() const override; bool IsBiometricAuthenticationBeforeFillingEnabled() const override;
diff --git a/ios/web_view/internal/passwords/web_view_password_feature_manager.mm b/ios/web_view/internal/passwords/web_view_password_feature_manager.mm index 91dacd5..e8ec797a 100644 --- a/ios/web_view/internal/passwords/web_view_password_feature_manager.mm +++ b/ios/web_view/internal/passwords/web_view_password_feature_manager.mm
@@ -5,7 +5,7 @@ #import "ios/web_view/internal/passwords/web_view_password_feature_manager.h" #import "base/notreached.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/prefs/pref_service.h" #import "components/sync/service/sync_service.h" @@ -50,11 +50,11 @@ return false; } -password_manager::metrics_util::PasswordAccountStorageUsageLevel +password_manager::features_util::PasswordAccountStorageUsageLevel WebViewPasswordFeatureManager::ComputePasswordAccountStorageUsageLevel() const { // ios/web_view doesn't support either the profile password store or sync, so // the account-scoped storage is the only option. - return password_manager::metrics_util::PasswordAccountStorageUsageLevel:: + return password_manager::features_util::PasswordAccountStorageUsageLevel:: kUsingAccountStorage; }
diff --git a/ios/web_view/internal/passwords/web_view_password_manager_client_unittest.mm b/ios/web_view/internal/passwords/web_view_password_manager_client_unittest.mm index 7bb9f7627..c9df257 100644 --- a/ios/web_view/internal/passwords/web_view_password_manager_client_unittest.mm +++ b/ios/web_view/internal/passwords/web_view_password_manager_client_unittest.mm
@@ -9,11 +9,11 @@ #import "base/memory/scoped_refptr.h" #import "base/test/task_environment.h" #import "components/autofill/core/browser/logging/stub_log_manager.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/password_manager/core/browser/mock_password_form_manager_for_ui.h" #import "components/password_manager/core/browser/password_form.h" #import "components/password_manager/core/browser/password_form_manager_for_ui.h" #import "components/password_manager/core/browser/password_manager.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" #import "components/password_manager/core/browser/test_password_store.h" #import "components/password_manager/core/common/password_manager_features.h" #import "components/password_manager/core/common/password_manager_pref_names.h"
diff --git a/ios/web_view/internal/sync/cwv_sync_controller.mm b/ios/web_view/internal/sync/cwv_sync_controller.mm index 12ad536..adced548 100644 --- a/ios/web_view/internal/sync/cwv_sync_controller.mm +++ b/ios/web_view/internal/sync/cwv_sync_controller.mm
@@ -9,7 +9,7 @@ #import "base/strings/sys_string_conversions.h" #import "components/autofill/core/common/autofill_prefs.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/signin/public/identity_manager/account_info.h" #import "components/signin/public/identity_manager/device_accounts_synchronizer.h" #import "components/signin/public/identity_manager/identity_manager.h"
diff --git a/ios/web_view/internal/sync/cwv_sync_controller_unittest.mm b/ios/web_view/internal/sync/cwv_sync_controller_unittest.mm index 9ce39a4..38115f2 100644 --- a/ios/web_view/internal/sync/cwv_sync_controller_unittest.mm +++ b/ios/web_view/internal/sync/cwv_sync_controller_unittest.mm
@@ -15,7 +15,7 @@ #import "base/test/task_environment.h" #import "components/autofill/core/common/autofill_prefs.h" #import "components/image_fetcher/ios/ios_image_decoder_impl.h" -#import "components/password_manager/core/browser/password_manager_features_util.h" +#import "components/password_manager/core/browser/features/password_manager_features_util.h" #import "components/password_manager/core/common/password_manager_features.h" #import "components/password_manager/core/common/password_manager_pref_names.h" #import "components/prefs/pref_registry_simple.h"
diff --git a/ios_internal b/ios_internal index 0d10fcb7..cc4f4c3 160000 --- a/ios_internal +++ b/ios_internal
@@ -1 +1 @@ -Subproject commit 0d10fcb7443afd9b61d1e301dc77d953fda91a26 +Subproject commit cc4f4c31573a927a0c209bc94565d243243e4e4f
diff --git a/media/audio/win/audio_output_win_unittest.cc b/media/audio/win/audio_output_win_unittest.cc index 3d704c31..12abf4d 100644 --- a/media/audio/win/audio_output_win_unittest.cc +++ b/media/audio/win/audio_output_win_unittest.cc
@@ -151,7 +151,7 @@ private: HANDLE fmap_; - raw_ptr<char> start_; + raw_ptr<char, AllowPtrArithmetic> start_; uint32_t size_; };
diff --git a/media/capture/video/apple/sample_buffer_transformer.cc b/media/capture/video/apple/sample_buffer_transformer.cc index 90afa33..4257636d 100644 --- a/media/capture/video/apple/sample_buffer_transformer.cc +++ b/media/capture/video/apple/sample_buffer_transformer.cc
@@ -47,9 +47,9 @@ struct I420Planes { size_t width; size_t height; - raw_ptr<uint8_t> y_plane_data; - raw_ptr<uint8_t> u_plane_data; - raw_ptr<uint8_t> v_plane_data; + raw_ptr<uint8_t, AllowPtrArithmetic> y_plane_data; + raw_ptr<uint8_t, AllowPtrArithmetic> u_plane_data; + raw_ptr<uint8_t, AllowPtrArithmetic> v_plane_data; size_t y_plane_stride; size_t u_plane_stride; size_t v_plane_stride; @@ -123,8 +123,8 @@ struct NV12Planes { size_t width; size_t height; - raw_ptr<uint8_t> y_plane_data; - raw_ptr<uint8_t> uv_plane_data; + raw_ptr<uint8_t, AllowPtrArithmetic> y_plane_data; + raw_ptr<uint8_t, AllowPtrArithmetic> uv_plane_data; size_t y_plane_stride; size_t uv_plane_stride; };
diff --git a/media/renderers/video_resource_updater.cc b/media/renderers/video_resource_updater.cc index 289c607..ce56f938 100644 --- a/media/renderers/video_resource_updater.cc +++ b/media/renderers/video_resource_updater.cc
@@ -994,7 +994,8 @@ auto transferable_resource = viz::TransferableResource::MakeGpu( hardware_resource->mailbox(), GL_TEXTURE_2D, sync_token, output_plane_resource_size, copy_si_format, - false /* is_overlay_candidate */); + false /* is_overlay_candidate */, + viz::TransferableResource::ResourceSource::kVideo); transferable_resource.color_space = resource_color_space; external_resources->resources.push_back(std::move(transferable_resource)); @@ -1066,7 +1067,8 @@ auto transfer_resource = viz::TransferableResource::MakeGpu( mailbox_holder.mailbox, mailbox_holder.texture_target, mailbox_holder.sync_token, plane_size, si_formats[i], - video_frame->metadata().allow_overlay); + video_frame->metadata().allow_overlay, + viz::TransferableResource::ResourceSource::kVideo); transfer_resource.color_space = resource_color_space; transfer_resource.color_space_when_sampled = resource_color_space_when_sampled; @@ -1337,7 +1339,8 @@ external_resources.type = VideoFrameResourceType::RGBA_PREMULTIPLIED; transferable_resource = viz::TransferableResource::MakeSoftware( software_resource->shared_bitmap_id(), - software_resource->resource_size(), plane_resource->si_format()); + software_resource->resource_size(), plane_resource->si_format(), + viz::TransferableResource::ResourceSource::kVideo); } else { HardwarePlaneResource* hardware_resource = plane_resource->AsHardware(); external_resources.type = VideoFrameResourceType::RGBA; @@ -1346,7 +1349,8 @@ transferable_resource = viz::TransferableResource::MakeGpu( hardware_resource->mailbox(), hardware_resource->texture_target(), sync_token, hardware_resource->resource_size(), output_si_format, - hardware_resource->overlay_candidate()); + hardware_resource->overlay_candidate(), + viz::TransferableResource::ResourceSource::kVideo); } transferable_resource.color_space = output_color_space; @@ -1527,7 +1531,8 @@ plane_resource->resource_size(), i == 0 ? output_si_format : subplane_si_format.value_or(output_si_format), - plane_resource->overlay_candidate()); + plane_resource->overlay_candidate(), + viz::TransferableResource::ResourceSource::kVideo); transferable_resource.color_space = output_color_space; external_resources.resources.push_back(std::move(transferable_resource)); external_resources.release_callbacks.push_back(base::BindOnce(
diff --git a/mojo/core/channel.cc b/mojo/core/channel.cc index 1495bce..f491ada7 100644 --- a/mojo/core/channel.cc +++ b/mojo/core/channel.cc
@@ -184,10 +184,11 @@ #if BUILDFLAG(IS_WIN) // On Windows, handles are serialised into the extra header section. - raw_ptr<HandleEntry> handles_ = nullptr; + raw_ptr<HandleEntry, AllowPtrArithmetic> handles_ = nullptr; #elif BUILDFLAG(MOJO_USE_APPLE_CHANNEL) // On OSX, handles are serialised into the extra header section. - raw_ptr<MachPortsExtraHeader> mach_ports_header_ = nullptr; + raw_ptr<MachPortsExtraHeader, AllowPtrArithmetic> mach_ports_header_ = + nullptr; #endif };
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins index f1931f7..4ef3db4 100644 --- a/net/http/transport_security_state_static.pins +++ b/net/http/transport_security_state_static.pins
@@ -43,9 +43,9 @@ # hash function for preloaded entries again (we have already done so once). # -# Last updated: 2023-09-26 12:54 UTC +# Last updated: 2023-09-28 13:00 UTC PinsListTimestamp -1695732889 +1695906028 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= @@ -234,30 +234,6 @@ +OkuE6N36B9K -----END CERTIFICATE----- -DigiCertAssuredIDRoot ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c -JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP -mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ -wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 -VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ -AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB -AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun -pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC -dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf -fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm -NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx -H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - DigiCertGlobalRoot -----BEGIN CERTIFICATE----- MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
diff --git a/net/http/transport_security_state_static_pins.json b/net/http/transport_security_state_static_pins.json index 65e7e33..4012cd2 100644 --- a/net/http/transport_security_state_static_pins.json +++ b/net/http/transport_security_state_static_pins.json
@@ -31,7 +31,7 @@ // the 'static_spki_hashes' and 'bad_static_spki_hashes' fields in 'pinsets' // refer to, and the timestamp at which the pins list was last updated. // -// Last updated: 2023-09-26 12:54 UTC +// Last updated: 2023-09-28 13:00 UTC // { "pinsets": [ @@ -98,20 +98,6 @@ "SymantecClass3EVG3", "DigiCertECCSecureServerCA" ] - }, - { - "name": "yahoo", - "static_spki_hashes": [ - "DigiCertAssuredIDRoot", - "DigiCertGlobalRoot", - "DigiCertGlobalRootG2", - "DigiCertGlobalRootG3", - "DigiCertTrustedRootG4", - "DigiCertEVRoot", - "GlobalSignRootCA", - "GlobalSignRootCA_R3" - ], - "report_uri": "http://csp.yahoo.com/beacon/csp?src=yahoocom-hpkp-report-only" } ], "entries": [ @@ -1886,426 +1872,6 @@ "pins": "google" }, { - "name": "at.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "au.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "az.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "be.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "bi.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "br.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ca.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "cd.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "cg.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "chfr.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "chit.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ch.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "cl.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "cn.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "co.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "cr.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ct.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "de.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "dk.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "do.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "en-maktoob.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "espanol.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "es.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "fi.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "fj.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "fr.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "gl.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "gm.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "gr.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "hk.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "hn.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "hu.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "id.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ie.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "in.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "it.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "kr.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "kz.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "li.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "lt.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "lu.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "lv.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "maktoob.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "malaysia.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "mt.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "mu.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "mw.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "mx.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ni.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "nl.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "no.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "np.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "nz.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "pa.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "pe.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ph.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "pk.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "pl.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "pr.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "py.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "qc.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ro.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ru.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "rw.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "se.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "sg.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "sv.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "th.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "tr.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "tv.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "tw.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ua.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "uk.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "uy.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "uz.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "ve.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "vn.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "xa.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "za.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "zh.search.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "login.yahoo.com", - "include_subdomains": true, - "pins": "yahoo" - }, - { - "name": "mail.yahoo.com", - "include_subdomains": false, - "pins": "yahoo" - }, - { - "name": "edit.yahoo.com", - "include_subdomains": true, - "pins": "yahoo" - }, - { "name": "facebook.com", "include_subdomains": true, "pins": "facebook"
diff --git a/printing/common/metafile_utils.cc b/printing/common/metafile_utils.cc index 62eed21..0f3bc235 100644 --- a/printing/common/metafile_utils.cc +++ b/printing/common/metafile_utils.cc
@@ -4,22 +4,29 @@ #include "printing/common/metafile_utils.h" +#include "base/check.h" #include "base/strings/string_piece.h" #include "base/strings/stringprintf.h" #include "base/time/time.h" #include "printing/buildflags/buildflags.h" +#include "third_party/skia/include/codec/SkPngDecoder.h" #include "third_party/skia/include/core/SkCanvas.h" +#include "third_party/skia/include/core/SkImage.h" #include "third_party/skia/include/core/SkPicture.h" #include "third_party/skia/include/core/SkPictureRecorder.h" #include "third_party/skia/include/core/SkStream.h" #include "third_party/skia/include/core/SkString.h" #include "third_party/skia/include/core/SkTypeface.h" #include "third_party/skia/include/docs/SkPDFDocument.h" +#include "third_party/skia/include/encode/SkPngEncoder.h" +#include "third_party/skia/include/private/chromium/SkImageChromium.h" #include "ui/accessibility/ax_node.h" #include "ui/accessibility/ax_role_properties.h" #include "ui/accessibility/ax_tree.h" #include "ui/accessibility/ax_tree_update.h" +#include <variant> + namespace { // Table 333 in PDF 32000-1:2008 spec, section 14.8.4.2 @@ -315,9 +322,32 @@ return typeface; } +sk_sp<SkData> SerializeRasterImage(SkImage* img, void*) { + if (!img) { + return nullptr; + } + // TODO(crbug.com/1486503) + DUMP_WILL_BE_CHECK(!img->isTextureBacked()); + if (img->isTextureBacked()) { + GrDirectContext* ctx = SkImages::GetContext(img); + return SkPngEncoder::Encode(ctx, img, SkPngEncoder::Options{}); + } + return SkPngEncoder::Encode(nullptr, img, SkPngEncoder::Options{}); +} + +sk_sp<SkImage> DeserializeRasterImage(const void* bytes, size_t length, void*) { + auto data = SkData::MakeWithoutCopy(bytes, length); + auto codec = SkPngDecoder::Decode(data, nullptr); + if (codec) { + return std::get<0>(codec->getImage()); + } + return nullptr; +} + SkSerialProcs SerializationProcs(PictureSerializationContext* picture_ctx, TypefaceSerializationContext* typeface_ctx) { SkSerialProcs procs; + procs.fImageProc = SerializeRasterImage; procs.fPictureProc = SerializeOopPicture; procs.fPictureCtx = picture_ctx; procs.fTypefaceProc = SerializeOopTypeface; @@ -329,6 +359,7 @@ PictureDeserializationContext* picture_ctx, TypefaceDeserializationContext* typeface_ctx) { SkDeserialProcs procs; + procs.fImageProc = DeserializeRasterImage; procs.fPictureProc = DeserializeOopPicture; procs.fPictureCtx = picture_ctx; procs.fTypefaceProc = DeserializeOopTypeface;
diff --git a/testing/libfuzzer/fuzzer_test.gni b/testing/libfuzzer/fuzzer_test.gni index f9ab5fe..28aa801 100644 --- a/testing/libfuzzer/fuzzer_test.gni +++ b/testing/libfuzzer/fuzzer_test.gni
@@ -265,6 +265,7 @@ "check_includes", "defines", "include_dirs", + "output_name", "sources", "libs", "frameworks",
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 8582e1d1..b4df3fd 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -16510,21 +16510,6 @@ ] } ], - "TailoredSecurityIntegrationIOS": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TailoredSecurityIntegration" - ] - } - ] - } - ], "ThemeProviderColorProviderRedirection": [ { "platforms": [
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl index 5982bbb1..6f1bf3f 100644 --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -11385,18 +11385,6 @@ RedirectedPrerenderingUrlHasEffectiveUrl ActivationUrlHasEffectiveUrl - # Fired when a prerender attempt is completed. - event prerenderAttemptCompleted - parameters - PreloadingAttemptKey key - # The frame id of the frame initiating prerendering. - Page.FrameId initiatingFrameId - string prerenderingUrl - PrerenderFinalStatus finalStatus - # This is used to give users more information about the name of the API call - # that is incompatible with prerender and has caused the cancellation of the attempt - optional string disallowedApiMethod - # Fired when a preload enabled state is updated. event preloadEnabledStateUpdated parameters
diff --git a/third_party/blink/public/mojom/drag/drag.mojom b/third_party/blink/public/mojom/drag/drag.mojom index 0017c4f..6d1540c 100644 --- a/third_party/blink/public/mojom/drag/drag.mojom +++ b/third_party/blink/public/mojom/drag/drag.mojom
@@ -77,6 +77,19 @@ // new isolated file system to access the dropped // files. + // If true, the renderer always performs the default action for the drop, such + // as opening a dragged URL in a new tab. Otherwise, the renderer may give the + // drag data to the page if it has overridden the default action. + // + // This value is calculated using the last drag operation reported from a + // dragover response from the document, via the renderer, to the browser. Due + // to the async nature of the browser-renderer interaction, it's possible for + // a document's signal of interest in a drop to not be received by the browser + // before it starts to finish the drop. In this case the browser will pass + // the drop data to the renderer, but the renderer will take a default action + // instead of passing the drop to the document. + bool force_default_action; + // Used for DragItemString when string_type == "downloadurl". network.mojom.ReferrerPolicy referrer_policy = network.mojom.ReferrerPolicy.kDefault;
diff --git a/third_party/blink/public/mojom/page/widget.mojom b/third_party/blink/public/mojom/page/widget.mojom index 831f4a9..9e4fb709 100644 --- a/third_party/blink/public/mojom/page/widget.mojom +++ b/third_party/blink/public/mojom/page/widget.mojom
@@ -40,22 +40,32 @@ // completed processing the event the callback is called with the type of // the current drag operation that is active and the browser will update // the mouse cursor displayed to the user. + // + // The callback also receives whether the document is handling the drag in + // |document_is_handling_drag|. This can be false for example when the + // the renderer may handle the drop directly with some default action or + // in editable regions. DragTargetDragEnter(DragData drag_data, gfx.mojom.PointF point_in_viewport, gfx.mojom.PointF screen_point, AllowedDragOperations operations_allowed, uint32 key_modifiers) - => (ui.mojom.DragOperation operation); + => (ui.mojom.DragOperation operation, + bool document_is_handling_drag); // Notifies the Widget of a drag over operation. Once the renderer has // completed processing the event the callback is called with the type of // the current drag operation that is active and the browser will update // the mouse cursor displayed to the user. + // + // See comment for DragTargetDragEnter() for a discussion of |operation| and + // |document_is_handling_drag|. DragTargetDragOver(gfx.mojom.PointF point_in_viewport, gfx.mojom.PointF screen_point, AllowedDragOperations operations_allowed, uint32 key_modifiers) - => (ui.mojom.DragOperation operation); + => (ui.mojom.DragOperation operation, + bool document_is_handling_drag); // Notifies the Widget of a drag leave operation. DragTargetDragLeave(gfx.mojom.PointF point_in_viewport,
diff --git a/third_party/blink/public/platform/web_drag_data.h b/third_party/blink/public/platform/web_drag_data.h index 438f6ed..88f3b4e0 100644 --- a/third_party/blink/public/platform/web_drag_data.h +++ b/third_party/blink/public/platform/web_drag_data.h
@@ -118,6 +118,12 @@ filesystem_id_ = filesystem_id; } + bool ForceDefaultAction() const { return force_default_action_; } + + void SetForceDefaultAction(bool force_default_action) { + force_default_action_ = force_default_action; + } + network::mojom::ReferrerPolicy ReferrerPolicy() const { return referrer_policy_; } @@ -130,6 +136,10 @@ WebVector<Item> item_list_; WebString filesystem_id_; + // If true, the renderer always performs the default action for the drop. + // See DragData::force_default_action for complete details. + bool force_default_action_ = false; + // Used for items where string_type == "downloadurl". Stores the referrer // policy for usage when dragging a link out of the webview results in a // download.
diff --git a/third_party/blink/public/web/web_frame_widget.h b/third_party/blink/public/web/web_frame_widget.h index b6b64de..22ec1e6 100644 --- a/third_party/blink/public/web/web_frame_widget.h +++ b/third_party/blink/public/web/web_frame_widget.h
@@ -101,13 +101,13 @@ const gfx::PointF& screen_point, DragOperationsMask operations_allowed, uint32_t key_modifiers, - base::OnceCallback<void(ui::mojom::DragOperation)> callback) = 0; + base::OnceCallback<void(ui::mojom::DragOperation, bool)> callback) = 0; virtual void DragTargetDragOver( const gfx::PointF& point_in_viewport, const gfx::PointF& screen_point, DragOperationsMask operations_allowed, uint32_t key_modifiers, - base::OnceCallback<void(ui::mojom::DragOperation)> callback) = 0; + base::OnceCallback<void(ui::mojom::DragOperation, bool)> callback) = 0; virtual void DragTargetDragLeave(const gfx::PointF& point_in_viewport, const gfx::PointF& screen_point) = 0; virtual void DragTargetDrop(const WebDragData&,
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni index 8778ce5..adeaacad 100644 --- a/third_party/blink/renderer/bindings/generated_in_modules.gni +++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -451,8 +451,6 @@ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_command_encoder_descriptor.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_descriptor.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_descriptor.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_write.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_write.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_writes.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_writes.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pipeline_descriptor.cc", @@ -517,8 +515,6 @@ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_descriptor.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_layout.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_layout.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_write.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_write.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_writes.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_writes.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pipeline_descriptor.cc", @@ -1330,8 +1326,6 @@ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compare_function.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compilation_message_type.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compilation_message_type.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_location.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_location.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_cull_mode.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_cull_mode.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_device_lost_reason.cc", @@ -1360,8 +1354,6 @@ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_primitive_topology.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_query_type.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_query_type.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_location.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_location.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_sampler_binding_type.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_sampler_binding_type.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_stencil_operation.cc", @@ -2984,16 +2976,12 @@ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpubufferbinding_gpuexternaltexture_gpusampler_gputextureview.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpucanvascontext_imagebitmaprenderingcontext_offscreencanvasrenderingcontext2d_webgl2renderingcontext_webglrenderingcontext.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpucanvascontext_imagebitmaprenderingcontext_offscreencanvasrenderingcontext2d_webgl2renderingcontext_webglrenderingcontext.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpucomputepasstimestampwritesequence_gpucomputepasstimestampwrites.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpucomputepasstimestampwritesequence_gpucomputepasstimestampwrites.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpuextent3ddict_unsignedlongenforcerangesequence.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpuextent3ddict_unsignedlongenforcerangesequence.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpuorigin2ddict_unsignedlongenforcerangesequence.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpuorigin2ddict_unsignedlongenforcerangesequence.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpuorigin3ddict_unsignedlongenforcerangesequence.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpuorigin3ddict_unsignedlongenforcerangesequence.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpurenderpasstimestampwritesequence_gpurenderpasstimestampwrites.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_gpurenderpasstimestampwritesequence_gpurenderpasstimestampwrites.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_htmlcanvaselement_htmlimageelement_htmlvideoelement_imagebitmap_imagedata_offscreencanvas_videoframe.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_htmlcanvaselement_htmlimageelement_htmlvideoelement_imagebitmap_imagedata_offscreencanvas_videoframe.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_union_htmlformelement_passwordcredentialdata.cc",
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni index e050637..60b2b7e 100644 --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -1031,7 +1031,6 @@ "//third_party/blink/renderer/modules/webgpu/gpu_compilation_message.idl", "//third_party/blink/renderer/modules/webgpu/gpu_compute_pass_descriptor.idl", "//third_party/blink/renderer/modules/webgpu/gpu_compute_pass_encoder.idl", - "//third_party/blink/renderer/modules/webgpu/gpu_compute_pass_timestamp_write.idl", "//third_party/blink/renderer/modules/webgpu/gpu_compute_pass_timestamp_writes.idl", "//third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline.idl", "//third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline_descriptor.idl", @@ -1082,7 +1081,6 @@ "//third_party/blink/renderer/modules/webgpu/gpu_render_pass_descriptor.idl", "//third_party/blink/renderer/modules/webgpu/gpu_render_pass_encoder.idl", "//third_party/blink/renderer/modules/webgpu/gpu_render_pass_layout.idl", - "//third_party/blink/renderer/modules/webgpu/gpu_render_pass_timestamp_write.idl", "//third_party/blink/renderer/modules/webgpu/gpu_render_pass_timestamp_writes.idl", "//third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.idl", "//third_party/blink/renderer/modules/webgpu/gpu_render_pipeline_descriptor.idl",
diff --git a/third_party/blink/renderer/core/css/css_image_value.cc b/third_party/blink/renderer/core/css/css_image_value.cc index 1583d996..cac1e44 100644 --- a/third_party/blink/renderer/core/css/css_image_value.cc +++ b/third_party/blink/renderer/core/css/css_image_value.cc
@@ -64,8 +64,6 @@ CrossOriginAttributeValue cross_origin) const { KURL request_url; - base::TimeTicks discovery_time = base::TimeTicks::Now(); - if (potentially_dangling_markup_) { // The PotentiallyDanglingMarkup() flag is lost when storing the absolute // url as a string from which the KURL is constructed here. The url passed @@ -118,8 +116,6 @@ params.SetFromOriginDirtyStyleSheet(true); } - params.SetDiscoveryTime(discovery_time); - return params; }
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc index 5ddaffa..23db506 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -2103,10 +2103,19 @@ builder.InheritedVariables(); } +bool StyleResolver::CacheSuccess::LineHeightChanged( + const ComputedStyleBuilder& builder) const { + if (!cached_matched_properties) { + return false; + } + return cached_matched_properties->computed_style->LineHeight() != + builder.LineHeight(); +} + bool StyleResolver::CacheSuccess::IsUsableAfterApplyInheritedOnly( const ComputedStyleBuilder& builder) const { return !EffectiveZoomChanged(builder) && !FontChanged(builder) && - !InheritedVariablesChanged(builder); + !InheritedVariablesChanged(builder) && !LineHeightChanged(builder); } StyleResolver::CacheSuccess StyleResolver::ApplyMatchedCache(
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.h b/third_party/blink/renderer/core/css/resolver/style_resolver.h index b3058f2..1df1c2a 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver.h +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.h
@@ -306,6 +306,7 @@ bool EffectiveZoomChanged(const ComputedStyleBuilder&) const; bool FontChanged(const ComputedStyleBuilder&) const; bool InheritedVariablesChanged(const ComputedStyleBuilder&) const; + bool LineHeightChanged(const ComputedStyleBuilder&) const; bool IsUsableAfterApplyInheritedOnly(const ComputedStyleBuilder&) const; };
diff --git a/third_party/blink/renderer/core/frame/OWNERS b/third_party/blink/renderer/core/frame/OWNERS index 1661967..ff24865 100644 --- a/third_party/blink/renderer/core/frame/OWNERS +++ b/third_party/blink/renderer/core/frame/OWNERS
@@ -4,3 +4,4 @@ per-file *_type_converter*.*=set noparent per-file *_type_converter*.*=file://ipc/SECURITY_OWNERS +per-file *_monitor.*=file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc index 89fe8b2..1c7b4cd 100644 --- a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc +++ b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc
@@ -10,6 +10,7 @@ #include "services/metrics/public/cpp/ukm_source_id.h" #include "third_party/blink/public/mojom/script/script_type.mojom-blink-forward.h" #include "third_party/blink/renderer/bindings/core/v8/js_based_event_listener.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" #include "third_party/blink/renderer/core/core_probe_sink.h" #include "third_party/blink/renderer/core/execution_context/agent.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" @@ -22,6 +23,7 @@ #include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/scheduler/public/event_loop.h" +#include "v8-microtask-queue.h" namespace blink { @@ -365,7 +367,9 @@ ScriptTimingInfo* AnimationFrameTimingMonitor::MaybeAddScript( ExecutionContext* context, base::TimeTicks end_time) { - DCHECK(pending_script_info_); + if (!pending_script_info_) { + return nullptr; + } if ((end_time - pending_script_info_->start_time) < kLongScriptDuration) { pending_script_info_ = absl::nullopt; @@ -423,6 +427,26 @@ return nullptr; } + v8::MicrotaskQueue* microtask_queue = ToMicrotaskQueue(context); + CHECK(microtask_queue); + if (microtask_queue->IsRunningMicrotasks() || + microtask_queue->GetMicrotasksScopeDepth()) { + CHECK(context->GetAgent()); + CHECK(context->GetAgent()->event_loop()); + CHECK(pending_script_info_); + + context->GetAgent()->event_loop()->EnqueueEndOfMicrotaskCheckpointTask( + WTF::BindOnce( + [](WeakPersistent<AnimationFrameTimingMonitor> self, + WeakPersistent<ExecutionContext> context) { + if (self && context) { + self->MaybeAddScript(context, base::TimeTicks::Now()); + } + }, + WrapWeakPersistent(this), WrapWeakPersistent(context))); + return nullptr; + } + return MaybeAddScript(context, probe.CaptureEndTime()); } @@ -434,10 +458,7 @@ return; } - if (pending_script_info_->type == ScriptTimingInfo::Type::kPromiseResolve || - pending_script_info_->type == ScriptTimingInfo::Type::kPromiseReject) { - MaybeAddScript(context, base::TimeTicks::Now()); - } + MaybeAddScript(context, base::TimeTicks::Now()); } void AnimationFrameTimingMonitor::WillHandlePromise( @@ -511,11 +532,9 @@ return; } - if (ScriptTimingInfo* script_timing_info = DidExecuteScript(probe_data)) { - script_timing_info->SetSourceLocation( - ScriptTimingInfo::ScriptSourceLocation{ - .url = probe_data.script->SourceUrl()}); - } + pending_script_info_->source_location = {.url = + probe_data.script->SourceUrl()}; + DidExecuteScript(probe_data); } void AnimationFrameTimingMonitor::WillRunJavaScriptDialog() { javascript_dialog_start_ = base::TimeTicks::Now(); @@ -683,12 +702,11 @@ return; } - ScriptTimingInfo* info = DidExecuteScript(probe_data); - if (!info) { - return; + if (pending_script_info_) { + pending_script_info_->property_like_name = probe_data.name; } - info->SetPropertyLikeName(AtomicString(probe_data.name)); + DidExecuteScript(probe_data); } void AnimationFrameTimingMonitor::Will(
diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc index 2ecbf12e..6631aaed 100644 --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc
@@ -11214,12 +11214,13 @@ ImageResourceContent* image_content = img_document->CachedImage(); EXPECT_TRUE(image_content); - EXPECT_NE(base::TimeTicks(), image_content->LoadEnd()); + EXPECT_NE(base::TimeTicks(), image_content->LoadResponseEnd()); DocumentLoader* loader = document->Loader(); EXPECT_TRUE(loader); - EXPECT_EQ(loader->GetTiming().ResponseEnd(), image_content->LoadEnd()); + EXPECT_EQ(loader->GetTiming().ResponseEnd(), + image_content->LoadResponseEnd()); } TEST_F(WebFrameTest, CopyImageDocument) {
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc index e4c2f05..e05bebe 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -113,7 +113,6 @@ #include "third_party/blink/renderer/core/loader/interactive_detector.h" #include "third_party/blink/renderer/core/page/context_menu_controller.h" #include "third_party/blink/renderer/core/page/drag_actions.h" -#include "third_party/blink/renderer/core/page/drag_controller.h" #include "third_party/blink/renderer/core/page/drag_data.h" #include "third_party/blink/renderer/core/page/focus_controller.h" #include "third_party/blink/renderer/core/page/link_highlight.h" @@ -500,7 +499,8 @@ DragTargetDragEnterOrOver(point_in_viewport, screen_point, kDragEnter, key_modifiers); - std::move(callback).Run(drag_operation_); + std::move(callback).Run(drag_operation_.operation, + drag_operation_.document_is_handling_drag); } void WebFrameWidgetImpl::DragTargetDragOver( @@ -514,7 +514,8 @@ DragTargetDragEnterOrOver(point_in_viewport, screen_point, kDragOver, key_modifiers); - std::move(callback).Run(drag_operation_); + std::move(callback).Run(drag_operation_.operation, + drag_operation_.document_is_handling_drag); } void WebFrameWidgetImpl::DragTargetDragLeave( @@ -528,7 +529,8 @@ gfx::PointF point_in_root_frame(ViewportToRootFrame(point_in_viewport)); DragData drag_data(current_drag_data_.Get(), point_in_root_frame, - screen_point, operations_allowed_); + screen_point, operations_allowed_, + /*force_default_action=*/false); GetPage()->GetDragController().DragExited(&drag_data, *local_root_->GetFrame()); @@ -560,9 +562,9 @@ // flight, or else delayed by javascript processing in this webview. If a // drop happens before our IPC reply has reached the browser process, then // the browser forwards the drop to this webview. So only allow a drop to - // proceed if our webview drag_operation_ state is not DragOperation::kNone. + // proceed if our webview drag operation state is not DragOperation::kNone. - if (drag_operation_ == DragOperation::kNone) { + if (drag_operation_.operation == DragOperation::kNone) { // IPC RACE CONDITION: do not allow this drop. DragTargetDragLeave(point_in_viewport, screen_point); return; @@ -571,7 +573,7 @@ current_drag_data_->SetModifiers(key_modifiers); DragData drag_data(current_drag_data_.Get(), ViewportToRootFrame(point_in_viewport), screen_point, - operations_allowed_); + operations_allowed_, web_drag_data.ForceDefaultAction()); GetPage()->GetDragController().PerformDrag(&drag_data, *local_root_->GetFrame()); } @@ -1235,7 +1237,7 @@ } void WebFrameWidgetImpl::CancelDrag() { - drag_operation_ = DragOperation::kNone; + drag_operation_ = DragController::Operation(); current_drag_data_ = nullptr; } @@ -1276,16 +1278,17 @@ current_drag_data_->SetModifiers(key_modifiers); DragData drag_data(current_drag_data_.Get(), point_in_root_frame, - screen_point, operations_allowed_); + screen_point, operations_allowed_, + /*force_default_action=*/false); drag_operation_ = GetPage()->GetDragController().DragEnteredOrUpdated( &drag_data, *local_root_->GetFrame()); // Mask the drag operation against the drag source's allowed // operations. - if (!(static_cast<int>(drag_operation_) & + if (!(static_cast<int>(drag_operation_.operation) & drag_data.DraggingSourceOperationMask())) { - drag_operation_ = DragOperation::kNone; + drag_operation_ = DragController::Operation(); } }
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h index a9dc3f1..862dbda 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
@@ -60,6 +60,7 @@ #include "third_party/blink/renderer/core/exported/web_page_popup_impl.h" #include "third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h" #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h" +#include "third_party/blink/renderer/core/page/drag_controller.h" #include "third_party/blink/renderer/core/page/event_with_hit_test_results.h" #include "third_party/blink/renderer/core/page/viewport_description.h" #include "third_party/blink/renderer/platform/graphics/apply_viewport_changes.h" @@ -986,8 +987,7 @@ // The current drag operation as negotiated by the source and destination. // When not equal to DragOperationNone, the drag data can be dropped onto the // current drop target in this WebView (the drop target can accept the drop). - ui::mojom::blink::DragOperation drag_operation_ = - ui::mojom::blink::DragOperation::kNone; + DragController::Operation drag_operation_; // This field stores drag/drop related info for the event that is currently // being handled. If the current event results in starting a drag/drop
diff --git a/third_party/blink/renderer/core/html/forms/file_input_type_test.cc b/third_party/blink/renderer/core/html/forms/file_input_type_test.cc index 18777e8..8d5c26c0 100644 --- a/third_party/blink/renderer/core/html/forms/file_input_type_test.cc +++ b/third_party/blink/renderer/core/html/forms/file_input_type_test.cc
@@ -87,7 +87,8 @@ DataObject* native_file_raw_drag_data = DataObject::Create(); const DragData native_file_drag_data(native_file_raw_drag_data, gfx::PointF(), - gfx::PointF(), kDragOperationCopy); + gfx::PointF(), kDragOperationCopy, + false); native_file_drag_data.PlatformData()->Add(MakeGarbageCollected<File>( &execution_context.GetExecutionContext(), "/native/path")); native_file_drag_data.PlatformData()->SetFilesystemId("fileSystemId"); @@ -99,7 +100,7 @@ DataObject* non_native_file_raw_drag_data = DataObject::Create(); const DragData non_native_file_drag_data(non_native_file_raw_drag_data, gfx::PointF(), gfx::PointF(), - kDragOperationCopy); + kDragOperationCopy, false); FileMetadata metadata; metadata.length = 1234; const KURL url("filesystem:http://example.com/isolated/hash/non-native-file"); @@ -161,7 +162,7 @@ MockFileChooser chooser(doc.GetFrame()->GetBrowserInterfaceBroker(), run_loop.QuitClosure()); DragData drag_data(DataObject::Create(), gfx::PointF(), gfx::PointF(), - kDragOperationCopy); + kDragOperationCopy, false); drag_data.PlatformData()->Add(MakeGarbageCollected<File>( &execution_context.GetExecutionContext(), "/foo/bar")); input.ReceiveDroppedFiles(&drag_data);
diff --git a/third_party/blink/renderer/core/html/html_details_element.cc b/third_party/blink/renderer/core/html/html_details_element.cc index 0c6f157..c2ab4b6 100644 --- a/third_party/blink/renderer/core/html/html_details_element.cc +++ b/third_party/blink/renderer/core/html/html_details_element.cc
@@ -57,9 +57,19 @@ void HTMLDetailsElement::DispatchPendingEvent( const AttributeModificationReason reason) { + Event* toggle_event = nullptr; + if (RuntimeEnabledFeatures::DetailsElementToggleEventEnabled()) { + CHECK(pending_toggle_event_); + toggle_event = pending_toggle_event_.Get(); + pending_toggle_event_ = nullptr; + } else { + CHECK(!pending_toggle_event_); + toggle_event = Event::Create(event_type_names::kToggle); + } + if (reason == AttributeModificationReason::kByParser) GetDocument().SetToggleDuringParsing(true); - DispatchEvent(*Event::Create(event_type_names::kToggle)); + DispatchEvent(*toggle_event); if (reason == AttributeModificationReason::kByParser) GetDocument().SetToggleDuringParsing(false); } @@ -159,6 +169,7 @@ } void HTMLDetailsElement::Trace(Visitor* visitor) const { + visitor->Trace(pending_toggle_event_); visitor->Trace(summary_slot_); visitor->Trace(content_slot_); HTMLElement::Trace(visitor); @@ -180,7 +191,17 @@ return; // Dispatch toggle event asynchronously. - pending_event_ = PostCancellableTask( + if (RuntimeEnabledFeatures::DetailsElementToggleEventEnabled()) { + String old_state = is_open_ ? "closed" : "open"; + String new_state = is_open_ ? "open" : "closed"; + if (pending_toggle_event_) { + old_state = pending_toggle_event_->oldState(); + } + pending_toggle_event_ = + ToggleEvent::Create(event_type_names::kToggle, Event::Cancelable::kNo, + old_state, new_state); + } + pending_event_task_ = PostCancellableTask( *GetDocument().GetTaskRunner(TaskType::kDOMManipulation), FROM_HERE, WTF::BindOnce(&HTMLDetailsElement::DispatchPendingEvent, WrapPersistent(this), params.reason));
diff --git a/third_party/blink/renderer/core/html/html_details_element.h b/third_party/blink/renderer/core/html/html_details_element.h index 50041c21..8ccba766 100644 --- a/third_party/blink/renderer/core/html/html_details_element.h +++ b/third_party/blink/renderer/core/html/html_details_element.h
@@ -21,6 +21,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_HTML_DETAILS_ELEMENT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_HTML_DETAILS_ELEMENT_H_ +#include "third_party/blink/renderer/core/events/toggle_event.h" #include "third_party/blink/renderer/core/html/html_element.h" #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h" @@ -68,7 +69,8 @@ bool IsInteractiveContent() const override; bool is_open_ = false; - TaskHandle pending_event_; + TaskHandle pending_event_task_; + Member<ToggleEvent> pending_toggle_event_; Member<HTMLSlotElement> summary_slot_; Member<HTMLSlotElement> content_slot_; };
diff --git a/third_party/blink/renderer/core/html/parser/preload_request.cc b/third_party/blink/renderer/core/html/parser/preload_request.cc index e4506803..a4f4f35 100644 --- a/third_party/blink/renderer/core/html/parser/preload_request.cc +++ b/third_party/blink/renderer/core/html/parser/preload_request.cc
@@ -90,9 +90,8 @@ Resource* PreloadRequest::Start(Document* document) { DCHECK(document->domWindow()); - base::TimeTicks discovery_timestamp = base::TimeTicks::Now(); base::UmaHistogramTimes("Blink.PreloadRequestWaitTime", - discovery_timestamp - creation_time_); + base::TimeTicks::Now() - creation_time_); FetchInitiatorInfo initiator_info; initiator_info.name = AtomicString(initiator_name_); @@ -137,10 +136,6 @@ options.initiator_info = initiator_info; FetchParameters params(std::move(resource_request), options); - if (resource_type_ == ResourceType::kImage) { - params.SetDiscoveryTime(discovery_timestamp); - } - auto* origin = document->domWindow()->GetSecurityOrigin(); if (script_type_ == mojom::blink::ScriptType::kModule) { DCHECK_EQ(resource_type_, ResourceType::kScript);
diff --git a/third_party/blink/renderer/core/layout/build.gni b/third_party/blink/renderer/core/layout/build.gni index 4b770c7e..c0e7489d 100644 --- a/third_party/blink/renderer/core/layout/build.gni +++ b/third_party/blink/renderer/core/layout/build.gni
@@ -796,6 +796,7 @@ "svg/layout_svg_foreign_object_test.cc", "svg/layout_svg_inline_test.cc", "svg/layout_svg_root_test.cc", + "svg/layout_svg_shape_test.cc", "svg/layout_svg_text_test.cc", "svg/svg_layout_support_test.cc", "svg/svg_text_layout_algorithm_test.cc",
diff --git a/third_party/blink/renderer/core/layout/layout_image_resource.cc b/third_party/blink/renderer/core/layout/layout_image_resource.cc index cb7c93d..a3f8c33 100644 --- a/third_party/blink/renderer/core/layout/layout_image_resource.cc +++ b/third_party/blink/renderer/core/layout/layout_image_resource.cc
@@ -165,8 +165,10 @@ } void LayoutImageResource::UseBrokenImage() { - SetImageResource( - ImageResourceContent::CreateLoaded(BrokenImage(DevicePixelRatio()))); + auto* broken_image = + ImageResourceContent::CreateLoaded(BrokenImage(DevicePixelRatio())); + broken_image->SetIsBroken(); + SetImageResource(broken_image); } scoped_refptr<Image> LayoutImageResource::GetImage(
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_shape.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_shape.cc index 3ed7f83..732403b 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_shape.cc +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_shape.cc
@@ -206,7 +206,7 @@ gfx::RectF LayoutSVGShape::StrokeBoundingBox() const { NOT_DESTROYED(); - if (!StyleRef().HasStroke()) { + if (!StyleRef().HasStroke() || IsShapeEmpty()) { return fill_bounding_box_; } // If no Path object has been created for the shape, assume that it is
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_shape_test.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_shape_test.cc new file mode 100644 index 0000000..c8d0527 --- /dev/null +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_shape_test.cc
@@ -0,0 +1,23 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/core/svg_names.h" +#include "third_party/blink/renderer/core/testing/core_unit_test_helper.h" + +namespace blink { + +using LayoutSVGShapeTest = RenderingTest; + +TEST_F(LayoutSVGShapeTest, StrokeBoundingBoxOnEmptyShape) { + SetBodyInnerHTML(R"HTML( + <svg> + <circle id="target" stroke="white" stroke-width="100"/> + </svg> + )HTML"); + + auto* circle = GetLayoutObjectByElementId("target"); + EXPECT_EQ(circle->StrokeBoundingBox(), gfx::RectF(0, 0, 0, 0)); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc index c647f154..9d44897 100644 --- a/third_party/blink/renderer/core/loader/image_loader.cc +++ b/third_party/blink/renderer/core/loader/image_loader.cc
@@ -121,12 +121,8 @@ class ImageLoader::Task { public: - Task(ImageLoader* loader, - UpdateFromElementBehavior update_behavior, - base::TimeTicks discovery_time) - : loader_(loader), - update_behavior_(update_behavior), - discovery_time_(discovery_time) { + Task(ImageLoader* loader, UpdateFromElementBehavior update_behavior) + : loader_(loader), update_behavior_(update_behavior) { ExecutionContext* context = loader_->GetElement()->GetExecutionContext(); async_task_context_.Schedule(context, "Image"); world_ = context->GetCurrentWorld(); @@ -137,7 +133,7 @@ return; ExecutionContext* context = loader_->GetElement()->GetExecutionContext(); probe::AsyncTask async_task(context, &async_task_context_); - loader_->DoUpdateFromElement(world_, update_behavior_, discovery_time_); + loader_->DoUpdateFromElement(world_, update_behavior_); } void ClearLoader() { @@ -153,7 +149,6 @@ scoped_refptr<const DOMWrapperWorld> world_; probe::AsyncTaskContext async_task_context_; - base::TimeTicks discovery_time_; base::WeakPtrFactory<Task> weak_factory_{this}; }; @@ -411,9 +406,8 @@ } inline void ImageLoader::EnqueueImageLoadingMicroTask( - UpdateFromElementBehavior update_behavior, - base::TimeTicks discovery_time) { - auto task = std::make_unique<Task>(this, update_behavior, discovery_time); + UpdateFromElementBehavior update_behavior) { + auto task = std::make_unique<Task>(this, update_behavior); pending_task_ = task->GetWeakPtr(); element_->GetDocument().GetAgent().event_loop()->EnqueueMicrotask( WTF::BindOnce(&Task::Run, std::move(task))); @@ -441,7 +435,6 @@ void ImageLoader::DoUpdateFromElement( scoped_refptr<const DOMWrapperWorld> world, UpdateFromElementBehavior update_behavior, - base::TimeTicks discovery_time, UpdateType update_type, bool force_blocking) { // FIXME: According to @@ -555,8 +548,6 @@ FetchParameters params(std::move(resource_request), resource_loader_options); - params.SetDiscoveryTime(discovery_time); - ConfigureRequest(params, *element_, frame->GetClientHintsPreferences()); if (update_behavior != kUpdateForcedReload && @@ -648,8 +639,6 @@ return; } - base::TimeTicks discovery_time = base::TimeTicks::Now(); - AtomicString image_source_url = element_->ImageSourceURL(); suppress_error_events_ = (update_behavior == kUpdateSizeChanged); @@ -685,8 +674,7 @@ if (ShouldLoadImmediately(ImageSourceToKURL(image_source_url)) && update_behavior != kUpdateFromMicrotask) { DoUpdateFromElement(element_->GetExecutionContext()->GetCurrentWorld(), - update_behavior, discovery_time, UpdateType::kSync, - force_blocking); + update_behavior, UpdateType::kSync, force_blocking); return; } // Allow the idiom "img.src=''; img.src='.." to clear down the image before an @@ -712,7 +700,7 @@ // context. We don't want to slow down the raw HTML parsing case by loading // images we don't intend to display. if (element_->GetDocument().IsActive()) - EnqueueImageLoadingMicroTask(update_behavior, discovery_time); + EnqueueImageLoadingMicroTask(update_behavior); } KURL ImageLoader::ImageSourceToKURL(AtomicString image_source_url) const {
diff --git a/third_party/blink/renderer/core/loader/image_loader.h b/third_party/blink/renderer/core/loader/image_loader.h index 04fe0ef5f..f2c5466 100644 --- a/third_party/blink/renderer/core/loader/image_loader.h +++ b/third_party/blink/renderer/core/loader/image_loader.h
@@ -166,7 +166,6 @@ // force_blocking ensures that the image will block the load event. void DoUpdateFromElement(scoped_refptr<const DOMWrapperWorld> world, UpdateFromElementBehavior, - base::TimeTicks discovery_time, UpdateType = UpdateType::kAsync, bool force_blocking = false); @@ -190,8 +189,7 @@ void ClearFailedLoadURL(); void DispatchErrorEvent(); void CrossSiteOrCSPViolationOccurred(AtomicString); - void EnqueueImageLoadingMicroTask(UpdateFromElementBehavior update_behavior, - base::TimeTicks discovery_time); + void EnqueueImageLoadingMicroTask(UpdateFromElementBehavior update_behavior); KURL ImageSourceToKURL(AtomicString) const;
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource.cc b/third_party/blink/renderer/core/loader/resource/image_resource.cc index a6717adc31..448edef 100644 --- a/third_party/blink/renderer/core/loader/resource/image_resource.cc +++ b/third_party/blink/renderer/core/loader/resource/image_resource.cc
@@ -84,9 +84,18 @@ private: const KURL& Url() const override { return resource_->Url(); } + base::TimeTicks LoadEnd() const override { + if (ResourceLoadTiming* load_timing = + resource_->GetResponse().GetResourceLoadTiming()) { + return load_timing->ResponseEnd(); + } + return base::TimeTicks(); + } + base::TimeTicks LoadResponseEnd() const override { return resource_->LoadResponseEnd(); } + base::TimeTicks LoadStart() const override { if (ResourceLoadTiming* load_timing = resource_->GetResponse().GetResourceLoadTiming()) { @@ -94,6 +103,15 @@ } return base::TimeTicks(); } + + base::TimeTicks DiscoveryTime() const override { + if (ResourceLoadTiming* load_timing = + resource_->GetResponse().GetResourceLoadTiming()) { + return load_timing->DiscoveryTime(); + } + return base::TimeTicks(); + } + const ResourceResponse& GetResponse() const override { return resource_->GetResponse(); } @@ -197,8 +215,6 @@ auto* resource = To<ImageResource>( fetcher->RequestResource(params, ImageResourceFactory(), nullptr)); - resource->GetContent()->SetDiscoveryTime(params.DiscoveryTime()); - // If the fetch originated from user agent CSS we should mark it as a user // agent resource. if (is_user_agent_resource) {
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_content.cc b/third_party/blink/renderer/core/loader/resource/image_resource_content.cc index a795598d..635a661 100644 --- a/third_party/blink/renderer/core/loader/resource/image_resource_content.cc +++ b/third_party/blink/renderer/core/loader/resource/image_resource_content.cc
@@ -51,6 +51,8 @@ const KURL& Url() const override { return url_; } base::TimeTicks LoadResponseEnd() const override { return base::TimeTicks(); } base::TimeTicks LoadStart() const override { return base::TimeTicks(); } + base::TimeTicks LoadEnd() const override { return base::TimeTicks(); } + base::TimeTicks DiscoveryTime() const override { return base::TimeTicks(); } const ResourceResponse& GetResponse() const override { return response_; } bool IsCacheValidator() const override { return false; } bool IsAccessAllowed( @@ -705,12 +707,16 @@ return AtomicString(image_->FilenameExtension()); } -base::TimeTicks ImageResourceContent::DiscoveryTime() const { - return discovery_time_; +void ImageResourceContent::SetIsBroken() { + is_broken_ = true; } -void ImageResourceContent::SetDiscoveryTime(base::TimeTicks discovery_time) { - discovery_time_ = discovery_time; +bool ImageResourceContent::IsBroken() const { + return is_broken_; +} + +base::TimeTicks ImageResourceContent::DiscoveryTime() const { + return info_->DiscoveryTime(); } base::TimeTicks ImageResourceContent::LoadStart() const { @@ -718,6 +724,10 @@ } base::TimeTicks ImageResourceContent::LoadEnd() const { + return info_->LoadEnd(); +} + +base::TimeTicks ImageResourceContent::LoadResponseEnd() const { return info_->LoadResponseEnd(); }
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_content.h b/third_party/blink/renderer/core/loader/resource/image_resource_content.h index 54c7135..699cae5a 100644 --- a/third_party/blink/renderer/core/loader/resource/image_resource_content.h +++ b/third_party/blink/renderer/core/loader/resource/image_resource_content.h
@@ -120,6 +120,8 @@ bool IsLoading() const; bool ErrorOccurred() const; bool LoadFailedOrCanceled() const; + void SetIsBroken(); + bool IsBroken() const override; bool IsAnimatedImage() const override; bool IsPaintedFirstFrame() const override; bool TimingAllowPassed() const override; @@ -136,6 +138,8 @@ // Redirecting methods to Resource. const KURL& Url() const override; bool IsDataUrl() const override; + base::TimeTicks LoadResponseEnd() const; + base::TimeTicks DiscoveryTime() const override; base::TimeTicks LoadStart() const override; base::TimeTicks LoadEnd() const override; AtomicString MediaType() const override; @@ -229,10 +233,6 @@ // Returns whether the resource request has been tagged as an ad. bool IsAdResource() const; - base::TimeTicks DiscoveryTime() const override; - - void SetDiscoveryTime(base::TimeTicks discovery_time); - // Records the decoded image type in a UseCounter if the image is a // BitmapImage. |use_counter| may be a null pointer. void RecordDecodedImageType(UseCounter* use_counter); @@ -295,6 +295,8 @@ scoped_refptr<blink::Image> image_; + bool is_broken_; + base::TimeTicks discovery_time_; bool is_loaded_from_memory_cache_;
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_info.h b/third_party/blink/renderer/core/loader/resource/image_resource_info.h index 7247738..fd7b9c2 100644 --- a/third_party/blink/renderer/core/loader/resource/image_resource_info.h +++ b/third_party/blink/renderer/core/loader/resource/image_resource_info.h
@@ -31,6 +31,8 @@ virtual const KURL& Url() const = 0; virtual base::TimeTicks LoadResponseEnd() const = 0; virtual base::TimeTicks LoadStart() const = 0; + virtual base::TimeTicks LoadEnd() const = 0; + virtual base::TimeTicks DiscoveryTime() const = 0; virtual const ResourceResponse& GetResponse() const = 0; virtual bool IsCacheValidator() const = 0; enum DoesCurrentFrameHaveSingleSecurityOrigin {
diff --git a/third_party/blink/renderer/core/loader/resource/video_timing.h b/third_party/blink/renderer/core/loader/resource/video_timing.h index 56e31f7..c11fc19 100644 --- a/third_party/blink/renderer/core/loader/resource/video_timing.h +++ b/third_party/blink/renderer/core/loader/resource/video_timing.h
@@ -63,6 +63,8 @@ // TODO(crbug.com/1379728): Revisit priority reporting also for videos. return absl::nullopt; } + + bool IsBroken() const override { return false; } // Video timing does not have information about load start/end time. The // functions return 0 Timeticks as placeholders which would not be reported to // UKM.
diff --git a/third_party/blink/renderer/core/page/drag_controller.cc b/third_party/blink/renderer/core/page/drag_controller.cc index 55c5afa..1f93124 100644 --- a/third_party/blink/renderer/core/page/drag_controller.cc +++ b/third_party/blink/renderer/core/page/drag_controller.cc
@@ -256,7 +256,10 @@ if ((drag_destination_action_ & kDragDestinationActionDHTML) && document_is_handling_drag_) { bool prevented_default = false; - if (local_root.View()) { + if (drag_data->ForceDefaultAction()) { + // Tell the document that the drag has left the building. + DragExited(drag_data, local_root); + } else if (local_root.View()) { // Sending an event can result in the destruction of the view and part. DataTransfer* data_transfer = CreateDraggingDataTransfer( DataTransferAccessPolicy::kReadable, drag_data); @@ -334,8 +337,9 @@ document_under_mouse_ = new_document; } -DragOperation DragController::DragEnteredOrUpdated(DragData* drag_data, - LocalFrame& local_root) { +DragController::Operation DragController::DragEnteredOrUpdated( + DragData* drag_data, + LocalFrame& local_root) { DCHECK(drag_data); MouseMovedIntoDocument(local_root.DocumentAtPoint( @@ -348,12 +352,16 @@ : static_cast<DragDestinationAction>(kDragDestinationActionDHTML | kDragDestinationActionEdit); - DragOperation drag_operation = DragOperation::kNone; - document_is_handling_drag_ = TryDocumentDrag( - drag_data, drag_destination_action_, drag_operation, local_root); + Operation drag_operation; + document_is_handling_drag_ = + TryDocumentDrag(drag_data, drag_destination_action_, + drag_operation.operation, local_root); if (!document_is_handling_drag_ && - (drag_destination_action_ & kDragDestinationActionLoad)) - drag_operation = OperationForLoad(drag_data, local_root); + (drag_destination_action_ & kDragDestinationActionLoad)) { + drag_operation.operation = OperationForLoad(drag_data, local_root); + } + + drag_operation.document_is_handling_drag = document_is_handling_drag_; return drag_operation; }
diff --git a/third_party/blink/renderer/core/page/drag_controller.h b/third_party/blink/renderer/core/page/drag_controller.h index e6d4f2b..08bbf5d 100644 --- a/third_party/blink/renderer/core/page/drag_controller.h +++ b/third_party/blink/renderer/core/page/drag_controller.h
@@ -33,7 +33,7 @@ #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/wtf/forward.h" -#include "ui/base/dragdrop/mojom/drag_drop_types.mojom-blink-forward.h" +#include "ui/base/dragdrop/mojom/drag_drop_types.mojom-blink.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/rect.h" @@ -63,8 +63,23 @@ DragController(const DragController&) = delete; DragController& operator=(const DragController&) = delete; - ui::mojom::blink::DragOperation DragEnteredOrUpdated(DragData*, - LocalFrame& local_root); + // Holds the drag operation and whether the document is handling it. Also see + // DragTargetDragEnter() in widget.mojom for further details. + struct Operation { + // The current drag operation as negotiated by the source and destination. + // When not equal to DragOperationNone, the drag data can be dropped onto + // the current drop target in this WebView (the drop target can accept the + // drop). + ui::mojom::blink::DragOperation operation = + ui::mojom::blink::DragOperation::kNone; + + // True if the document intends to handle the drag. This means the drag + // controller will pass the data to the document, but the document might + // still decide not to handle it by not calling preventDefault(). + bool document_is_handling_drag = false; + }; + + Operation DragEnteredOrUpdated(DragData*, LocalFrame& local_root); void DragExited(DragData*, LocalFrame& local_root); void PerformDrag(DragData*, LocalFrame& local_root);
diff --git a/third_party/blink/renderer/core/page/drag_controller_test.cc b/third_party/blink/renderer/core/page/drag_controller_test.cc index 9111fac..c6652a56 100644 --- a/third_party/blink/renderer/core/page/drag_controller_test.cc +++ b/third_party/blink/renderer/core/page/drag_controller_test.cc
@@ -148,7 +148,8 @@ DragData data( object, gfx::PointF(10, 10), gfx::PointF(10, 10), static_cast<DragOperationsMask>(kDragOperationCopy | kDragOperationLink | - kDragOperationMove)); + kDragOperationMove), + false); WebView().GetPage()->GetDragController().DragEnteredOrUpdated( &data, *GetDocument().GetFrame());
diff --git a/third_party/blink/renderer/core/page/drag_data.cc b/third_party/blink/renderer/core/page/drag_data.cc index bb4f676..341ea6d 100644 --- a/third_party/blink/renderer/core/page/drag_data.cc +++ b/third_party/blink/renderer/core/page/drag_data.cc
@@ -41,11 +41,13 @@ DragData::DragData(DataObject* data, const gfx::PointF& client_position, const gfx::PointF& global_position, - DragOperationsMask source_operation_mask) + DragOperationsMask source_operation_mask, + bool force_default_action) : client_position_(client_position), global_position_(global_position), platform_drag_data_(data), - dragging_source_operation_mask_(source_operation_mask) {} + dragging_source_operation_mask_(source_operation_mask), + force_default_action_(force_default_action) {} bool DragData::ContainsHTML() const { return platform_drag_data_->Types().Contains(kMimeTypeTextHTML); @@ -75,6 +77,10 @@ return platform_drag_data_->GetModifiers(); } +bool DragData::ForceDefaultAction() const { + return force_default_action_; +} + void DragData::AsFilePaths(Vector<String>& result) const { const Vector<String>& filenames = platform_drag_data_->Filenames(); for (wtf_size_t i = 0; i < filenames.size(); ++i) {
diff --git a/third_party/blink/renderer/core/page/drag_data.h b/third_party/blink/renderer/core/page/drag_data.h index 0df14e8..386644e 100644 --- a/third_party/blink/renderer/core/page/drag_data.h +++ b/third_party/blink/renderer/core/page/drag_data.h
@@ -51,7 +51,8 @@ DragData(DataObject*, const gfx::PointF& client_position, const gfx::PointF& global_position, - DragOperationsMask); + DragOperationsMask, + bool force_default_action); const gfx::PointF& ClientPosition() const { return client_position_; } const gfx::PointF& GlobalPosition() const { return global_position_; } DataObject* PlatformData() const { return platform_drag_data_; } @@ -70,6 +71,7 @@ DocumentFragment* AsFragment(LocalFrame*) const; bool CanSmartReplace() const; bool ContainsFiles() const; + bool ForceDefaultAction() const; int GetModifiers() const; String DroppedFileSystemId() const; @@ -79,6 +81,7 @@ const gfx::PointF global_position_; DataObject* const platform_drag_data_; const DragOperationsMask dragging_source_operation_mask_; + bool force_default_action_; bool ContainsHTML() const; };
diff --git a/third_party/blink/renderer/core/paint/timing/OWNERS b/third_party/blink/renderer/core/paint/timing/OWNERS index 6e68f96..9d5ea8b 100644 --- a/third_party/blink/renderer/core/paint/timing/OWNERS +++ b/third_party/blink/renderer/core/paint/timing/OWNERS
@@ -1,5 +1 @@ -iclelland@chromium.org -mmocny@chromium.org -nrosenthal@chromium.org -sullivan@chromium.org -yoavweiss@chromium.org +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.cc b/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.cc index d17b310..a74a54dc 100644 --- a/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.cc +++ b/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.cc
@@ -304,6 +304,13 @@ if (image_border.IsEmpty()) return false; + if (RuntimeEnabledFeatures:: + ExcludeBrokenImageIconFromBeingLcpEligibleEnabled()) { + if (media_timing.IsBroken()) { + return false; + } + } + MediaRecordId record_id(&object, &media_timing); MediaRecordIdHash record_id_hash = record_id.GetHash();
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h index 872ed08..ce3c9c2 100644 --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -3125,6 +3125,7 @@ return LineHeightInternal() == ComputedStyleInitialValues::InitialLineHeight(); } + const Length& LineHeight() const { return LineHeightInternal(); } // Sizing properties const Length& UsedWidth() const {
diff --git a/third_party/blink/renderer/core/timing/OWNERS b/third_party/blink/renderer/core/timing/OWNERS index 6d2088d..85718e40 100644 --- a/third_party/blink/renderer/core/timing/OWNERS +++ b/third_party/blink/renderer/core/timing/OWNERS
@@ -1,3 +1,6 @@ -nrosenthal@chromium.org -npm@chromium.org iclelland@chromium.org +nrosenthal@chromium.org +mmocny@chromium.org +npm@chromium.org +sullivan@chromium.org +yoavweiss@chromium.org
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc index fcb3b41..efbad8c6 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -4166,6 +4166,11 @@ // frame owner elements have SupportsFocus() == false. return false; } + // content-visibility:hidden or content-visibility: auto nodes should not be + // keyboard focusable. + if (DisplayLockUtilities::IsDisplayLockedPreventingPaint(element)) { + return false; + } return element->IsKeyboardFocusable(); }
diff --git a/third_party/blink/renderer/modules/mediastream/capture_controller.cc b/third_party/blink/renderer/modules/mediastream/capture_controller.cc index 21c4d31..0c2b4f2 100644 --- a/third_party/blink/renderer/modules/mediastream/capture_controller.cc +++ b/third_party/blink/renderer/modules/mediastream/capture_controller.cc
@@ -29,6 +29,19 @@ media::mojom::DisplayCaptureSurfaceType::WINDOW); } +#if !BUILDFLAG(IS_ANDROID) +bool ShouldFocusCapturedSurface(V8CaptureStartFocusBehavior focus_behavior) { + switch (focus_behavior.AsEnum()) { + case V8CaptureStartFocusBehavior::Enum::kFocusCapturedSurface: + return true; + case V8CaptureStartFocusBehavior::Enum::kFocusCapturingApplication: + case V8CaptureStartFocusBehavior::Enum::kNoFocusChange: + return false; + } + NOTREACHED_NORETURN(); +} +#endif + } // namespace CaptureController* CaptureController::Create(ExecutionContext* context) { @@ -119,9 +132,9 @@ } #if !BUILDFLAG(IS_ANDROID) - const bool focus = focus_behavior_->AsEnum() == - V8CaptureStartFocusBehavior::Enum::kFocusCapturedSurface; - client->FocusCapturedSurface(String(descriptor_id_), focus); + client->FocusCapturedSurface( + String(descriptor_id_), + ShouldFocusCapturedSurface(focus_behavior_.value())); #endif }
diff --git a/third_party/blink/renderer/modules/mediastream/capture_controller.idl b/third_party/blink/renderer/modules/mediastream/capture_controller.idl index f642d872..73e8f6b 100644 --- a/third_party/blink/renderer/modules/mediastream/capture_controller.idl +++ b/third_party/blink/renderer/modules/mediastream/capture_controller.idl
@@ -5,6 +5,7 @@ // https://w3c.github.io/mediacapture-screen-share/#dom-capturecontroller enum CaptureStartFocusBehavior { + "focus-capturing-application", "focus-captured-surface", "no-focus-change" };
diff --git a/third_party/blink/renderer/modules/sanitizer_api/README.md b/third_party/blink/renderer/modules/sanitizer_api/README.md index c065e4c..e438ada 100644 --- a/third_party/blink/renderer/modules/sanitizer_api/README.md +++ b/third_party/blink/renderer/modules/sanitizer_api/README.md
@@ -24,13 +24,15 @@ ## Staged / Incremental Rollout -An initial version of the Sanitizer API is enabled by default. Additional -features are scheduled to be launched in stages. The API availability +The Sanitizer API is scheduled to be launched in stages. The API availability can be controlled via flags: -* `--enable-blink-features=SanitizerAPI`: This includes the sanitization - methods of the `Sanitizer` object, as specified as of 04/2022. -These APIs are likely to change. +* `--enable-blink-features=SanitizerAPIv0`: This includes the basic Sanitizer + API with configuration and the `Element.setHTML` method, but not the + `.sanitizeFor` or `.sanitize` methods. This flag is on by default. +* `--enable-blink-features=SanitizerAPI`: This includes `SanitizerAPv0` + plus the sanitization methods of the `Sanitizer` object, as specified + as of 04/2022. These APIs are likely to change. The general `--enable-experimental-web-platform-features` flag implies the full `--enable-blink-features=SanitizerAPI` feature set.
diff --git a/third_party/blink/renderer/modules/sanitizer_api/element_sanitizer.idl b/third_party/blink/renderer/modules/sanitizer_api/element_sanitizer.idl index a8a9180..bc228442 100644 --- a/third_party/blink/renderer/modules/sanitizer_api/element_sanitizer.idl +++ b/third_party/blink/renderer/modules/sanitizer_api/element_sanitizer.idl
@@ -9,6 +9,7 @@ }; [ + RuntimeEnabled=SanitizerAPI, SecureContext, ImplementedAs=ElementSanitizer ] partial interface Element {
diff --git a/third_party/blink/renderer/modules/sanitizer_api/sanitizer.idl b/third_party/blink/renderer/modules/sanitizer_api/sanitizer.idl index 1a4823e5..b91de8a 100644 --- a/third_party/blink/renderer/modules/sanitizer_api/sanitizer.idl +++ b/third_party/blink/renderer/modules/sanitizer_api/sanitizer.idl
@@ -8,13 +8,14 @@ [ Exposed=Window, - SecureContext + SecureContext, + RuntimeEnabled=SanitizerAPI ] interface Sanitizer { [MeasureAs=SanitizerAPICreated, CallWith=ExecutionContext, RaisesException] constructor(optional SanitizerConfig config = {}); - [MeasureAs=SanitizerAPIToFragment, RuntimeEnabled=SanitizerAPI, + [MeasureAs=SanitizerAPIToFragment, CallWith=ScriptState, RaisesException] DocumentFragment sanitize(SanitizerInput input); - [MeasureAs=SanitizerAPISanitizeFor, RuntimeEnabled=SanitizerAPI, CallWith=ScriptState, RaisesException] Element? sanitizeFor(DOMString element, DOMString markup); + [MeasureAs=SanitizerAPISanitizeFor, CallWith=ScriptState, RaisesException] Element? sanitizeFor(DOMString element, DOMString markup); [MeasureAs=SanitizerAPIGetConfig] SanitizerConfig getConfiguration(); [MeasureAs=SanitizerAPIGetDefaultConfig] static SanitizerConfig getDefaultConfiguration();
diff --git a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc index 9211b52..1cf4d95 100644 --- a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc +++ b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc
@@ -10,7 +10,6 @@ #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_blend_operation.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_buffer_binding_type.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_compare_function.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_location.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_cull_mode.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_error_filter.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_feature_name.h" @@ -22,7 +21,6 @@ #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_pipeline_statistic_name.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_primitive_topology.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_query_type.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_location.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_sampler_binding_type.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_stencil_operation.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_storage_texture_access.h" @@ -918,26 +916,6 @@ } } -WGPUComputePassTimestampLocation AsDawnEnum( - const V8GPUComputePassTimestampLocation& webgpu_enum) { - switch (webgpu_enum.AsEnum()) { - case V8GPUComputePassTimestampLocation::Enum::kBeginning: - return WGPUComputePassTimestampLocation_Beginning; - case V8GPUComputePassTimestampLocation::Enum::kEnd: - return WGPUComputePassTimestampLocation_End; - } -} - -WGPURenderPassTimestampLocation AsDawnEnum( - const V8GPURenderPassTimestampLocation& webgpu_enum) { - switch (webgpu_enum.AsEnum()) { - case V8GPURenderPassTimestampLocation::Enum::kBeginning: - return WGPURenderPassTimestampLocation_Beginning; - case V8GPURenderPassTimestampLocation::Enum::kEnd: - return WGPURenderPassTimestampLocation_End; - } -} - const char* FromDawnEnum(WGPUBufferMapState dawn_enum) { switch (dawn_enum) { case WGPUBufferMapState_Unmapped:
diff --git a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h index f2399be..2da6b74b4c 100644 --- a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h +++ b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h
@@ -32,8 +32,6 @@ class V8GPUFrontFace; class V8GPUTextureAspect; class V8GPUErrorFilter; -class V8GPUComputePassTimestampLocation; -class V8GPURenderPassTimestampLocation; enum class PredefinedColorSpace; // Convert WebGPU bitfield values to Dawn enums. These have the same value. @@ -73,10 +71,6 @@ WGPUFrontFace AsDawnEnum(const V8GPUFrontFace& webgpu_enum); WGPUTextureAspect AsDawnEnum(const V8GPUTextureAspect& webgpu_enum); WGPUErrorFilter AsDawnEnum(const V8GPUErrorFilter& webgpu_enum); -WGPUComputePassTimestampLocation AsDawnEnum( - const V8GPUComputePassTimestampLocation& webgpu_enum); -WGPURenderPassTimestampLocation AsDawnEnum( - const V8GPURenderPassTimestampLocation& webgpu_enum); // Convert Dawn enums to WebGPU IDL enums. const char* FromDawnEnum(WGPUQueryType dawn_enum);
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc b/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc index 91cfe92..120ac6e 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc
@@ -31,8 +31,6 @@ switch (f) { case WGPUFeatureName_Depth32FloatStencil8: return V8GPUFeatureName::Enum::kDepth32FloatStencil8; - case WGPUFeatureName_TimestampQuery: - return V8GPUFeatureName::Enum::kTimestampQuery; case WGPUFeatureName_TimestampQueryInsidePasses: return V8GPUFeatureName::Enum::kTimestampQueryInsidePasses; case WGPUFeatureName_PipelineStatisticsQuery:
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.cc b/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.cc index 14f321d..1a4717ad 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.cc
@@ -7,17 +7,13 @@ #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_command_buffer_descriptor.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_command_encoder_descriptor.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_descriptor.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_write.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_compute_pass_timestamp_writes.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_image_copy_buffer.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_image_copy_texture.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_color_attachment.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_depth_stencil_attachment.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_descriptor.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_write.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_render_pass_timestamp_writes.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_union_gpucomputepasstimestampwritesequence_gpucomputepasstimestampwrites.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_union_gpurenderpasstimestampwritesequence_gpurenderpasstimestampwrites.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_buffer.h" #include "third_party/blink/renderer/modules/webgpu/gpu_command_buffer.h" @@ -55,40 +51,6 @@ namespace { -// TODO(dawn:1800): Remove after a deprecation period; -using ComputeTimestampWrites = - V8UnionGPUComputePassTimestampWriteSequenceOrGPUComputePassTimestampWrites; -using RenderTimestampWrites = - V8UnionGPURenderPassTimestampWriteSequenceOrGPURenderPassTimestampWrites; - -// TODO(dawn:1800): Remove after a deprecation period; -WGPUComputePassTimestampWrite AsDawnType( - const GPUComputePassTimestampWrite* webgpu_desc) { - DCHECK(webgpu_desc); - DCHECK(webgpu_desc->querySet()); - - WGPUComputePassTimestampWrite dawn_desc = {}; - dawn_desc.querySet = webgpu_desc->querySet()->GetHandle(); - dawn_desc.queryIndex = webgpu_desc->queryIndex(); - dawn_desc.location = AsDawnEnum(webgpu_desc->location()); - - return dawn_desc; -} - -// TODO(dawn:1800): Remove after a deprecation period; -WGPURenderPassTimestampWrite AsDawnType( - const GPURenderPassTimestampWrite* webgpu_desc) { - DCHECK(webgpu_desc); - DCHECK(webgpu_desc->querySet()); - - WGPURenderPassTimestampWrite dawn_desc = {}; - dawn_desc.querySet = webgpu_desc->querySet()->GetHandle(); - dawn_desc.queryIndex = webgpu_desc->queryIndex(); - dawn_desc.location = AsDawnEnum(webgpu_desc->location()); - - return dawn_desc; -} - WGPURenderPassDepthStencilAttachment AsDawnType( GPUDevice* device, const GPURenderPassDepthStencilAttachment* webgpu_desc) { @@ -213,77 +175,8 @@ dawn_desc.occlusionQuerySet = AsDawnType(descriptor->occlusionQuerySet()); } - std::vector<WGPURenderPassTimestampWrite> dawn_timestamp_writes; if (descriptor->hasTimestampWrites()) { - V8GPUFeatureName::Enum requiredFeatureEnum = - V8GPUFeatureName::Enum::kTimestampQuery; - - if (descriptor->timestampWrites()->GetContentType() == - RenderTimestampWrites::ContentType:: - kGPURenderPassTimestampWriteSequence) { - // TODO(dawn:1800): Remove this branch after a deprecation period; - device_->AddSingletonWarning(GPUSingletonWarning::kTimestampArray); - - auto timestamp_sequence = - descriptor->timestampWrites() - ->GetAsGPURenderPassTimestampWriteSequence(); - - uint32_t timestamp_writes_count = timestamp_sequence.size(); - for (uint32_t i = 0; i < timestamp_writes_count; ++i) { - dawn_timestamp_writes.push_back( - AsDawnType(timestamp_sequence[i].Get())); - } - - if (timestamp_writes_count > 0 && - !device_->features()->has(requiredFeatureEnum)) { - exception_state.ThrowTypeError( - String::Format("Use of the timestampWrites member in compute pass " - "descriptor requires the '%s' " - "feature to be enabled on %s.", - V8GPUFeatureName(requiredFeatureEnum).AsCStr(), - device_->formattedLabel().c_str())); - return nullptr; - } - } else { - if (!device_->features()->has(requiredFeatureEnum)) { - exception_state.ThrowTypeError( - String::Format("Use of the timestampWrites member in compute pass " - "descriptor requires the '%s' " - "feature to be enabled on %s.", - V8GPUFeatureName(requiredFeatureEnum).AsCStr(), - device_->formattedLabel().c_str())); - return nullptr; - } - - GPURenderPassTimestampWrites* timestamp_writes = - descriptor->timestampWrites()->GetAsGPURenderPassTimestampWrites(); - - if (timestamp_writes->hasBeginningOfPassWriteIndex()) { - WGPURenderPassTimestampWrite begin_write = {}; - begin_write.querySet = timestamp_writes->querySet()->GetHandle(); - begin_write.queryIndex = timestamp_writes->beginningOfPassWriteIndex(); - begin_write.location = WGPURenderPassTimestampLocation_Beginning; - dawn_timestamp_writes.push_back(begin_write); - } - - if (timestamp_writes->hasEndOfPassWriteIndex()) { - WGPURenderPassTimestampWrite end_write = {}; - end_write.querySet = timestamp_writes->querySet()->GetHandle(); - end_write.queryIndex = timestamp_writes->endOfPassWriteIndex(); - end_write.location = WGPURenderPassTimestampLocation_End; - dawn_timestamp_writes.push_back(end_write); - } - - if (dawn_timestamp_writes.size() == 0) { - GetProcs().commandEncoderInjectValidationError( - GetHandle(), - "If timestampWrites is specified at least one of " - "beginningOfPassWriteIndex or endOfPassWriteIndex must be given."); - } - } - - dawn_desc.timestampWrites = dawn_timestamp_writes.data(); - dawn_desc.timestampWriteCount = dawn_timestamp_writes.size(); + // TODO(dawn:1800): Re-enable timestamp queries. } WGPURenderPassDescriptorMaxDrawCount max_draw_count = {}; @@ -312,77 +205,8 @@ dawn_desc.label = label.c_str(); } - std::vector<WGPUComputePassTimestampWrite> dawn_timestamp_writes; if (descriptor->hasTimestampWrites()) { - V8GPUFeatureName::Enum requiredFeatureEnum = - V8GPUFeatureName::Enum::kTimestampQuery; - - if (descriptor->timestampWrites()->GetContentType() == - ComputeTimestampWrites::ContentType:: - kGPUComputePassTimestampWriteSequence) { - // TODO(dawn:1800): Remove this branch after a deprecation period; - device_->AddSingletonWarning(GPUSingletonWarning::kTimestampArray); - - auto timestamp_sequence = - descriptor->timestampWrites() - ->GetAsGPUComputePassTimestampWriteSequence(); - - uint32_t timestamp_writes_count = timestamp_sequence.size(); - for (uint32_t i = 0; i < timestamp_writes_count; ++i) { - dawn_timestamp_writes.push_back( - AsDawnType(timestamp_sequence[i].Get())); - } - - if (timestamp_writes_count > 0 && - !device_->features()->has(requiredFeatureEnum)) { - exception_state.ThrowTypeError( - String::Format("Use of the timestampWrites member in compute pass " - "descriptor requires the '%s' " - "feature to be enabled on %s.", - V8GPUFeatureName(requiredFeatureEnum).AsCStr(), - device_->formattedLabel().c_str())); - return nullptr; - } - } else { - if (!device_->features()->has(requiredFeatureEnum)) { - exception_state.ThrowTypeError( - String::Format("Use of the timestampWrites member in compute pass " - "descriptor requires the '%s' " - "feature to be enabled on %s.", - V8GPUFeatureName(requiredFeatureEnum).AsCStr(), - device_->formattedLabel().c_str())); - return nullptr; - } - - GPUComputePassTimestampWrites* timestamp_writes = - descriptor->timestampWrites()->GetAsGPUComputePassTimestampWrites(); - - if (timestamp_writes->hasBeginningOfPassWriteIndex()) { - WGPUComputePassTimestampWrite begin_write = {}; - begin_write.querySet = timestamp_writes->querySet()->GetHandle(); - begin_write.queryIndex = timestamp_writes->beginningOfPassWriteIndex(); - begin_write.location = WGPUComputePassTimestampLocation_Beginning; - dawn_timestamp_writes.push_back(begin_write); - } - - if (timestamp_writes->hasEndOfPassWriteIndex()) { - WGPUComputePassTimestampWrite end_write = {}; - end_write.querySet = timestamp_writes->querySet()->GetHandle(); - end_write.queryIndex = timestamp_writes->endOfPassWriteIndex(); - end_write.location = WGPUComputePassTimestampLocation_End; - dawn_timestamp_writes.push_back(end_write); - } - - if (dawn_timestamp_writes.size() == 0) { - GetProcs().commandEncoderInjectValidationError( - GetHandle(), - "If timestampWrites is specified at least one of " - "beginningOfPassWriteIndex or endOfPassWriteIndex must be given."); - } - } - - dawn_desc.timestampWrites = dawn_timestamp_writes.data(); - dawn_desc.timestampWriteCount = dawn_timestamp_writes.size(); + // TODO(dawn:1800): Re-enable timestamp queries. } GPUComputePassEncoder* encoder = MakeGarbageCollected<GPUComputePassEncoder>(
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_descriptor.idl b/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_descriptor.idl index 63a0008..0aaaede 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_descriptor.idl +++ b/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_descriptor.idl
@@ -5,8 +5,5 @@ // https://gpuweb.github.io/gpuweb/ dictionary GPUComputePassDescriptor : GPUObjectDescriptorBase { - GPUComputePassTimestampWritesCompat timestampWrites; + GPUComputePassTimestampWrites timestampWrites; }; - -// TODO(dawn:1800): Remove after a deprecation period; -typedef (GPUComputePassTimestampWrites or sequence<GPUComputePassTimestampWrite>) GPUComputePassTimestampWritesCompat;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_timestamp_write.idl b/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_timestamp_write.idl deleted file mode 100644 index bda7857..0000000 --- a/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_timestamp_write.idl +++ /dev/null
@@ -1,17 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://gpuweb.github.io/gpuweb/ - -// TODO(dawn:1800): Remove after a deprecation period; -dictionary GPUComputePassTimestampWrite { - required GPUQuerySet querySet; - required GPUSize32 queryIndex; - required GPUComputePassTimestampLocation location; -}; - -enum GPUComputePassTimestampLocation { - "beginning", - "end" -};
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_device.cc b/third_party/blink/renderer/modules/webgpu/gpu_device.cc index 29cb424..b9bdc9e 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_device.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_device.cc
@@ -238,12 +238,6 @@ "has no effect. It is likely that \"depthOrArrayLayers\" was " "intended instead."; break; - case GPUSingletonWarning::kTimestampArray: - // TODO(dawn:1800): Remove after a deprecation period; - message = - "Specifying timestampWrites as an array is deprecated and will " - "soon be removed."; - break; case GPUSingletonWarning::kCount: NOTREACHED(); }
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_device.h b/third_party/blink/renderer/modules/webgpu/gpu_device.h index 6081c1d..ac51158f 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_device.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_device.h
@@ -64,7 +64,6 @@ enum class GPUSingletonWarning { kNonPreferredFormat, kDepthKey, - kTimestampArray, kCount, // Must be last };
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pass_descriptor.idl b/third_party/blink/renderer/modules/webgpu/gpu_render_pass_descriptor.idl index f481cb2..e3c33946 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_render_pass_descriptor.idl +++ b/third_party/blink/renderer/modules/webgpu/gpu_render_pass_descriptor.idl
@@ -8,7 +8,7 @@ required sequence<GPURenderPassColorAttachment?> colorAttachments; GPURenderPassDepthStencilAttachment depthStencilAttachment; GPUQuerySet occlusionQuerySet; - GPURenderPassTimestampWritesCompat timestampWrites; + GPURenderPassTimestampWrites timestampWrites; GPUSize64 maxDrawCount; }; @@ -21,6 +21,3 @@ "store", "discard", }; - -// TODO(dawn:1800): Remove after a deprecation period; -typedef (GPURenderPassTimestampWrites or sequence<GPURenderPassTimestampWrite>) GPURenderPassTimestampWritesCompat;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pass_timestamp_write.idl b/third_party/blink/renderer/modules/webgpu/gpu_render_pass_timestamp_write.idl deleted file mode 100644 index 5db857b..0000000 --- a/third_party/blink/renderer/modules/webgpu/gpu_render_pass_timestamp_write.idl +++ /dev/null
@@ -1,17 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://gpuweb.github.io/gpuweb/ - -// TODO(dawn:1800): Remove after a deprecation period; -dictionary GPURenderPassTimestampWrite { - required GPUQuerySet querySet; - required GPUSize32 queryIndex; - required GPURenderPassTimestampLocation location; -}; - -enum GPURenderPassTimestampLocation { - "beginning", - "end" -};
diff --git a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h index af0288f..bc0d255 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h +++ b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h
@@ -157,7 +157,6 @@ mutable SnapshotState snapshot_state_; CanvasResourceHost* resource_host_; - viz::TransferableResource previous_frame_resource_; absl::optional<cc::PaintRecord> last_recording_;
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource.cc b/third_party/blink/renderer/platform/graphics/canvas_resource.cc index e8c615a4..8c97d6d 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource.cc
@@ -228,7 +228,7 @@ *out_resource = viz::TransferableResource::MakeGpu( mailbox, TextureTarget(), GetSyncToken(), Size(), GetSharedImageFormat(), - IsOverlayCandidate()); + IsOverlayCandidate(), viz::TransferableResource::ResourceSource::kCanvas); out_resource->color_space = GetColorSpace(); if (NeedsReadLockFences()) { @@ -252,7 +252,8 @@ // TransferableResource. Clients are expected to render in N32 format but use // RGBA as the tagged format on resources. *out_resource = viz::TransferableResource::MakeSoftware( - mailbox, Size(), viz::SinglePlaneFormat::kRGBA_8888); + mailbox, Size(), viz::SinglePlaneFormat::kRGBA_8888, + viz::TransferableResource::ResourceSource::kCanvas); out_resource->color_space = GetColorSpace();
diff --git a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc index 79616bd..10b0a63 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc +++ b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc
@@ -519,7 +519,8 @@ static_cast<uint8_t*>(registered.bitmap->memory())); *out_resource = viz::TransferableResource::MakeSoftware( - registered.bitmap->id(), size_, viz::SinglePlaneFormat::kRGBA_8888); + registered.bitmap->id(), size_, viz::SinglePlaneFormat::kRGBA_8888, + viz::TransferableResource::ResourceSource::kDrawingBuffer); out_resource->color_space = back_color_buffer_->color_space; // This holds a ref on the DrawingBuffer that will keep it alive until the @@ -619,7 +620,8 @@ color_buffer_for_mailbox->texture_target, color_buffer_for_mailbox->produce_sync_token, size_, color_buffer_for_mailbox->format, - color_buffer_for_mailbox->is_overlay_candidate); + color_buffer_for_mailbox->is_overlay_candidate, + viz::TransferableResource::ResourceSource::kDrawingBuffer); out_resource->color_space = color_buffer_for_mailbox->color_space; // This holds a ref on the DrawingBuffer that will keep it alive until the // mailbox is released (and while the release callback is running). @@ -786,6 +788,8 @@ resource.format = color_buffer->format; resource.is_overlay_candidate = color_buffer->is_overlay_candidate; resource.color_space = color_buffer->color_space; + resource.resource_source = + viz::TransferableResource::ResourceSource::kDrawingBuffer; return ExternalCanvasResource::Create( resource, viz::ReleaseCallback(), context_provider_->GetWeakPtr(),
diff --git a/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc b/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc index 93346915..cb87f9e 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc +++ b/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc
@@ -196,7 +196,8 @@ mailbox_holder.mailbox, mailbox_holder.texture_target, mailbox_holder.sync_token, size, viz::SkColorTypeToSinglePlaneSharedImageFormat(color_type), - is_overlay_candidate); + is_overlay_candidate, + viz::TransferableResource::ResourceSource::kImageLayerBridge); auto func = WTF::BindOnce(&ImageLayerBridge::ResourceReleasedGpu, WrapWeakPersistent(this), @@ -234,7 +235,8 @@ return false; *out_resource = viz::TransferableResource::MakeSoftware( - registered.bitmap->id(), size, format); + registered.bitmap->id(), size, format, + viz::TransferableResource::ResourceSource::kImageLayerBridge); out_resource->color_space = sk_image->colorSpace() ? gfx::ColorSpace(*sk_image->colorSpace()) : gfx::ColorSpace::CreateSRGB();
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.cc b/third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.cc index 7e29d61..34f2ba9 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.cc +++ b/third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.cc
@@ -291,7 +291,8 @@ *out_resource = viz::TransferableResource::MakeGpu( current_swap_buffer_->mailbox, GetTextureTarget(), current_swap_buffer_->access_finished_token, current_swap_buffer_->size, - Format(), IsOverlayCandidate()); + Format(), IsOverlayCandidate(), + viz::TransferableResource::ResourceSource::kWebGPUSwapBuffer); out_resource->color_space = PredefinedColorSpaceToGfxColorSpace(color_space_); // This holds a ref on the SwapBuffers that will keep it alive until the
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc index 8d758f5e..4df723d6 100644 --- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc +++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc
@@ -218,6 +218,12 @@ stream->num_read_bytes += num_bytes; } +inline float FractionToFloat(uint32_t numerator, uint32_t denominator) { + // First cast to double and not float because uint32_t->float conversion can + // cause precision loss. + return static_cast<double>(numerator) / denominator; +} + } // namespace AVIFImageDecoder::AVIFImageDecoder(AlphaOption alpha_option, @@ -1205,15 +1211,6 @@ } } -static inline float FractionToFloat(uint32_t numerator, uint32_t denominator) { - // First cast to double and not float because uint32_t->float conversion can - // cause precision loss. - // E.g. if numerator=UINT32_MAX and denominator=UINT32_MAX/3, casting the - // numerator to float would cause precision loss even though the result of the - // division (3) can be represented exactly. - return static_cast<double>(numerator) / denominator; -} - bool AVIFImageDecoder::GetGainmapInfoAndData( SkGainmapInfo& out_gainmap_info, scoped_refptr<SegmentReader>& out_gainmap_data) const {
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h b/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h index faa5f8b..6661b76 100644 --- a/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h
@@ -207,12 +207,6 @@ render_blocking_behavior_ = render_blocking_behavior; } - void SetDiscoveryTime(base::TimeTicks discovery_time) { - discovery_time_ = discovery_time; - } - - base::TimeTicks DiscoveryTime() { return discovery_time_; } - void SetIsPotentiallyLCPElement(bool flag) { is_potentially_lcp_element_ = flag; } @@ -253,7 +247,6 @@ bool is_from_origin_dirty_style_sheet_ = false; RenderBlockingBehavior render_blocking_behavior_ = RenderBlockingBehavior::kUnset; - base::TimeTicks discovery_time_; bool is_potentially_lcp_element_ = false; bool is_potentially_lcp_influencer_ = false;
diff --git a/third_party/blink/renderer/platform/loader/fetch/media_timing.h b/third_party/blink/renderer/platform/loader/fetch/media_timing.h index 7976f50..c82ceb28 100644 --- a/third_party/blink/renderer/platform/loader/fetch/media_timing.h +++ b/third_party/blink/renderer/platform/loader/fetch/media_timing.h
@@ -59,6 +59,8 @@ // For video, it would be video. virtual AtomicString MediaType() const = 0; + virtual bool IsBroken() const = 0; + virtual base::TimeTicks DiscoveryTime() const = 0; virtual base::TimeTicks LoadStart() const = 0;
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc index 164fd33..d249f94 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
@@ -850,6 +850,19 @@ info->response_end = now; info->render_blocking_status = render_blocking_behavior == RenderBlockingBehavior::kBlocking; + + // Create a ResourceLoadTiming object and store LCP breakdown timings for + // images. + if (resource->GetType() == ResourceType::kImage) { + // The resource_load_timing may be null in tests. + if (ResourceLoadTiming* resource_load_timing = + resource->GetResponse().GetResourceLoadTiming()) { + resource_load_timing->SetDiscoveryTime(info->start_time); + resource_load_timing->SetSendStart(info->start_time); + resource_load_timing->SetResponseEnd(info->start_time); + } + } + scheduled_resource_timing_reports_.push_back(ScheduledResourceTimingInfo{ std::move(info), resource->Options().initiator_info.name}); if (!resource_timing_report_timer_.IsActive()) @@ -2822,6 +2835,16 @@ info->render_blocking_status = pending_info.render_blocking_behavior == RenderBlockingBehavior::kBlocking; info->response_end = response_end; + // Store LCP breakdown timings for images. + if (resource->GetType() == ResourceType::kImage) { + // The resource_load_timing may be null in tests. + if (ResourceLoadTiming* resource_load_timing = + resource->GetResponse().GetResourceLoadTiming()) { + resource_load_timing->SetDiscoveryTime(info->start_time); + resource_load_timing->SetResponseEnd(response_end); + } + } + Context().AddResourceTiming(std::move(info), initiator_type); }
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_load_timing.cc b/third_party/blink/renderer/platform/loader/fetch/resource_load_timing.cc index ce6358c..48fbf4b 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_load_timing.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_load_timing.cc
@@ -117,6 +117,14 @@ push_end_ = push_end; } +void ResourceLoadTiming::SetDiscoveryTime(base::TimeTicks discovery_time) { + discovery_time_ = discovery_time; +} + +void ResourceLoadTiming::SetResponseEnd(base::TimeTicks response_end) { + response_end_ = response_end; +} + double ResourceLoadTiming::CalculateMillisecondDelta( base::TimeTicks time) const { return time.is_null() ? -1 : (time - request_time_).InMillisecondsF();
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_load_timing.h b/third_party/blink/renderer/platform/loader/fetch/resource_load_timing.h index 6bc9377..3c2f242 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_load_timing.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_load_timing.h
@@ -62,6 +62,8 @@ void SetSslEnd(base::TimeTicks); void SetPushStart(base::TimeTicks); void SetPushEnd(base::TimeTicks); + void SetDiscoveryTime(base::TimeTicks); + void SetResponseEnd(base::TimeTicks); base::TimeTicks DomainLookupStart() const { return domain_lookup_start_; } base::TimeTicks RequestTime() const { return request_time_; } @@ -90,6 +92,8 @@ base::TimeTicks SslEnd() const { return ssl_end_; } base::TimeTicks PushStart() const { return push_start_; } base::TimeTicks PushEnd() const { return push_end_; } + base::TimeTicks DiscoveryTime() const { return discovery_time_; } + base::TimeTicks ResponseEnd() const { return response_end_; } double CalculateMillisecondDelta(base::TimeTicks) const; @@ -128,6 +132,8 @@ base::TimeTicks ssl_end_; base::TimeTicks push_start_; base::TimeTicks push_end_; + base::TimeTicks discovery_time_; + base::TimeTicks response_end_; }; } // namespace blink
diff --git a/third_party/blink/renderer/platform/mojo/drag_mojom_traits.cc b/third_party/blink/renderer/platform/mojo/drag_mojom_traits.cc index 714462a..e17e168 100644 --- a/third_party/blink/renderer/platform/mojo/drag_mojom_traits.cc +++ b/third_party/blink/renderer/platform/mojo/drag_mojom_traits.cc
@@ -303,6 +303,12 @@ } // static +bool StructTraits<blink::mojom::DragDataDataView, blink::WebDragData>:: + force_default_action(const blink::WebDragData& drag_data) { + return drag_data.ForceDefaultAction(); +} + +// static network::mojom::ReferrerPolicy StructTraits< blink::mojom::DragDataDataView, blink::WebDragData>::referrer_policy(const blink::WebDragData& drag_data) { @@ -323,6 +329,7 @@ blink::WebDragData drag_data; drag_data.SetItems(std::move(items)); drag_data.SetFilesystemId(file_system_id); + drag_data.SetForceDefaultAction(data.force_default_action()); drag_data.SetReferrerPolicy(referrer_policy); *out = std::move(drag_data); return true;
diff --git a/third_party/blink/renderer/platform/mojo/drag_mojom_traits.h b/third_party/blink/renderer/platform/mojo/drag_mojom_traits.h index 2a4ee58..fcbc0b4 100644 --- a/third_party/blink/renderer/platform/mojo/drag_mojom_traits.h +++ b/third_party/blink/renderer/platform/mojo/drag_mojom_traits.h
@@ -120,6 +120,7 @@ static const blink::WebVector<blink::WebDragData::Item>& items( const blink::WebDragData& drag_data); static WTF::String file_system_id(const blink::WebDragData& drag_data); + static bool force_default_action(const blink::WebDragData& drag_data); static network::mojom::ReferrerPolicy referrer_policy( const blink::WebDragData& drag_data); static bool Read(blink::mojom::DragDataDataView data,
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index db58687..9a987e0e 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1302,6 +1302,14 @@ status: "test", }, { + // This flag makes the details element's toggle events use the + // ToggleEvent class instead of being a regular Event. + // http://crbug.com/1416738 + // https://github.com/whatwg/html/pull/8893 + name: "DetailsElementToggleEvent", + status: "stable", + }, + { name: "DetailsStyling", status: "experimental", }, @@ -1516,6 +1524,10 @@ status: "experimental", base_feature: "none", }, + { + name: "ExcludeBrokenImageIconFromBeingLcpEligible", + status: "experimental", + }, { name: "ExperimentalContentSecurityPolicyFeatures", status: "experimental",
diff --git a/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor.py b/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor.py index c6caeca..6a7b4c3 100644 --- a/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor.py +++ b/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor.py
@@ -30,8 +30,9 @@ class WPTDirMetadata(NamedTuple): team_email: Optional[str] = None - component: Optional[str] = None + monorail_component: Optional[str] = None should_notify: bool = False + buganizer_public_component: Optional[str] = None class DirectoryOwnersExtractor: @@ -188,6 +189,8 @@ # The value of `notify` is one of ['TRINARY_UNSPECIFIED', 'YES', 'NO']. # Assume that users opt in by default; return False only when notify is # 'NO'. - return WPTDirMetadata(data.get('teamEmail'), - data.get('monorail', {}).get('component'), - data.get('wpt', {}).get('notify') != 'NO') + return WPTDirMetadata( + data.get('teamEmail'), + data.get('monorail', {}).get('component'), + data.get('wpt', {}).get('notify') != 'NO', + data.get('buganizerPublic', {}).get('componentId'))
diff --git a/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor_unittest.py b/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor_unittest.py index 89f442d..04c2841 100644 --- a/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor_unittest.py +++ b/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor_unittest.py
@@ -208,8 +208,8 @@ extractor = DirectoryOwnersExtractor(self.host) self.assertEqual( - extractor.read_dir_metadata(MOCK_WEB_TESTS + 'a/b').component, - 'foo') + extractor.read_dir_metadata(MOCK_WEB_TESTS + + 'a/b').monorail_component, 'foo') def test_read_dir_metadata_success(self): data = ( @@ -225,7 +225,7 @@ ]) self.assertEqual(wpt_dir_metadata.team_email, 'bar') self.assertEqual(wpt_dir_metadata.should_notify, True) - self.assertEqual(wpt_dir_metadata.component, 'foo') + self.assertEqual(wpt_dir_metadata.monorail_component, 'foo') def test_read_dir_metadata_none(self): self.host.executive = MockExecutive(output='error') @@ -246,7 +246,7 @@ wpt_dir_metadata = extractor.read_dir_metadata(MOCK_WEB_TESTS + 'a/b') self.assertIsNone(wpt_dir_metadata.team_email) self.assertTrue(wpt_dir_metadata.should_notify) - self.assertIsNone(wpt_dir_metadata.component) + self.assertIsNone(wpt_dir_metadata.monorail_component) def test_read_dir_all_fields(self): data = ( @@ -258,7 +258,7 @@ wpt_dir_metadata = extractor.read_dir_metadata(MOCK_WEB_TESTS + 'a/b') self.assertEqual(wpt_dir_metadata.team_email, 'bar') self.assertTrue(wpt_dir_metadata.should_notify) - self.assertEqual(wpt_dir_metadata.component, 'foo') + self.assertEqual(wpt_dir_metadata.monorail_component, 'foo') def test_read_dir_empty_wpt(self): data = ('{"dirs":{"third_party/blink/web_tests/a/b":{"monorail":' @@ -269,7 +269,7 @@ wpt_dir_metadata = extractor.read_dir_metadata(MOCK_WEB_TESTS + 'a/b') self.assertEqual(wpt_dir_metadata.team_email, 'bar') self.assertTrue(wpt_dir_metadata.should_notify) - self.assertEqual(wpt_dir_metadata.component, 'foo') + self.assertEqual(wpt_dir_metadata.monorail_component, 'foo') def test_read_dir_disable_wpt(self): data = ( @@ -281,4 +281,4 @@ wpt_dir_metadata = extractor.read_dir_metadata(MOCK_WEB_TESTS + 'a/b') self.assertEqual(wpt_dir_metadata.team_email, 'bar') self.assertFalse(wpt_dir_metadata.should_notify) - self.assertEqual(wpt_dir_metadata.component, 'foo') + self.assertEqual(wpt_dir_metadata.monorail_component, 'foo')
diff --git a/third_party/blink/tools/blinkpy/w3c/import_notifier.py b/third_party/blink/tools/blinkpy/w3c/import_notifier.py index 9423ed8..48afee2 100644 --- a/third_party/blink/tools/blinkpy/w3c/import_notifier.py +++ b/third_party/blink/tools/blinkpy/w3c/import_notifier.py
@@ -336,7 +336,11 @@ 'was not added to the CC list.') # component could be None. - components = [metadata.component] if metadata.component else None + components = [metadata.monorail_component + ] if metadata.monorail_component else None + buganizer_public_components = [ + metadata.buganizer_public_component + ] if metadata.buganizer_public_component else None prologue = ('WPT import {} introduced new failures in {}:\n\n' 'List of new failures:\n'.format( @@ -376,6 +380,10 @@ labels=['Test-WebTest']) _log.info(bug) _log.info("WPT-NOTIFY enabled in %s; adding the bug to the pending list." % full_directory) + + # TODO(crbug.com/1487196): refactor this so we use a common issue which is converted later to + # buganizer or monorail specific issue. + bug.buganizer_public_components = buganizer_public_components bugs.append(bug) return bugs @@ -454,13 +462,16 @@ _log.warning(e) for index, bug in enumerate(bugs, start=1): + buganizer_component_id = BUGANIZER_WPT_COMPONENT if buganizer_api and USE_BUGANIZER: + if bug.buganizer_public_components: + buganizer_component_id = bug.buganizer_public_components[0] buganizer_res = buganizer_api.NewIssue( title=bug.summary, description=bug.description, cc=bug.cc, status="New", - componentId=BUGANIZER_WPT_COMPONENT) + componentId=buganizer_component_id) else: # using monorail response = api.insert_issue(bug)
diff --git a/third_party/blink/tools/blinkpy/w3c/import_notifier_unittest.py b/third_party/blink/tools/blinkpy/w3c/import_notifier_unittest.py index 768914b9..ec560d4 100644 --- a/third_party/blink/tools/blinkpy/w3c/import_notifier_unittest.py +++ b/third_party/blink/tools/blinkpy/w3c/import_notifier_unittest.py
@@ -71,7 +71,6 @@ ]) self.notifier = ImportNotifier(self.host, self.git, self.local_wpt, configs) - self._buganizer_api = BuganizerClientMock def test_find_changed_baselines_of_tests(self): @@ -519,8 +518,10 @@ 'crbug.com/12345 external/wpt/foo/baz.html [ Fail ]'), ], } - dir_metadata = WPTDirMetadata(component='Blink>Infra>Ecosystem', - should_notify=True) + dir_metadata = WPTDirMetadata( + monorail_component='Blink>Infra>Ecosystem', + buganizer_public_component='123', + should_notify=True) with mock.patch.object(self.notifier.owners_extractor, 'read_dir_metadata', return_value=dir_metadata): @@ -528,6 +529,7 @@ 'SHA_START', 'SHA_END', 'https://crrev.com/c/12345') self.assertEqual(bug.body['cc'], []) self.assertEqual(bug.body['components'], ['Blink>Infra>Ecosystem']) + self.assertEquals(bug.buganizer_public_components, ['123']) self.assertEqual( bug.body['summary'], '[WPT] New failures introduced in external/wpt/foo '
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index ea961df..6716b697 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -2690,6 +2690,7 @@ crbug.com/1484043 [ Win ] virtual/fetch-later/external/wpt/fetch/fetch-later/send-on-deactivate.tentative.https.window.html [ Pass Timeout ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 [ Win10.20h2 ] virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/hit-test-unrelated-element.html [ Failure ] crbug.com/626703 [ Mac13 ] virtual/threaded-prefer-compositing/external/wpt/scroll-animations/css/view-timeline-range-animation.html [ Timeout ] crbug.com/626703 [ Mac13 ] virtual/threaded/external/wpt/scroll-animations/css/view-timeline-range-animation.html [ Timeout ] crbug.com/626703 [ Win10.20h2 ] virtual/threaded/external/wpt/css/css-backgrounds/background-attachment-margin-root-001.html [ Failure ] @@ -6743,3 +6744,4 @@ # Gardener 2023-09-28 crbug.com/1487363 [ Linux ] inspector-protocol/overlay/overlay-with-emulation-scale.js [ Failure ] +crbug.com/1486131 [ Linux ] external/wpt/html/browsers/history/the-history-interface/005.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index 33814d22..bc43141 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -140066,6 +140066,151 @@ } ] ], + "custom-highlight-font-metrics-001.html": [ + "755409c6b18d1585e3ba10896c3e7ee5537a05ea", + [ + null, + [ + [ + "/css/css-highlight-api/painting/custom-highlight-font-metrics-001-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 80 + ], + [ + 0, + 4 + ] + ] + ] + ] + } + ] + ], + "custom-highlight-font-metrics-002.html": [ + "48ca92feef0f8bcbaa45371afee9365cbf6ccef7", + [ + null, + [ + [ + "/css/css-highlight-api/painting/custom-highlight-font-metrics-002-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 8 + ] + ] + ] + ] + } + ] + ], + "custom-highlight-font-metrics-003.html": [ + "d1035ed130e1f008716a64fbb9686bb8e4ba203c", + [ + null, + [ + [ + "/css/css-highlight-api/painting/custom-highlight-font-metrics-003-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 8 + ] + ] + ] + ] + } + ] + ], + "custom-highlight-font-metrics-004.html": [ + "fec70e97d312f4c27f58b8229de95357c9925358", + [ + null, + [ + [ + "/css/css-highlight-api/painting/custom-highlight-font-metrics-003-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 8 + ] + ] + ] + ] + } + ] + ], + "custom-highlight-font-metrics-005.html": [ + "5b2eb657730cec1e9873209536d94eebcaf11a63", + [ + null, + [ + [ + "/css/css-highlight-api/painting/custom-highlight-font-metrics-005-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 80 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], "custom-highlight-painting-001.html": [ "82b61ec6de07c4d45796785f3e7b559e64a6deab", [ @@ -282497,11 +282642,11 @@ "support": { ".cache": { "gitignore2.json": [ - "de19673c860537963c098323ceaa91b9e2b91c41", + "fe01c16490129754e334303f859b0656b6122291", [] ], "mtime.json": [ - "66435170ba9ce0e3cec41decc7c9d9799e400aec", + "17ee4d54fddcf8bc2fe96c41713519c7793faef8", [] ] }, @@ -299242,7 +299387,7 @@ [] ], "background-attachment-fixed-inside-transform-1.html.ini": [ - "187f9d3d92b3fa15026817909d21c30b6a0a36fc", + "d1fc6da788a3ac069a97f226a1f04f0816b523f3", [] ], "background-attachment-local": { @@ -299352,7 +299497,7 @@ [] ], "background-attachment-margin-root-001.html.ini": [ - "982ae43ab4c938cf16bdf7ea4a2ae436935a2076", + "7fd3edda6dc129f81c46d7cd23c87ccd038be0ef", [] ], "background-attachment-margin-root-002-ref.html": [ @@ -304470,11 +304615,11 @@ [] ], "contain-style-counters-004.html.ini": [ - "45b55cd58d83651d171cd1c49bb69dd32a574718", + "183f5d66b8595e076e43d7643add81fb8d5d76cd", [] ], "contain-style-counters-005.html.ini": [ - "e905f517cd2911f4fcae4386345c76613f3254b0", + "a01e74fd32224995d2f298bebda1e03482adf987", [] ], "contain-style-counters-ref.html": [ @@ -318815,7 +318960,7 @@ [] ], "grid-area-valid.html.ini": [ - "cc9c0c0eac28fe3254457a15457aafae9daee0d7", + "f1059aba97f9696c25b1ef1476c710561c6d0579", [] ], "grid-column-shortest-serialization-expected.txt": [ @@ -318823,7 +318968,7 @@ [] ], "grid-column-shortest-serialization.html.ini": [ - "cb51c24b7d1f5bfa3a374674d85f40c5ec078530", + "bb8f8ba5ac5ee5fafd96ea577533a6b20898509e", [] ], "grid-columns-rows-get-set-multiple-expected.txt": [ @@ -318839,7 +318984,7 @@ [] ], "grid-row-shortest-serialization.html.ini": [ - "46ef32782ea30c10d87e7ebb43188649f1242d01", + "25e0ca22ed9785c2764114debb850f2bcee1479c", [] ] }, @@ -319266,6 +319411,26 @@ "5e9ef64579800a922d225ab9ca458555fe067dcc", [] ], + "custom-highlight-font-metrics-001-ref.html": [ + "76b7317caabe5bedf10a98bef5cade11a4f6458e", + [] + ], + "custom-highlight-font-metrics-002-ref.html": [ + "13b38d8bbf8accc4d9934738118b551157b1dde9", + [] + ], + "custom-highlight-font-metrics-003-ref.html": [ + "c1a04b0803a080d41645d3439c4260b0459e499c", + [] + ], + "custom-highlight-font-metrics-004-ref.html": [ + "c1a04b0803a080d41645d3439c4260b0459e499c", + [] + ], + "custom-highlight-font-metrics-005-ref.html": [ + "bbfc952116f2f2c86009d8ce6d301d635d71f6e8", + [] + ], "custom-highlight-painting-001-ref.html": [ "b058789f6de04c017dec9a37d8955485dcd6b7e9", [] @@ -333787,7 +333952,7 @@ [] ], "text-spacing-trim-computed.html.ini": [ - "e06ec14e35994124dec44e2000ac8f2d7d25aa01", + "31e61fc0cff848695a3e0b5f80c7cf0572c71846", [] ], "text-spacing-trim-valid-expected.txt": [ @@ -333795,7 +333960,7 @@ [] ], "text-spacing-trim-valid.html.ini": [ - "c820c56f8a1bdd67bef1ebb16c21f1d930e00bd3", + "6c363573efb7a8cc7f3119de46aaa39585d8d245", [] ], "text-transform-computed-expected.txt": [ @@ -334811,7 +334976,7 @@ [] ], "text-spacing-trim-001.html.ini": [ - "6fe48418ede7438b955dac9b93cf66c1385f8b0e", + "856b7b4d466251037c5ee6858fd52b44acc9801f", [] ], "text-spacing-trim-colon-001-ref.html": [ @@ -334819,7 +334984,7 @@ [] ], "text-spacing-trim-colon-001.html.ini": [ - "dbd352c0f08d2e2919bcaedef66efb3fc62ad143", + "a0b3fd2b586542f8f6932f1e234cab627abbad3c", [] ], "text-spacing-trim-combinations-001-expected.txt": [ @@ -334835,7 +335000,7 @@ [] ], "text-spacing-trim-dot-001.html.ini": [ - "087e3b7951eea11e36ce7737a175fc378336bc2f", + "e809663d601ca57387c76d3950d8f9f5b1556aa1", [] ] }, @@ -343621,6 +343786,10 @@ "23fa74dd5e665f4b63322b13f24caf9be691c15b", [] ], + "css-tags-shared-element.html.ini": [ + "805bc2ddcc04075bc689ba1020a2f7ebafea47e8", + [] + ], "dialog-in-rtl-iframe-ref.html": [ "44ed0947abcc467ad02c374238849f96c7df8ae0", [] @@ -343745,6 +343914,10 @@ "8c57dba6588244daa4d3ff8d5daa8a1204563df1", [] ], + "japanese-tag.html.ini": [ + "3b69bcfda3112bf1d2efb234badfb124cabb150b", + [] + ], "massive-element-below-and-on-top-of-viewport-partially-onscreen-new.html.ini": [ "336019071864f993c56fab3caef9fc90e63db082", [] @@ -353234,7 +353407,7 @@ [] ], "insertparagraph-in-non-splittable-element-expected.txt": [ - "dec3f4e7ad997c7b8769ad80e61898bd78b3c48f", + "97250e4115f0937543cd883015052007a42b0984", [] ], "insertparagraph-in-non-splittable-element.html.ini": [ @@ -359994,7 +360167,7 @@ [] ], "fenced-frame.tentative.https.window.js.ini": [ - "ccd1c6dc4c5fa5d7e7e69b842bd3c964be702b40", + "94417df72e4cff24212b84ed9378b243d869dfb7", [] ], "fetch.tentative.https.window.js.ini": [ @@ -360192,7 +360365,7 @@ [] ], "shared-worker-blob-fetch.tentative.https.window.js.ini": [ - "c63674bf03e0bc18dc4b09d0bf741ec5a702fa55", + "ab9f5bfa9c0790a87918f5035283a5c615a57302", [] ], "shared-worker-blob-fetch.tentative.window-expected.txt": [ @@ -415723,7 +415896,7 @@ [] ], "sendorder.https.any.js.ini": [ - "3c5f861bc82e77402bab397f4feca11d6019524a", + "0c2284b4b563dcd314846052134464a534829ca9", [] ], "sendorder.https.any.serviceworker-expected.txt": [ @@ -470770,6 +470943,13 @@ {} ] ], + "highlight-pseudo-from-font-computed.html": [ + "7c436d95d126e0b063e064255db8c5167e13dbef", + [ + null, + {} + ] + ], "highlight-pseudo-parsing.html": [ "c6d999efdf74d6998fe36f6d365d2c33577dabf5", [ @@ -475001,7 +475181,7 @@ ] ], "highlight-cascade-009.html": [ - "884a0958db0833c0db5d615213b235d0ad13b0e8", + "8d275f37dd1a3c58b8ddb313e5bd0fbd17e18759", [ null, {} @@ -500380,7 +500560,7 @@ ] ], "insertparagraph-in-non-splittable-element.html": [ - "21aa495bd675a5b579fa3205db4409eb4adfb8df", + "c77862fecb297e86cbe3605057646cc1238fa1d7", [ null, { @@ -581973,7 +582153,7 @@ ] ], "popover-light-dismiss.html": [ - "4c31bed1635f68774f4368e834b3793d3f857495", + "4a57276bce3cbb1c6bcb287d268af38e4ee19752", [ null, {
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/background-attachment-fixed-inside-transform-1.html.ini b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/background-attachment-fixed-inside-transform-1.html.ini index 187f9d3d..d1fc6da7 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/background-attachment-fixed-inside-transform-1.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/background-attachment-fixed-inside-transform-1.html.ini
@@ -2,4 +2,4 @@ expected: if (product == "content_shell") and (virtual_suite == "threaded") and (os == "win") and (port == "win11"): FAIL if (product == "content_shell") and (virtual_suite == "threaded") and (os == "mac") and (port == "mac11-arm64"): FAIL - if (product == "content_shell") and (virtual_suite == "threaded") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): FAIL + if (product == "content_shell") and (virtual_suite == "threaded") and (os == "linux"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/background-attachment-margin-root-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/background-attachment-margin-root-001.html.ini index 982ae43a..7fd3edd 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/background-attachment-margin-root-001.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/background-attachment-margin-root-001.html.ini
@@ -2,4 +2,4 @@ expected: if (product == "content_shell") and (virtual_suite == "threaded") and (os == "win") and (port == "win10.20h2"): FAIL if (product == "content_shell") and (virtual_suite == "threaded") and (os == "mac") and (port == "mac12-arm64"): FAIL - if (product == "content_shell") and (virtual_suite == "threaded") and (os == "linux") and (flag_specific == ""): FAIL + if (product == "content_shell") and (virtual_suite == "threaded") and (os == "linux"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/contain-style-counters-004.html.ini b/third_party/blink/web_tests/external/wpt/css/css-contain/contain-style-counters-004.html.ini index 45b55cd..183f5d6 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-contain/contain-style-counters-004.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-contain/contain-style-counters-004.html.ini
@@ -1,4 +1,2 @@ [contain-style-counters-004.html] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/contain-style-counters-005.html.ini b/third_party/blink/web_tests/external/wpt/css/css-contain/contain-style-counters-005.html.ini index e905f51..a01e74f 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-contain/contain-style-counters-005.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-contain/contain-style-counters-005.html.ini
@@ -1,4 +1,2 @@ [contain-style-counters-005.html] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-area-valid.html.ini b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-area-valid.html.ini index cc9c0c0..f1059ab 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-area-valid.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-area-valid.html.ini
@@ -6,9 +6,7 @@ expected: FAIL [e.style['grid-area'\] = "1 / i / 2 / auto" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [e.style['grid-area'\] = "auto / i / 2 j" should set the property value] expected: FAIL @@ -23,9 +21,7 @@ expected: FAIL [e.style['grid-area'\] = "i / i / auto / auto" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [e.style['grid-column'\] = "-19 zA" should set the property value] expected: FAIL @@ -55,9 +51,7 @@ expected: FAIL [e.style['grid-row'\] = "auto" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [e.style['grid-row'\] = "auto/auto" should set the property value] expected: FAIL @@ -69,6 +63,4 @@ expected: FAIL [e.style['grid-row'\] = "span 2" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-column-shortest-serialization.html.ini b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-column-shortest-serialization.html.ini index cb51c24..bb8f8ba 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-column-shortest-serialization.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-column-shortest-serialization.html.ini
@@ -1,13 +1,9 @@ [grid-column-shortest-serialization.html] [Property grid-column value 'first / first'] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [Property grid-column value 'first'] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [grid-row-shortest-serialization.html]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-row-shortest-serialization.html.ini b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-row-shortest-serialization.html.ini index 46ef3278..25e0ca2 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-row-shortest-serialization.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-row-shortest-serialization.html.ini
@@ -5,6 +5,4 @@ [grid-row-shortest-serialization.html] [Property grid-row value 'last / last'] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-spacing-trim-computed.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-spacing-trim-computed.html.ini index e06ec14e..31e61fc 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-spacing-trim-computed.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-spacing-trim-computed.html.ini
@@ -1,35 +1,25 @@ [text-spacing-trim-computed.html] [Property text-spacing-trim value 'allow-end space-first'] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [Property text-spacing-trim value 'allow-end'] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [Property text-spacing-trim value 'auto'] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [Property text-spacing-trim value 'space-all'] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL [Property text-spacing-trim value 'space-first allow-end'] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [Property text-spacing-trim value 'space-first'] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL [Property text-spacing-trim value 'trim-auto'] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-spacing-trim-valid.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-spacing-trim-valid.html.ini index c820c56f..6c363573 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-spacing-trim-valid.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-spacing-trim-valid.html.ini
@@ -1,35 +1,25 @@ [text-spacing-trim-valid.html] [e.style['text-spacing-trim'\] = "allow-end space-first" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [e.style['text-spacing-trim'\] = "allow-end" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [e.style['text-spacing-trim'\] = "auto" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [e.style['text-spacing-trim'\] = "space-all" should set the property value] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL [e.style['text-spacing-trim'\] = "space-first allow-end" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [e.style['text-spacing-trim'\] = "space-first" should set the property value] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL [e.style['text-spacing-trim'\] = "trim-auto" should set the property value] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-001.html.ini index 6fe4841..856b7b4 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-001.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-001.html.ini
@@ -1,9 +1,9 @@ [text-spacing-trim-001.html?class=halt,htb] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL [text-spacing-trim-001.html?class=halt,vrl] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-colon-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-colon-001.html.ini index dbd352c..a0b3fd2 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-colon-001.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-colon-001.html.ini
@@ -1,4 +1,4 @@ [text-spacing-trim-colon-001.html?class=halt,htb] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-dot-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-dot-001.html.ini index 087e3b79..e809663 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-dot-001.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-spacing-trim/text-spacing-trim-dot-001.html.ini
@@ -1,9 +1,9 @@ [text-spacing-trim-dot-001.html?class=halt,htb] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL [text-spacing-trim-dot-001.html?class=halt,vrl] expected: - if (product == "content_shell") and (os == "linux"): PASS + if (product == "content_shell") and (virtual_suite == "css-text-spacing-trim"): PASS FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/lh-unit-005.html b/third_party/blink/web_tests/external/wpt/css/css-values/lh-unit-005.html new file mode 100644 index 0000000..477c153 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-values/lh-unit-005.html
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Values and Units Test: lh unit based on inherited line-height</title> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#font-relative-lengths"> +<link rel="help" href="https://crbug.com/1487480"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #lh50, #lh100 { + height: 1lh; + } +</style> +<div style="line-height: 50px"> + <div id="lh50"></div> +</div> +<div style="line-height: 100px"> + <div id="lh100"></div> +</div> +<script> + test(() => { + assert_equals(getComputedStyle(lh50).height, "50px"); + assert_equals(getComputedStyle(lh100).height, "100px"); + }, "lh relative to line-height inherited from parent"); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-view-transitions/css-tags-shared-element.html.ini b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/css-tags-shared-element.html.ini new file mode 100644 index 0000000..805bc2dd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/css-tags-shared-element.html.ini
@@ -0,0 +1,2 @@ +[css-tags-shared-element.html] + expected: [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-view-transitions/japanese-tag.html.ini b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/japanese-tag.html.ini new file mode 100644 index 0000000..3b69bcf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/japanese-tag.html.ini
@@ -0,0 +1,2 @@ +[japanese-tag.html] + expected: [PASS, FAIL]
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element-expected.txt index dec3f4e..97250e4 100644 --- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element-expected.txt
@@ -1,6 +1,6 @@ This is a testharness.js-based test. FAIL insertParagraph in button of <div><button>abc</button></div> assert_equals: expected "<div><button><br>abc</button></div>" but got "<div><button><br></button></div><div><button>abc</button></div>" -FAIL insertParagraph in caption of <div><table><caption>abc</caption><tbody><tr><td>abc</td></tr></tbody></table></div> assert_in_array: value "<div><table><caption><br></caption><caption>abc</caption><tbody><tr><td>abc</td></tr></tbody></table></div>" not in array ["<div><table><caption><br><div>abc</div></caption><tbody><tr><td>abc</td></tr></tbody></table></div>", "<div><table><caption><div><br></div><div>abc</div></caption><tbody><tr><td>abc</td></tr></tbody></table></div>"] +FAIL insertParagraph in caption of <div><table><caption>abc</caption><tbody><tr><td>abc</td></tr></tbody></table></div> assert_equals: expected "<div><table><caption><br>abc</caption><tbody><tr><td>abc</td></tr></tbody></table></div>" but got "<div><table><caption><br></caption><caption>abc</caption><tbody><tr><td>abc</td></tr></tbody></table></div>" PASS insertParagraph in col of <div><table><colgroup><col></colgroup><tbody><tr><td>abc</td></tr></tbody></table></div> PASS insertParagraph in colgroup of <div><table><colgroup><col></colgroup><tbody><tr><td>abc</td></tr></tbody></table></div> PASS insertParagraph in iframe of <div><iframe srcdoc="abc"></iframe></div>
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element.html b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element.html index 21aa495..c77862f 100644 --- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element.html +++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element.html
@@ -26,10 +26,7 @@ selector: "caption", initial: "<div><table><caption>abc</caption><tbody><tr><td>abc</td></tr></tbody></table></div>", // <caption> can have paragraphs so that it should be handled as in a block. - expected: [ - "<div><table><caption><br><div>abc</div></caption><tbody><tr><td>abc</td></tr></tbody></table></div>", - "<div><table><caption><div><br></div><div>abc</div></caption><tbody><tr><td>abc</td></tr></tbody></table></div>", - ], + expected: "<div><table><caption><br>abc</caption><tbody><tr><td>abc</td></tr></tbody></table></div>", }, { selector: "col",
diff --git a/third_party/blink/web_tests/external/wpt/element-timing/OWNERS b/third_party/blink/web_tests/external/wpt/element-timing/OWNERS index 9e3a2546..9d5ea8b 100644 --- a/third_party/blink/web_tests/external/wpt/element-timing/OWNERS +++ b/third_party/blink/web_tests/external/wpt/element-timing/OWNERS
@@ -1 +1 @@ -npm@chromium.org +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/web_tests/external/wpt/event-timing/OWNERS b/third_party/blink/web_tests/external/wpt/event-timing/OWNERS index 7f44d1b..9d5ea8b 100644 --- a/third_party/blink/web_tests/external/wpt/event-timing/OWNERS +++ b/third_party/blink/web_tests/external/wpt/event-timing/OWNERS
@@ -1 +1 @@ -iclelland@chromium.org +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/fenced-frame.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/fenced-frame.tentative.https.window.js.ini index ccd1c6dc..94417df 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/fenced-frame.tentative.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/fenced-frame.tentative.https.window.js.ini
@@ -71,8 +71,7 @@ [treat-as-public-address to local: failed preflight.] expected: - if (product == "content_shell") and (virtual_suite == "fenced-frame-mparch") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] - if (product == "content_shell") and (virtual_suite == "fenced-frame-mparch") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (virtual_suite == "fenced-frame-mparch") and (os == "linux"): [FAIL, PASS] FAIL [treat-as-public-address to local: missing CORS headers.] @@ -95,8 +94,7 @@ [treat-as-public-address to private: failed preflight.] expected: - if (product == "content_shell") and (virtual_suite == "fenced-frame-mparch") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] - if (product == "content_shell") and (virtual_suite == "fenced-frame-mparch") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (virtual_suite == "fenced-frame-mparch") and (os == "linux"): [FAIL, PASS] FAIL [treat-as-public-address to private: missing CORS headers.]
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker-blob-fetch.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker-blob-fetch.tentative.https.window.js.ini index c63674bf..ab9f5bf 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker-blob-fetch.tentative.https.window.js.ini +++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/shared-worker-blob-fetch.tentative.https.window.js.ini
@@ -1,8 +1,9 @@ [shared-worker-blob-fetch.tentative.https.window.html] expected: if (product == "content_shell") and (virtual_suite == "pna-workers-disabled") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT] - if (product == "content_shell") and (virtual_suite == "pna-permission") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT] if (product == "content_shell") and (virtual_suite == "keepalive-in-browser-migration") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [OK, TIMEOUT] + if (product == "content_shell") and (virtual_suite == "keepalive-in-browser-migration") and (os == "linux") and (flag_specific == ""): [OK, TIMEOUT] + if (product == "content_shell") and (virtual_suite == "pna-permission") and (os == "linux"): [OK, TIMEOUT] if (product == "content_shell") and (virtual_suite == "plz-dedicated-worker"): [OK, TIMEOUT] [private to local: failed preflight.] expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent-expected.txt deleted file mode 100644 index 67f86d4..0000000 --- a/third_party/blink/web_tests/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. -FAIL Adding open to 'details' should fire a toggle event at the 'details' element, with 'oldState: closed' and 'newState: open' assert_equals: expected (string) "closed" but got (undefined) undefined -FAIL Adding open to 'details' and then removing open from that 'details' should fire only one toggle event at the 'details' element, with 'oldState: closed' and 'newState: closed' assert_equals: expected (string) "closed" but got (undefined) undefined -FAIL Adding open to 'details' (display:none) should fire a toggle event at the 'details' element, with 'oldState: closed' and 'newState: open' assert_equals: expected (string) "closed" but got (undefined) undefined -FAIL Adding open to 'details' (no children) should fire a toggle event at the 'details' element, with 'oldState: closed' and 'newState: open' assert_equals: expected (string) "closed" but got (undefined) undefined -FAIL Adding open to 'details' and then removing open from that 'details' and then again adding open to that 'details' should fire only one toggle event at the 'details' element, with 'oldState: closed' and 'newState: closed' assert_equals: expected (string) "closed" but got (undefined) undefined -FAIL Adding open to 'details' using setAttribute('open', '') should fire a toggle event at the 'details' element, with 'oldState: closed' and 'newState: open' assert_equals: expected (string) "closed" but got (undefined) undefined -FAIL Adding open to 'details' and then calling removeAttribute('open') should fire only one toggle event at the 'details' element, with 'oldState: closed' and 'newState: closed' assert_equals: expected (string) "closed" but got (undefined) undefined -PASS Setting open=true on an opened 'details' element should not fire a toggle event at the 'details' element -PASS Setting open=false on a closed 'details' element should not fire a toggle event at the 'details' element -FAIL Adding open to 'details' (not in the document) should fire a toggle event at the 'details' element, with 'oldState: closed' and 'newState: open' assert_equals: expected (string) "closed" but got (undefined) undefined -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-light-dismiss.html b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-light-dismiss.html index 4c31bed..4a57276b 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-light-dismiss.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-light-dismiss.html
@@ -629,3 +629,27 @@ p25.hidePopover(); // Cleanup }, 'Nested showPopover'); </script> + +<div id=p29 popover>Popover 29</div> +<button id=b29 popovertarget=p29>Open popover 29</button> +<iframe id=iframe29 width=100 height=100></iframe> +<script> +promise_test(async () => { + let iframe_url = (new URL("/common/blank.html", location.href)).href; + iframe29.src = iframe_url; + iframe29.contentDocument.body.style.height = '100%'; + assert_false(p29.matches(':popover-open')); + p29.showPopover(); + assert_true(p29.matches(':popover-open')); + let actions = new test_driver.Actions(); + await actions.pointerMove(0,0,{origin: b29}) + .pointerDown({button: actions.ButtonType.LEFT}) + .send(); + + actions = new test_driver.Actions(); + await actions.pointerMove(0,0,{origin: iframe29.contentDocument.body}) + .pointerUp({button: actions.ButtonType.LEFT}) + .send(); + assert_true(p29.matches(':popover-open')); +},`Pointer down in one document and pointer up in another document shouldn't dismiss popover`); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/OWNERS b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/OWNERS index 9e3a2546..9d5ea8b 100644 --- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/OWNERS +++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/OWNERS
@@ -1 +1 @@ -npm@chromium.org +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/broken-image-icon.html b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/broken-image-icon.html new file mode 100644 index 0000000..be27e34 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/broken-image-icon.html
@@ -0,0 +1,45 @@ +<!DOCTYPE html> +<html> + +<head> + <title>Broken Image Icon Should Not Be LCP</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> + +<body> + <img src="../non-existent-image.jpg"> + <img src="/css/css-images/support/colors-16x8.png"> + + <script> + promise_test(async () => { + // Wait for the first-contentful-paint entry so that we know the broken image + // icon has been painted. + await new Promise(resolve => { + new PerformanceObserver((entryList, observer) => { + if (entryList.getEntriesByName('first-contentful-paint').length > 0) { + observer.disconnect(); + resolve(); + } + }).observe({ type: 'paint', buffered: true }); + }); + + // There should be only 1 LCP entry and it should be the colors-16x8.png though + // being smaller than the broken image icon. The broken image icon should not + // emit an LCP entry. + let LcpEntryListLength = await new Promise(resolve => { + new PerformanceObserver((entryList, observer) => { + if (entryList.getEntries().filter(e => e.url.includes('colors-16x8.png'))) { + observer.disconnect(); + resolve(entryList.getEntries().length); + } + }).observe({ type: 'largest-contentful-paint', buffered: true }); + }); + + assert_equals(LcpEntryListLength, 1, 'There should be one and only one LCP entry.'); + + }, "The broken image icon should not emit an LCP entry."); + </script> +</body> + +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/layout-instability/OWNERS b/third_party/blink/web_tests/external/wpt/layout-instability/OWNERS index 9e3a2546..9d5ea8b 100644 --- a/third_party/blink/web_tests/external/wpt/layout-instability/OWNERS +++ b/third_party/blink/web_tests/external/wpt/layout-instability/OWNERS
@@ -1 +1 @@ -npm@chromium.org +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/web_tests/external/wpt/long-animation-frame/OWNERS b/third_party/blink/web_tests/external/wpt/long-animation-frame/OWNERS new file mode 100644 index 0000000..9d5ea8b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/long-animation-frame/OWNERS
@@ -0,0 +1 @@ +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/web_tests/external/wpt/long-animation-frame/tentative/loaf-trusted-types.html b/third_party/blink/web_tests/external/wpt/long-animation-frame/tentative/loaf-trusted-types.html new file mode 100644 index 0000000..42978427 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/long-animation-frame/tentative/loaf-trusted-types.html
@@ -0,0 +1,42 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Long Animation Frame Timing: basic</title> +<meta name="timeout" content="long"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="resources/utils.js"></script> + +<body> +<h1>Long Animation Frame: eval</h1> +<div id="log"></div> +<script id="element"></script> +<script> +setup(() => + assert_implements("trustedTypes" in window, + 'trustedTypes are not supported.')); + +/* This invokes the createHTML trusted type */ +trustedTypes.defaultPolicy = trustedTypes.createPolicy("default", { + createHTML: (input) => input +}); + +document.getElementById("element").innerHTML = ` + busy_wait(very_long_frame_duration / 2); + Promise.resolve().then(() => { + busy_wait(very_long_frame_duration / 2); + }) +`; + +promise_test(async t => { + await new Promise(resolve => new PerformanceObserver(entries => { + const entry = entries.getEntries()[0]; + if (entry.duration >= (very_long_frame_duration - 5) && + entry.scripts.some(script => script.duration >= very_long_frame_duration)) { + resolve(entry); + } + }).observe({type: "long-animation-frame", buffered: true})); +}); + +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/long-animation-frame/tentative/resources/event-generates-loaf.js b/third_party/blink/web_tests/external/wpt/long-animation-frame/tentative/resources/event-generates-loaf.js index a00a447e..fe7c3ec 100644 --- a/third_party/blink/web_tests/external/wpt/long-animation-frame/tentative/resources/event-generates-loaf.js +++ b/third_party/blink/web_tests/external/wpt/long-animation-frame/tentative/resources/event-generates-loaf.js
@@ -1,8 +1,10 @@ -const xhr = new XMLHttpRequest(); -xhr.open('GET', '/common/dummy.xml'); -xhr.addEventListener('load', () => { - const deadline = performance.now() + 360; - while (performance.now() < deadline) { - } -}); -xhr.send(); +(() => { + const xhr = new XMLHttpRequest(); + xhr.open('GET', '/common/dummy.xml'); + xhr.addEventListener('load', () => { + const deadline = performance.now() + 360; + while (performance.now() < deadline) { + } + }); + xhr.send(); +})();
diff --git a/third_party/blink/web_tests/external/wpt/longtask-timing/OWNERS b/third_party/blink/web_tests/external/wpt/longtask-timing/OWNERS new file mode 100644 index 0000000..9d5ea8b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/longtask-timing/OWNERS
@@ -0,0 +1 @@ +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/web_tests/external/wpt/navigation-timing/OWNERS b/third_party/blink/web_tests/external/wpt/navigation-timing/OWNERS index 016bca8..9d5ea8b 100644 --- a/third_party/blink/web_tests/external/wpt/navigation-timing/OWNERS +++ b/third_party/blink/web_tests/external/wpt/navigation-timing/OWNERS
@@ -1,2 +1 @@ -npm@chromium.org -yoavweiss@chromium.org +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/OWNERS b/third_party/blink/web_tests/external/wpt/resource-timing/OWNERS index 016bca8..9d5ea8b 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/OWNERS +++ b/third_party/blink/web_tests/external/wpt/resource-timing/OWNERS
@@ -1,2 +1 @@ -npm@chromium.org -yoavweiss@chromium.org +file://third_party/blink/renderer/core/timing/OWNERS
diff --git a/third_party/blink/web_tests/external/wpt/screen-capture/getdisplaymedia-capture-controller.https.window.js b/third_party/blink/web_tests/external/wpt/screen-capture/getdisplaymedia-capture-controller.https.window.js index fa1fd84..0fe1a9fd 100644 --- a/third_party/blink/web_tests/external/wpt/screen-capture/getdisplaymedia-capture-controller.https.window.js +++ b/third_party/blink/web_tests/external/wpt/screen-capture/getdisplaymedia-capture-controller.https.window.js
@@ -4,7 +4,9 @@ 'use strict'; -const validFocusBehaviors = ['focus-captured-surface', 'no-focus-change']; +const validFocusBehaviors = [ + 'focus-capturing-application', 'focus-captured-surface', 'no-focus-change' +]; const validDisplaySurfaces = ['window', 'browser']; test(() => {
diff --git a/third_party/blink/web_tests/external/wpt/webtransport/sendorder.https.any.js.ini b/third_party/blink/web_tests/external/wpt/webtransport/sendorder.https.any.js.ini index 3c5f861b..0c2284b 100644 --- a/third_party/blink/web_tests/external/wpt/webtransport/sendorder.https.any.js.ini +++ b/third_party/blink/web_tests/external/wpt/webtransport/sendorder.https.any.js.ini
@@ -1,126 +1,78 @@ [sendorder.https.any.html] [WebTransport client should be able to create and handle a bidirectional stream with sendOrder] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport client should be able to modify existing sendOrder after stream creation] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport client should be able to modify unset sendOrder after stream creation] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should not starve a stream without sendorder] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should starve a lower priority stream] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should starve a lower priority stream, variant 2] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [sendorder.https.any.serviceworker.html] [WebTransport client should be able to create and handle a bidirectional stream with sendOrder] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport client should be able to modify existing sendOrder after stream creation] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport client should be able to modify unset sendOrder after stream creation] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should not starve a stream without sendorder] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should starve a lower priority stream] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should starve a lower priority stream, variant 2] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [sendorder.https.any.sharedworker.html] [WebTransport client should be able to create and handle a bidirectional stream with sendOrder] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport client should be able to modify existing sendOrder after stream creation] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport client should be able to modify unset sendOrder after stream creation] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should not starve a stream without sendorder] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should starve a lower priority stream] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should starve a lower priority stream, variant 2] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [sendorder.https.any.worker.html] [WebTransport client should be able to create and handle a bidirectional stream with sendOrder] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport client should be able to modify existing sendOrder after stream creation] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport client should be able to modify unset sendOrder after stream creation] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should not starve a stream without sendorder] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should starve a lower priority stream] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL [WebTransport sendorder should starve a lower priority stream, variant 2] - expected: - if (product == "content_shell") and (os == "linux"): PASS - FAIL + expected: FAIL
diff --git a/third_party/blink/web_tests/html/details_summary/details-open-toggle-event-expected.txt b/third_party/blink/web_tests/html/details_summary/details-open-toggle-event-expected.txt index 19f798bd..eb40ed08 100644 --- a/third_party/blink/web_tests/html/details_summary/details-open-toggle-event-expected.txt +++ b/third_party/blink/web_tests/html/details_summary/details-open-toggle-event-expected.txt
@@ -8,16 +8,16 @@ PASS toggleEventCountFromHTMLAttribute is 0 PASS toggleEventCount is 0 PASS toggleEventCountFromHTMLAttribute is 0 -PASS testEvent.__proto__ is Event.prototype +PASS testEvent.__proto__ is ToggleEvent.prototype PASS testEvent.type is "toggle" -PASS testEvent.__proto__ is Event.prototype +PASS testEvent.__proto__ is ToggleEvent.prototype PASS testEvent.type is "toggle" PASS toggleEventCount is 1 PASS toggleEventCountFromHTMLAttribute is 1 PASS details.open is true -PASS testEvent.__proto__ is Event.prototype +PASS testEvent.__proto__ is ToggleEvent.prototype PASS testEvent.type is "toggle" -PASS testEvent.__proto__ is Event.prototype +PASS testEvent.__proto__ is ToggleEvent.prototype PASS testEvent.type is "toggle" PASS toggleEventCount is 2 PASS toggleEventCountFromHTMLAttribute is 2
diff --git a/third_party/blink/web_tests/html/details_summary/details-open-toggle-event.html b/third_party/blink/web_tests/html/details_summary/details-open-toggle-event.html index 23a68cda..825f0a00 100644 --- a/third_party/blink/web_tests/html/details_summary/details-open-toggle-event.html +++ b/third_party/blink/web_tests/html/details_summary/details-open-toggle-event.html
@@ -19,14 +19,14 @@ function handleToggleEventFromHTMLAttribute(ev) { testEvent = ev; - shouldBe("testEvent.__proto__", "Event.prototype"); + shouldBe("testEvent.__proto__", "ToggleEvent.prototype"); shouldBeEqualToString("testEvent.type", "toggle"); ++toggleEventCountFromHTMLAttribute; } function handleToggleEvent(ev) { testEvent = ev; - shouldBe("testEvent.__proto__", "Event.prototype"); + shouldBe("testEvent.__proto__", "ToggleEvent.prototype"); shouldBeEqualToString("testEvent.type", "toggle"); ++toggleEventCount; }
diff --git a/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-bottom-up-large-tree-search.js b/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-bottom-up-large-tree-search.js index aa36343f..29e239b 100644 --- a/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-bottom-up-large-tree-search.js +++ b/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-bottom-up-large-tree-search.js
@@ -11,7 +11,6 @@ (async function() { TestRunner.addResult(`Tests that search works for large bottom-up view of CPU profile.\n`); - await TestRunner.loadLegacyModule('profiler'); var nodesCount = 200; function buildTree(startId, count) {
diff --git a/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-bottom-up-times.js b/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-bottom-up-times.js index c93f88c1..a778e8e 100644 --- a/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-bottom-up-times.js +++ b/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-bottom-up-times.js
@@ -10,7 +10,6 @@ (async function() { TestRunner.addResult(`Tests bottom-up view self and total time calculation in CPU profiler.\n`); - await TestRunner.loadLegacyModule('profiler'); var profileAndExpectations = { 'title': 'profile1',
diff --git a/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-flame-chart-overview.js b/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-flame-chart-overview.js index 4f8e3f1..f1e8f5f 100644 --- a/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-flame-chart-overview.js +++ b/third_party/blink/web_tests/http/tests/devtools/profiler/cpu-profiler-flame-chart-overview.js
@@ -12,7 +12,6 @@ TestRunner.addResult( `Tests Overview pane calculation in FlameChart for different width = 2^n with n in range 4 - 0. Also tests loading of a legacy nodes format, where nodes were represented as a tree.\n`); - await TestRunner.loadLegacyModule('profiler'); var profileAndExpectations = { profile: {
diff --git a/third_party/blink/web_tests/http/tests/devtools/profiler/sampling-profiler-basic.js b/third_party/blink/web_tests/http/tests/devtools/profiler/sampling-profiler-basic.js index 8add400..64beb32 100644 --- a/third_party/blink/web_tests/http/tests/devtools/profiler/sampling-profiler-basic.js +++ b/third_party/blink/web_tests/http/tests/devtools/profiler/sampling-profiler-basic.js
@@ -8,7 +8,6 @@ (async function() { TestRunner.addResult(`Tests that the sampling heap profiler works and supports nesting.\n`); - await TestRunner.loadLegacyModule('profiler'); const profiler = SDK.TargetManager.TargetManager.instance().primaryPageTarget().model(SDK.HeapProfilerModel.HeapProfilerModel); await profiler.startSampling();
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/element-instance-property-listing-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/element-instance-property-listing-expected.txt index 34031ee..66faac8 100644 --- a/third_party/blink/web_tests/virtual/stable/webexposed/element-instance-property-listing-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/webexposed/element-instance-property-listing-expected.txt
@@ -309,7 +309,6 @@ property setAttributeNS property setAttributeNode property setAttributeNodeNS - property setHTML property setPointerCapture property shadowRoot property showPopover @@ -1494,7 +1493,6 @@ property setAttributeNS property setAttributeNode property setAttributeNodeNS - property setHTML property setPointerCapture property shadowRoot property slot
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt index e2480c6c..909417ae1 100644 --- a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -1978,7 +1978,6 @@ method setAttributeNS method setAttributeNode method setAttributeNodeNS - method setHTML method setPointerCapture method toggleAttribute method webkitMatchesSelector @@ -8039,11 +8038,6 @@ getter zoomAndPan method constructor setter zoomAndPan -interface Sanitizer - static method getDefaultConfiguration - attribute @@toStringTag - method constructor - method getConfiguration interface Scheduler attribute @@toStringTag method constructor
diff --git a/third_party/blink/web_tests/wpt_internal/attribution-reporting/max-event-level-reports.sub.https.html b/third_party/blink/web_tests/wpt_internal/attribution-reporting/max-event-level-reports.sub.https.html new file mode 100644 index 0000000..a4fa302 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/attribution-reporting/max-event-level-reports.sub.https.html
@@ -0,0 +1,68 @@ +<!doctype html> +<meta charset=utf-8> +<meta name=timeout content=long> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/attribution-reporting/resources/helpers.js"></script> +<body> +<script> +attribution_reporting_promise_test(async t => { + const source = { + source_event_id: generateSourceEventId(), + debug_reporting: true, + destination: 'https://{{host}}', + max_event_level_reports: 2, + }; + await registerAttributionSrc({ + cookie: attributionDebugCookie, + source, + method: 'a', + }); + await waitForSourceToBeRegistered(source.source_event_id); + + registerAttributionSrcByImg(createRedirectChain([ + {trigger: {event_trigger_data: [{trigger_data: '3'}]}}, + {trigger: {event_trigger_data: [{trigger_data: '4'}]}}, + ])); + + const reports = []; + + while (reports.length < 2) { + const payload = await pollEventLevelReports(); + payload.reports.forEach(report => { + reports.push(JSON.parse(report.body)); + }); + } + + assert_equals(reports.length, 2); + + reports.sort((a, b) => { + if (a.trigger_data < b.trigger_data) return -1; + if (a.trigger_data > b.trigger_data) return 1; + return 0; + }); + + assert_equals(reports[0].trigger_data, '3'); + assert_equals(reports[1].trigger_data, '4'); + + await registerAttributionSrc({ + trigger: { + event_trigger_data: [{ + trigger_data: '5' + }], + debug_reporting: true, + }, + cookie: attributionDebugCookie, + }); + + const payload = await pollVerboseDebugReports(); + assert_equals(payload.reports.length, 1); + const debugReport = JSON.parse(payload.reports[0].body); + assert_equals(debugReport.length, 1); + assert_equals(debugReport[0].type, 'trigger-event-excessive-reports'); + assert_own_property(debugReport[0], 'body'); + assert_equals(debugReport[0].body.trigger_data, '5'); +}, 'Sources abide by max event level reports'); +</script>
diff --git a/third_party/blink/web_tests/wpt_internal/attribution-reporting/source-zero-max-event-level-reports.sub.https.html b/third_party/blink/web_tests/wpt_internal/attribution-reporting/source-zero-max-event-level-reports.sub.https.html new file mode 100644 index 0000000..41aa77b --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/attribution-reporting/source-zero-max-event-level-reports.sub.https.html
@@ -0,0 +1,45 @@ +<!doctype html> +<meta charset=utf-8> +<meta name=timeout content=long> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/attribution-reporting/resources/helpers.js"></script> +<body> +<script> +attribution_reporting_promise_test(async t => { + const source = { + source_event_id: generateSourceEventId(), + debug_reporting: true, + destination: 'https://{{host}}', + max_event_level_reports: 0, + }; + await registerAttributionSrc({ + cookie: attributionDebugCookie, + source, + method: 'a', + }); + await waitForSourceToBeRegistered(source.source_event_id); + + registerAttributionSrcByImg(createRedirectChain([ + { + trigger: { + event_trigger_data: [{ + trigger_data: '3' + }], + debug_reporting: true, + }, + cookie: attributionDebugCookie, + } + ])); + + const payload = await pollVerboseDebugReports(); + assert_equals(payload.reports.length, 1); + const debugReport = JSON.parse(payload.reports[0].body); + assert_equals(debugReport.length, 1); + assert_equals(debugReport[0].type, 'trigger-event-excessive-reports'); + assert_own_property(debugReport[0], 'body'); + assert_equals(debugReport[0].body.trigger_data, '3'); +}, 'Source with max event level reports set to 0 produces no reports'); +</script>
diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/fast_api/GPUCommandEncoder.writeTimestamp.https-expected.txt b/third_party/blink/web_tests/wpt_internal/webgpu/fast_api/GPUCommandEncoder.writeTimestamp.https-expected.txt new file mode 100644 index 0000000..f0d26a4 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/webgpu/fast_api/GPUCommandEncoder.writeTimestamp.https-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL GPUCommandEncoder promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'requestDevice' on 'GPUAdapter': Unsupported feature: timestamp-query" +Harness: the test ran to completion. +
diff --git a/third_party/chromium-variations b/third_party/chromium-variations index 802527f..97af9cd 160000 --- a/third_party/chromium-variations +++ b/third_party/chromium-variations
@@ -1 +1 @@ -Subproject commit 802527f86612c8249a75cf83f432160f0c1ac990 +Subproject commit 97af9cd3bd80748042952adc1aba9cb3ece2349e
diff --git a/third_party/cros-components/src b/third_party/cros-components/src index 699de65a..e012464 160000 --- a/third_party/cros-components/src +++ b/third_party/cros-components/src
@@ -1 +1 @@ -Subproject commit 699de65af0f1f6194db905908ced137597994916 +Subproject commit e012464ddb8baeb541159efc7d6967c0481c298a
diff --git a/third_party/dawn b/third_party/dawn index 1b29867..b7bd8d8 160000 --- a/third_party/dawn +++ b/third_party/dawn
@@ -1 +1 @@ -Subproject commit 1b2986736fd23e2620a7ff5f828c56b3fa464cee +Subproject commit b7bd8d85b52e92ef2bf9aa901e7e6219dc9df3b0
diff --git a/third_party/perfetto b/third_party/perfetto index d5143d2..116a2d5 160000 --- a/third_party/perfetto +++ b/third_party/perfetto
@@ -1 +1 @@ -Subproject commit d5143d26fa22bca22e967663bee851c3c209af84 +Subproject commit 116a2d5dc0e6f86faf48fb5aa8b5977001990c67
diff --git a/third_party/skia b/third_party/skia index d410e03..267bb43 160000 --- a/third_party/skia +++ b/third_party/skia
@@ -1 +1 @@ -Subproject commit d410e03a6b9b0e7f77fe4bb562f396a97345d070 +Subproject commit 267bb43e822d827737b04b07cdd2015c6a081b40
diff --git a/third_party/vulkan-deps b/third_party/vulkan-deps index 7baa5f7..3434928 160000 --- a/third_party/vulkan-deps +++ b/third_party/vulkan-deps
@@ -1 +1 @@ -Subproject commit 7baa5f7cc56a48ea2783c7370413ed8c7f513719 +Subproject commit 34349287c87688eb8a0d704829032bbf6cfc7c0a
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index ad425c6f1..5536d57 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -32212,6 +32212,27 @@ <int value="6" label="FAILURE_CRD_HOST_ERROR"/> <int value="7" label="FAILURE_UNMANAGED_ENVIRONMENT"/> <int value="8" label="FAILURE_DISABLED_BY_POLICY"/> + <int value="9" label="FAILURE_PEER_IS_OFFLINE"/> + <int value="10" label="FAILURE_SESSION_REJECTED"/> + <int value="11" label="FAILURE_INCOMPATIBLE_PROTOCOL"/> + <int value="12" label="FAILURE_AUTHENTICATION_FAILED"/> + <int value="13" label="FAILURE_INVALID_ACCOUNT"/> + <int value="14" label="FAILURE_CHANNEL_CONNECTION_ERROR"/> + <int value="15" label="FAILURE_SIGNALING_ERROR"/> + <int value="16" label="FAILURE_SIGNALING_TIMEOUT"/> + <int value="17" label="FAILURE_HOST_OVERLOAD"/> + <int value="18" label="FAILURE_MAX_SESSION_LENGTH"/> + <int value="19" label="FAILURE_HOST_CONFIGURATION_ERROR"/> + <int value="20" label="FAILURE_HOST_CERTIFICATE_ERROR"/> + <int value="21" label="FAILURE_HOST_REGISTRATION_ERROR"/> + <int value="22" label="FAILURE_EXISTING_ADMIN_SESSION"/> + <int value="23" label="FAILURE_AUTHZ_POLICY_CHECK_FAILED"/> + <int value="24" label="FAILURE_LOCATION_AUTHZ_POLICY_CHECK_FAILED"/> + <int value="25" label="FAILURE_UNAUTHORIZED_ACCOUNT"/> + <int value="26" label="FAILURE_HOST_POLICY_ERROR"/> + <int value="27" label="FAILURE_HOST_INVALID_DOMAIN_ERROR"/> + <int value="28" label="HOST_SESSION_DISCONNECTED"/> + <int value="29" label="FAILURE_UNKNOWN_ERROR"/> </enum> <enum name="EnterpriseCrdUserType"> @@ -33886,6 +33907,7 @@ <int value="1162" label="DeviceEphemeralNetworkPoliciesEnabled"/> <int value="1163" label="PPAPISharedImagesForVideoDecoderAllowed"/> <int value="1164" label="ProfileReauthPrompt"/> + <int value="1165" label="RelatedWebsiteSetsEnabled"/> </enum> <enum name="EnterprisePoliciesSources"> @@ -79716,6 +79738,8 @@ <int value="4" label="Shortcut text prefix"/> </enum> +<!-- Not used in current metrics, see OmniboxSearchEngineType instead. --> + <enum name="OmniboxSearchEngine"> <int value="0" label="Unknown"/> <int value="1" label="Google"/> @@ -79858,6 +79882,18 @@ <int value="57" label="OceanHero"/> <int value="58" label="PrivacyWall"/> <int value="59" label="Ecosia"/> + <int value="60" label="Petalsearch"/> + <int value="61" label="StarterPackBookmarks"/> + <int value="62" label="StarterPackHistory"/> + <int value="63" label="StarterPackTabs"/> + <int value="64" label="Mojeek"/> + <int value="65" label="Panda Search"/> + <int value="66" label="Presearch"/> + <int value="67" label="Yep"/> + <int value="68" label="Nona"/> + <int value="69" label="Quendu"/> + <int value="70" label="Brave"/> + <int value="71" label="Karma"/> </enum> <enum name="OmniboxSuggestionUiType"> @@ -104098,6 +104134,12 @@ <int value="100225" label="UserSpeakOnMuteDetectionEnabled"/> <int value="100226" label="ShouldShowSpeakOnMuteOptInNudge"/> <int value="100227" label="SpeakOnMuteOptInNudgeShownCount"/> + <int value="100228" label="AccessibilityReadAnythingVoiceName"/> + <int value="100229" label="AccessibilityReadAnythingSpeechRate"/> + <int value="100230" label="AccessibilityReadAnythingHighlightGranularity"/> + <int value="100231" label="AccessibilityReadAnythingHighlightColor"/> + <int value="100232" label="PinnedActions"/> + <int value="100233" label="PinnedSearchCompanionMigrationComplete"/> <int value="200000" label="ArticlesForYouEnabled"/> <int value="200001" label="ContextualSearchEnabled_IOS"/> <int value="200002" label="DefaultCharset_IOS"/> @@ -108800,6 +108842,7 @@ <int value="18" label="Privacy Sandbox 4 Notice Settings"/> <int value="19" label="Safe Browsing Interstitial"/> <int value="20" label="Download Warning UI"/> + <int value="21" label="Password Protection UI"/> </enum> <enum name="TrustTokenRequestHelperFactoryOutcome">
diff --git a/tools/metrics/histograms/metadata/sync/histograms.xml b/tools/metrics/histograms/metadata/sync/histograms.xml index 643f17b0..e3d4be93 100644 --- a/tools/metrics/histograms/metadata/sync/histograms.xml +++ b/tools/metrics/histograms/metadata/sync/histograms.xml
@@ -673,7 +673,7 @@ </histogram> <histogram name="Sync.KeystoreDecryptionFailed" - enum="SyncKeystoreDecryptionFailure" expires_after="2023-11-06"> + enum="SyncKeystoreDecryptionFailure" expires_after="2024-05-06"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <component>Services>Sync</component>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index efb7dde..991d3fac 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -21,8 +21,8 @@ "full_remote_path": "perfetto-luci-artifacts/v35.0/mac-arm64/trace_processor_shell" }, "linux": { - "hash": "94a90a4113d315a678a8451ad8188a561ec04209", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/d5143d26fa22bca22e967663bee851c3c209af84/trace_processor_shell" + "hash": "31cde9fb37b6d1a55e8a027125d7b908e963709f", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/a3df67f4252229636e3d218b1402a98eca7b2180/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/accessibility/ax_node.cc b/ui/accessibility/ax_node.cc index d1117d88..083a859 100644 --- a/ui/accessibility/ax_node.cc +++ b/ui/accessibility/ax_node.cc
@@ -1880,6 +1880,14 @@ } } +bool AXNode::IsView() const { + const AXTreeManager* manager = GetManager(); + if (!manager) { + return false; + } + return manager->IsView(); +} + AXNode* AXNode::ComputeLastUnignoredChildRecursive() const { DCHECK(!tree_->GetTreeUpdateInProgressState()); if (children().empty())
diff --git a/ui/accessibility/ax_node.h b/ui/accessibility/ax_node.h index dc15d9b..07c4100d 100644 --- a/ui/accessibility/ax_node.h +++ b/ui/accessibility/ax_node.h
@@ -752,6 +752,9 @@ // all nodes that can't be edited are read-only. bool IsReadOnlyOrDisabled() const; + // Returns true if node is from Views (and not web content). + bool IsView() const; + private: AXTableInfo* GetAncestorTableInfo() const; void IdVectorToNodeVector(const std::vector<AXNodeID>& ids,
diff --git a/ui/accessibility/ax_position.h b/ui/accessibility/ax_position.h index 9ab9d10..c627f14 100644 --- a/ui/accessibility/ax_position.h +++ b/ui/accessibility/ax_position.h
@@ -487,6 +487,14 @@ if (!node.IsEmptyLeaf()) return false; + // While atomic text fields from web content have a text node descendant, + // atomic text fields from Views don't. Their text value is set in the value + // attribute of the text field node directly. + if (node.IsView() && node.data().IsAtomicTextField() && + !node.GetValueForControl().empty()) { + return false; + } + // One exception to the above rule that all empty leaf nodes are empty // objects in AXPosition are <embed> and <object> elements that have // children. They should not be treated as empty objects even when their
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn index 6eb8ca6..ff4cbb1 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn
@@ -594,8 +594,6 @@ "glib/glib_integers.h", "glib/glib_signal.h", "glib/scoped_gobject.h", - "glib/scoped_gsignal.cc", - "glib/scoped_gsignal.h", ] } @@ -1301,10 +1299,6 @@ if (is_chromeos_ash || ozone_platform_wayland) { deps += [ "//ui/base/wayland:unittests" ] } - - if (use_glib) { - sources += [ "glib/scoped_gsignal_unittest.cc" ] - } } if (is_mac) {
diff --git a/ui/base/glib/scoped_gobject.h b/ui/base/glib/scoped_gobject.h index 788ece7..0467479 100644 --- a/ui/base/glib/scoped_gobject.h +++ b/ui/base/glib/scoped_gobject.h
@@ -12,7 +12,7 @@ #include "base/check.h" #include "base/memory/raw_ptr.h" -// Similar to a scoped_refptr for GObject types. +// Similar to a std::shared_ptr for GObject types. template <typename T> class ScopedGObject { public: @@ -28,32 +28,24 @@ other.obj_ = nullptr; } - ~ScopedGObject() { Reset(); } + ~ScopedGObject() { Unref(); } ScopedGObject<T>& operator=(const ScopedGObject<T>& other) { - Reset(); + Unref(); obj_ = other.obj_; Ref(); return *this; } ScopedGObject<T>& operator=(ScopedGObject<T>&& other) { - Reset(); + Unref(); obj_ = other.obj_; other.obj_ = nullptr; return *this; } - void Reset() { - if (obj_) { - g_object_unref(obj_.ExtractAsDangling()); - } - } - T* get() { return obj_; } - // Deliberately implicit to allow easier interaction with C APIs. - // NOLINTNEXTLINE(google-explicit-constructor) operator T*() { return obj_; } private: @@ -66,9 +58,8 @@ void RefSink() { // Remove the floating reference from |obj_| if it has one. - if (obj_ && g_object_is_floating(obj_)) { + if (obj_ && g_object_is_floating(obj_)) g_object_ref_sink(obj_); - } } void Ref() { @@ -78,6 +69,14 @@ } } + // This function is necessary so that gtk can overload it in + // the case of T = GtkStyleContext. + void Unref() { + if (obj_) { + g_object_unref(obj_.ExtractAsDangling()); + } + } + raw_ptr<T> obj_ = nullptr; };
diff --git a/ui/base/glib/scoped_gsignal.cc b/ui/base/glib/scoped_gsignal.cc deleted file mode 100644 index f77c1c0..0000000 --- a/ui/base/glib/scoped_gsignal.cc +++ /dev/null
@@ -1,26 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/base/glib/scoped_gsignal.h" - -ScopedGSignal::ScopedGSignal() = default; - -ScopedGSignal::ScopedGSignal(ScopedGSignal&& other) noexcept = default; - -ScopedGSignal& ScopedGSignal::operator=(ScopedGSignal&& other) noexcept = - default; - -ScopedGSignal::~ScopedGSignal() = default; - -bool ScopedGSignal::Connected() const { - return impl_ && impl_->Connected(); -} - -void ScopedGSignal::Reset() { - impl_.reset(); -} - -ScopedGSignal::SignalBase::SignalBase() = default; - -ScopedGSignal::SignalBase::~SignalBase() = default;
diff --git a/ui/base/glib/scoped_gsignal.h b/ui/base/glib/scoped_gsignal.h deleted file mode 100644 index 9607bc8..0000000 --- a/ui/base/glib/scoped_gsignal.h +++ /dev/null
@@ -1,191 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_BASE_GLIB_SCOPED_GSIGNAL_H_ -#define UI_BASE_GLIB_SCOPED_GSIGNAL_H_ - -#include <glib-object.h> -#include <glib.h> - -#include <memory> -#include <utility> - -#include "base/component_export.h" -#include "base/functional/callback.h" -#include "base/logging.h" -#include "base/memory/raw_ptr.h" -#include "base/sequence_checker.h" -#include "ui/base/glib/scoped_gobject.h" - -// ScopedGSignal manages the lifecycle of a GLib signal connection. -// It disconnects the signal when this object is destroyed or goes out of scope. -// This class should be used on a single sequence. -class COMPONENT_EXPORT(UI_BASE) ScopedGSignal { - public: - // Constructs and connects a GLib signal with specified attributes. - // Parameters: - // - instance: The GLib object instance emitting the signal. - // - detailed_signal: Signal name to connect. - // - handler: Callback function to invoke when the signal is emitted. - // - connect_flags: Optional flags to influence signal connection behavior. - // If signal connection fails, this object will be left unconnected. - // `Connected()` can be used to check for signal connection success. - template <typename Sender, typename Ret, typename... Args> - ScopedGSignal(Sender* instance, - const gchar* detailed_signal, - base::RepeatingCallback<Ret(Sender*, Args...)> handler, - GConnectFlags connect_flags = static_cast<GConnectFlags>(0)) - : impl_(std::make_unique<SignalImpl<Sender, Ret, Args...>>( - instance, - detailed_signal, - std::move(handler), - connect_flags)) { - if (!Connected()) { - // No need to keep `impl_` around. - impl_.reset(); - } - } - - // Overload accepting a ScopedGObject instead of a raw pointer. - template <typename Sender, typename Ret, typename... Args> - ScopedGSignal(ScopedGObject<Sender> instance, - const gchar* detailed_signal, - base::RepeatingCallback<Ret(Sender*, Args...)> handler, - GConnectFlags connect_flags = static_cast<GConnectFlags>(0)) - : ScopedGSignal(instance.get(), - detailed_signal, - std::move(handler), - connect_flags) {} - - // Constructs an unconnected ScopedGSignal. - ScopedGSignal(); - - ScopedGSignal(ScopedGSignal&&) noexcept; - ScopedGSignal& operator=(ScopedGSignal&&) noexcept; - - ~ScopedGSignal(); - - [[nodiscard]] bool Connected() const; - - void Reset(); - - private: - // The implementation uses the PIMPL idiom for the following reasons: - // 1. GLib binds a user data pointer that gets passed to the callback. - // This means the implementation class can't be movable. To support - // moves, keep a pointer to the implementation. - // 2. Type erasure: the derived class depends on the callback type and - // sender type, so a virtual destructor is required. - class SignalBase { - public: - SignalBase(SignalBase&&) = delete; - SignalBase& operator=(SignalBase&&) = delete; - - virtual ~SignalBase(); - - [[nodiscard]] bool Connected() const { return signal_id_; } - - protected: - SignalBase(); - - [[nodiscard]] gulong signal_id() const { return signal_id_; } - void set_signal_id(gulong signal_id) { signal_id_ = signal_id; } - - private: - gulong signal_id_ = 0; - }; - - template <typename Sender, typename Ret, typename... Args> - class SignalImpl final : public SignalBase { - public: - using Handler = base::RepeatingCallback<Ret(Sender*, Args...)>; - - SignalImpl(Sender* instance, - const gchar* detailed_signal, - Handler handler, - GConnectFlags connect_flags) { - CHECK(instance); - CHECK(detailed_signal); - CHECK(handler); - - const bool swapped = connect_flags & G_CONNECT_SWAPPED; - const bool after = connect_flags & G_CONNECT_AFTER; - - auto* new_closure = swapped ? g_cclosure_new_swap : g_cclosure_new; - if (!(gclosure_ = new_closure(G_CALLBACK(OnSignalEmittedThunk), this, - OnDisconnectedThunk))) { - LOG(ERROR) << "Failed to create GClosure"; - return; - } - - set_signal_id(g_signal_connect_closure(instance, detailed_signal, - gclosure_, after)); - if (!signal_id()) { - LOG(ERROR) << "Failed to connect to " << detailed_signal; - // Prevent OnDisconnectedThunk from running. - g_closure_remove_finalize_notifier(gclosure_, this, - OnDisconnectedThunk); - // Remove the floating reference to free `gclosure_`. Note that this - // should not be called if the signal connected since it will take - // ownership of `gclosure_`. - g_closure_unref(gclosure_.ExtractAsDangling()); - return; - } - - sender_ = instance; - handler_ = std::move(handler); - } - - ~SignalImpl() override { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!Connected()) { - return; - } - // If the finalize notifier is not removed, it will get called some time - // after this object has been destroyed. Remove the finalize notifier to - // prevent this. - g_closure_remove_finalize_notifier(gclosure_.ExtractAsDangling(), this, - OnDisconnectedThunk); - g_signal_handler_disconnect(sender_, signal_id()); - // `OnDisconnected()` must be explicitly called since the finalize - // notifier was removed. - OnDisconnected(); - } - - private: - static Ret OnSignalEmittedThunk(Sender* sender, - Args... args, - gpointer self) { - reinterpret_cast<SignalImpl*>(self)->OnSignalEmitted(sender, args...); - } - - static void OnDisconnectedThunk(gpointer self, GClosure* closure) { - reinterpret_cast<SignalImpl*>(self)->OnDisconnected(); - } - - Ret OnSignalEmitted(Sender* sender, Args... args) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - return handler_.Run(sender, args...); - } - - void OnDisconnected() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - CHECK(Connected()); - set_signal_id(0); - sender_ = nullptr; - gclosure_ = nullptr; - handler_.Reset(); - } - - raw_ptr<Sender> sender_ = nullptr; - raw_ptr<GClosure> gclosure_ = nullptr; - Handler handler_; - - SEQUENCE_CHECKER(sequence_checker_); - }; - - std::unique_ptr<SignalBase> impl_; -}; - -#endif // UI_BASE_GLIB_SCOPED_GSIGNAL_H_
diff --git a/ui/base/glib/scoped_gsignal_unittest.cc b/ui/base/glib/scoped_gsignal_unittest.cc deleted file mode 100644 index b2930fe..0000000 --- a/ui/base/glib/scoped_gsignal_unittest.cc +++ /dev/null
@@ -1,165 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/base/glib/scoped_gsignal.h" - -#include "base/functional/bind.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "ui/base/glib/scoped_gobject.h" - -namespace ui { - -namespace { - -G_DECLARE_FINAL_TYPE(TestObject, test_object, TEST, OBJECT, GObject) - -// Used by G_DECLARE_FINAL_TYPE above. -struct _TestObject { - GObject parent_instance; -}; - -G_DEFINE_TYPE(TestObject, test_object, G_TYPE_OBJECT) - -// Used by G_DEFINE_TYPE above. -void test_object_constructed(GObject* obj) { - G_OBJECT_CLASS(test_object_parent_class)->constructed(obj); -} - -// Used by G_DEFINE_TYPE above. -void test_object_finalize(GObject* obj) { - G_OBJECT_CLASS(test_object_parent_class)->finalize(obj); -} - -// Used by G_DEFINE_TYPE above. -void test_object_class_init(TestObjectClass* klass) { - GObjectClass* object_class = G_OBJECT_CLASS(klass); - - object_class->constructed = test_object_constructed; - object_class->finalize = test_object_finalize; - - g_signal_newv("some-signal", test_object_get_type(), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | - G_SIGNAL_NO_HOOKS), - nullptr, nullptr, nullptr, nullptr, G_TYPE_NONE, 0, nullptr); -} - -// Used by G_DEFINE_TYPE above. -void test_object_init(TestObject* self) {} - -ScopedGObject<GObject> CreateGObject() { - return TakeGObject(G_OBJECT(g_object_new(test_object_get_type(), nullptr))); -} - -void EmitSignal(GObject* instance, const gchar* detailed_signal) { - g_signal_emit_by_name(instance, detailed_signal); -} - -} // namespace - -TEST(ScopedGSignalTest, Empty) { - ScopedGSignal signal; - EXPECT_FALSE(signal.Connected()); -} - -TEST(ScopedGSignalTest, Construction) { - auto instance = CreateGObject(); - ASSERT_TRUE(instance.get()); - - ScopedGSignal signal(instance, "some-signal", - base::BindRepeating([](GObject* obj) {})); - EXPECT_TRUE(signal.Connected()); -} - -TEST(ScopedGSignalTest, DisconnectsOnDestruction) { - auto instance = CreateGObject(); - ASSERT_TRUE(instance.get()); - - bool signal_fired = false; - { - ScopedGSignal signal( - instance, "some-signal", - base::BindRepeating([](bool* fired, GObject* obj) { *fired = true; }, - &signal_fired)); - EXPECT_TRUE(signal.Connected()); - } - - EmitSignal(instance, "some-signal"); - EXPECT_FALSE(signal_fired); -} - -TEST(ScopedGSignalTest, DisconnectsOnGClosureFinalize) { - auto instance = CreateGObject(); - ASSERT_TRUE(instance.get()); - - ScopedGSignal signal(instance, "some-signal", - base::BindRepeating([](GObject* obj) {})); - EXPECT_TRUE(signal.Connected()); - - instance.Reset(); - EXPECT_FALSE(signal.Connected()); -} - -TEST(ScopedGSignalTest, DisconnectsOnReset) { - auto instance = CreateGObject(); - ASSERT_TRUE(instance.get()); - - ScopedGSignal signal(instance, "some-signal", - base::BindRepeating([](GObject* obj) {})); - EXPECT_TRUE(signal.Connected()); - - signal.Reset(); - EXPECT_FALSE(signal.Connected()); -} - -TEST(ScopedGSignalTest, MoveConstruct) { - auto instance = CreateGObject(); - ASSERT_TRUE(instance.get()); - - ScopedGSignal signal1(instance, "some-signal", - base::BindRepeating([](GObject* obj) {})); - EXPECT_TRUE(signal1.Connected()); - - ScopedGSignal signal2{std::move(signal1)}; - EXPECT_FALSE(signal1.Connected()); - EXPECT_TRUE(signal2.Connected()); -} - -TEST(ScopedGSignalTest, MoveAssign) { - auto instance = CreateGObject(); - ASSERT_TRUE(instance.get()); - - ScopedGSignal signal1(instance, "some-signal", - base::BindRepeating([](GObject* obj) {})); - EXPECT_TRUE(signal1.Connected()); - - ScopedGSignal signal2 = std::move(signal1); - EXPECT_FALSE(signal1.Connected()); - EXPECT_TRUE(signal2.Connected()); -} - -TEST(ScopedGSignalTest, SignalHandlerCalled) { - auto instance = CreateGObject(); - ASSERT_TRUE(instance.get()); - - bool signal_fired = false; - ScopedGSignal signal( - instance, "some-signal", - base::BindRepeating([](bool* fired, GObject* obj) { *fired = true; }, - &signal_fired)); - EXPECT_TRUE(signal.Connected()); - - EmitSignal(instance, "some-signal"); - EXPECT_TRUE(signal_fired); -} - -TEST(ScopedGSignalTest, InvalidSignal) { - auto instance = CreateGObject(); - ASSERT_TRUE(instance.get()); - - ScopedGSignal signal(instance, "invalid-signal", - base::BindRepeating([](GObject* obj) {})); - EXPECT_FALSE(signal.Connected()); -} - -} // namespace ui
diff --git a/ui/base/resource/data_pack_with_resource_sharing_lacros.h b/ui/base/resource/data_pack_with_resource_sharing_lacros.h index 03e0d04e..e12cf1ca 100644 --- a/ui/base/resource/data_pack_with_resource_sharing_lacros.h +++ b/ui/base/resource/data_pack_with_resource_sharing_lacros.h
@@ -164,7 +164,7 @@ // exists in ash resources .pak. // Lacros resource id registered in `mapping_table_` as a key should not be // included in fallback_data_pack_. - raw_ptr<const Mapping> mapping_table_; + raw_ptr<const Mapping, AllowPtrArithmetic> mapping_table_; size_t mapping_count_ = 0; // Stores DataPacks of fallback resources and ash resources for each.
diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn index 4e067c5..a8c6d49 100644 --- a/ui/display/BUILD.gn +++ b/ui/display/BUILD.gn
@@ -241,7 +241,6 @@ "mojom/display_mojom_traits_unittest.cc", "mojom/screen_infos_mojom_traits_unittest.cc", "screen_unittest.cc", - "types/display_types_util_unittest.cc", "unified_desktop_utils_unittests.cc", "util/display_util_unittest.cc", "util/edid_parser_unittest.cc",
diff --git a/ui/display/manager/display_change_observer.cc b/ui/display/manager/display_change_observer.cc index 0bce253..cb1252b 100644 --- a/ui/display/manager/display_change_observer.cc +++ b/ui/display/manager/display_change_observer.cc
@@ -420,8 +420,8 @@ device_scale_factor = FindDeviceScaleFactor(dpi, mode_info->size()); } else { ManagedDisplayMode mode; - if (display_manager_->GetMatchingModeForDisplayId(snapshot->display_id(), - mode_info, &mode)) { + if (display_manager_->GetSelectedModeForDisplayId(snapshot->display_id(), + &mode)) { device_scale_factor = mode.device_scale_factor(); native = mode.native(); }
diff --git a/ui/display/manager/display_change_observer_unittest.cc b/ui/display/manager/display_change_observer_unittest.cc index aa83f77..9c98586 100644 --- a/ui/display/manager/display_change_observer_unittest.cc +++ b/ui/display/manager/display_change_observer_unittest.cc
@@ -62,20 +62,6 @@ refresh_rate); } -constexpr int64_t kDisplayId = 123; -constexpr display::Display::Rotation kRotation = display::Display::ROTATE_0; -constexpr gfx::Insets* kInsetsToSet = nullptr; -constexpr int kWidth = 1920; -constexpr int kHeight = 1080; -constexpr gfx::Size kResolutionInPixels(kWidth, kHeight); -constexpr float kDeviceScaleFactor = 1.0f; -constexpr float kDisplayZoom = 1.0f; -constexpr float kRefreshRate = 60.0f; -constexpr bool kIsInterlaced = true; -constexpr display::VariableRefreshRateState kVariableRefreshRateState = - display::kVrrNotCapable; -constexpr absl::optional<uint16_t> kVsyncRateMin = absl::nullopt; - } // namespace class DisplayChangeObserverTestBase : public testing::Test { @@ -148,10 +134,6 @@ void InitializeDisplayChangeObserver() { display_change_observer_ = std::make_unique<DisplayChangeObserver>(display_manager_.get()); - display_manager_->RegisterDisplayProperty( - kDisplayId, kRotation, kInsetsToSet, kResolutionInPixels, - kDeviceScaleFactor, kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); } protected: @@ -172,9 +154,8 @@ // Radii specified for the connection protocol. std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) - .SetNativeMode( - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate)) + .SetId(123) + .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .SetType( display::DisplayConnectionType::DISPLAY_CONNECTION_TYPE_INTERNAL) .Build(); @@ -198,9 +179,8 @@ // The snapshot is of a display that is not a internal display. std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) - .SetNativeMode( - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate)) + .SetId(123) + .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .SetType(display::DisplayConnectionType::DISPLAY_CONNECTION_TYPE_HDMI) .Build(); @@ -465,21 +445,15 @@ TEST_P(DisplayChangeObserverTest, InvalidDisplayColorSpaces) { const std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) + .SetId(123) .SetName("AmazingFakeDisplay") - .SetNativeMode( - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate)) + .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .SetColorSpace(gfx::ColorSpace()) .Build(); ui::DeviceDataManager::CreateInstance(); DisplayManager manager(nullptr); - manager.RegisterDisplayProperty(kDisplayId, kRotation, kInsetsToSet, - kResolutionInPixels, kDeviceScaleFactor, - kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); - const auto display_mode = - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate); + const auto display_mode = MakeDisplayMode(1920, 1080, true, 60); DisplayChangeObserver observer(&manager); const ManagedDisplayInfo display_info = CreateManagedDisplayInfo( &observer, display_snapshot.get(), display_mode.get()); @@ -502,21 +476,15 @@ TEST_P(DisplayChangeObserverTest, SDRDisplayColorSpaces) { const std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) + .SetId(123) .SetName("AmazingFakeDisplay") - .SetNativeMode( - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate)) + .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .SetColorSpace(gfx::ColorSpace::CreateSRGB()) .Build(); ui::DeviceDataManager::CreateInstance(); DisplayManager manager(nullptr); - manager.RegisterDisplayProperty(kDisplayId, kRotation, kInsetsToSet, - kResolutionInPixels, kDeviceScaleFactor, - kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); - const auto display_mode = - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate); + const auto display_mode = MakeDisplayMode(1920, 1080, true, 60); DisplayChangeObserver observer(&manager); const ManagedDisplayInfo display_info = CreateManagedDisplayInfo( &observer, display_snapshot.get(), display_mode.get()); @@ -540,21 +508,15 @@ TEST_P(DisplayChangeObserverTest, WCGDisplayColorSpaces) { const std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) + .SetId(123) .SetName("AmazingFakeDisplay") - .SetNativeMode( - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate)) + .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .SetColorSpace(gfx::ColorSpace::CreateDisplayP3D65()) .Build(); ui::DeviceDataManager::CreateInstance(); DisplayManager manager(nullptr); - manager.RegisterDisplayProperty(kDisplayId, kRotation, kInsetsToSet, - kResolutionInPixels, kDeviceScaleFactor, - kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); - const auto display_mode = - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate); + const auto display_mode = MakeDisplayMode(1920, 1080, true, 60); DisplayChangeObserver observer(&manager); const ManagedDisplayInfo display_info = CreateManagedDisplayInfo( &observer, display_snapshot.get(), display_mode.get()); @@ -585,10 +547,9 @@ const auto display_color_space = gfx::ColorSpace::CreateHDR10(); const std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) + .SetId(123) .SetName("AmazingFakeDisplay") - .SetNativeMode( - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate)) + .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .SetColorSpace(display_color_space) .SetBitsPerChannel(10u) .SetHDRStaticMetadata( @@ -601,12 +562,7 @@ ui::DeviceDataManager::CreateInstance(); DisplayManager manager(nullptr); - manager.RegisterDisplayProperty(kDisplayId, kRotation, kInsetsToSet, - kResolutionInPixels, kDeviceScaleFactor, - kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); - const auto display_mode = - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate); + const auto display_mode = MakeDisplayMode(1920, 1080, true, 60); DisplayChangeObserver observer(&manager); const ManagedDisplayInfo display_info = CreateManagedDisplayInfo( &observer, display_snapshot.get(), display_mode.get()); @@ -647,10 +603,6 @@ TEST_P(DisplayChangeObserverTest, VSyncRateMin) { ui::DeviceDataManager::CreateInstance(); DisplayManager manager(nullptr); - manager.RegisterDisplayProperty(kDisplayId, kRotation, kInsetsToSet, - kResolutionInPixels, kDeviceScaleFactor, - kDisplayZoom, kRefreshRate, kIsInterlaced, - kVariableRefreshRateState, kVsyncRateMin); DisplayChangeObserver observer(&manager); // Verify that vsync_rate_min is absent from DisplayInfo when it is not @@ -658,7 +610,7 @@ { const std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) + .SetId(123) .SetName("AmazingFakeDisplay") .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .Build(); @@ -675,10 +627,9 @@ { const std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) + .SetId(123) .SetName("AmazingFakeDisplay") - .SetNativeMode( - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate)) + .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .SetVsyncRateMin(48) .Build(); const auto display_mode = @@ -693,10 +644,9 @@ { const std::unique_ptr<DisplaySnapshot> display_snapshot = FakeDisplaySnapshot::Builder() - .SetId(kDisplayId) + .SetId(123) .SetName("AmazingFakeDisplay") - .SetNativeMode( - MakeDisplayMode(kWidth, kHeight, kIsInterlaced, kRefreshRate)) + .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) .SetVsyncRateMin(48) .Build(); const auto display_mode = std::make_unique<DisplayMode>(
diff --git a/ui/display/manager/display_manager.cc b/ui/display/manager/display_manager.cc index d6777a88..f3374d6 100644 --- a/ui/display/manager/display_manager.cc +++ b/ui/display/manager/display_manager.cc
@@ -47,7 +47,6 @@ #include "ui/display/tablet_state.h" #include "ui/display/types/display_constants.h" #include "ui/display/types/display_snapshot.h" -#include "ui/display/types/display_types_util.h" #include "ui/display/types/native_display_delegate.h" #include "ui/display/util/display_util.h" #include "ui/events/devices/touchscreen_device.h" @@ -735,24 +734,6 @@ display_modes_[display_id] = *iter; } -bool DisplayManager::GetMatchingModeForDisplayId(int64_t display_id, - const DisplayMode* mode_info, - ManagedDisplayMode* mode) { - const ManagedDisplayInfo& info = GetDisplayInfo(display_id); - const ManagedDisplayInfo::ManagedDisplayModeList& display_modes = - info.display_modes(); - for (const auto& display_mode : display_modes) { - if (display_mode.size() == mode_info->size() && - display_mode.is_interlaced() == mode_info->is_interlaced() && - IsWithinEpsilon(display_mode.refresh_rate(), - mode_info->refresh_rate())) { - *mode = display_mode; - return true; - } - } - return false; -} - gfx::Insets DisplayManager::GetOverscanInsets(int64_t display_id) const { auto it = display_info_.find(display_id); return (it != display_info_.end()) ? it->second.overscan_insets_in_dip()
diff --git a/ui/display/manager/display_manager.h b/ui/display/manager/display_manager.h index 970cf579..ec1a325 100644 --- a/ui/display/manager/display_manager.h +++ b/ui/display/manager/display_manager.h
@@ -254,12 +254,6 @@ void SetSelectedModeForDisplayId(int64_t display_id, const ManagedDisplayMode& display_mode); - // Returns true and fills the |mode| for a given |mode_info| in |display_id| - // if found, otherwise false. - bool GetMatchingModeForDisplayId(int64_t display_id, - const DisplayMode* mode_info, - ManagedDisplayMode* mode); - // Tells if the virtual resolution feature is enabled. bool IsDisplayUIScalingEnabled() const;
diff --git a/ui/display/manager/managed_display_info.cc b/ui/display/manager/managed_display_info.cc index bd7374f..930fbff 100644 --- a/ui/display/manager/managed_display_info.cc +++ b/ui/display/manager/managed_display_info.cc
@@ -24,7 +24,6 @@ #include "ui/display/manager/util/display_manager_test_util.h" #include "ui/display/manager/util/display_manager_util.h" #include "ui/display/types/display_constants.h" -#include "ui/display/types/display_types_util.h" #include "ui/display/util/display_util.h" #include "ui/gfx/color_space.h" #include "ui/gfx/display_color_spaces.h" @@ -85,6 +84,11 @@ } }; +bool IsWithinEpsilon(float a, float b) { + constexpr float kEpsilon = 0.0001f; + return std::abs(a - b) < kEpsilon; +} + std::string PanelOrientationToString(PanelOrientation orientation) { switch (orientation) { case kNormal:
diff --git a/ui/display/types/BUILD.gn b/ui/display/types/BUILD.gn index ea84f9f..257fb985 100644 --- a/ui/display/types/BUILD.gn +++ b/ui/display/types/BUILD.gn
@@ -13,8 +13,6 @@ "display_snapshot.cc", "display_snapshot.h", "display_types_export.h", - "display_types_util.cc", - "display_types_util.h", "fake_display_controller.h", "gamma_ramp_rgb_entry.h", "native_display_delegate.cc",
diff --git a/ui/display/types/display_mode.cc b/ui/display/types/display_mode.cc index 258c09c..23df595 100644 --- a/ui/display/types/display_mode.cc +++ b/ui/display/types/display_mode.cc
@@ -6,7 +6,6 @@ #include "base/memory/ptr_util.h" #include "base/strings/stringprintf.h" -#include "ui/display/types/display_types_util.h" namespace display {
diff --git a/ui/display/types/display_types_util.cc b/ui/display/types/display_types_util.cc deleted file mode 100644 index 70ffac3..0000000 --- a/ui/display/types/display_types_util.cc +++ /dev/null
@@ -1,23 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/display/types/display_types_util.h" - -#include <cmath> - -namespace display { - -namespace { - -// The epsilon used to compare the equality of two floats, e.g. display mode -// refresh rate. -constexpr float kEpsilonVal = 0.0001f; - -} // namespace - -bool IsWithinEpsilon(float a, float b) { - return std::abs(a - b) < kEpsilonVal; -} - -} // namespace display
diff --git a/ui/display/types/display_types_util.h b/ui/display/types/display_types_util.h deleted file mode 100644 index b849280..0000000 --- a/ui/display/types/display_types_util.h +++ /dev/null
@@ -1,18 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_DISPLAY_TYPES_DISPLAY_TYPES_UTIL_H_ -#define UI_DISPLAY_TYPES_DISPLAY_TYPES_UTIL_H_ - -#include "ui/display/types/display_types_export.h" - -namespace display { - -// Return true if two floats are close enough, e.g. compare the equality of two -// display mode refresh rates. -DISPLAY_TYPES_EXPORT bool IsWithinEpsilon(float a, float b); - -} // namespace display - -#endif // UI_DISPLAY_TYPES_DISPLAY_TYPES_UTIL_H_
diff --git a/ui/display/types/display_types_util_unittest.cc b/ui/display/types/display_types_util_unittest.cc deleted file mode 100644 index 39aef17..0000000 --- a/ui/display/types/display_types_util_unittest.cc +++ /dev/null
@@ -1,16 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/display/types/display_types_util.h" - -#include "testing/gtest/include/gtest/gtest.h" - -namespace display { - -TEST(DisplayTypesUtilTest, CompareTwoFloatsWithinEpsilon) { - EXPECT_TRUE(IsWithinEpsilon(60.0f, 59.99999f)); - EXPECT_FALSE(IsWithinEpsilon(30.0f, 29.9f)); -} - -} // namespace display
diff --git a/ui/events/gestures/gesture_types.cc b/ui/events/gestures/gesture_types.cc index d615d2ca..b0cd211 100644 --- a/ui/events/gestures/gesture_types.cc +++ b/ui/events/gestures/gesture_types.cc
@@ -23,6 +23,10 @@ return weak_ptr_factory_.GetWeakPtr(); } +std::unique_ptr<GestureProviderAura> GestureConsumer::TakeProvider() { + return std::move(provider_); +} + void GestureConsumer::reset_gesture_provider() { provider_.reset(); }
diff --git a/ui/events/gestures/gesture_types.h b/ui/events/gestures/gesture_types.h index e7085424..e692003 100644 --- a/ui/events/gestures/gesture_types.h +++ b/ui/events/gestures/gesture_types.h
@@ -47,9 +47,7 @@ base::WeakPtr<GestureConsumer> GetWeakPtr(); - std::unique_ptr<GestureProviderAura> TakeProvider() { - return std::move(provider_); - } + std::unique_ptr<GestureProviderAura> TakeProvider(); void reset_gesture_provider(); void set_gesture_provider(std::unique_ptr<GestureProviderAura> provider); GestureProviderAura* provider() const { return provider_.get(); }
diff --git a/ui/file_manager/integration_tests/file_manager/dlp_enterprise_connectors.js b/ui/file_manager/integration_tests/file_manager/dlp_enterprise_connectors.js index 3d1d706..59c1e02 100644 --- a/ui/file_manager/integration_tests/file_manager/dlp_enterprise_connectors.js +++ b/ui/file_manager/integration_tests/file_manager/dlp_enterprise_connectors.js
@@ -30,9 +30,33 @@ typeText: 'JPEG image', }); +const blockedFileEntry1 = new TestEntryInfo({ + type: EntryType.FILE, + targetPath: 'b_blocked.jpg', + sourceFileName: 'small.jpg', + mimeType: 'image/jpeg', + lastModifiedTime: 'Jan 18, 2038, 1:02 AM', + nameText: 'b_blocked.jpg', + sizeText: '886 bytes', + typeText: 'JPEG image', +}); + +const blockedFileEntry2 = new TestEntryInfo({ + type: EntryType.FILE, + targetPath: 'd_blocked.jpg', + sourceFileName: 'small.jpg', + mimeType: 'image/jpeg', + lastModifiedTime: 'Jan 18, 2038, 1:02 AM', + nameText: 'd_blocked.jpg', + sizeText: '886 bytes', + typeText: 'JPEG image', +}); + +// Tests that proceeding two warnings, the first is triggered by DLP and the +// second is triggered by Enterprise Connectors, will move all the copied files. testcase.twoWarningsProceeded = async () => { // Add entry to Downloads. - await addEntries(['local'], [warnedFileEntry]); + await addEntries(['local'], [allowedFileEntry, warnedFileEntry]); // Open Files app. const appId = await setupAndWaitUntilReady( @@ -49,7 +73,7 @@ await sendTestMessage({ name: 'setCheckFilesTransferMockToPause', taskId: 1, - fileNames: [warnedFileEntry.nameText], + fileNames: [warnedFileEntry.targetPath], action: 'copy', }); @@ -95,11 +119,9 @@ await remoteCall.callRemoteTestUtil('execCommand', appId, ['paste']); // DLP warning. - const dlpWarningPanel = await remoteCall.waitForElement( - appId, ['#progress-panel', 'xf-panel-item']); - chrome.test.assertEq( - 'Review is required before copying', - dlpWarningPanel.attributes['primary-text']); + await remoteCall.waitForFeedbackPanelItem( + appId, new RegExp('Review is required before copying'), + new RegExp(`^${warnedFileEntry.targetPath}.*$`)); // Proceed DLP warning. await remoteCall.waitAndClickElement(appId, [ '#progress-panel', @@ -124,11 +146,9 @@ }); // Enterprise Connectors warning. - const ecWarningPanel = await remoteCall.waitForElement( - appId, ['#progress-panel', 'xf-panel-item']); - chrome.test.assertEq( - 'Review is required before copying', - ecWarningPanel.attributes['primary-text']); + await remoteCall.waitForFeedbackPanelItem( + appId, new RegExp('Review is required before copying'), + new RegExp(`^${warnedFileEntry.targetPath}.*$`)); // Proceed Enterprise Connectors warning. await remoteCall.waitAndClickElement(appId, [ @@ -143,3 +163,86 @@ appId, [allowedFileEntry.getExpectedRow(), warnedFileEntry.getExpectedRow()]); }; + +// Tests that blocking different files by DLP and Enterprise Connectors will +// copy all the file except the blocked ones. A block panel will be shown in the +// end with the blocked files count. +testcase.differentBlockPolicies = async () => { + // Add entry to Downloads. + await addEntries( + ['local'], [allowedFileEntry, blockedFileEntry1, blockedFileEntry2]); + + // Open Files app. + const appId = await setupAndWaitUntilReady( + RootPath.DOWNLOADS, + [allowedFileEntry, blockedFileEntry1, blockedFileEntry2], []); + + // Mount a USB volume. + await sendTestMessage({name: 'mountFakeUsbEmpty'}); + + // Wait for the USB volume to mount. + const directoryTree = await DirectoryTreePageObject.create(appId, remoteCall); + await directoryTree.waitForItemByType('removable'); + + // Set the mock to block one file. + await sendTestMessage({ + name: 'setBlockedFilesTransfer', + fileNames: [blockedFileEntry1.targetPath], + }); + + // Setup policy. + await sendTestMessage({ + name: 'setupFileTransferPolicy', + source: 'MY_FILES', + destination: 'REMOVABLE', + }); + + // Setup the scanning closure to be able to wait for the scanning to be + // complete. + await sendTestMessage({ + name: 'setupScanningRunLoop', + number_of_expected_delegates: 3, + }); + + // Copy and paste all the files to USB. + await directoryTree.navigateToPath('/My files/Downloads'); + await remoteCall.waitForFiles(appId, [ + allowedFileEntry.getExpectedRow(), + blockedFileEntry1.getExpectedRow(), + blockedFileEntry2.getExpectedRow(), + ]); + + // Focus the file list. + await remoteCall.focus(appId, ['#file-list:not([hidden])']); + + // Select all files. + const ctrlA = ['#file-list', 'a', true, false, false]; + await remoteCall.fakeKeyDown(appId, ...ctrlA); + // Check: the file-list should be selected. + await remoteCall.waitForElement(appId, '#file-list li[selected]'); + + await remoteCall.callRemoteTestUtil('execCommand', appId, ['copy']); + await directoryTree.navigateToPath('/fake-usb'); + await remoteCall.callRemoteTestUtil('execCommand', appId, ['paste']); + + // Scanning Label. + await remoteCall.waitForFeedbackPanelItem( + appId, new RegExp('^Copying.*$'), new RegExp('^Scanning$')); + + // Issue the responses, s.t., the transfer can continue. + await sendTestMessage({name: 'issueFileTransferResponses'}); + + await remoteCall.waitForFeedbackPanelItem( + appId, new RegExp('^Copying 3 items.*$'), new RegExp('$')); + + // Verify that the two files were blocked. + await remoteCall.waitForFeedbackPanelItem( + appId, new RegExp('2 files blocked from copying'), + new RegExp('^Review.*$')); + await directoryTree.navigateToPath('/fake-usb'); + // blockedFileEntry1 is expected since the DLP daemon actual blocking with + // Fanotify isn't mocked. + await remoteCall.waitForFiles( + appId, + [allowedFileEntry.getExpectedRow(), blockedFileEntry1.getExpectedRow()]); +};
diff --git a/ui/message_center/views/notification_input_container.cc b/ui/message_center/views/notification_input_container.cc index c0f358c..afcb2d1f 100644 --- a/ui/message_center/views/notification_input_container.cc +++ b/ui/message_center/views/notification_input_container.cc
@@ -6,6 +6,7 @@ #include "base/functional/bind.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/color/color_id.h" #include "ui/color/color_provider.h" #include "ui/compositor/layer.h" @@ -230,4 +231,7 @@ GetColorProvider()->GetColor(icon_color_id), kInputReplyButtonSize)); } +BEGIN_METADATA(NotificationInputContainer, views::View) +END_METADATA + } // namespace message_center
diff --git a/ui/message_center/views/notification_input_container.h b/ui/message_center/views/notification_input_container.h index 1f7e7b1..197e2d86 100644 --- a/ui/message_center/views/notification_input_container.h +++ b/ui/message_center/views/notification_input_container.h
@@ -6,6 +6,7 @@ #define UI_MESSAGE_CENTER_VIEWS_NOTIFICATION_INPUT_CONTAINER_H_ #include "base/memory/raw_ptr.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/message_center/message_center_export.h" #include "ui/views/controls/textfield/textfield_controller.h" #include "ui/views/layout/box_layout.h" @@ -36,6 +37,7 @@ : public views::View, public views::TextfieldController { public: + METADATA_HEADER(NotificationInputContainer); explicit NotificationInputContainer( NotificationInputDelegate* delegate = nullptr); NotificationInputContainer(const NotificationInputContainer&) = delete;
diff --git a/ui/message_center/views/notification_view.cc b/ui/message_center/views/notification_view.cc index 64935132..36304803 100644 --- a/ui/message_center/views/notification_view.cc +++ b/ui/message_center/views/notification_view.cc
@@ -8,6 +8,8 @@ #include "build/build_config.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/color/color_id.h" #include "ui/color/color_provider.h" #include "ui/compositor/layer.h" @@ -698,4 +700,7 @@ SchedulePaint(); } +BEGIN_METADATA(NotificationView, NotificationViewBase) +END_METADATA + } // namespace message_center
diff --git a/ui/message_center/views/notification_view.h b/ui/message_center/views/notification_view.h index 7819273..d6c0115 100644 --- a/ui/message_center/views/notification_view.h +++ b/ui/message_center/views/notification_view.h
@@ -6,6 +6,7 @@ #define UI_MESSAGE_CENTER_VIEWS_NOTIFICATION_VIEW_H_ #include "base/memory/raw_ptr.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/message_center/message_center_export.h" #include "ui/message_center/views/notification_view_base.h" @@ -21,6 +22,7 @@ // notification (web, basic, image, and list) except custom notification. class MESSAGE_CENTER_EXPORT NotificationView : public NotificationViewBase { public: + METADATA_HEADER(NotificationView); // TODO(crbug/1241983): Add metadata and builder support to this view. explicit NotificationView(const message_center::Notification& notification); NotificationView(const NotificationView&) = delete;
diff --git a/ui/message_center/views/notification_view_base.cc b/ui/message_center/views/notification_view_base.cc index a1133349..2b7051c 100644 --- a/ui/message_center/views/notification_view_base.cc +++ b/ui/message_center/views/notification_view_base.cc
@@ -917,4 +917,7 @@ header_row_->SetSubpixelRenderingEnabled(true); } +BEGIN_METADATA(NotificationViewBase, MessageView) +END_METADATA + } // namespace message_center
diff --git a/ui/message_center/views/notification_view_base.h b/ui/message_center/views/notification_view_base.h index 5351ef98..5a45b356 100644 --- a/ui/message_center/views/notification_view_base.h +++ b/ui/message_center/views/notification_view_base.h
@@ -72,6 +72,7 @@ public: // This defines an enumeration of IDs that can uniquely identify a view within // the scope of NotificationViewBase. + METADATA_HEADER(NotificationViewBase); enum ViewId { // We start from 1 because 0 is the default view ID. kHeaderRow = 1,
diff --git a/ui/views/examples/animated_image_view_example.cc b/ui/views/examples/animated_image_view_example.cc index e9c1d1d..375598f 100644 --- a/ui/views/examples/animated_image_view_example.cc +++ b/ui/views/examples/animated_image_view_example.cc
@@ -20,6 +20,8 @@ #include "base/threading/thread_restrictions.h" #include "build/build_config.h" #include "cc/paint/skottie_wrapper.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/gfx/geometry/insets.h" #include "ui/lottie/animation.h" #include "ui/views/border.h" @@ -42,6 +44,7 @@ // See https://skia.org/user/modules/skottie for more info on skottie. class AnimationGallery : public BoxLayoutView, public TextfieldController { public: + METADATA_HEADER(AnimationGallery); AnimationGallery() { View* image_view_container = nullptr; BoxLayoutView* file_container = nullptr; @@ -132,6 +135,9 @@ int size_ = 0; }; +BEGIN_METADATA(AnimationGallery, BoxLayoutView) +END_METADATA + } // namespace AnimatedImageViewExample::AnimatedImageViewExample()
diff --git a/ui/views/examples/animation_example.cc b/ui/views/examples/animation_example.cc index b01388e..3afd253 100644 --- a/ui/views/examples/animation_example.cc +++ b/ui/views/examples/animation_example.cc
@@ -10,6 +10,8 @@ #include "base/strings/utf_string_conversions.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/compositor/layer.h" #include "ui/compositor/layer_animation_element.h" #include "ui/compositor/layer_animation_sequence.h" @@ -45,6 +47,7 @@ class AnimatingSquare : public View { public: + METADATA_HEADER(AnimatingSquare); explicit AnimatingSquare(size_t index); AnimatingSquare(const AnimatingSquare&) = delete; AnimatingSquare& operator=(const AnimatingSquare&) = delete; @@ -62,6 +65,9 @@ style::STYLE_PRIMARY); }; +BEGIN_METADATA(AnimatingSquare, View) +END_METADATA + AnimatingSquare::AnimatingSquare(size_t index) : index_(index) { SetPaintToLayer(); layer()->SetFillsBoundsOpaquely(false);
diff --git a/ui/views/examples/button_example.cc b/ui/views/examples/button_example.cc index 1eff4f6..d92bab54 100644 --- a/ui/views/examples/button_example.cc +++ b/ui/views/examples/button_example.cc
@@ -9,6 +9,8 @@ #include "base/strings/utf_string_conversions.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/resource/resource_bundle.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/image/image.h" @@ -133,6 +135,7 @@ // by overriding the hover effect to draw a new background with a shadow. class FabButton : public views::MdTextButton { public: + METADATA_HEADER(FabButton); using MdTextButton::MdTextButton; FabButton(const FabButton&) = delete; FabButton& operator=(const FabButton&) = delete; @@ -165,8 +168,12 @@ bool use_shadow_ = false; }; +BEGIN_METADATA(FabButton, views::MdTextButton) +END_METADATA + class IconAndTextButton : public views::MdTextButton { public: + METADATA_HEADER(IconAndTextButton); IconAndTextButton(PressedCallback callback, const std::u16string& text, const gfx::VectorIcon& icon) @@ -188,6 +195,9 @@ const raw_ref<const gfx::VectorIcon> icon_; }; +BEGIN_METADATA(IconAndTextButton, views::MdTextButton) +END_METADATA + ButtonExample::ButtonExample() : ExampleBase("Button") { ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); icon_ = rb.GetImageNamed(IDR_CLOSE_H).ToImageSkia();
diff --git a/ui/views/examples/colored_dialog_example.cc b/ui/views/examples/colored_dialog_example.cc index ada40e5..57ef1e1 100644 --- a/ui/views/examples/colored_dialog_example.cc +++ b/ui/views/examples/colored_dialog_example.cc
@@ -10,6 +10,7 @@ #include "base/containers/adapters.h" #include "base/memory/raw_ref.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/ui_base_types.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/vector_icon_types.h" @@ -28,6 +29,7 @@ class ThemeTrackingCheckbox : public views::Checkbox { public: + METADATA_HEADER(ThemeTrackingCheckbox); explicit ThemeTrackingCheckbox(const std::u16string& label) : Checkbox(label, base::BindRepeating(&ThemeTrackingCheckbox::ButtonPressed, @@ -48,8 +50,12 @@ } }; +BEGIN_METADATA(ThemeTrackingCheckbox, views::Checkbox) +END_METADATA + class TextVectorImageButton : public views::MdTextButton { public: + METADATA_HEADER(TextVectorImageButton); TextVectorImageButton(PressedCallback callback, const std::u16string& text, const gfx::VectorIcon& icon) @@ -71,6 +77,9 @@ const raw_ref<const gfx::VectorIcon> icon_; }; +BEGIN_METADATA(TextVectorImageButton, views::MdTextButton) +END_METADATA + ColoredDialog::ColoredDialog(AcceptCallback accept_callback) { SetAcceptCallback(base::BindOnce( [](ColoredDialog* dialog, AcceptCallback callback) { @@ -109,6 +118,9 @@ DialogModelChanged(); } +BEGIN_METADATA(ColoredDialog, views::DialogDelegateView) +END_METADATA + ColoredDialogChooser::ColoredDialogChooser() { views::LayoutProvider* provider = views::LayoutProvider::Get(); const int vertical_spacing = @@ -157,6 +169,9 @@ confirmation_label_)); } +BEGIN_METADATA(ColoredDialogChooser, views::View) +END_METADATA + ColoredDialogExample::ColoredDialogExample() : ExampleBase("Colored Dialog") {} ColoredDialogExample::~ColoredDialogExample() = default;
diff --git a/ui/views/examples/colored_dialog_example.h b/ui/views/examples/colored_dialog_example.h index a21e567..250c2e03 100644 --- a/ui/views/examples/colored_dialog_example.h +++ b/ui/views/examples/colored_dialog_example.h
@@ -7,6 +7,7 @@ #include "base/memory/raw_ptr.h" #include "base/timer/timer.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/controls/textfield/textfield_controller.h" #include "ui/views/examples/example_base.h" #include "ui/views/view.h" @@ -21,6 +22,7 @@ class ColoredDialog : public views::DialogDelegateView, public views::TextfieldController { public: + METADATA_HEADER(ColoredDialog); using AcceptCallback = base::OnceCallback<void(std::u16string)>; explicit ColoredDialog(AcceptCallback accept_callback); @@ -42,6 +44,7 @@ class ColoredDialogChooser : public views::View { public: + METADATA_HEADER(ColoredDialogChooser); ColoredDialogChooser(); ColoredDialogChooser(const ColoredDialogChooser&) = delete; ColoredDialogChooser& operator=(const ColoredDialogChooser&) = delete;
diff --git a/ui/views/examples/colors_example.cc b/ui/views/examples/colors_example.cc index dc66b15..09fce12 100644 --- a/ui/views/examples/colors_example.cc +++ b/ui/views/examples/colors_example.cc
@@ -15,6 +15,8 @@ #include "base/strings/utf_string_conversions.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/color/color_id.h" #include "ui/color/color_provider.h" #include "ui/views/background.h" @@ -166,6 +168,7 @@ class AllColorsScrollView : public ScrollView { public: + METADATA_HEADER(AllColorsScrollView); AllColorsScrollView() { constexpr int kMaxHeight = 300; ClipHeightTo(0, kMaxHeight); @@ -178,6 +181,9 @@ } }; +BEGIN_METADATA(AllColorsScrollView, ScrollView) +END_METADATA + } // namespace ColorsExample::ColorsExample()
diff --git a/ui/views/examples/fade_animation.cc b/ui/views/examples/fade_animation.cc index c1f2376..c8ec685 100644 --- a/ui/views/examples/fade_animation.cc +++ b/ui/views/examples/fade_animation.cc
@@ -123,6 +123,9 @@ FadingView::~FadingView() = default; +BEGIN_METADATA(FadingView, View) +END_METADATA + ProposedLayout CenteringLayoutManager::CalculateProposedLayout( const SizeBounds& size_bounds) const { ProposedLayout layout;
diff --git a/ui/views/examples/fade_animation.h b/ui/views/examples/fade_animation.h index 3027eb43..0b8ea1e 100644 --- a/ui/views/examples/fade_animation.h +++ b/ui/views/examples/fade_animation.h
@@ -6,6 +6,7 @@ #define UI_VIEWS_EXAMPLES_FADE_ANIMATION_H_ #include "base/memory/raw_ptr.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/gfx/geometry/size.h" #include "ui/views/examples/example_base.h" #include "ui/views/metadata/view_factory.h" @@ -19,6 +20,7 @@ class FadingView : public View { public: + METADATA_HEADER(FadingView); FadingView(); FadingView(const FadingView&) = delete; FadingView& operator=(const FadingView&) = delete;
diff --git a/ui/views/examples/label_example.cc b/ui/views/examples/label_example.cc index 7e762bc..4b7b625 100644 --- a/ui/views/examples/label_example.cc +++ b/ui/views/examples/label_example.cc
@@ -10,6 +10,8 @@ #include "base/memory/ptr_util.h" #include "base/strings/utf_string_conversions.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/geometry/vector2d.h" #include "ui/views/background.h" @@ -38,6 +40,7 @@ // A Label with a clamped preferred width to demonstrate eliding or wrapping. class ExamplePreferredSizeLabel : public Label { public: + METADATA_HEADER(ExamplePreferredSizeLabel); ExamplePreferredSizeLabel() { SetBorder( CreateThemedSolidBorder(1, ExamplesColorIds::kColorLabelExampleBorder)); @@ -57,6 +60,9 @@ static const char* kElideBehaviors[]; }; +BEGIN_METADATA(ExamplePreferredSizeLabel, Label) +END_METADATA + // static const char* ExamplePreferredSizeLabel::kElideBehaviors[] = { "No Elide", "Truncate", "Elide Head", "Elide Middle",
diff --git a/ui/views/examples/layout_example_base.cc b/ui/views/examples/layout_example_base.cc index 1328d73..33773e2 100644 --- a/ui/views/examples/layout_example_base.cc +++ b/ui/views/examples/layout_example_base.cc
@@ -12,6 +12,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/color/color_id.h" #include "ui/color/color_provider.h" #include "ui/views/border.h" @@ -34,6 +35,9 @@ constexpr gfx::Size kLayoutExampleDefaultChildSize(180, 90); class LayoutPanel : public View { + public: + METADATA_HEADER(LayoutPanel); + protected: void OnThemeChanged() override { View::OnThemeChanged(); @@ -42,6 +46,9 @@ } }; +BEGIN_METADATA(LayoutPanel, View) +END_METADATA + // This View holds two other views which consists of a view on the left onto // which the BoxLayout is attached for demonstrating its features. The view // on the right contains all the various controls which allow the user to @@ -50,12 +57,16 @@ // 25%. class FullPanel : public View { public: + METADATA_HEADER(FullPanel); FullPanel() = default; FullPanel(const FullPanel&) = delete; FullPanel& operator=(const FullPanel&) = delete; ~FullPanel() override = default; }; +BEGIN_METADATA(FullPanel, View) +END_METADATA + std::unique_ptr<Textfield> CreateCommonTextfield( TextfieldController* container) { auto textfield = std::make_unique<Textfield>(); @@ -163,6 +174,9 @@ return AddChildView(CreateCommonTextfieldWithAXName(this, name)); } +BEGIN_METADATA(LayoutExampleBase, ChildPanel, View) +END_METADATA + LayoutExampleBase::LayoutExampleBase(const char* title) : ExampleBase(title) {} LayoutExampleBase::~LayoutExampleBase() = default;
diff --git a/ui/views/examples/layout_example_base.h b/ui/views/examples/layout_example_base.h index 535b24d..b0454f7 100644 --- a/ui/views/examples/layout_example_base.h +++ b/ui/views/examples/layout_example_base.h
@@ -6,6 +6,7 @@ #define UI_VIEWS_EXAMPLES_LAYOUT_EXAMPLE_BASE_H_ #include "base/memory/raw_ptr.h" +#include "ui/base/metadata/metadata_header_macros.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/geometry/size.h" #include "ui/views/controls/button/checkbox.h" @@ -39,6 +40,7 @@ // interactively set each margin and the "flex" for the given view. class ChildPanel : public View, public TextfieldController { public: + METADATA_HEADER(ChildPanel); explicit ChildPanel(LayoutExampleBase* example); ChildPanel(const ChildPanel&) = delete; ChildPanel& operator=(const ChildPanel&) = delete;
diff --git a/ui/views/examples/menu_example.cc b/ui/views/examples/menu_example.cc index 8bc0548..1357696 100644 --- a/ui/views/examples/menu_example.cc +++ b/ui/views/examples/menu_example.cc
@@ -11,6 +11,8 @@ #include "base/logging.h" #include "base/strings/utf_string_conversions.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/simple_menu_model.h" #include "ui/views/border.h" #include "ui/views/controls/button/button.h" @@ -65,6 +67,7 @@ class ExampleMenuButton : public MenuButton { public: + METADATA_HEADER(ExampleMenuButton); explicit ExampleMenuButton(const std::u16string& test = std::u16string()); ExampleMenuButton(const ExampleMenuButton&) = delete; @@ -81,6 +84,9 @@ std::unique_ptr<MenuRunner> menu_runner_; }; +BEGIN_METADATA(ExampleMenuButton, MenuButton) +END_METADATA + BEGIN_VIEW_BUILDER(/* no export */, ExampleMenuButton, MenuButton) END_VIEW_BUILDER
diff --git a/ui/views/examples/multiline_example.cc b/ui/views/examples/multiline_example.cc index 2d855fe..77dbebf 100644 --- a/ui/views/examples/multiline_example.cc +++ b/ui/views/examples/multiline_example.cc
@@ -13,6 +13,8 @@ #include "third_party/skia/include/core/SkColor.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/events/event.h" #include "ui/gfx/range/range.h" #include "ui/gfx/render_text.h" @@ -42,6 +44,7 @@ // A Label with a clamped preferred width to demonstrate wrapping. class PreferredSizeLabel : public Label { public: + METADATA_HEADER(PreferredSizeLabel); PreferredSizeLabel() = default; PreferredSizeLabel(const PreferredSizeLabel&) = delete; @@ -55,11 +58,15 @@ } }; +BEGIN_METADATA(PreferredSizeLabel, Label) +END_METADATA + } // namespace // A simple View that hosts a RenderText object. class MultilineExample::RenderTextView : public View { public: + METADATA_HEADER(RenderTextView); RenderTextView() : render_text_(gfx::RenderText::CreateRenderText()) { render_text_->SetHorizontalAlignment(gfx::ALIGN_TO_HEAD); render_text_->SetMultiline(true); @@ -150,6 +157,9 @@ std::unique_ptr<gfx::RenderText> render_text_; }; +BEGIN_METADATA(MultilineExample, RenderTextView, View) +END_METADATA + MultilineExample::MultilineExample() : ExampleBase(GetStringUTF8(IDS_MULTILINE_SELECT_LABEL).c_str()) {}
diff --git a/ui/views/examples/text_example.cc b/ui/views/examples/text_example.cc index 3a5bd6e..37dd408 100644 --- a/ui/views/examples/text_example.cc +++ b/ui/views/examples/text_example.cc
@@ -9,6 +9,8 @@ #include "base/strings/utf_string_conversions.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/color/color_id.h" #include "ui/color/color_provider.h" #include "ui/gfx/canvas.h" @@ -45,6 +47,7 @@ // TextExample's content view, which draws stylized string. class TextExample::TextExampleView : public View { public: + METADATA_HEADER(TextExampleView); TextExampleView() = default; TextExampleView(const TextExampleView&) = delete; TextExampleView& operator=(const TextExampleView&) = delete; @@ -112,6 +115,9 @@ gfx::ElideBehavior elide_ = gfx::NO_ELIDE; }; +BEGIN_METADATA(TextExample, TextExampleView, View) +END_METADATA + TextExample::TextExample() : ExampleBase(l10n_util::GetStringUTF8(IDS_TEXT_STYLE_LABEL).c_str()) {}
diff --git a/ui/views/examples/throbber_example.cc b/ui/views/examples/throbber_example.cc index 493e8ef..a07b2acb 100644 --- a/ui/views/examples/throbber_example.cc +++ b/ui/views/examples/throbber_example.cc
@@ -8,6 +8,8 @@ #include "base/memory/raw_ptr.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/views/controls/throbber.h" #include "ui/views/examples/grit/views_examples_resources.h" #include "ui/views/layout/fill_layout.h" @@ -19,6 +21,7 @@ class ThrobberView : public View { public: + METADATA_HEADER(ThrobberView); ThrobberView() { throbber_ = AddChildView(std::make_unique<Throbber>()); throbber_->Start(); @@ -57,6 +60,9 @@ bool is_checked_ = false; }; +BEGIN_METADATA(ThrobberView, View) +END_METADATA + } // namespace ThrobberExample::ThrobberExample()
diff --git a/ui/views/examples/vector_example.cc b/ui/views/examples/vector_example.cc index edc39ce..cc62bfc1 100644 --- a/ui/views/examples/vector_example.cc +++ b/ui/views/examples/vector_example.cc
@@ -19,6 +19,8 @@ #include "base/threading/thread_restrictions.h" #include "build/build_config.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_header_macros.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/simple_combobox_model.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/geometry/insets.h" @@ -45,6 +47,7 @@ class VectorIconGallery : public View, public TextfieldController { public: + METADATA_HEADER(VectorIconGallery); VectorIconGallery() { size_input_ = AddChildView(std::make_unique<Textfield>()); color_input_ = AddChildView(std::make_unique<Textfield>()); @@ -289,6 +292,9 @@ std::string contents_; }; +BEGIN_METADATA(VectorIconGallery, View) +END_METADATA + } // namespace VectorExample::VectorExample()