diff --git a/DEPS b/DEPS index c25daea..de66601a 100644 --- a/DEPS +++ b/DEPS
@@ -304,7 +304,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': '20d8ddab2b1395712685419afae1c5dca785d7cb', + 'skia_revision': '7635aa1d11c238dbb641242c2667ce64d1bf0d60', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -312,7 +312,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '23ec06204174174a3bb5bec3edad6df87bbd50b2', + 'angle_revision': '0059667f5cee8fae0f160c4a514851b48d84d032', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -331,7 +331,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Fuchsia sdk # and whatever else without interference from each other. - 'fuchsia_version': 'version:12.20230409.2.1', + 'fuchsia_version': 'version:12.20230410.0.1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling google-toolbox-for-mac # and whatever else without interference from each other. @@ -431,7 +431,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': '6ffc7890fb2f3f4bab4550c6eae372746a1d7985', + 'dawn_revision': '05625b333a2894fcbb6564189dd36c909b4de4f3', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -790,7 +790,7 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - '2ac013c76d4b9133af2f6f12b89e5efb4b1072a5', + 'c8d2390b002d8df1df2511b69a5af0e40caa1138', 'condition': 'checkout_android and checkout_src_internal', }, @@ -979,7 +979,7 @@ 'packages': [ { 'package': 'chromium/third_party/androidx', - 'version': '-jSW_QLD0YU8EPHCCmk1PTIK-fE-KfJ2xTIBbZJtuzkC', + 'version': 'tdBFAmMnqAlPmvTGGYaid5OZIlP9E-IxCoaQBszJC7AC', }, ], 'condition': 'checkout_android', @@ -1225,7 +1225,7 @@ Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), 'src/third_party/devtools-frontend-internal': { - 'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + '7e3e3bc38c552f47856824422a682ed7a9896112', + 'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + '9ea5ed50b5c62857b73bb280e601f3b0cd09f850', 'condition': 'checkout_src_internal', }, @@ -1829,7 +1829,7 @@ 'packages': [ { 'package': 'chromium/third_party/turbine', - 'version': 'epnqx7Yf9QxgyDaU87KJ1fLQvdZ_Mho_JjfpjmIBYWYC', + 'version': 'j0GanRK31QhKNs04PYT0D3ls32n6IrjrAL8bR4dv9jMC', }, ], 'condition': 'checkout_android', @@ -1966,7 +1966,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': Var('chrome_git') + '/chrome/src-internal.git@1b7558ca0bea33e8bcd29e0338ac029bbb637f9c', + 'url': Var('chrome_git') + '/chrome/src-internal.git@37960e72284610b638e5ce9250453c6e6dbbb14c', 'condition': 'checkout_src_internal', }, @@ -2029,7 +2029,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/projector_app/app', - 'version': '0PjEuJmwGoFoK8qjk8RiR5ycHDD9nQPVtzMxrfMBdFoC', + 'version': '5LlyicVBnnqBqKTiF37VEFUcykgdIYvuM3m4LIQ_jT0C', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/browser/gfx/vulkan_gl_interop.cc b/android_webview/browser/gfx/vulkan_gl_interop.cc index 49b3742..1d7eb06 100644 --- a/android_webview/browser/gfx/vulkan_gl_interop.cc +++ b/android_webview/browser/gfx/vulkan_gl_interop.cc
@@ -352,9 +352,13 @@ // Get the final state of the SkImage so that we can pass this back to Skia // during re-use. - GrBackendTexture backend_texture = - pending_draw->ahb_skimage->getBackendTexture( - true /* flushPendingGrContextIO */); + GrBackendTexture backend_texture; + if (!SkImages::GetBackendTextureFromImage( + pending_draw->ahb_skimage, &backend_texture, + true /* flushPendingGrContextIO */)) { + LOG(ERROR) << "Could not get Vk backend texture."; + return; + } GrVkImageInfo image_info; if (!backend_texture.getVkImageInfo(&image_info)) { LOG(ERROR) << "Could not get Vk image info.";
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd index 0ce46787..f21230c 100644 --- a/ash/ash_strings.grd +++ b/ash/ash_strings.grd
@@ -2578,6 +2578,9 @@ <message name="IDS_ASH_HOTSPOT_OFF_TITLE" desc="Title used for the system notification shown when the hotspot is turned off."> Hotspot is off </message> + <message name="IDS_ASH_HOTSPOT_NOTIFICATION_TURN_ON_BUTTON" desc="The label used as the button to turn on hotspot."> + Turn on hotspot + </message> <message name="IDS_ASH_HOTSPOT_WIFI_TURNED_OFF_MESSAGE" desc="Message displayed in the system notification shown when WiFi is turned off upon enabling hotspot."> We've turned off the WiFi to start using Hotspot through Mobile data. This may incur data costs. </message> @@ -2587,6 +2590,12 @@ <message name="IDS_ASH_HOTSPOT_ADMIN_RESTRICTED_MESSAGE" desc="Message displayed in the system notification shown when the hotspot is turned off by the administrator."> Your administrator has turned Hotspot off. </message> + <message name="IDS_ASH_HOTSPOT_AUTO_DISABLED_MESSAGE" desc="Message displayed in the system notification shown when the hotspot is turned off due to inactivity."> + Due to inactivity, hotspot has been turned off. + </message> + <message name="IDS_ASH_HOTSPOT_INTERNAL_ERROR_MESSAGE" desc="Message displayed in the system notification shown when the hotspot is turned off due to internal error."> + Due to internal error, hotspot has been turned off. Try reconnecting in a few minutes. + </message> <message name="IDS_ASH_NETWORK_AUTOCONNECT" desc="Text used for the toast shown when a network has been auto-connected (e.g., when an enterprise policy is applied which initiates a connection to a corporate network like Google-A)."> We've switched you to a better network </message>
diff --git a/ash/ash_strings_grd/IDS_ASH_HOTSPOT_AUTO_DISABLED_MESSAGE.png.sha1 b/ash/ash_strings_grd/IDS_ASH_HOTSPOT_AUTO_DISABLED_MESSAGE.png.sha1 new file mode 100644 index 0000000..133e4a45 --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_HOTSPOT_AUTO_DISABLED_MESSAGE.png.sha1
@@ -0,0 +1 @@ +25aa7efe92368f7fb081bc36b9436b43a4572a4a \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_HOTSPOT_INTERNAL_ERROR_MESSAGE.png.sha1 b/ash/ash_strings_grd/IDS_ASH_HOTSPOT_INTERNAL_ERROR_MESSAGE.png.sha1 new file mode 100644 index 0000000..69fd4fa9 --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_HOTSPOT_INTERNAL_ERROR_MESSAGE.png.sha1
@@ -0,0 +1 @@ +749c8fea4e637e6de7ec69a4217dee634efae194 \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_HOTSPOT_NOTIFICATION_TURN_ON_BUTTON.png.sha1 b/ash/ash_strings_grd/IDS_ASH_HOTSPOT_NOTIFICATION_TURN_ON_BUTTON.png.sha1 new file mode 100644 index 0000000..d362dcf --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_HOTSPOT_NOTIFICATION_TURN_ON_BUTTON.png.sha1
@@ -0,0 +1 @@ +66ca70f41018f3c48777f7f52bfef6ebd6bfd795 \ No newline at end of file
diff --git a/ash/components/arc/net/arc_net_host_impl.cc b/ash/components/arc/net/arc_net_host_impl.cc index fd6fce1..d706bb9 100644 --- a/ash/components/arc/net/arc_net_host_impl.cc +++ b/ash/components/arc/net/arc_net_host_impl.cc
@@ -1133,7 +1133,7 @@ mojom::PasspointApprovalResponse::New(/*allow=*/false)); return; } - PasspointDialogView::Show(window, request->app_name, std::move(callback)); + PasspointDialogView::Show(window, std::move(request), std::move(callback)); } void ArcNetHostImpl::AddPasspointCredentialsWithProperties(
diff --git a/ash/components/arc/net/passpoint_dialog_view.cc b/ash/components/arc/net/passpoint_dialog_view.cc index edc6bbd..b80adc23 100644 --- a/ash/components/arc/net/passpoint_dialog_view.cc +++ b/ash/components/arc/net/passpoint_dialog_view.cc
@@ -14,8 +14,10 @@ #include "ash/style/ash_color_provider.h" #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" +#include "base/time/time.h" #include "chromeos/ash/components/network/network_event_log.h" #include "components/strings/grit/components_strings.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "ui/base/l10n/l10n_util.h" #include "ui/chromeos/devicetype_utils.h" #include "ui/strings/grit/ui_strings.h" @@ -39,15 +41,42 @@ constexpr int kCornerRadius = 12; // Top, left, bottom, and right inside margin for the Passpoint dialog. constexpr int kDialogBorderMargin[] = {24, 24, 20, 24}; -// Top, left, bottom, and right margin for the Passpoint dialog's body label. -constexpr int kDialogBodyMargin[] = {0, 0, 23, 0}; +// Bottom margin for the Passpoint dialog's body label. +constexpr int kDialogBodyBottomMargin = 23; +// Expiration time for showing Passpoint additional dialog. +constexpr base::TimeDelta kDialogExpiration = base::Days(365); + +// |subscription_expiration_time_ms| is in the format of number of milliseconds +// since January 1, 1970, 00:00:00 GMT. Expiration time of int64_min means no +// expiry date based on Android's behavior. +absl::optional<base::Time> GetTimeFromSubscriptionExpirationMs( + int64_t subscription_expiration_time_ms) { + if (subscription_expiration_time_ms == std::numeric_limits<int64_t>::min()) { + return absl::nullopt; + } + return base::Time::UnixEpoch() + + base::Milliseconds(subscription_expiration_time_ms); +} + +// Returns true if the expiration time is within |kDialogExpiration| and is +// still valid. +bool IsExpiring(absl::optional<base::Time> subscription_expiration_time) { + if (!subscription_expiration_time.has_value()) { + return false; + } + auto expiry_time_delta = + subscription_expiration_time.value() - base::Time::Now(); + return expiry_time_delta.is_positive() && + (expiry_time_delta < kDialogExpiration); +} } // namespace namespace arc { -PasspointDialogView::PasspointDialogView(base::StringPiece app_name, - PasspointDialogCallback callback) +PasspointDialogView::PasspointDialogView( + mojom::PasspointApprovalRequestPtr request, + PasspointDialogCallback callback) : callback_(std::move(callback)) { views::LayoutProvider* provider = views::LayoutProvider::Get(); SetOrientation(views::BoxLayout::Orientation::kVertical); @@ -57,6 +86,7 @@ kDialogBorderMargin[2], kDialogBorderMargin[3])); SetBetweenChildSpacing( provider->GetDistanceMetric(views::DISTANCE_RELATED_CONTROL_VERTICAL)); + SetSize(CalculatePreferredSize()); auto border = std::make_unique<views::BubbleBorder>( views::BubbleBorder::NONE, views::BubbleBorder::STANDARD_SHADOW, @@ -69,7 +99,7 @@ views::Builder<views::Label>() .SetText(l10n_util::GetStringFUTF16( IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_TITLE, - base::UTF8ToUTF16(app_name))) + base::UTF8ToUTF16(request->app_name))) .SetTextContext(views::style::CONTEXT_DIALOG_TITLE) .SetMultiLine(true) .SetHorizontalAlignment(gfx::ALIGN_LEFT) @@ -80,7 +110,10 @@ .DeriveWithWeight(gfx::Font::Weight::MEDIUM)) .Build()); - AddChildView(MakeContentsView()); + AddChildView( + MakeContentsView(IsExpiring(GetTimeFromSubscriptionExpirationMs( + request->subscription_expiration_time_ms)), + request->friendly_name.value_or(std::string()))); AddChildView(MakeButtonsView()); } @@ -95,39 +128,85 @@ return size; } -std::unique_ptr<views::View> PasspointDialogView::MakeContentsView() { - // Create the body text. +int PasspointDialogView::GetLabelWidth() { + return width() - kDialogBorderMargin[1] - kDialogBorderMargin[3]; +} + +std::unique_ptr<views::View> PasspointDialogView::MakeBaseLabelView( + bool is_expiring) { + const std::u16string label = l10n_util::GetStringFUTF16( + IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY, ui::GetChromeOSDeviceName()); + + std::unique_ptr<views::StyledLabel> styled_label = + views::Builder<views::StyledLabel>() + .CopyAddressTo(&body_text_) + .SetText(label) + .SizeToFit(GetLabelWidth()) + .SetHorizontalAlignment(gfx::ALIGN_LEFT) + .SetAutoColorReadabilityEnabled(false) + .Build(); + + if (!is_expiring) { + std::vector<size_t> offsets; + const std::u16string learn_more = l10n_util::GetStringUTF16( + IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_LEARN_MORE_LABEL); + const std::u16string label_expiring = l10n_util::GetStringFUTF16( + IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY_WITH_LEARN_MORE, + ui::GetChromeOSDeviceName(), learn_more, &offsets); + styled_label->SetText(label_expiring); + styled_label->AddStyleRange( + gfx::Range(offsets.back(), offsets.back() + learn_more.length()), + views::StyledLabel::RangeStyleInfo::CreateForLink( + base::BindRepeating(&PasspointDialogView::OnLearnMoreClicked, + weak_factory_.GetWeakPtr()))); + } + return styled_label; +} + +std::unique_ptr<views::View> PasspointDialogView::MakeSubscriptionLabelView( + base::StringPiece friendly_name) { std::vector<size_t> offsets; const std::u16string learn_more = l10n_util::GetStringUTF16( IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_LEARN_MORE_LABEL); const std::u16string label = l10n_util::GetStringFUTF16( - IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY, ui::GetChromeOSDeviceName(), - learn_more, &offsets); - - // Create link style for "Learn more". - views::StyledLabel::RangeStyleInfo link_style = - views::StyledLabel::RangeStyleInfo::CreateForLink( - base::BindRepeating(&PasspointDialogView::OnLearnMoreClicked, - weak_factory_.GetWeakPtr())); - - return views::Builder<views::BoxLayoutView>() - .SetOrientation(views::BoxLayout::Orientation::kVertical) - .SetProperty( - views::kMarginsKey, - gfx::Insets::TLBR(kDialogBodyMargin[0], kDialogBodyMargin[1], - kDialogBodyMargin[2], kDialogBodyMargin[3])) - .AddChildren( - views::Builder<views::StyledLabel>() - .CopyAddressTo(&body_text_) - .SetText(label) - .SetHorizontalAlignment(gfx::ALIGN_LEFT) - .AddStyleRange( - gfx::Range(offsets[1], offsets[1] + learn_more.length()), - link_style) - .SetAutoColorReadabilityEnabled(false)) + IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_SUBSCRIPTION_BODY_WITH_LEARN_MORE, + {ui::GetChromeOSDeviceName(), base::UTF8ToUTF16(friendly_name), + learn_more}, + &offsets); + return views::Builder<views::StyledLabel>() + .CopyAddressTo(&body_subscription_text_) + .SetText(label) + .SizeToFit(GetLabelWidth()) + .SetHorizontalAlignment(gfx::ALIGN_LEFT) + .SetAutoColorReadabilityEnabled(false) + .AddStyleRange( + gfx::Range(offsets.back(), offsets.back() + learn_more.length()), + views::StyledLabel::RangeStyleInfo::CreateForLink( + base::BindRepeating(&PasspointDialogView::OnLearnMoreClicked, + weak_factory_.GetWeakPtr()))) .Build(); } +std::unique_ptr<views::View> PasspointDialogView::MakeContentsView( + bool is_expiring, + base::StringPiece friendly_name) { + views::LayoutProvider* provider = views::LayoutProvider::Get(); + std::unique_ptr<views::BoxLayoutView> contents = + views::Builder<views::BoxLayoutView>() + .SetOrientation(views::BoxLayout::Orientation::kVertical) + .SetProperty(views::kMarginsKey, + gfx::Insets::TLBR(0, 0, kDialogBodyBottomMargin, 0)) + .SetBetweenChildSpacing(provider->GetDistanceMetric( + views::DISTANCE_RELATED_CONTROL_VERTICAL)) + .Build(); + + contents->AddChildView(MakeBaseLabelView(is_expiring)); + if (is_expiring) { + contents->AddChildView(MakeSubscriptionLabelView(friendly_name)); + } + return contents; +} + std::unique_ptr<views::View> PasspointDialogView::MakeButtonsView() { views::LayoutProvider* provider = views::LayoutProvider::Get(); return views::Builder<views::BoxLayoutView>() @@ -170,7 +249,7 @@ } void PasspointDialogView::Show(aura::Window* parent, - base::StringPiece app_name, + mojom::PasspointApprovalRequestPtr request, PasspointDialogCallback callback) { // This is safe because the callback is triggered only on button click which // requires the dialog to be valid. The dialog is deleted alongside the @@ -179,7 +258,7 @@ base::BindOnce(&OverlayDialog::CloseIfAny, base::Unretained(parent)); auto dialog_view = std::make_unique<PasspointDialogView>( - app_name, std::move(callback).Then(std::move(remove_overlay))); + std::move(request), std::move(callback).Then(std::move(remove_overlay))); auto* dialog_view_ptr = dialog_view.get(); OverlayDialog::Show(
diff --git a/ash/components/arc/net/passpoint_dialog_view.h b/ash/components/arc/net/passpoint_dialog_view.h index 0d53791..430cf30 100644 --- a/ash/components/arc/net/passpoint_dialog_view.h +++ b/ash/components/arc/net/passpoint_dialog_view.h
@@ -46,7 +46,7 @@ PasspointDialogView* const view_; }; - PasspointDialogView(base::StringPiece app_name, + PasspointDialogView(mojom::PasspointApprovalRequestPtr request, PasspointDialogCallback callback); PasspointDialogView(const PasspointDialogView&) = delete; PasspointDialogView& operator=(const PasspointDialogView&) = delete; @@ -55,14 +55,23 @@ // Shows confirmation dialog for asking user to approve the app to install // Passpoint credentials. static void Show(aura::Window* parent, - base::StringPiece app_name, + mojom::PasspointApprovalRequestPtr request, PasspointDialogCallback callback); // views::View: gfx::Size CalculatePreferredSize() const override; private: - std::unique_ptr<views::View> MakeContentsView(); + // Get width to be used by label. This is calculated by getting the dialog's + // width and subtracting it with it's inside margin. + int GetLabelWidth(); + + std::unique_ptr<views::View> MakeBaseLabelView(bool is_expiring); + std::unique_ptr<views::View> MakeSubscriptionLabelView( + base::StringPiece friendly_name); + std::unique_ptr<views::View> MakeContentsView( + bool is_expiring, + base::StringPiece friendly_name); std::unique_ptr<views::View> MakeButtonsView(); void OnLearnMoreClicked(); @@ -72,6 +81,7 @@ // Added for testing. views::StyledLabel* body_text_{nullptr}; + views::StyledLabel* body_subscription_text_{nullptr}; views::MdTextButton* allow_button_{nullptr}; views::MdTextButton* dont_allow_button_{nullptr};
diff --git a/ash/components/arc/net/passpoint_dialog_view_unittest.cc b/ash/components/arc/net/passpoint_dialog_view_unittest.cc index aecb5db4..1ca09d5 100644 --- a/ash/components/arc/net/passpoint_dialog_view_unittest.cc +++ b/ash/components/arc/net/passpoint_dialog_view_unittest.cc
@@ -6,6 +6,7 @@ #include <memory> +#include "ash/components/arc/mojom/net.mojom.h" #include "ash/components/arc/net/browser_url_opener.h" #include "base/functional/bind.h" #include "testing/gtest/include/gtest/gtest.h" @@ -40,10 +41,17 @@ widget_ = CreateTestWidget(); widget_->SetBounds(gfx::Rect(800, 800)); + + mojom::PasspointApprovalRequestPtr request = + mojom::PasspointApprovalRequest::New( + /*package_name=*/std::string(), /*app_name=*/std::string(), + /*friendly_name=*/std::string(), + /*subscription_expiration_time_ms=*/0); dialog_view_ = widget_->SetContentsView(std::make_unique<PasspointDialogView>( - /*app_name=*/"", base::BindOnce(&PasspointDialogViewTest::OnClicked, - base::Unretained(this)))); + std::move(request), + base::BindOnce(&PasspointDialogViewTest::OnClicked, + base::Unretained(this)))); widget_->Show(); }
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index 12b49f1..968c67f 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -1626,7 +1626,12 @@ // Enables user to provision PasspointARCSupport credentials. BASE_FEATURE(kPasspointARCSupport, "PasspointARCSupport", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); + +// Enables user to display Passpoint credentials in the UI. +BASE_FEATURE(kPasspointSettings, + "PasspointSettings", + base::FEATURE_DISABLED_BY_DEFAULT); // Enables a notification warning users that their Thunderbolt device is not // supported on their CrOS device. @@ -3110,6 +3115,11 @@ return base::FeatureList::IsEnabled(kPasspointARCSupport); } +bool IsPasspointSettingsEnabled() { + return base::FeatureList::IsEnabled(kPasspointSettings) && + base::FeatureList::IsEnabled(kPasspointARCSupport); +} + bool IsPcieBillboardNotificationEnabled() { return base::FeatureList::IsEnabled(kPcieBillboardNotification); }
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h index 4797f82..e3c799b 100644 --- a/ash/constants/ash_features.h +++ b/ash/constants/ash_features.h
@@ -468,6 +468,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kOverviewButton); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kOverviewDeskNavigation); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kPasspointARCSupport); +COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kPasspointSettings); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kPcieBillboardNotification); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kPerDeskShelf); @@ -838,6 +839,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOsSyncConsentRevampEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOverviewDeskNavigationEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPasspointARCSupportEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPasspointSettingsEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPcieBillboardNotificationEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPciguardUiEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsPerDeskShelfEnabled();
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index ceb8c2e..3cbf2b9d 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C መሣሪያ (የፊት ወደብ)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> ወደ <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> ኸ) ተቀይሯል። ለውጦችን ለማቆየት አረጋግጥን ጠቅ ያድርጉ። ቀዳሚ ቅንብሮቹ በ<ph name="TIMEOUT_SECONDS" /> ውስጥ ወደነበሩበት ይመለሳሉ።</translation> <translation id="1013923882670373915">የብሉቱዝ መሣሪያ «<ph name="DEVICE_NAME" />» ለመጣመር ፍቃድ ይፈልጋል። እባክዎ ይህን የፒን ኮድ በዚህ መሣሪያ ላይ ያስገቡ፦ <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">በChrome ውስጥ ምንም የጀርባ ታሪክ ሳይኖር ሲቀር የላይ መስኮትን ያሳንሱ</translation> <translation id="1024364763893396229">የእርስዎን <ph name="NAME" /> ያስቀምጡ</translation> <translation id="1032891413405719768">የStylus ባትሪ ዝቅተኛ ነው</translation> <translation id="1036073649888683237">ማሳወቂያዎችን ለማቀናበር ወደ ቅንብሮች ይሂዱ</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">ስርዓት</translation> <translation id="2621713457727696555">ደህንነቱ ተጠብቋል</translation> <translation id="263399434338050016">«ሁሉንም ይምረጡ»</translation> +<translation id="2644422758626431000">መስኮትን በግራ ፒን ያድርጉ</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> ከ<ph name="TOTAL_MEMORY" /> ይገኛል</translation> <translation id="2653019840645008922">የመስኮት መቅረጽ</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">በርቷል</translation> <translation id="5920710855273935292">የማይክሮፎን ድምፅ ተዘግቷል።</translation> +<translation id="5922962980596822074">በጣም በቅርብ ጊዜ ጥቅም ላይ ከዋለው መስኮት ጀምሮ በመስኮቶቹ ይሂዱ</translation> <translation id="5924855612669061715">መገናኛ ነጥብ በርቷል</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> በርቷል።</translation> <translation id="5947494881799873997">አድህር</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">የማይታወቁ አውታረ መረቦች</translation> <translation id="6359587239691116345">የቅርብ ጊዜ ባህሪያትን እና የደህንነት ማሻሻያዎችን ያግኙ። ይህን ዝማኔ ካልተቀበሉ የእርስዎ መሣሪያ ከእንግዲህ በትክክል ላይሰራ እና የደህንነት እና የአፈጻጸም ችግሮች ሊያጋጥሙዎት ይችላል።</translation> <translation id="6376931439017688372">ብሉቱዝ በርቷል</translation> +<translation id="6378515133128829137">መስኮትን በቀኝ ፒን ያድርጉ</translation> <translation id="6381109794406942707">መሣሪያውን ለመክፈት የእርስዎን ፒን ያስገቡ።</translation> <translation id="638716340450135524">የካሜራ መዳረሻን አብራ</translation> <translation id="639644700271529076">CAPS LOCK ጠፍቷል</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">ማያ ገጽ ወደ <ph name="DISPLAY_NAME" /> በመቀጠል ላይ</translation> <translation id="6477681113376365978">ፋይል ማውረድ አልተቻለም</translation> <translation id="6482559668224714696">የሙሉ ማያ ገጽ ማጉያ</translation> +<translation id="6483727822843292440">በትንሹ ጥቅም ላይ ከዋለው መስኮት ጀምሮ በመስኮቶቹ ይሂዱ</translation> <translation id="6490471652906364588">USB-C መሣሪያ (የቀኝ ወደብ)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> የእርስዎን <ph name="DEVICE_TYPE" /> ከቀነገደቡ በፊት እንዲያዘምኑት ይፈልግብዎታል።</translation> <translation id="649452524636452238">የዘመናዊ ካርድ ፒን</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 26a1526..2c045b21 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">جهاز USB-C (المنفذ الأمامي)</translation> <translation id="1013598600051641573">تم تغيير درجة دقة <ph name="DISPLAY_NAME" /> إلى <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> هرتز). يُرجى النقر على "تأكيد" لحفظ التغييرات. وستتم استعادة الإعدادات السابقة خلال <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">يريد جهاز بلوتوث "<ph name="DEVICE_NAME" />" الحصول على إذن للإقران. يُرجى إدخال رقم التعريف الشخصي هذا في هذا الجهاز: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">تصغير النافذة العلوية في حال عدم توفُّر سجلّ في Chrome للمواقع الإلكترونية التي سبق أن تمت زيارتها</translation> <translation id="1024364763893396229">حفظ بيانات جهاز <ph name="NAME" /></translation> <translation id="1032891413405719768">بطارية قلم الشاشة منخفضة</translation> <translation id="1036073649888683237">لإدارة الإشعارات، يُرجى الانتقال إلى "الإعدادات".</translation> @@ -235,7 +236,7 @@ <translation id="2023558322300866873">يمكنك متى شئت إيقاف ميزة التقاط حِزم الشبكة.</translation> <translation id="2034971124472263449">الحفظ على أي حال</translation> <translation id="2049240716062114887">تم تغيير اسم سطح المكتب إلى <ph name="DESK_NAME" />.</translation> -<translation id="2050339315714019657">رأسي</translation> +<translation id="2050339315714019657">عمودي</translation> <translation id="2064048859448024834">يتم عرض معاينة الكاميرا</translation> <translation id="2067602449040652523">سطوع لوحة المفاتيح</translation> <translation id="2078034614700056995">يمكنك التمرير سريعًا لليسار بأربعة أصابع للتبديل إلى سطح المكتب التالي.</translation> @@ -344,6 +345,7 @@ <translation id="2620436844016719705">النظام</translation> <translation id="2621713457727696555">مؤمّنة</translation> <translation id="263399434338050016">"اختيار الكل"</translation> +<translation id="2644422758626431000">تثبيت النافذة على اليمين</translation> <translation id="2645435784669275700">نظام التشغيل Chrome</translation> <translation id="2647092942972307022">تم استخدام <ph name="USED_MEMORY" /> من إجمالي الذاكرة المتوفّرة بسعة <ph name="TOTAL_MEMORY" />.</translation> <translation id="2653019840645008922">لقطة نافذة</translation> @@ -1056,6 +1058,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">مفعّل</translation> <translation id="5920710855273935292">تم كتم صوت الميكروفون.</translation> +<translation id="5922962980596822074">تصفُّح النوافذ بدءًا من آخر نافذة تم استخدامها</translation> <translation id="5924855612669061715">نقطة الاتصال مفعَّلة</translation> <translation id="5946788582095584774">ميزة <ph name="FEATURE_NAME" /> مُفعَّلة.</translation> <translation id="5947494881799873997">التراجع عن الإجراء</translation> @@ -1145,6 +1148,7 @@ <translation id="6352082849089527770">الشبكات غير المعروفة</translation> <translation id="6359587239691116345">يُرجى الحصول على أحدث الميزات وتحسينات الأمان. في حال رفض هذا التحديث، من المحتمل أن يتوقف جهازك عن العمل بشكل صحيح وقد تواجه مشاكل تتعلّق بالأمان والأداء.</translation> <translation id="6376931439017688372">تم تفعيل البلوتوث</translation> +<translation id="6378515133128829137">تثبيت النافذة على اليسار</translation> <translation id="6381109794406942707">لفتح قفل الجهاز، أدخِل رقم التعريف الشخصي.</translation> <translation id="638716340450135524">تفعيل الوصول إلى الكاميرا</translation> <translation id="639644700271529076">مفتاح CAPS LOCK قيد الإيقاف</translation> @@ -1164,6 +1168,7 @@ <translation id="6459472438155181876">تمديد الشاشة إلى <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">يتعذّر تنزيل الملف</translation> <translation id="6482559668224714696">مُكبِّر بملء الشاشة</translation> +<translation id="6483727822843292440">تصفُّح النوافذ بدءًا من النوافذ الأقل استخدامًا</translation> <translation id="6490471652906364588">جهاز USB-C (المنفذ الأيمن)</translation> <translation id="6491071886865974820">يتطلّب <ph name="MANAGER" /> منك تحديث جهاز <ph name="DEVICE_TYPE" /> قبل الموعد النهائي.</translation> <translation id="649452524636452238">رقم التعريف الشخصي للبطاقة الذكية</translation> @@ -1217,6 +1222,7 @@ <translation id="6683022854667115063">سمّاعات رأس</translation> <translation id="6696025732084565524">تحتاج لوحة المفاتيح القابلة للفصل إلى تحديث مهم</translation> <translation id="6700713906295497288">زر قائمة أداة تحرير أسلوب الإدخال (IME)</translation> +<translation id="6705577071209924099">تعديل الإضاءة</translation> <translation id="6707693040195709527">إعادة الجهاز إلى الإصدار السابق متأخرة</translation> <translation id="6710213216561001401">السابق</translation> <translation id="6723839937902243910">الطاقة</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb index 5791741..9fcbc742 100644 --- a/ash/strings/ash_strings_az.xtb +++ b/ash/strings/ash_strings_az.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C cihazı (ön port)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> <ph name="RESOLUTION" /> ilə dəyişdirilib (<ph name="REFRESH_RATE" /> Hz). Dəyişiklikləri saxlamaq üçün "təsdiq edin" seçiminə toxunun. Əvvəlki ayarlar <ph name="TIMEOUT_SECONDS" /> ərzində bərpa ediləcək.</translation> <translation id="1013923882670373915">Bluetooth cihazı "<ph name="DEVICE_NAME" />" cütlənmək üçün icazə istəyir. Həmin cihaza PIN kodu daxil edin: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Chrome-da geri keçid tarixçəsi olmadıqda yuxarı pəncərəni kiçildin</translation> <translation id="1024364763893396229"><ph name="NAME" /> cihazınızı yadda saxlayın</translation> <translation id="1032891413405719768">Qramafon iynəsinin batareyası azdır</translation> <translation id="1036073649888683237">Bildirişləri idarə etmək üçün Ayarlara keçin</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Sistem</translation> <translation id="2621713457727696555">Güvənli</translation> <translation id="263399434338050016">"Hamısını seçin"</translation> +<translation id="2644422758626431000">Pəncərəni sola bərkidin</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" />/<ph name="TOTAL_MEMORY" /> əlçatandır</translation> <translation id="2653019840645008922">Pəncərə çəkimi</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Aktiv</translation> <translation id="5920710855273935292">Mikrofon səssiz edilib.</translation> +<translation id="5922962980596822074">Ən son istifadə edilən pəncərədən başlayaraq pəncərələr arasında keçid edin</translation> <translation id="5924855612669061715">Hotspot aktivdir</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> aktivdir.</translation> <translation id="5947494881799873997">Geri dönün</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Naməlum şəbəkələr</translation> <translation id="6359587239691116345">Ən son funksiyaları və təhlükəsizlik təkmilləşdirmələrini əldə edin. Bu güncəlləməni rədd etsəniz, cihazınız artıq düzgün işləməyə bilər və təhlükəsizlik və performans problemləri ilə üzləşə bilərsiniz.</translation> <translation id="6376931439017688372">Bluetooth aktivdir</translation> +<translation id="6378515133128829137">Pəncərəni sağa bərkidin</translation> <translation id="6381109794406942707">Cihazı kiliddən çıxarmaq üçün PIN'nizi daxil edin.</translation> <translation id="638716340450135524">Kamera girişini aktiv edin</translation> <translation id="639644700271529076">LOCK off CAPS</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876"><ph name="DISPLAY_NAME" /> üçün ekran genişləndirilir</translation> <translation id="6477681113376365978">Faylı endirmək mümkün deyil</translation> <translation id="6482559668224714696">Tam ekran böyüdücüsü</translation> +<translation id="6483727822843292440">Ən az istifadə olunan pəncərədən başlayaraq pəncərələr arasında keçid edin</translation> <translation id="6490471652906364588">USB-C cihazı (sağ port)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> son tarixdən əvvəl <ph name="DEVICE_TYPE" /> cihazını güncəlləməyinizi tələb edir</translation> <translation id="649452524636452238">Smart kart PIN-i</translation> @@ -1215,6 +1220,7 @@ <translation id="6683022854667115063">Qulaqlıq</translation> <translation id="6696025732084565524">Çıxarıla bilən klaviatura mühüm yeniləmə tələb edir</translation> <translation id="6700713906295497288">IME menyu düyməsi</translation> +<translation id="6705577071209924099">İşığı tənzimləyin</translation> <translation id="6707693040195709527">Cihazın əvvəlki versiyaya dəyişdirilməsi vaxtı keçib</translation> <translation id="6710213216561001401">Əvvəlki</translation> <translation id="6723839937902243910">Enerji</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index 1742c1d..e533d51 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C устройство (предният порт)</translation> <translation id="1013598600051641573">Разделителната способност на <ph name="DISPLAY_NAME" /> бе променена на <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Хц). Кликнете върху бутона за потвърждаване, за да запазите промените. Предишните настройки ще бъдат възстановени след <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Устройството с Bluetooth „<ph name="DEVICE_NAME" />“ иска разрешение за сдвояване. Моля, въведете на него следния ПИН код: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Намаляване на прозореца от първо ниво, когато в Chrome няма история за връщане назад</translation> <translation id="1024364763893396229">Запазете устройството си <ph name="NAME" /></translation> <translation id="1032891413405719768">Батериите на писалката са изтощени</translation> <translation id="1036073649888683237">За да управлявате известията, отворете настройките</translation> @@ -146,6 +147,7 @@ <translation id="1651914502370159744">Отваряне на страницата „История“</translation> <translation id="1654477262762802994">Стартиране на гласова заявка</translation> <translation id="1668469839109562275">Вградена VPN</translation> +<translation id="1675844249244994876">Актуализиране на десния прозорец</translation> <translation id="1677472565718498478">Оставащо време: <ph name="TIME" /></translation> <translation id="1677507110654891115">Функцията „<ph name="FEATURE_NAME" />“ не е свързана.</translation> <translation id="1677582821739292812">Някой гледа в екрана ви</translation> @@ -343,6 +345,7 @@ <translation id="2620436844016719705">Система</translation> <translation id="2621713457727696555">защитена</translation> <translation id="263399434338050016">„Select all“</translation> +<translation id="2644422758626431000">Фиксиране на прозореца отляво</translation> <translation id="2645435784669275700">Chrome OS</translation> <translation id="2647092942972307022">Използвана памет: <ph name="USED_MEMORY" /> от <ph name="TOTAL_MEMORY" /></translation> <translation id="2653019840645008922">Заснемане на прозореца</translation> @@ -842,6 +845,7 @@ <translation id="493076006037866439">Отдалечаване на екрана</translation> <translation id="4936329710968938986">Всички, изключено</translation> <translation id="4938176435186993759">Скриване на всички предложения</translation> +<translation id="4943007472417128747">Точката за достъп е изключена с цел ползване на Wi-Fi. За да я използвате, изключете Wi-Fi.</translation> <translation id="4945196315133970626">Изключване на известията</translation> <translation id="4946376291507881335">Заснемане</translation> <translation id="495046168593986294">Превъртане нагоре</translation> @@ -1054,6 +1058,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Включено</translation> <translation id="5920710855273935292">Микрофонът е заглушен.</translation> +<translation id="5922962980596822074">Превключване на прозорците, като започнете от най-скоро използвания</translation> <translation id="5924855612669061715">Точката за достъп е включена</translation> <translation id="5946788582095584774">„<ph name="FEATURE_NAME" />“ е включено.</translation> <translation id="5947494881799873997">Възстановяване</translation> @@ -1143,6 +1148,7 @@ <translation id="6352082849089527770">Неизвестни мрежи</translation> <translation id="6359587239691116345">Получавайте най-новите функции и подобрения в сигурността. Ако отхвърлите тази актуализация, устройството ви може вече да не работи правилно и може да имате проблеми със сигурността и производителността.</translation> <translation id="6376931439017688372">Функцията за Bluetooth е включена</translation> +<translation id="6378515133128829137">Фиксиране на прозореца отдясно</translation> <translation id="6381109794406942707">Въведете ПИН кода си, за да отключите устройството.</translation> <translation id="638716340450135524">Разрешаване на достъпа до камерата</translation> <translation id="639644700271529076">„CAPS LOCK“ е изключен</translation> @@ -1162,6 +1168,7 @@ <translation id="6459472438155181876">Екранът се разширява на „<ph name="DISPLAY_NAME" />“</translation> <translation id="6477681113376365978">Файлът не може да бъде изтеглен</translation> <translation id="6482559668224714696">Лупа за увеличаване на целия екран</translation> +<translation id="6483727822843292440">Превключване на прозорците, като започнете от най-малко използвания</translation> <translation id="6490471652906364588">USB-C устройство (десният порт)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> изисква да актуализирате устройството си <ph name="DEVICE_TYPE" /> преди крайния срок</translation> <translation id="649452524636452238">ПИН за смарткартата</translation> @@ -1215,6 +1222,7 @@ <translation id="6683022854667115063">Слушалки</translation> <translation id="6696025732084565524">Вашата отделяща се клавиатура се нуждае от критична актуализация</translation> <translation id="6700713906295497288">Бутон за меню на редактора за метод на въвеждане</translation> +<translation id="6705577071209924099">Коригиране на осветлението</translation> <translation id="6707693040195709527">Срокът за връщане на устройството към предишна версия е изтекъл</translation> <translation id="6710213216561001401">Предишно</translation> <translation id="6723839937902243910">Захранване</translation> @@ -1382,6 +1390,7 @@ За да го изключите, отново натиснете бутона за захранване и го задръжте.</translation> <translation id="7526573455193969409">Мрежата може да е под наблюдение</translation> <translation id="7536035074519304529">IP адрес: <ph name="ADDRESS" /></translation> +<translation id="7536832381700852123">Актуализиране на левия прозорец</translation> <translation id="7543399541175347147">Понастоящем не се поддържат приложения за Linux и прозорци в режим „инкогнито“. Другите приложения ще бъдат запазени.</translation> <translation id="7544300628205093162">Фоновото осветление на клавиатурата е включено</translation> <translation id="7548434653388805669">Време е за сън</translation> @@ -1462,6 +1471,7 @@ <translation id="7893503627044934815">Не искам този файл да се показва</translation> <translation id="7895348134893321514">Кутия</translation> <translation id="7897375687985782769">Използвахте клавишната комбинация за завъртане на екрана. Искате ли да промените ориентацията му?</translation> +<translation id="7901190436359881020">Размяна на прозорците</translation> <translation id="7901405293566323524">Център за телефоните</translation> <translation id="7902625623987030061">Докоснете сензора за отпечатъци</translation> <translation id="7904094684485781019">Администраторът на този профил е забранил централизирания вход.</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb index e6f72b80..9ac4a9c 100644 --- a/ash/strings/ash_strings_bs.xtb +++ b/ash/strings/ash_strings_bs.xtb
@@ -1192,7 +1192,7 @@ <translation id="6565007273808762236">eSIM veza je nedostupna</translation> <translation id="6570831796530454248">{0,plural, =1{Ažurirajte uređaj u roku od jednog sata}one{Ažurirajte uređaj u roku od # sata}few{Ažurirajte uređaj u roku od # sata}other{Ažurirajte uređaj u roku od # sati}}</translation> <translation id="6570902864550063460">Punjenje putem USB-a</translation> -<translation id="6574587113394758819">Obavještenje aplikacije <ph name="APP_TITLE" /> je skriveno jer je uključena zaštita pregleda</translation> +<translation id="6574587113394758819">Obavještenje aplikacije <ph name="APP_TITLE" /> je skriveno jer je uključena zaštita od pregleda</translation> <translation id="6574622320167699133">Otključano vašim telefonom. Dodirnite ili kliknite da uđete.</translation> <translation id="6578407462441924264">Neimenovano</translation> <translation id="6585808820553845416">Sesija će se završiti za <ph name="SESSION_TIME_REMAINING" />.</translation> @@ -1201,7 +1201,7 @@ <translation id="661203523074512333"><ph name="SECURITY_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />, upravlja vaš administrator</translation> <translation id="6612802754306526077">Odabran je način rada za snimanje ekrana</translation> <translation id="6614169507485700968">Ekran za privatnost je uključen</translation> -<translation id="6625718907317144388">Obavještenja aplikacija <ph name="APP_1_TITLE" />, <ph name="APP_2_TITLE" /> i drugih su skrivena jer je uključena zaštita pregleda</translation> +<translation id="6625718907317144388">Obavještenja aplikacija <ph name="APP_1_TITLE" />, <ph name="APP_2_TITLE" /> i drugih su skrivena jer je uključena zaštita od pregleda</translation> <translation id="6627638273713273709">Tipka za pretraživanje + Shift + K</translation> <translation id="6637729079642709226">Promjena vremena</translation> <translation id="6641720045729354415">Uključite/isključite Automatske titlove. <ph name="STATE_TEXT" /></translation> @@ -1570,7 +1570,7 @@ <translation id="8374601332003098278">Pritisnite Enter da snimite dio ekrana</translation> <translation id="8375916635258623388">Uređaj <ph name="DEVICE_NAME" /> i vaš telefon će se povezati automatski</translation> <translation id="8380784334203145311">Laku noć,</translation> -<translation id="8382715499079447151">Zaštita pregleda</translation> +<translation id="8382715499079447151">Zaštita od pregleda</translation> <translation id="8388750414311082622">Nije moguće ukloniti posljednju radnu površinu.</translation> <translation id="8394567579869570560">Roditelj je zaključao uređaj</translation> <translation id="8401850874595457088">Otvaranje menija jezika</translation> @@ -1614,7 +1614,7 @@ <translation id="8594115950068821369">-<ph name="FORMATTED_TIME" /></translation> <translation id="8598235756057743477">Poredajte aplikacije po nazivu ili boji</translation> <translation id="8609384513243082612">Otvaranje nove kartice</translation> -<translation id="8614517853887502247">Obavještenja aplikacije <ph name="APP_1_TITLE" /> i <ph name="APP_2_TITLE" /> su skrivena jer je uključena zaštita pregleda</translation> +<translation id="8614517853887502247">Obavještenja aplikacije <ph name="APP_1_TITLE" /> i <ph name="APP_2_TITLE" /> su skrivena jer je uključena zaštita od pregleda</translation> <translation id="8619138598101195078">Stišavanje zvuka</translation> <translation id="8627191004499078455">Povezano na <ph name="DEVICE_NAME" /></translation> <translation id="8630991711272431708">Isključi pristup kameri</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 0be31aa8..54e2611 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">Dispositiu USB-C (port frontal)</translation> <translation id="1013598600051641573">La resolució de la pantalla <ph name="DISPLAY_NAME" /> ha canviat a <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Fes clic a Confirma per conservar els canvis. La configuració anterior es restaurarà d'aquí a <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">El dispositiu Bluetooth "<ph name="DEVICE_NAME" />" sol·licita permís per emparellar-se. Introduïu aquest codi PIN al dispositiu: <ph name="PINCODE" />.</translation> +<translation id="1017556409696559990">Minimitza la finestra superior quan no hi hagi historial anterior a Chrome</translation> <translation id="1024364763893396229">Desa el dispositiu <ph name="NAME" /></translation> <translation id="1032891413405719768">El llapis òptic té poca bateria</translation> <translation id="1036073649888683237">Per gestionar les notificacions, ves a Configuració</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Sistema</translation> <translation id="2621713457727696555">Segura</translation> <translation id="263399434338050016">"Selecciona-ho tot"</translation> +<translation id="2644422758626431000">Fixa la finestra a l'esquerra</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> de <ph name="TOTAL_MEMORY" /> disponibles</translation> <translation id="2653019840645008922">Captura de la finestra</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Activat</translation> <translation id="5920710855273935292">El micròfon està silenciat.</translation> +<translation id="5922962980596822074">Navega per les finestres des de la utilitzada més recentment</translation> <translation id="5924855612669061715">El punt d'accés Wi‑Fi està activat</translation> <translation id="5946788582095584774">La funció <ph name="FEATURE_NAME" /> està activada.</translation> <translation id="5947494881799873997">Reverteix</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Xarxes desconegudes</translation> <translation id="6359587239691116345">Obtén les funcions i les millores de seguretat més recents. Si rebutges aquesta actualització, pot ser que el dispositiu ja no funcioni correctament i que tinguis problemes de seguretat i de rendiment.</translation> <translation id="6376931439017688372">El Bluetooth està activat</translation> +<translation id="6378515133128829137">Fixa la finestra a la dreta</translation> <translation id="6381109794406942707">Per desbloquejar el dispositiu, introdueix el PIN.</translation> <translation id="638716340450135524">Activa l'accés a la càmera</translation> <translation id="639644700271529076">Bloq Maj està desactivat</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">S'està ampliant la pantalla a <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">No es pot baixar el fitxer</translation> <translation id="6482559668224714696">Lupa de pantalla completa</translation> +<translation id="6483727822843292440">Navega per les finestres des de la menys utilitzada</translation> <translation id="6490471652906364588">Dispositiu USB-C (port dret)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> requereix que actualitzis el dispositiu <ph name="DEVICE_TYPE" /> abans del termini establert</translation> <translation id="649452524636452238">PIN de la targeta intel·ligent</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index 3f0de62..fa732f6 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">Zařízení USB Type-C (přední port)</translation> <translation id="1013598600051641573">Rozlišení monitoru <ph name="DISPLAY_NAME" /> bylo změněno na <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Chcete-li změny ponechat, potvrďte je. Předchozí nastavení bude obnoveno za <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Zařízení Bluetooth „<ph name="DEVICE_NAME" />“ žádá o povolení ke spárování. Zadejte prosím v zařízení tento kód PIN: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Minimalizovat horní okno, když v Chromu není žádná zpětná historie</translation> <translation id="1024364763893396229">Uložení zařízení <ph name="NAME" /></translation> <translation id="1032891413405719768">Baterie dotykového pera je slabá</translation> <translation id="1036073649888683237">Oznámení můžete spravovat v sekci Nastavení</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Systém</translation> <translation id="2621713457727696555">Zabezpečeno</translation> <translation id="263399434338050016">„Vybrat vše“</translation> +<translation id="2644422758626431000">Připnout okno doleva</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> z dostupných <ph name="TOTAL_MEMORY" /></translation> <translation id="2653019840645008922">Záznam okna</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> <ph name="MAIL" /></translation> <translation id="5916664084637901428">Zapnuto</translation> <translation id="5920710855273935292">Mikrofon je ztlumen.</translation> +<translation id="5922962980596822074">Procházet okna od naposledy použitého</translation> <translation id="5924855612669061715">Hotspot je zapnutý</translation> <translation id="5946788582095584774">Funkce <ph name="FEATURE_NAME" /> je zapnutá.</translation> <translation id="5947494881799873997">Vrátit zpět</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Neznámé sítě</translation> <translation id="6359587239691116345">Získejte nejnovější funkce a vylepšení zabezpečení. Pokud tuto aktualizaci odmítnete, vaše zařízení už nemusí pracovat správně a mohou se vyskytnout problémy se zabezpečením a výkonem.</translation> <translation id="6376931439017688372">Rozhraní Bluetooth je zapnuté</translation> +<translation id="6378515133128829137">Připnout okno doprava</translation> <translation id="6381109794406942707">Chcete-li zařízení odemknout, zadejte PIN.</translation> <translation id="638716340450135524">Zapnout přístup k fotoaparátu</translation> <translation id="639644700271529076">CAPS LOCK je vypnutý</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Rozšíření obrazovky na displej <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Soubor nelze stáhnout</translation> <translation id="6482559668224714696">Lupa celé obrazovky</translation> +<translation id="6483727822843292440">Procházet okna od nejméně používaného</translation> <translation id="6490471652906364588">Zařízení USB Type-C (pravý port)</translation> <translation id="6491071886865974820">Organizace <ph name="MANAGER" /> vyžaduje, abyste toto zařízení <ph name="DEVICE_TYPE" /> do stanoveného termínu aktualizovali.</translation> <translation id="649452524636452238">PIN chytré karty</translation> @@ -1215,6 +1220,7 @@ <translation id="6683022854667115063">Sluchátka</translation> <translation id="6696025732084565524">Odpojitelná klávesnice vyžaduje kritickou aktualizaci</translation> <translation id="6700713906295497288">Tlačítko nabídky IME</translation> +<translation id="6705577071209924099">Upravit osvětlení</translation> <translation id="6707693040195709527">Termín pro převod zařízení na předchozí verzi vypršel</translation> <translation id="6710213216561001401">Předchozí</translation> <translation id="6723839937902243910">Napájení</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index 8f6dcae..37931e3 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C-enhed (port foran)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> blev ændret til <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Klik på Bekræft for at gemme ændringerne. De tidligere indstillinger gendannes om <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Bluetooth-enheden "<ph name="DEVICE_NAME" />" vil gerne have parringstilladelse. Angiv denne pinkode på den pågældende enhed: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Minimer det øverste vindue, når der ikke er noget at gå tilbage til i Chrome</translation> <translation id="1024364763893396229">Gem dine <ph name="NAME" /></translation> <translation id="1032891413405719768">Styluspennen er ved at løbe tør for batteri</translation> <translation id="1036073649888683237">Gå til Indstillinger for at administrere notifikationer</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">System</translation> <translation id="2621713457727696555">Beskyttet</translation> <translation id="263399434338050016">"Vælg alle"</translation> +<translation id="2644422758626431000">Fastgør vinduet til venstre side</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> af <ph name="TOTAL_MEMORY" /> tilgængelig</translation> <translation id="2653019840645008922">Tag et screenshot af et vindue</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Til</translation> <translation id="5920710855273935292">Mikrofonen er slået fra.</translation> +<translation id="5922962980596822074">Gennemse vinduer fra det senest anvendte vindue</translation> <translation id="5924855612669061715">Hotspottet er aktiveret</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> er aktiveret.</translation> <translation id="5947494881799873997">Fortryd</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Ukendte netværk</translation> <translation id="6359587239691116345">Få de nyeste funktioner og sikkerhedsforbedringer. Hvis du afviser denne opdatering, fungerer din enhed muligvis ikke længere korrekt, og du kan opleve problemer med sikkerheden og ydeevnen.</translation> <translation id="6376931439017688372">Bluetooth er slået til</translation> +<translation id="6378515133128829137">Fastgør vinduet til højre side</translation> <translation id="6381109794406942707">Angiv din pinkode for at låse enheden op.</translation> <translation id="638716340450135524">Aktivér kameraadgang</translation> <translation id="639644700271529076">CAPS LOCK er deaktiveret</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Udvider skærmen til <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Filen kan ikke downloades</translation> <translation id="6482559668224714696">Forstørrelse af fuld skærm</translation> +<translation id="6483727822843292440">Gennemse vinduer fra det mindst anvendte vindue</translation> <translation id="6490471652906364588">USB-C-enhed (højre port)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> kræver, at du opdaterer din <ph name="DEVICE_TYPE" />, før fristen udløber</translation> <translation id="649452524636452238">Pinkode til chipkort</translation> @@ -1215,6 +1220,7 @@ <translation id="6683022854667115063">Høretelefoner</translation> <translation id="6696025732084565524">Dit aftagelige tastatur kræver en vigtig opdatering</translation> <translation id="6700713906295497288">IME-menuknap</translation> +<translation id="6705577071209924099">Juster lys</translation> <translation id="6707693040195709527">Der skal skiftes til en tidligere version af enheden</translation> <translation id="6710213216561001401">Forrige</translation> <translation id="6723839937902243910">Strøm</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index df02604..b5f73ea 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C device (front port)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> changed to <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Click confirm to keep changes. The previous settings will be restored in <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Bluetooth device "<ph name="DEVICE_NAME" />" would like permission to pair. Please enter this PIN code on that device: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Minimise top window when there's no back history in Chrome</translation> <translation id="1024364763893396229">Save your <ph name="NAME" /></translation> <translation id="1032891413405719768">Stylus battery is low</translation> <translation id="1036073649888683237">To manage notifications, go to Settings</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">System</translation> <translation id="2621713457727696555">Secured</translation> <translation id="263399434338050016">'Select all'</translation> +<translation id="2644422758626431000">Pin window to left</translation> <translation id="2645435784669275700">Chrome OS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> of <ph name="TOTAL_MEMORY" /> available</translation> <translation id="2653019840645008922">Window capture</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">On</translation> <translation id="5920710855273935292">Mic is muted.</translation> +<translation id="5922962980596822074">Go through windows from the most recently used window</translation> <translation id="5924855612669061715">Hotspot is on</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> is on.</translation> <translation id="5947494881799873997">Revert</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Unknown networks</translation> <translation id="6359587239691116345">Get the latest features and security improvements. If you decline this update, your device may no longer work properly and you may experience security and performance issues.</translation> <translation id="6376931439017688372">Bluetooth is on</translation> +<translation id="6378515133128829137">Pin window to right</translation> <translation id="6381109794406942707">To unlock the device, enter your PIN.</translation> <translation id="638716340450135524">Turn on camera access</translation> <translation id="639644700271529076">CAPS LOCK is off</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Extending screen to <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Can’t download file</translation> <translation id="6482559668224714696">Full-screen magnifier</translation> +<translation id="6483727822843292440">Go through windows from the least-used window</translation> <translation id="6490471652906364588">USB-C device (right port)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> requires you to update your <ph name="DEVICE_TYPE" /> before the deadline</translation> <translation id="649452524636452238">Smart card PIN</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index de7f249..2ece361 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">دستگاه USB-C (درگاه جلو)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> به <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> هرتز) تغییر کرد. برای حفظ تغییرات، روی تأیید کلیک کنید. تنظیمات قبلی <ph name="TIMEOUT_SECONDS" /> دیگر بازیابی خواهد شد.</translation> <translation id="1013923882670373915">دستگاه بلوتوث «<ph name="DEVICE_NAME" />» برای مرتبطسازی به مجوز نیاز دارد. لطفاً این کد پین را در آن دستگاه وارد کنید: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">کوچک کردن پنجره بالایی وقتی سابقه قبلی در Chrome وجود ندارد</translation> <translation id="1024364763893396229">ذخیره کردن <ph name="NAME" /></translation> <translation id="1032891413405719768">شارژ باتری قلم کم است</translation> <translation id="1036073649888683237">برای مدیریت اعلانها، به «تنظیمات» بروید</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">سیستم</translation> <translation id="2621713457727696555">ایمن شد</translation> <translation id="263399434338050016">«انتخاب همه»</translation> +<translation id="2644422758626431000">سنجاق کردن پنجره به چپ</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> از <ph name="TOTAL_MEMORY" /> دردسترس است</translation> <translation id="2653019840645008922">ضبط پنجره</translation> @@ -1053,6 +1055,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">روشن</translation> <translation id="5920710855273935292">میکروفون صامت است.</translation> +<translation id="5922962980596822074">رفتن به پنجرهها از آخرین پنجره استفادهشده</translation> <translation id="5924855612669061715">«نقطه اتصال» روشن است</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> روشن است.</translation> <translation id="5947494881799873997">برگرداندن</translation> @@ -1142,6 +1145,7 @@ <translation id="6352082849089527770">شبکههای ناشناس</translation> <translation id="6359587239691116345">جدیدترین ویژگیها و قابلیتهای امنیتی بهبودیافته را دریافت کنید. اگر این بهروزرسانی را رد کنید، ممکن است دستگاهتان دیگر بهدرستی کار نکند و احتمال دارد با مشکلات امنیتی و عملکردی مواجه شوید.</translation> <translation id="6376931439017688372">بلوتوث روشن است</translation> +<translation id="6378515133128829137">سنجاق کردن پنجره به راست</translation> <translation id="6381109794406942707">برای باز کردن قفل دستگاه، پین را وارد کنید.</translation> <translation id="638716340450135524">روشن کردن دسترسی به دوربین</translation> <translation id="639644700271529076">CAPS LOCK خاموش است</translation> @@ -1161,6 +1165,7 @@ <translation id="6459472438155181876">گسترش صفحه به <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">فایل بارگیری نشد</translation> <translation id="6482559668224714696">ذرهبین تمامصفحه</translation> +<translation id="6483727822843292440">رفتن به پنجرهها از کمکاربردترین پنجره</translation> <translation id="6490471652906364588">دستگاه USB-C (درگاه سمت راست)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> از شما میخواهد <ph name="DEVICE_TYPE" /> را تا قبلاز موعد مقرر بهروزرسانی کنید</translation> <translation id="649452524636452238">پین کارت هوشمند</translation> @@ -1214,6 +1219,7 @@ <translation id="6683022854667115063">هدفون</translation> <translation id="6696025732084565524">لازم است صفحهکلید قابل جدا شدن بهروزرسانی ضروری شود</translation> <translation id="6700713906295497288">دکمه منو IME</translation> +<translation id="6705577071209924099">تنظیم میزان نور</translation> <translation id="6707693040195709527">زمان تغییر دادن دستگاه به نسخه قبلی از موعد مقرر گذشته است</translation> <translation id="6710213216561001401">قبلی</translation> <translation id="6723839937902243910">نیرو</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 8b326b2..436b5f9 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C ઉપકરણ (આગળનું પોર્ટ)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> બદલાઈને <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz) થયું. ફેરફારો રાખવા માટે કન્ફર્મ કરો પર ક્લિક કરો. અગાઉના સેટિંગ <ph name="TIMEOUT_SECONDS" />માં રિસ્ટોર કરવામાં આવશે.</translation> <translation id="1013923882670373915">Bluetooth ડિવાઇસ "<ph name="DEVICE_NAME" />" ને જોડી બનાવવા માટે પરવાનગી જોઈએ છે. કૃપા કરીને તે ડિવાઇસ પર આ PIN કોડ દાખલ કરો: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">જ્યારે Chromeમાં પાછળનો કોઈ ઇતિહાસ ન હોય, ત્યારે સૌથી ઉપરની વિન્ડો નાની કરો</translation> <translation id="1024364763893396229">તમારું <ph name="NAME" /> સાચવો</translation> <translation id="1032891413405719768">સ્ટાઇલસની બૅટરી ઓછી છે</translation> <translation id="1036073649888683237">નોટિફિકેશન મેનેજ કરવા માટે, સેટિંગ પર જાઓ</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">સિસ્ટમ</translation> <translation id="2621713457727696555">સુરક્ષિત</translation> <translation id="263399434338050016">"તમામ પસંદ કરો"</translation> +<translation id="2644422758626431000">વિન્ડોને ડાબી બાજુ પિન કરો</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022">ઉપલબ્ધ <ph name="TOTAL_MEMORY" />માંથી <ph name="USED_MEMORY" /></translation> <translation id="2653019840645008922">વિન્ડો કૅપ્ચર</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ચાલુ</translation> <translation id="5920710855273935292">માઇક્રોફોન મ્યૂટ કરેલો છે.</translation> +<translation id="5922962980596822074">સૌથી વધુ વપરાયેલી વિન્ડોથી શરૂ કરીને એક પછી એક બધી વિન્ડો પર જાઓ</translation> <translation id="5924855612669061715">હૉટસ્પૉટ ચાલુ છે</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> ચાલુ છે.</translation> <translation id="5947494881799873997">પાછા ફરો</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">અજાણ્યા નેટવર્ક</translation> <translation id="6359587239691116345">નવીનતમ સુવિધાઓ અને સુરક્ષા સંબંધિત સુધારણાઓ મેળવો. જો તમે આ અપડેટ નકારશો, તો તમારું ડિવાઇસ હવે કદાચ યોગ્ય રીતે કામ કરશે નહીં અને તમે સુરક્ષા તથા પર્ફોર્મન્સ સંબંધિત સમસ્યાઓ અનુભવી શકો છો.</translation> <translation id="6376931439017688372">બ્લૂટૂથ ચાલુ છે</translation> +<translation id="6378515133128829137">વિન્ડોને જમણી બાજુ પિન કરો</translation> <translation id="6381109794406942707">ડિવાઇસને અનલૉક કરવા માટે. તમારો પિન દાખલ કરો.</translation> <translation id="638716340450135524">કૅમેરાનો ઍક્સેસ ચાલુ કરો</translation> <translation id="639644700271529076">CAPS LOCK બંધ છે</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">સ્ક્રીનને <ph name="DISPLAY_NAME" /> પર વિસ્તૃત કરી રહ્યાં છે</translation> <translation id="6477681113376365978">ફાઇલ ડાઉનલોડ કરી શકાતી નથી</translation> <translation id="6482559668224714696">પૂર્ણ-સ્ક્રીન મૅગ્નિફાયર</translation> +<translation id="6483727822843292440">સૌથી ઓછી વપરાયેલી વિન્ડોથી શરૂ કરીને એક પછી એક બધી વિન્ડો પર જાઓ</translation> <translation id="6490471652906364588">USB-C ઉપકરણ (જમણું પોર્ટ)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> માટે જરૂરી છે કે તમે સમયસીમા સમાપ્ત થાય તે પહેલાં તમારું <ph name="DEVICE_TYPE" /> અપડેટ કરો</translation> <translation id="649452524636452238">સ્માર્ટ કાર્ડ પિન</translation> @@ -1215,6 +1220,7 @@ <translation id="6683022854667115063">હૅડફોન</translation> <translation id="6696025732084565524">અલગ પાડી શકાય તેવા તમારા કીબોર્ડ માટે મહત્ત્વપૂર્ણ અપડેટ જરૂરી છે</translation> <translation id="6700713906295497288">IME મેનૂ બટન</translation> +<translation id="6705577071209924099">લાઇટિંગ ગોઠવો</translation> <translation id="6707693040195709527">ડિવાઇસનું વર્ઝન બદલીને અગાઉનું વર્ઝન કરવા માટે નિયત કરતાં વધુ સમય થઈ ગયો છે</translation> <translation id="6710213216561001401">પાછલી</translation> <translation id="6723839937902243910">પાવર</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index b23badc..7bd2370 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">Perangkat USB-C (port depan)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> diubah ke <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Klik konfirmasi untuk menyimpan perubahan. Setelan sebelumnya akan dipulihkan dalam <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Perangkat Bluetooth "<ph name="DEVICE_NAME" />" meminta izin untuk bersanding. Masukan kode PIN ini pada perangkat tersebut: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Minimalkan jendela atas saat tidak ada histori sebelumnya di Chrome</translation> <translation id="1024364763893396229">Simpan <ph name="NAME" /> Anda</translation> <translation id="1032891413405719768">Baterai stilus lemah</translation> <translation id="1036073649888683237">Untuk mengelola notifikasi, buka Setelan</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Sistem</translation> <translation id="2621713457727696555">Aman</translation> <translation id="263399434338050016">"Pilih semua"</translation> +<translation id="2644422758626431000">Sematkan jendela ke kiri</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> dari <ph name="TOTAL_MEMORY" /> tersedia</translation> <translation id="2653019840645008922">Tangkapan jendela</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Aktif</translation> <translation id="5920710855273935292">Mikrofon dibisukan.</translation> +<translation id="5922962980596822074">Buka dari jendela yang paling terakhir digunakan</translation> <translation id="5924855612669061715">Hotspot aktif</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> aktif.</translation> <translation id="5947494881799873997">Kembalikan</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Jaringan tidak dikenal</translation> <translation id="6359587239691116345">Dapatkan fitur dan peningkatan keamanan terbaru. Jika Anda menolak update ini, perangkat mungkin tidak lagi berfungsi dengan baik dan Anda mungkin mengalami masalah keamanan dan performa.</translation> <translation id="6376931439017688372">Bluetooth aktif</translation> +<translation id="6378515133128829137">Sematkan jendela ke kanan</translation> <translation id="6381109794406942707">Untuk membuka kunci perangkat, masukkan PIN Anda.</translation> <translation id="638716340450135524">Aktifkan akses kamera</translation> <translation id="639644700271529076">CAPS LOCK tidak aktif</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Memperpanjang layar ke <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Tidak dapat mendownload file</translation> <translation id="6482559668224714696">Kaca pembesar layar penuh</translation> +<translation id="6483727822843292440">Buka dari jendela yang paling jarang digunakan</translation> <translation id="6490471652906364588">Perangkat USB-C (port sebelah kanan)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> mengharuskan Anda mengupdate <ph name="DEVICE_TYPE" /> sebelum tiba batas waktu</translation> <translation id="649452524636452238">PIN kartu smart</translation> @@ -1215,6 +1220,7 @@ <translation id="6683022854667115063">Headphone</translation> <translation id="6696025732084565524">Keyboard yang dapat dilepas memerlukan update penting</translation> <translation id="6700713906295497288">Tombol menu IME</translation> +<translation id="6705577071209924099">Sesuaikan Pencahayaan</translation> <translation id="6707693040195709527">Perubahan perangkat ke versi sebelumnya sudah lewat batas waktu</translation> <translation id="6710213216561001401">Sebelumnya</translation> <translation id="6723839937902243910">Daya</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index e37abb9..3211fcb 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -146,6 +146,7 @@ <translation id="1651914502370159744">פתיחת דף ההיסטוריה</translation> <translation id="1654477262762802994">הפעלה של שאילתה קולית</translation> <translation id="1668469839109562275">רשתות VPN מובנות</translation> +<translation id="1675844249244994876">עדכון החלון הימני</translation> <translation id="1677472565718498478">זמן נותר - <ph name="TIME" /></translation> <translation id="1677507110654891115">התכונה <ph name="FEATURE_NAME" /> לא מחוברת.</translation> <translation id="1677582821739292812">מישהו מביט במסך שלך</translation> @@ -842,6 +843,7 @@ <translation id="493076006037866439">הקטנת התצוגה במסך</translation> <translation id="4936329710968938986">כולם, במצב כבוי</translation> <translation id="4938176435186993759">הסתרה של כל ההצעות</translation> +<translation id="4943007472417128747">הנקודה לשיתוף האינטרנט (Hotspot) כובתה כדי לאפשר שימוש ב-Wi-Fi. כדי להשתמש בנקודה לשיתוף האינטרנט צריך לכבות את ה-Wi-Fi.</translation> <translation id="4945196315133970626">השבתת ההתראות</translation> <translation id="4946376291507881335">צילום</translation> <translation id="495046168593986294">גלילה למעלה</translation> @@ -1215,6 +1217,7 @@ <translation id="6683022854667115063">אוזניות</translation> <translation id="6696025732084565524">למקלדת הניתנת לניתוק דרוש עדכון קריטי</translation> <translation id="6700713906295497288">לחצן תפריט IME</translation> +<translation id="6705577071209924099">שינוי התאורה</translation> <translation id="6707693040195709527">מועד שינוי המכשיר לגרסה קודמת כבר חלף</translation> <translation id="6710213216561001401">הקודם</translation> <translation id="6723839937902243910">חשמל</translation> @@ -1382,6 +1385,7 @@ כדי לכבות את המכשיר, יש ללחוץ שוב לחיצה ארוכה על לחצן ההפעלה במכשיר.</translation> <translation id="7526573455193969409">ייתכן שהרשת מנוטרת</translation> <translation id="7536035074519304529">כתובת IP: <ph name="ADDRESS" /></translation> +<translation id="7536832381700852123">עדכון החלון השמאלי</translation> <translation id="7543399541175347147">בשלב הזה, אין תמיכה באפליקציות Linux ובחלונות פרטיים. אפליקציות אחרות יישמרו.</translation> <translation id="7544300628205093162">התאורה האחורית של המקלדת פועלת</translation> <translation id="7548434653388805669">לילה טוב!</translation> @@ -1464,6 +1468,7 @@ <translation id="7893503627044934815">אני לא רוצה שהקובץ יוצג</translation> <translation id="7895348134893321514">מדף</translation> <translation id="7897375687985782769">הקשת על מקש הקיצור של סיבוב המסך. לסובב את המסך?</translation> +<translation id="7901190436359881020">החלפה בין החלונות</translation> <translation id="7901405293566323524">מרכז טלפוני</translation> <translation id="7902625623987030061">יש לגעת בחיישן טביעות האצבע</translation> <translation id="7904094684485781019">מנהל החשבון הזה אסר על כניסה עם מספר חשבונות.</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb index 003b34f..bc602d5 100644 --- a/ash/strings/ash_strings_ja.xtb +++ b/ash/strings/ash_strings_ja.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C デバイス(前面のポート)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> を <ph name="RESOLUTION" />(<ph name="REFRESH_RATE" /> Hz)に変更しました。変更を保存するには確定してください。<ph name="TIMEOUT_SECONDS" /> 秒後に以前の設定に戻ります。</translation> <translation id="1013923882670373915">Bluetooth デバイス「<ph name="DEVICE_NAME" />」がペア設定の権限をリクエストしています。このデバイスに次の PIN コードを入力してください: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Chrome に戻る操作の履歴がない場合にトップ ウィンドウを最小化する</translation> <translation id="1024364763893396229"><ph name="NAME" /> を保存</translation> <translation id="1032891413405719768">タッチペンのバッテリー残量が少なくなっています</translation> <translation id="1036073649888683237">通知の管理は設定アプリで行うことができす</translation> @@ -234,7 +235,7 @@ <translation id="2023558322300866873">パケット キャプチャはいつでも停止できます</translation> <translation id="2034971124472263449">このまま保存</translation> <translation id="2049240716062114887">デスクの名前を <ph name="DESK_NAME" /> に変更しました</translation> -<translation id="2050339315714019657">縦向き</translation> +<translation id="2050339315714019657">ポートレート</translation> <translation id="2064048859448024834">カメラ プレビューがオンになっています</translation> <translation id="2067602449040652523">キーボードの明るさ</translation> <translation id="2078034614700056995">次のデスクに切り替えるには 4 本の指で右にスワイプします</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">システム</translation> <translation id="2621713457727696555">保護あり</translation> <translation id="263399434338050016">"すべて選択"</translation> +<translation id="2644422758626431000">ウィンドウを左に固定する</translation> <translation id="2645435784669275700">Chrome OS</translation> <translation id="2647092942972307022"><ph name="TOTAL_MEMORY" /> 中 <ph name="USED_MEMORY" /> 使用</translation> <translation id="2653019840645008922">ウィンドウ キャプチャ</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" />(<ph name="MAIL" />)</translation> <translation id="5916664084637901428">オン</translation> <translation id="5920710855273935292">マイクはミュートです。</translation> +<translation id="5922962980596822074">最近使用したウィンドウからウィンドウを表示する</translation> <translation id="5924855612669061715">アクセス ポイントはオンです</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> はオンになっています。</translation> <translation id="5947494881799873997">元に戻す</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">不明なネットワーク</translation> <translation id="6359587239691116345">最新の機能を入手しセキュリティを強化しましょう。このアップデートを承認しない場合、デバイスが正しく動作せず、セキュリティやパフォーマンス上の問題が発生する可能性があります。</translation> <translation id="6376931439017688372">Bluetooth はオンです</translation> +<translation id="6378515133128829137">ウィンドウを右に固定する</translation> <translation id="6381109794406942707">デバイスのロックを解除するには PIN を入力してください。</translation> <translation id="638716340450135524">カメラへのアクセスをオンにする</translation> <translation id="639644700271529076">CapsLock 機能はオフになっています</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876"><ph name="DISPLAY_NAME" /> へ画面を拡張しています</translation> <translation id="6477681113376365978">ファイルをダウンロードできません</translation> <translation id="6482559668224714696">全画面拡大鏡</translation> +<translation id="6483727822843292440">最も使用頻度の低いウィンドウからウィンドウを表示する</translation> <translation id="6490471652906364588">USB-C デバイス(右側面のポート)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> が期限までに <ph name="DEVICE_TYPE" /> を更新するよう求めています</translation> <translation id="649452524636452238">スマートカードの PIN</translation> @@ -1215,6 +1220,7 @@ <translation id="6683022854667115063">ヘッドフォン</translation> <translation id="6696025732084565524">お使いのキーボード(取り外し可能)に重要なアップデートを適用する必要があります</translation> <translation id="6700713906295497288">IME メニューボタン</translation> +<translation id="6705577071209924099">照明を調整</translation> <translation id="6707693040195709527">デバイスを以前のバージョンに戻す期限が過ぎています</translation> <translation id="6710213216561001401">前へ</translation> <translation id="6723839937902243910">電源</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb index 9e59444..0de74c7 100644 --- a/ash/strings/ash_strings_ka.xtb +++ b/ash/strings/ash_strings_ka.xtb
@@ -4,6 +4,8 @@ <translation id="1012876632442809908">USB-C მოწყობილობა (წინა პორტი)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" />-ის გარჩევადობა შეიცვალა <ph name="RESOLUTION" />-ით (<ph name="REFRESH_RATE" /> ჰც). დააწკაპუნეთ ცვლილებების შენარჩუნების დასადასტურებლად. წინა პარამეტრების აღდგენამდე დარჩენილია <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Bluetooth მოწყობილობა „<ph name="DEVICE_NAME" />“ ითხოვს ნებართვას დაწყვილებისთვის. გთხოვთ შეიყვანეთ ეს PIN კოდი, იმ მოწყობილობაზე: <ph name="PINCODE" /></translation> +<translation id="1014722676793506285"><ph name="APP_NAME" />-ს, ასევე, მდებარეობაზე წვდომის ნებართვის მქონე ყველა აპსა თუ ვებსაიტს და ChromeOS-ს საშუალება ექნება, გამოიყენოს Wi-Fi-სა და მობილური ქსელების მდებარეობა.</translation> +<translation id="1017556409696559990">ზედა ფანჯრის ჩაკეცვა, როცა Chrome-ში უკან გადასვლის ისტორია არ არის</translation> <translation id="1024364763893396229">შეინახეთ თქვენი <ph name="NAME" /></translation> <translation id="1032891413405719768">სტილუსის ბატარეა იცლება</translation> <translation id="1036073649888683237">შეტყობინებების სამართავად გადადით პარამეტრებზე</translation> @@ -190,6 +192,7 @@ <ph name="IME" /> <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> +<translation id="1824922790784036530">მდებარეობაზე წვდომის ჩართვა</translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> აღარ არის ჩამაგრებული</translation> <translation id="1838895407229022812">ღამის განათება გამორთულია.</translation> <translation id="1854180393107901205">ტრანსლირების შეწყვეტა</translation> @@ -343,6 +346,7 @@ <translation id="2620436844016719705">სისტემა</translation> <translation id="2621713457727696555">დაცული</translation> <translation id="263399434338050016">"ყველას არჩევა"</translation> +<translation id="2644422758626431000">ფანჯრის ჩამაგრება მარცხნივ</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="TOTAL_MEMORY" />დან ხელმისაწვდომია <ph name="USED_MEMORY" /></translation> <translation id="2653019840645008922">ფანჯრის აღბეჭდვა</translation> @@ -466,6 +470,7 @@ <translation id="3255483164551725916">რისი გაკეთება შეგიძლია?</translation> <translation id="3256109297135787951">თაროზე ერთეულის გამოყოფის გაუქმება</translation> <translation id="3260969790895726815">მეტყველება მუშავდება ადგილობრივად, ხოლო კარნახი მუშაობს ხაზგარეშე რეჟიმში. ამასთან, ზოგიერთი ხმოვანი ბრძანება არ იმუშავებს.</translation> +<translation id="3265032511221679826">გსურთ, ზუსტ მდებარეობაზე წვდომის ჩართვა?</translation> <translation id="3269597722229482060">მარჯვენა დაწკაპუნება</translation> <translation id="3289364673986435196">ჩართვის მენიუ</translation> <translation id="3289544412142055976">Linux აპები ამჟამად მხარდაუჭერელია</translation> @@ -576,6 +581,7 @@ <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> — მართული მომხმარებელი</translation> <translation id="3666266999138159418">გადაფურცლეთ მოლივლივე ფანჯრის დასამალად</translation> <translation id="367531336287639526">მისამართთა ზოლის მარცხნივ პირველი ხატულას არჩევა</translation> +<translation id="3677931086890821290">მდებარეობაზე წვდომის ნებართვის მქონე ყველა აპსა თუ ვებსაიტს და ChromeOS-ს საშუალება ექნება, გამოიყენოს Wi-Fi-სა და მობილური ქსელების მდებარეობა.</translation> <translation id="3679827876008292680">ფანჯრის ბოლო ჩანართზე გადასვლა</translation> <translation id="36813544980941320">თქვენს ტელეფონსა და <ph name="DEVICE_NAME" />-ს შორის Wi-Fi ქსელები გაზიარდება</translation> <translation id="3694122362646626770">ვებსაიტები</translation> @@ -1054,6 +1060,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ჩართვა</translation> <translation id="5920710855273935292">მიკროფონი დადუმებულია.</translation> +<translation id="5922962980596822074">ფანჯრებს შორის გადაადგილება ყველაზე ბოლოს გამოყენებული ფანჯრიდან</translation> <translation id="5924855612669061715">უსადენო ქსელი ჩართულია</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> ჩართულია.</translation> <translation id="5947494881799873997">დაბრუნება</translation> @@ -1143,6 +1150,7 @@ <translation id="6352082849089527770">უცნობი ქსელები</translation> <translation id="6359587239691116345">ისარგებლეთ უახლესი ფუნქციებითა და უსაფრთხოების გაუმჯობესებებით. თუ ამ განახლებას უარყოფთ, თქვენმა მოწყობილობამ, შესაძლოა, სათანადოდ აღარ იმუშაოს, უსაფრთხოებასა და წარმადობასთან დაკავშირებით კი გარკვეული პრობლემები შეგექმნათ.</translation> <translation id="6376931439017688372">Bluetooth ჩართულია</translation> +<translation id="6378515133128829137">ფანჯრის ჩამაგრება მარჯვნივ</translation> <translation id="6381109794406942707">მოწყობილობის განსაბლოკად შეიყვანეთ PIN-კოდი.</translation> <translation id="638716340450135524">კამერაზე წვდომის ჩართვა</translation> <translation id="639644700271529076">CAPS LOCK გამორთულია</translation> @@ -1162,6 +1170,7 @@ <translation id="6459472438155181876">ეკრანის გაგრძელება <ph name="DISPLAY_NAME" />-მდე</translation> <translation id="6477681113376365978">ფაილი ვერ ჩამოიტვირთა</translation> <translation id="6482559668224714696">სრულეკრანიანი ლუპა</translation> +<translation id="6483727822843292440">ფანჯრებს შორის გადაადგილება ყველაზე ნაკლებად გამოყენებული ფანჯრიდან</translation> <translation id="6490471652906364588">USB-C მოწყობილობა (მარჯვენა პორტი)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> ითხოვს, განაახლოთ თქვენი <ph name="DEVICE_TYPE" /> ბოლო ვადამდე</translation> <translation id="649452524636452238">სმარტ-ბარათის PIN-კოდი</translation> @@ -1738,6 +1747,7 @@ <translation id="9198992156681343238"><ph name="DISPLAY_NAME" />-ის გარჩევადობა შეიცვალა <ph name="RESOLUTION" />-ზე. დააწკაპუნეთ ცვლილებების შენარჩუნების დასადასტურებლად. წინა პარამეტრების აღდგენამდე დარჩა <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="9201044636667689546">დააკავშირეთ <ph name="NAME" /> ამ Chromebook-ს</translation> <translation id="9201374708878217446"><ph name="CONNECTION_STATUS" />, მართავს თქვენი ადმინისტრატორი</translation> +<translation id="9207682216934703221"><ph name="APP_NAME" />-ს, <ph name="APP2_NAME" />-ს ასევე, მდებარეობაზე წვდომის ნებართვის მქონე ყველა აპსა თუ ვებსაიტს და ChromeOS-ს საშუალება ექნება, გამოიყენოს Wi-Fi-სა და მობილური ქსელების მდებარეობა.</translation> <translation id="9210037371811586452">მიმდინარეობს ერთიანი დესკტოპის რეჟიმიდან გამოსვლა</translation> <translation id="9211490828691860325">ყველა სამუშაო მაგიდა</translation> <translation id="9211681782751733685">ბატარეის სრულ დატენამდე დარჩენილია <ph name="TIME_REMAINING" />.</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb index 5f7b4420..2ba0e4d 100644 --- a/ash/strings/ash_strings_kk.xtb +++ b/ash/strings/ash_strings_kk.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C құрылғысы (алдыңғы ұяшық)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> дисплейі <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Гц) ажыратымдылығына өзгерді. Өзгерістерді сақтау үшін "Растау" түймесін басыңыз. Алдыңғы параметрлер <ph name="TIMEOUT_SECONDS" /> кейін қалпына келтіріледі.</translation> <translation id="1013923882670373915">"<ph name="DEVICE_NAME" />" Bluetooth құрылғысы жұптауды сұрайды. Аталмыш құрылғыда осы PIN кодын енгізіңіз. <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Chrome браузерінде бұрынғы тарих болмаған кезде жоғарғы терезені кішірейту</translation> <translation id="1024364763893396229"><ph name="NAME" /> құрылғысын сақтаңыз</translation> <translation id="1032891413405719768">Стилус батареясының заряды аз қалды</translation> <translation id="1036073649888683237">Хабарландыруларды басқару үшін "Параметрлер" бөліміне өтіңіз.</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Жүйе</translation> <translation id="2621713457727696555">Қорғалған</translation> <translation id="263399434338050016">"Барлығын таңдау"</translation> +<translation id="2644422758626431000">Терезені солға бекіту</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" />/<ph name="TOTAL_MEMORY" /> қолжетімді.</translation> <translation id="2653019840645008922">Терезені түсіру</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Қосулы</translation> <translation id="5920710855273935292">Микрофон дыбысы өшірулі.</translation> +<translation id="5922962980596822074">Ең соңғы пайдаланылған терезеден терезелер арқылы өту</translation> <translation id="5924855612669061715">Хотспот қосулы</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> қосулы.</translation> <translation id="5947494881799873997">Қайтару</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Белгісіз желілер</translation> <translation id="6359587239691116345">Соңғы шыққан функцияларды және қауіпсіздікті жақсарту мүмкіндіктерін пайдаланыңыз. Бұл жаңартуды қабылдамасаңыз, құрылғыңыз дұрыс жұмыс істемей, қауіпсіздік пен өнімділікке қатысты ақаулар туындауы мүмкін.</translation> <translation id="6376931439017688372">Bluetooth қосулы</translation> +<translation id="6378515133128829137">Терезені оңға бекіту</translation> <translation id="6381109794406942707">Құрылғының құлпын ашу үшін PIN кодын енгізіңіз.</translation> <translation id="638716340450135524">Камераны пайдалану рұқсатын қосу</translation> <translation id="639644700271529076">CAPS LOCK өшірулі</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Экранды <ph name="DISPLAY_NAME" /> дисплейіне кеңейту</translation> <translation id="6477681113376365978">Файлды жүктеп алу мүмкін емес</translation> <translation id="6482559668224714696">Толық экран ұлғайтқышы</translation> +<translation id="6483727822843292440">Ең аз пайдаланылған терезеден терезелер арқылы өту</translation> <translation id="6490471652906364588">USB-C құрылғысы (оң жақ ұяшық)</translation> <translation id="6491071886865974820">Мерзім аяқталғанға дейін, <ph name="MANAGER" /> сізден <ph name="DEVICE_TYPE" /> құрылғысын жаңартуыңызды талап етеді.</translation> <translation id="649452524636452238">Смарт картаның PIN коды</translation> @@ -1215,6 +1220,7 @@ <translation id="6683022854667115063">Құлақаспап</translation> <translation id="6696025732084565524">Алынбалы пернетақтаны жаңарту қажет</translation> <translation id="6700713906295497288">IME мәзір түймесі</translation> +<translation id="6705577071209924099">Жарықтықты реттеу</translation> <translation id="6707693040195709527">Құрылғыны алдыңғы нұсқаға қайтару мерзімі өтіп кетті</translation> <translation id="6710213216561001401">Алдыңғы</translation> <translation id="6723839937902243910">Күш</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index 274f743..51d24d2 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -1449,7 +1449,7 @@ <translation id="7814236020522506259"><ph name="HOUR" /> ಮತ್ತು <ph name="MINUTE" /></translation> <translation id="7829386189513694949">ಪ್ರಬಲ ಸಿಗ್ನಲ್</translation> <translation id="7837740436429729974">ಸಮಯ ಮುಗಿದಿದೆ</translation> -<translation id="7842569679327885685">ಎಚ್ಚರಿಕೆ: ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯ</translation> +<translation id="7842569679327885685">ಎಚ್ಚರಿಕೆ: ಪ್ರಾಯೋಗಿಕ ಫೀಚರ್</translation> <translation id="7846634333498149051">ಕೀಬೋರ್ಡ್</translation> <translation id="7848989271541991537">ಪುಟ <ph name="PAGE_NUMBER" />, ಸಾಲು <ph name="ROW_NUMBER" />, ಕಾಲಮ್ <ph name="COLUMN_NUMBER" />.</translation> <translation id="7851768487828137624">ಕ್ಯಾನರಿ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index 5b50def..8e7c4e3 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C 기기(전면 포트)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> 화면이 <ph name="RESOLUTION" />(<ph name="REFRESH_RATE" />Hz) 해상도로 변경되었습니다. 변경사항을 적용하려면 확인을 클릭하세요. <ph name="TIMEOUT_SECONDS" /> 후 이전 설정으로 복원됩니다.</translation> <translation id="1013923882670373915">블루투스 기기 '<ph name="DEVICE_NAME" />'에서 페어링 허가를 요청합니다. 기기에서 다음 PIN 코드를 입력하세요. <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Chrome에 뒤로 기록이 없는 경우 상단 창 최소화</translation> <translation id="1024364763893396229"><ph name="NAME" /> 저장</translation> <translation id="1032891413405719768">스타일러스 배터리 부족</translation> <translation id="1036073649888683237">알림을 관리하려면 설정으로 이동하세요.</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">시스템</translation> <translation id="2621713457727696555">보안</translation> <translation id="263399434338050016">"모두 선택"</translation> +<translation id="2644422758626431000">왼쪽에 창 고정</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="TOTAL_MEMORY" /> 중 <ph name="USED_MEMORY" /> 사용 가능</translation> <translation id="2653019840645008922">창 캡처</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" />(<ph name="MAIL" />)</translation> <translation id="5916664084637901428">사용</translation> <translation id="5920710855273935292">마이크가 음소거되어 있습니다.</translation> +<translation id="5922962980596822074">가장 최근에 사용한 창부터 창 살펴보기</translation> <translation id="5924855612669061715">핫스팟 사용 중</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> 기능이 켜져 있습니다.</translation> <translation id="5947494881799873997">되돌리기</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">알 수 없는 네트워크</translation> <translation id="6359587239691116345">최신 기능과 보안 개선 사항을 받습니다. 이 업데이트를 거부하면 기기가 더 이상 제대로 작동하지 않을 수 있으며 보안 및 성능 문제가 발생할 수 있습니다.</translation> <translation id="6376931439017688372">블루투스 사용 중</translation> +<translation id="6378515133128829137">오른쪽에 창 고정</translation> <translation id="6381109794406942707">기기의 잠금을 해제하려면 PIN을 입력하세요.</translation> <translation id="638716340450135524">카메라 액세스 권한 부여</translation> <translation id="639644700271529076">CAPS LOCK이 꺼져 있음</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">화면을 <ph name="DISPLAY_NAME" />(으)로 확장</translation> <translation id="6477681113376365978">파일을 다운로드할 수 없음</translation> <translation id="6482559668224714696">전체 화면 돋보기</translation> +<translation id="6483727822843292440">가장 적게 사용된 창부터 창 살펴보기</translation> <translation id="6490471652906364588">USB-C 기기(오른쪽 포트)</translation> <translation id="6491071886865974820"><ph name="MANAGER" />에서 기한 전에 <ph name="DEVICE_TYPE" /> 기기를 업데이트할 것을 요구합니다.</translation> <translation id="649452524636452238">스마트 카드 PIN</translation> @@ -1215,6 +1220,7 @@ <translation id="6683022854667115063">헤드폰</translation> <translation id="6696025732084565524">분리식 키보드에 중요 업데이트 필요</translation> <translation id="6700713906295497288">IME 메뉴 버튼</translation> +<translation id="6705577071209924099">밝기 조정</translation> <translation id="6707693040195709527">이전 버전으로 기기를 롤백할 기한 만료됨</translation> <translation id="6710213216561001401">이전</translation> <translation id="6723839937902243910">전원</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index 91fc4ab..d8c0718 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C түзмөгү (маңдайкы оюкча)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> дааналыгы төмөнкүгө өзгөртүлдү: <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Герц). Өзгөртүүлөрдү сактоо үчүн "Ырастоо" баскычын басыңыз. Мурунку жөндөөлөр <ph name="TIMEOUT_SECONDS" /> кийин калыбына келтирилет.</translation> <translation id="1013923882670373915">"<ph name="DEVICE_NAME" />" Bluetooth түзмөгү жупташуу үчүн уруксат сурап жатат. Ал түзмөккө бул PIN кодду киргизиңиз: <ph name="PINCODE" />.</translation> +<translation id="1017556409696559990">Chrome'до таржымал болбогон учурда жогорку терезени кичирейтүү</translation> <translation id="1024364763893396229"><ph name="NAME" /> түзмөгүңүздү сактаңыз</translation> <translation id="1032891413405719768">Стилус батареясынын кубаты аз</translation> <translation id="1036073649888683237">Билдирүүлөрдү башкаруу үчүн жөндөөлөргө өтүңүз</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Тутум</translation> <translation id="2621713457727696555">Корголгон</translation> <translation id="263399434338050016">"Баарын тандоо"</translation> +<translation id="2644422758626431000">Терезени солго кадоо</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="TOTAL_MEMORY" /> ичинен <ph name="USED_MEMORY" /> колдонулду</translation> <translation id="2653019840645008922">Терезени сүрөткө тартып алуу</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Күйүк</translation> <translation id="5920710855273935292">Микрофондун үнү өчүрүлдү.</translation> +<translation id="5922962980596822074">Терезелерди эң акыркы колдонулган терезеден баштап көрүү</translation> <translation id="5924855612669061715">Байланыш түйүнү күйүк</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> күйүк.</translation> <translation id="5947494881799873997">Кайтаруу</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Белгисиз тармактар</translation> <translation id="6359587239691116345">Жаңы функцияларды жана коопсуздук жакшыртууларын алыңыз. Эгер бул жаңыртууну четке какчаңыз, түзмөгүңүз туура иштебей, коопсуздук жана майнаптуулук көйгөйлөрү чыгышы мүмкүн.</translation> <translation id="6376931439017688372">Bluetooth күйүк</translation> +<translation id="6378515133128829137">Терезени оңго кадоо</translation> <translation id="6381109794406942707">Түзмөктүн кулпусун ачуу үчүн PIN кодуңузду киргизиңиз.</translation> <translation id="638716340450135524">Түзмөктүн микрофонун колдонуу мүмкүнчүлүгүн күйгүзүү</translation> <translation id="639644700271529076">CAPS LOCK өчүк</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Экран <ph name="DISPLAY_NAME" /> карай кеңейтилүүдө</translation> <translation id="6477681113376365978">Файлды жүктөп алууга болбойт</translation> <translation id="6482559668224714696">Толук экран режиминдеги лупа</translation> +<translation id="6483727822843292440">Терезелерди эң аз колдонулган терезеден баштап көрүү</translation> <translation id="6490471652906364588">USB-C түзмөгү (оң жактагы оюкча)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> <ph name="DEVICE_TYPE" /> түзмөгүңүздү мөөнөтү бүткөнгө чейин жаңыртууну талап кылууда</translation> <translation id="649452524636452238">Акылдуу картанын PIN коду</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb index ee3b72a..3322e00 100644 --- a/ash/strings/ash_strings_lo.xtb +++ b/ash/strings/ash_strings_lo.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">ອຸປະກອນ USB-C (ຜອດດ້ານໜ້າ)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> ໄດ້ປ່ຽນເປັນ <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz) ແລ້ວ. ຄລິກຢືນຢັນເພື່ອຮັກສາການປ່ຽນແປງໄວ້. ລະບົບຈະກູ້ຄືນການຕັ້ງຄ່າກ່ອນໜ້າໃນ <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">ອຸປະກອນ Bluetooth "<ph name="DEVICE_NAME" />" ຢາກຂໍອະນຸຍາດຈັບຄູ່. ກະລຸນາປ້ອນລະຫັດ PIN ນີ້ເຂົ້າໄປໃນອຸປະກອນນັ້ນ: <ph name="PINCODE" /></translation> +<translation id="1014722676793506285">ການດຳເນີນການນີ້ຈະອະນຸຍາດໃຫ້ <ph name="APP_NAME" /> ພ້ອມທັງແອັບ ແລະ ເວັບໄຊທັງໝົດທີ່ມີການອະນຸຍາດເຂົ້າເຖິງສະຖານທີ່ ແລະ ChromeOS ສາມາດໃຊ້ສະຖານທີ່ Wi-Fi ແລະ ເຄືອຂ່າຍມືຖືໄດ້.</translation> <translation id="1017556409696559990">ຫຍໍ້ໜ້າຈໍເທິງສຸດເມື່ອບໍ່ມີປະຫວັດຄືນຫຼັງໃນ Chrome</translation> <translation id="1024364763893396229">ບັນທຶກ <ph name="NAME" /> ຂອງທ່ານ</translation> <translation id="1032891413405719768">ແບັດເຕີຣີປາຍປາກກາເຫຼືອໜ້ອຍ</translation> @@ -191,6 +192,7 @@ <ph name="IME" /> <ph name="LOCALE" /></translation> <translation id="1823873187264960516">ອີເທີເນັດ: <ph name="ADDRESS" /></translation> +<translation id="1824922790784036530">ເປີດສິດເຂົ້າເຖິງສະຖານທີ່</translation> <translation id="1830308660060964064">ຖອນປັກໝຸດ <ph name="ITEM_TITLE" /> ແລ້ວ</translation> <translation id="1838895407229022812">ແສງກາງຄືນປິດຢູ່.</translation> <translation id="1854180393107901205">ຢຸດການຄາສທ໌</translation> @@ -468,6 +470,7 @@ <translation id="3255483164551725916">ທ່ານເຮັດຫຍັງໄດ້ແດ່?</translation> <translation id="3256109297135787951">ລຶບໄຮໄລ້ອອກຈາກລາຍການໃນຖ້ານຂອງທ່ານ</translation> <translation id="3260969790895726815">ຄຳເວົ້າຈະຖືກປະມວນຜົນໃນເຄື່ອງ ແລະ ການປ້ອນຂໍ້ມູນດ້ວຍສຽງຈະເຮັດວຽກແບບອອບລາຍ, ແຕ່ບາງຄຳສັ່ງສຽງຈະບໍ່ເຮັດວຽກ.</translation> +<translation id="3265032511221679826">ເປີດສິດເຂົ້າເຖິງສະຖານທີ່ແບບລະອຽດບໍ?</translation> <translation id="3269597722229482060">ຄລິກຂວາ</translation> <translation id="3289364673986435196">ເມນູເປີດປິດ</translation> <translation id="3289544412142055976">ຕອນນີ້ບໍ່ຮອງຮັບແອັບ Linux ເທື່ອ</translation> @@ -578,6 +581,7 @@ <translation id="366222428570480733">ຜູ້ໃຊ້ທີ່ມີການຈັດການ <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="3666266999138159418">ປັດເພື່ອເຊື່ອງໜ້າຈໍແບບລອຍຂອງທ່ານ</translation> <translation id="367531336287639526">ເລືອກໄອຄອນທຳອິດໄປທາງຊ້າຍຂອງແຖບທີ່ຢູ່</translation> +<translation id="3677931086890821290">ການດຳເນີນການນີ້ຈະອະນຸຍາດໃຫ້ແອັບ ແລະ ເວັບໄຊທັງໝົດທີ່ມີການອະນຸຍາດເຂົ້າເຖິງສະຖານທີ່ ແລະ ChromeOS ສາມາດໃຊ້ສະຖານທີ່ Wi-Fi ແລະ ເຄືອຂ່າຍມືຖືໄດ້.</translation> <translation id="3679827876008292680">ເຂົ້າໄປແຖບສຸດທ້າຍໃນໜ້າຈໍ</translation> <translation id="36813544980941320">ຈະມີການແບ່ງປັນເຄືອຂ່າຍ Wi-Fi ລະຫວ່າງໂທລະສັບຂອງທ່ານກັບ <ph name="DEVICE_NAME" /></translation> <translation id="3694122362646626770">ເວັບໄຊທ໌</translation> @@ -1743,6 +1747,7 @@ <translation id="9198992156681343238">ປ່ຽນຄວາມລະອຽດ <ph name="DISPLAY_NAME" /> ເປັນ <ph name="RESOLUTION" /> ແລ້ວ. ຄລິກຢືນຢັນເພື່ອຮັກສາການປ່ຽນແປງໄວ້. ລະບົບຈະກູ້ຄືນການຕັ້ງຄ່າກ່ອນໜ້າໃນ <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="9201044636667689546">ເຊື່ອມຕໍ່ <ph name="NAME" /> ຫາ Chromebook ນີ້</translation> <translation id="9201374708878217446"><ph name="CONNECTION_STATUS" />, ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ</translation> +<translation id="9207682216934703221">ການດຳເນີນການນີ້ຈະອະນຸຍາດໃຫ້ <ph name="APP_NAME" />, <ph name="APP2_NAME" />ພ້ອມທັງແອັບ ແລະ ເວັບໄຊທັງໝົດທີ່ມີການອະນຸຍາດເຂົ້າເຖິງສະຖານທີ່ ແລະ ChromeOS ສາມາດໃຊ້ສະຖານທີ່ Wi-Fi ແລະ ເຄືອຂ່າຍມືຖືໄດ້.</translation> <translation id="9210037371811586452">ກຳລັງອອກຈາກໂໝດເດັສທັອບທີ່ຖືກໂຮມເຂົ້າກັນ</translation> <translation id="9211490828691860325">ໂຕະທັງໝົດ</translation> <translation id="9211681782751733685">ຍັງເຫຼືອ <ph name="TIME_REMAINING" /> ຈົນກວ່າແບັດເຕີຣີຈະສາກເຕັມ.</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index e57d2e8..baa40251 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C įrenginys (prievadas priekyje)</translation> <translation id="1013598600051641573">„<ph name="DISPLAY_NAME" />“ pakeistas į <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Spustelėkite patvirtinimo mygtuką, kad išsaugotumėte pakeitimus. Ankstesni nustatymai bus atkurti po <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">„Bluetooth“ įrenginys „<ph name="DEVICE_NAME" />“ prašo leidimo susieti. Šiame įrenginyje įveskite šį PIN kodą: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Sumažinti viršutinį langą, kai naršyklėje „Chrome“ nėra istorijos</translation> <translation id="1024364763893396229">Išsaugokite „<ph name="NAME" />“</translation> <translation id="1032891413405719768">Rašiklio akumuliatorius senka</translation> <translation id="1036073649888683237">Norėdami tvarkyti pranešimus, eikite į nustatymus</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Sistema</translation> <translation id="2621713457727696555">Apsaugota</translation> <translation id="263399434338050016">„Pasirinkti viską“</translation> +<translation id="2644422758626431000">Prisegti langą kairėje</translation> <translation id="2645435784669275700">„Chrome“ OS</translation> <translation id="2647092942972307022">Pasiekiama <ph name="USED_MEMORY" /> iš <ph name="TOTAL_MEMORY" /></translation> <translation id="2653019840645008922">Lango užfiksavimas</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Įjungta</translation> <translation id="5920710855273935292">Mikrofonas nutildytas.</translation> +<translation id="5922962980596822074">Peržiūrėti langus nuo pastarojo naudoto lango</translation> <translation id="5924855612669061715">Viešosios interneto prieigos taškas įjungtas</translation> <translation id="5946788582095584774">„<ph name="FEATURE_NAME" />“ įjungta.</translation> <translation id="5947494881799873997">Grąžinti</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Nežinomi tinklai</translation> <translation id="6359587239691116345">Gaukite naujausias funkcijas ir saugos patobulinimus. Jei atmesite šį naujinį, įrenginys gali tinkamai nebeveikti ir gali kilti saugos bei našumo problemų.</translation> <translation id="6376931439017688372">„Bluetooth“ įjungtas</translation> +<translation id="6378515133128829137">Prisegti langą dešinėje</translation> <translation id="6381109794406942707">Jei norite atrakinti įrenginį, įveskite PIN kodą.</translation> <translation id="638716340450135524">Įjungti prieigą prie vaizdo kameros</translation> <translation id="639644700271529076">DIDŽIŲJŲ RAIDŽIŲ RAŠYMAS išjungtas</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Ekranas išplečiamas į <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Neįmanoma atsiųsti failo</translation> <translation id="6482559668224714696">Viso ekrano didintuvas</translation> +<translation id="6483727822843292440">Peržiūrėti langus nuo rečiausiai naudojamo lango</translation> <translation id="6490471652906364588">USB-C įrenginys (prievadas dešinėje)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> reikalauja atnaujinti „<ph name="DEVICE_TYPE" />“ iki termino</translation> <translation id="649452524636452238">Išmaniosios kortelės PIN kodas</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index f69f7d476..8a547f4 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">Peranti USB-C (port depan)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> diubah kepada <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Klik sahkan untuk menyimpan perubahan. Tetapan terdahulu akan dipulihkan dalam masa <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Peranti Bluetooth "<ph name="DEVICE_NAME" />" ingin kebenaran untuk berpasangan. Sila masukkan kod PIN ini pada peranti tersebut: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Minimumkan tetingkap pada bahagian atas jika tiada sejarah lama pada Chrome</translation> <translation id="1024364763893396229">Simpan <ph name="NAME" /> anda</translation> <translation id="1032891413405719768">Bateri stilus lemah</translation> <translation id="1036073649888683237">Untuk mengurus pemberitahuan, pergi ke Tetapan</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Sistem</translation> <translation id="2621713457727696555">Selamat</translation> <translation id="263399434338050016">"Pilih semua"</translation> +<translation id="2644422758626431000">Sematkan tetingkap pada bahagian kiri</translation> <translation id="2645435784669275700">Chrome OS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> daripada <ph name="TOTAL_MEMORY" /> tersedia</translation> <translation id="2653019840645008922">Tangkapan tetingkap</translation> @@ -1055,6 +1057,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Hidupkan</translation> <translation id="5920710855273935292">Mikrofon diredamkan.</translation> +<translation id="5922962980596822074">Semak semua tetingkap bermula daripada tetingkap yang digunakan baru-baru ini</translation> <translation id="5924855612669061715">Tempat liputan dihidupkan</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> dihidupkan.</translation> <translation id="5947494881799873997">Berbalik</translation> @@ -1144,6 +1147,7 @@ <translation id="6352082849089527770">Rangkaian tidak diketahui</translation> <translation id="6359587239691116345">Dapatkan ciri terkini dan peningkatan keselamatan. Jika anda menolak kemaskinian ini, peranti anda mungkin tidak lagi berfungsi dengan betul dan anda mungkin mengalami isu keselamatan dan prestasi.</translation> <translation id="6376931439017688372">Bluetooth dihidupkan</translation> +<translation id="6378515133128829137">Sematkan tetingkap pada bahagian kanan</translation> <translation id="6381109794406942707">Untuk membuka kunci peranti, masukkan PIN anda.</translation> <translation id="638716340450135524">Hidupkan akses kamera</translation> <translation id="639644700271529076">Kekunci CAPS LOCK dimatikan</translation> @@ -1163,6 +1167,7 @@ <translation id="6459472438155181876">Melanjutkan skrin ke <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Tidak dapat memuat turun fail</translation> <translation id="6482559668224714696">Penggadang skrin penuh</translation> +<translation id="6483727822843292440">Semak semua tetingkap bermula daripada tetingkap yang paling kurang digunakan</translation> <translation id="6490471652906364588">Peranti USB-C (port kanan)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> menghendaki anda mengemas kini <ph name="DEVICE_TYPE" /> anda sebelum tarikh akhir</translation> <translation id="649452524636452238">PIN kad pintar</translation> @@ -1216,6 +1221,7 @@ <translation id="6683022854667115063">Fon kepala</translation> <translation id="6696025732084565524">Papan kekunci anda yang boleh dicabut memerlukan kemas kini kritikal</translation> <translation id="6700713906295497288">Butang menu IME</translation> +<translation id="6705577071209924099">Laraskan Pencahayaan</translation> <translation id="6707693040195709527">Penukaran peranti kepada versi sebelumnya sudah terlewat</translation> <translation id="6710213216561001401">Sebelumnya</translation> <translation id="6723839937902243910">Kuasa</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb index e7a1d4d8..f0540162 100644 --- a/ash/strings/ash_strings_ne.xtb +++ b/ash/strings/ash_strings_ne.xtb
@@ -1220,6 +1220,7 @@ <translation id="6683022854667115063">हेडफोन</translation> <translation id="6696025732084565524">तपाईंको अलग्याउन मिल्ने किबोर्डलाई महत्त्वपूर्ण अद्यावधिक आवश्यक छ</translation> <translation id="6700713906295497288">IME सम्बन्धी मेनुको बटन</translation> +<translation id="6705577071209924099">प्रकाश मिलाउनुहोस्</translation> <translation id="6707693040195709527">यो डिभाइसमा अझै पनि अघिल्लो संस्करण रिस्टोर गरिएको छैन</translation> <translation id="6710213216561001401">अघिल्लो</translation> <translation id="6723839937902243910">पावर</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index 0b7376c3..9a62f71 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb
@@ -235,7 +235,7 @@ <translation id="2023558322300866873">Du kan stoppe pakkeregistreringen når som helst</translation> <translation id="2034971124472263449">Lagre likevel</translation> <translation id="2049240716062114887">Skrivebordsnavnet ble endret til <ph name="DESK_NAME" /></translation> -<translation id="2050339315714019657">Stående</translation> +<translation id="2050339315714019657">Portrett</translation> <translation id="2064048859448024834">Kameraforhåndsvisningen er på</translation> <translation id="2067602449040652523">Lysstyrke på tastaturet</translation> <translation id="2078034614700056995">Sveip til høyre med fire fingre for å bytte til neste skrivebord</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb index 4820bcb..8551b87a 100644 --- a/ash/strings/ash_strings_or.xtb +++ b/ash/strings/ash_strings_or.xtb
@@ -1214,6 +1214,7 @@ <translation id="6683022854667115063">ହେଡଫୋନଗୁଡ଼ିକ</translation> <translation id="6696025732084565524">ଆପଣଙ୍କର ଅଲଗା ହୋଇପାରୁଥିବା କୀବୋର୍ଡରେ ଏକ ମହତ୍ତ୍ୱପୂର୍ଣ୍ଣ ଅପ୍ଡେଟ୍ ଆବଶ୍ୟକ</translation> <translation id="6700713906295497288">IME ମେନୁ ବଟନ୍</translation> +<translation id="6705577071209924099">ଲାଇଟିଂ ଆଡଜଷ୍ଟ କରନ୍ତୁ</translation> <translation id="6707693040195709527">ଡିଭାଇସକୁ ପୂର୍ବବର୍ତ୍ତୀ ସଂସ୍କରଣକୁ ପରିବର୍ତ୍ତନ କରିବାର ସମୟସୀମା ଅତିକ୍ରମ କରିଯାଇଛି</translation> <translation id="6710213216561001401">ପୂର୍ବବର୍ତ୍ତୀ</translation> <translation id="6723839937902243910">ପାୱର୍</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb index 68ff363..3bc8be68 100644 --- a/ash/strings/ash_strings_pa.xtb +++ b/ash/strings/ash_strings_pa.xtb
@@ -1216,6 +1216,7 @@ <translation id="6683022854667115063">ਹੈੱਡਫ਼ੋਨ</translation> <translation id="6696025732084565524">ਤੁਹਾਡੇ ਵੱਖ ਹੋਣਯੋਗ ਕੀ-ਬੋਰਡ ਨੂੰ ਅਤਿ ਜ਼ਰੂਰੀ ਅੱਪਡੇਟ ਦੀ ਲੋੜ ਹੈ</translation> <translation id="6700713906295497288">IME ਮੀਨੂ ਬਟਨ</translation> +<translation id="6705577071209924099">ਲਾਈਟਿੰਗ ਵਿਵਸਥਿਤ ਕਰੋ</translation> <translation id="6707693040195709527">ਡੀਵਾਈਸ ਦੀ ਪਿਛਲੇ ਵਰਜਨ ਵਿੱਚ ਤਬਦੀਲੀ ਦੀ ਮਿਆਦ ਲੰਘ ਗਈ ਹੈ</translation> <translation id="6710213216561001401">ਪਿਛਲਾ</translation> <translation id="6723839937902243910">ਪਾਵਰ</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index 311c103e..8b6d347 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">Dispositivo USB-C (porta frontal)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> alterado para <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Clique em confirmar para manter as alterações. As definições anteriores serão restauradas dentro de <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" necessita de autorização para sincronizar. Introduza este código PIN nesse dispositivo: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Minimizar a janela superior quando não existir histórico anterior no Chrome</translation> <translation id="1024364763893396229">Guarde o dispositivo <ph name="NAME" /></translation> <translation id="1032891413405719768">A pilha da caneta stylus está fraca</translation> <translation id="1036073649888683237">Para gerir as notificações, aceda a Definições</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Sistema</translation> <translation id="2621713457727696555">Protegida</translation> <translation id="263399434338050016">"Selecionar tudo"</translation> +<translation id="2644422758626431000">Fixar janela à esquerda</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> de <ph name="TOTAL_MEMORY" /> disponíveis</translation> <translation id="2653019840645008922">Captura da janela</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Ativado</translation> <translation id="5920710855273935292">O som do microfone está desativado.</translation> +<translation id="5922962980596822074">Navegar pelas janelas a partir da janela usada mais recentemente</translation> <translation id="5924855612669061715">A zona Wi-Fi está ativada</translation> <translation id="5946788582095584774">A funcionalidade <ph name="FEATURE_NAME" /> está ativada.</translation> <translation id="5947494881799873997">Reverter</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Redes desconhecidas</translation> <translation id="6359587239691116345">Obtenha as funcionalidades e as melhorias de segurança mais recentes. Se recusar esta atualização, o seu dispositivo pode deixar de funcionar corretamente, e pode deparar-se com problemas de segurança e desempenho.</translation> <translation id="6376931439017688372">Bluetooth ativado</translation> +<translation id="6378515133128829137">Fixar janela à direita</translation> <translation id="6381109794406942707">Para desbloquear este dispositivo, introduza o seu PIN.</translation> <translation id="638716340450135524">Ativar acesso à câmara</translation> <translation id="639644700271529076">CAPS LOCK está desativado</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">A prolongar ecrã para <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Não é possível transferir o ficheiro</translation> <translation id="6482559668224714696">Lupa de ecrã inteiro</translation> +<translation id="6483727822843292440">Navegar pelas janelas a partir da janela menos usada</translation> <translation id="6490471652906364588">Dispositivo USB-C (porta direita)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> exige que atualize o dispositivo <ph name="DEVICE_TYPE" /> antes do prazo</translation> <translation id="649452524636452238">PIN do cartão inteligente</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 07359ac..1289803d 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -4,6 +4,8 @@ <translation id="1012876632442809908">Dispozitiv USB-C (portul din față)</translation> <translation id="1013598600051641573">Rezoluția pentru <ph name="DISPLAY_NAME" /> a fost modificată la <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Dă clic pe Confirmă pentru a păstra modificările. Setările anterioare vor fi restabilite în <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Dispozitivul Bluetooth „<ph name="DEVICE_NAME" />” solicită permisiunea de a se conecta. Introduceți acest cod PIN pe dispozitivul respectiv: <ph name="PINCODE" /></translation> +<translation id="1014722676793506285">Astfel, <ph name="APP_NAME" /> și toate aplicațiile și site-urile care au permisiunea pentru locație și ChromeOS pot să folosească locația prin Wi-Fi și rețele mobile.</translation> +<translation id="1017556409696559990">Minimizează fereastra de sus când nu există istoric în Chrome</translation> <translation id="1024364763893396229">Salvează <ph name="NAME" /></translation> <translation id="1032891413405719768">Bateria creionului este descărcată</translation> <translation id="1036073649888683237">Pentru a gestiona notificările, accesează Setările</translation> @@ -190,6 +192,7 @@ <ph name="IME" /> <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> +<translation id="1824922790784036530">Activează accesul la locație</translation> <translation id="1830308660060964064">Fixarea pentru <ph name="ITEM_TITLE" /> a fost anulată</translation> <translation id="1838895407229022812">Lumina de noapte este dezactivată.</translation> <translation id="1854180393107901205">Nu mai trimite</translation> @@ -343,6 +346,7 @@ <translation id="2620436844016719705">Sistem</translation> <translation id="2621713457727696555">Securizată</translation> <translation id="263399434338050016">Selectează tot.</translation> +<translation id="2644422758626431000">Fixează fereastra la stânga</translation> <translation id="2645435784669275700">Sistemul de operare Chrome</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> din <ph name="TOTAL_MEMORY" /> disponibili</translation> <translation id="2653019840645008922">Capturarea ferestrei</translation> @@ -466,6 +470,7 @@ <translation id="3255483164551725916">Ce poți face?</translation> <translation id="3256109297135787951">Elimină evidențierea de pe un element de pe raft</translation> <translation id="3260969790895726815">Vorbirea este procesată local și dictarea funcționează offline, dar unele comenzi vocale nu vor funcționa.</translation> +<translation id="3265032511221679826">Activezi accesul la locația exactă?</translation> <translation id="3269597722229482060">Clic dreapta</translation> <translation id="3289364673986435196">Meniul de pornire</translation> <translation id="3289544412142055976">Aplicațiile Linux nu sunt acceptate</translation> @@ -576,6 +581,7 @@ <translation id="366222428570480733">Utilizatorul gestionat <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="3666266999138159418">Glisează pentru a ascunde fereastra flotantă</translation> <translation id="367531336287639526">Selectează prima pictogramă din stânga barei de adrese</translation> +<translation id="3677931086890821290">Astfel, toate aplicațiile și site-urile care au permisiunea pentru locație și ChromeOS pot să folosească locația prin Wi-Fi și rețele mobile.</translation> <translation id="3679827876008292680">Accesează ultima filă din fereastră</translation> <translation id="36813544980941320">Se va permite accesul la rețelele Wi-Fi de pe telefon și de pe <ph name="DEVICE_NAME" /></translation> <translation id="3694122362646626770">Site-uri</translation> @@ -1054,6 +1060,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Activat</translation> <translation id="5920710855273935292">Microfonul este dezactivat.</translation> +<translation id="5922962980596822074">Treci prin ferestre începând de la fereastra folosită cel mai recent</translation> <translation id="5924855612669061715">Hotspotul este activat</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> este activat.</translation> <translation id="5947494881799873997">Reveniți</translation> @@ -1143,6 +1150,7 @@ <translation id="6352082849089527770">Rețele necunoscute</translation> <translation id="6359587239691116345">Obține cele mai noi funcții și îmbunătățiri ale securității. Dacă refuzi această actualizare, este posibil ca dispozitivul să nu mai funcționeze corespunzător și să întâmpini probleme de securitate și de performanță.</translation> <translation id="6376931439017688372">Bluetooth este activat</translation> +<translation id="6378515133128829137">Fixează fereastra la dreapta</translation> <translation id="6381109794406942707">Pentru a debloca dispozitivul, introdu codul PIN.</translation> <translation id="638716340450135524">Activează accesul la camera foto</translation> <translation id="639644700271529076">Tasta CAPS LOCK este dezactivată</translation> @@ -1162,6 +1170,7 @@ <translation id="6459472438155181876">Se extinde ecranul pe <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Nu s-a putut descărca fișierul</translation> <translation id="6482559668224714696">Lupă de ecran complet</translation> +<translation id="6483727822843292440">Treci prin ferestre începând de la fereastra folosită cel mai puțin</translation> <translation id="6490471652906364588">Dispozitiv USB-C (portul din dreapta)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> solicită să actualizezi dispozitivul <ph name="DEVICE_TYPE" /> înainte de termenul limită</translation> <translation id="649452524636452238">Codul PIN al cardului inteligent</translation> @@ -1737,6 +1746,7 @@ <translation id="9198992156681343238">Rezoluția pentru <ph name="DISPLAY_NAME" /> a fost modificată la <ph name="RESOLUTION" />. Dă clic pe Confirmă pentru a păstra modificările. Setările anterioare vor fi restabilite în <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="9201044636667689546">Conectează <ph name="NAME" /> la acest Chromebook</translation> <translation id="9201374708878217446"><ph name="CONNECTION_STATUS" />, gestionată de administratorul tău</translation> +<translation id="9207682216934703221">Astfel, <ph name="APP_NAME" />, <ph name="APP2_NAME" /> și toate aplicațiile și site-urile care au permisiunea pentru locație și ChromeOS pot să folosească locația prin Wi-Fi și rețele mobile.</translation> <translation id="9210037371811586452">Se iese din modul desktop unificat</translation> <translation id="9211490828691860325">Toate desktopurile</translation> <translation id="9211681782751733685">Timp rămas până la încărcarea completă a bateriei: <ph name="TIME_REMAINING" />.</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index c6ef725..6134e84 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">Naprava USB-C (sprednja vrata)</translation> <translation id="1013598600051641573">Ločljivost zaslona <ph name="DISPLAY_NAME" /> je spremenjena na <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Kliknite »Potrdi«, če želite ohraniti spremembe. Prejšnja nastavitev bo obnovljena čez <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Naprava Bluetooth »<ph name="DEVICE_NAME" />« želi dovoljenje za seznanjanje. V napravi vnesite ta PIN: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Minimiranje zgornjega okna, ko v Chromu ni zgodovine</translation> <translation id="1024364763893396229">Shranite napravo <ph name="NAME" /></translation> <translation id="1032891413405719768">Baterija pisala je skoraj izpraznjena</translation> <translation id="1036073649888683237">Če želite upravljati obvestila, odprite nastavitve</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Sistem</translation> <translation id="2621713457727696555">Varno</translation> <translation id="263399434338050016">»Izberi vse«</translation> +<translation id="2644422758626431000">Pripenjanje okna na levo</translation> <translation id="2645435784669275700">Chrome OS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> od <ph name="TOTAL_MEMORY" /> na voljo</translation> <translation id="2653019840645008922">Zajem okna</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Vklopljeno</translation> <translation id="5920710855273935292">Zvok mikrofona je izklopljen.</translation> +<translation id="5922962980596822074">Pomikanje skozi okna od nazadnje uporabljenega okna</translation> <translation id="5924855612669061715">Dostopna točka je vklopljena</translation> <translation id="5946788582095584774">Funkcija <ph name="FEATURE_NAME" /> je vklopljena.</translation> <translation id="5947494881799873997">Razveljavi</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Neznana omrežja</translation> <translation id="6359587239691116345">Zagotovite si najnovejše funkcije in varnostne izboljšave. Če zavrnete to posodobitev, naprava morda ne bo več delovala pravilno in boste morda naleteli na varnostne težave in težave z zmogljivostjo.</translation> <translation id="6376931439017688372">Bluetooth je vklopljen</translation> +<translation id="6378515133128829137">Pripenjanje okna na desno</translation> <translation id="6381109794406942707">Če želite odkleniti napravo, vnesite kodo PIN.</translation> <translation id="638716340450135524">Vklopi dostop do kamere</translation> <translation id="639644700271529076">Tipka CAPS LOCK je izklopljena</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Razširitev zaslon na <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Datoteke ni mogoče prenesti</translation> <translation id="6482559668224714696">Celozaslonska lupa</translation> +<translation id="6483727822843292440">Pomikanje skozi okna od najmanj uporabljanega okna</translation> <translation id="6490471652906364588">Naprava USB-C (desna vrata)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> zahteva, da pred rokom posodobite napravo <ph name="DEVICE_TYPE" />.</translation> <translation id="649452524636452238">PIN za pametno kartico</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb index 3b92471..950195af 100644 --- a/ash/strings/ash_strings_sr-Latn.xtb +++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -4,6 +4,8 @@ <translation id="1012876632442809908">Uređaj sa USB priključkom tipa C (prednji port)</translation> <translation id="1013598600051641573">Rezolucija prikaza <ph name="DISPLAY_NAME" /> je promenjena u <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Kliknite na Potvrdi da biste zadržali promene. Prethodna podešavanja će biti vraćena za <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Bluetooth uređaj „<ph name="DEVICE_NAME" />“ želi dozvolu za uparivanje. Unesite ovaj PIN kôd na tom uređaju: <ph name="PINCODE" /></translation> +<translation id="1014722676793506285">Ovo omogućava da <ph name="APP_NAME" /> i sve aplikacije i veb-sajtovi sa dozvolom za lokaciju i ChromeOS-om koriste lokaciju WiFi-ja i mobilnih mreža.</translation> +<translation id="1017556409696559990">Smanji gornji prozor kada nema prethodne istorije u Chrome-u</translation> <translation id="1024364763893396229">Sačuvajte uređaj <ph name="NAME" /></translation> <translation id="1032891413405719768">Baterija pisaljke je skoro prazna</translation> <translation id="1036073649888683237">Da biste upravljali obaveštenjima, idite u podešavanja</translation> @@ -190,6 +192,7 @@ <ph name="IME" /> <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Eternet: <ph name="ADDRESS" /></translation> +<translation id="1824922790784036530">Uključi pristup lokaciji</translation> <translation id="1830308660060964064">Stavka <ph name="ITEM_TITLE" /> je otkačena</translation> <translation id="1838895407229022812">Noćno svetlo je isključeno.</translation> <translation id="1854180393107901205">Zaustavi prebacivanje</translation> @@ -343,6 +346,7 @@ <translation id="2620436844016719705">Sistem</translation> <translation id="2621713457727696555">Zaštićeno</translation> <translation id="263399434338050016">„Izaberi sve“</translation> +<translation id="2644422758626431000">Zakači prozor nalevo</translation> <translation id="2645435784669275700">Chrome OS</translation> <translation id="2647092942972307022">Dostupno je <ph name="USED_MEMORY" /> od <ph name="TOTAL_MEMORY" /></translation> <translation id="2653019840645008922">Snimanje prozora</translation> @@ -466,6 +470,7 @@ <translation id="3255483164551725916">Šta možeš da radiš?</translation> <translation id="3256109297135787951">Uklonite isticanje sa stavke na polici</translation> <translation id="3260969790895726815">Govor se obrađuje lokalno i diktiranje radi oflajn, ali neke glasovne komande ne rade.</translation> +<translation id="3265032511221679826">Želite da uključite pristup preciznoj lokaciji?</translation> <translation id="3269597722229482060">Desni klik</translation> <translation id="3289364673986435196">Meni dugmeta za uključivanje</translation> <translation id="3289544412142055976">Linux aplikacije trenutno nisu podržane</translation> @@ -576,6 +581,7 @@ <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> Korisnik kojim se upravlja</translation> <translation id="3666266999138159418">Prevucite da biste sakrili plutajući prozor</translation> <translation id="367531336287639526">Izaberite prvu ikonu sa leve strane trake za adresu</translation> +<translation id="3677931086890821290">Ovo omogućava svim aplikacijama i veb-sajtovima sa dozvolom za lokaciju i ChromeOS-om da koriste lokaciju WiFi-ja i mobilnih mreža.</translation> <translation id="3679827876008292680">Idi na poslednju karticu u prozoru</translation> <translation id="36813544980941320">WiFi mreže će se deliti između vašeg telefona i uređaja <ph name="DEVICE_NAME" /></translation> <translation id="3694122362646626770">Veb-sajtovi</translation> @@ -1055,6 +1061,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Uključeno</translation> <translation id="5920710855273935292">Mikrofon je isključen.</translation> +<translation id="5922962980596822074">Prođi kroz prozore od najskorije korišćenog prozora</translation> <translation id="5924855612669061715">Hotspot je uključen</translation> <translation id="5946788582095584774">Funkcija <ph name="FEATURE_NAME" /> je uključena.</translation> <translation id="5947494881799873997">Vrati</translation> @@ -1144,6 +1151,7 @@ <translation id="6352082849089527770">Nepoznate mreže</translation> <translation id="6359587239691116345">Dobijajte najnovije funkcije i bezbednosna poboljšanja. Ako odbijete ovo ažuriranje, uređaj možda više neće raditi kako treba, a vi možete da imate problema sa bezbednošću i performansama.</translation> <translation id="6376931439017688372">Bluetooth je uključen</translation> +<translation id="6378515133128829137">Zakači prozor nadesno</translation> <translation id="6381109794406942707">Da biste otključali uređaj, unesite PIN.</translation> <translation id="638716340450135524">Uključi pristup kameri</translation> <translation id="639644700271529076">CAPS LOCK je isključen</translation> @@ -1163,6 +1171,7 @@ <translation id="6459472438155181876">Proširivanje ekrana u <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Preuzimanje fajla nije uspelo</translation> <translation id="6482559668224714696">Lupa za ceo ekran</translation> +<translation id="6483727822843292440">Prođi kroz prozore od najmanje korišćenog prozora</translation> <translation id="6490471652906364588">Uređaj sa USB priključkom tipa C (desni port)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> traži da ažurirate <ph name="DEVICE_TYPE" /> pre isteka roka</translation> <translation id="649452524636452238">PIN pametne kartice</translation> @@ -1739,6 +1748,7 @@ <translation id="9198992156681343238">Rezolucija ekrana <ph name="DISPLAY_NAME" /> je promenjena u <ph name="RESOLUTION" />. Kliknite na Potvrdi da biste zadržali promene. Prethodna podešavanja će biti vraćena za <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="9201044636667689546">Povežite <ph name="NAME" /> sa ovim Chromebook-om</translation> <translation id="9201374708878217446"><ph name="CONNECTION_STATUS" />, upravlja administrator</translation> +<translation id="9207682216934703221">Ovo omogućava da <ph name="APP_NAME" />, <ph name="APP2_NAME" /> i sve aplikacije i veb-sajtovi sa dozvolom za lokaciju i ChromeOS-om koriste lokaciju WiFi-ja i mobilnih mreža.</translation> <translation id="9210037371811586452">Izlazak iz režima spojenih radnih površina</translation> <translation id="9211490828691860325">Sve radne površine</translation> <translation id="9211681782751733685">Još <ph name="TIME_REMAINING" /> i baterija će se u potpunosti napuniti.</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index 9fcef87..96c0f39 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -4,6 +4,8 @@ <translation id="1012876632442809908">Уређај са USB прикључком типа C (предњи порт)</translation> <translation id="1013598600051641573">Резолуција приказа <ph name="DISPLAY_NAME" /> је промењена у <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Кликните на Потврди да бисте задржали промене. Претходна подешавања ће бити враћена за <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="1013923882670373915">Bluetooth уређај „<ph name="DEVICE_NAME" />“ жели дозволу за упаривање. Унесите овај PIN кôд на том уређају: <ph name="PINCODE" /></translation> +<translation id="1014722676793506285">Ово омогућава да <ph name="APP_NAME" /> и све апликације и веб-сајтови са дозволом за локацију и ChromeOS-ом користе локацију WiFi-ја и мобилних мрежа.</translation> +<translation id="1017556409696559990">Смањи горњи прозор када нема претходне историје у Chrome-у</translation> <translation id="1024364763893396229">Сачувајте уређај <ph name="NAME" /></translation> <translation id="1032891413405719768">Батерија писаљке је скоро празна</translation> <translation id="1036073649888683237">Да бисте управљали обавештењима, идите у подешавања</translation> @@ -190,6 +192,7 @@ <ph name="IME" /> <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Етернет: <ph name="ADDRESS" /></translation> +<translation id="1824922790784036530">Укључи приступ локацији</translation> <translation id="1830308660060964064">Ставка <ph name="ITEM_TITLE" /> је откачена</translation> <translation id="1838895407229022812">Ноћно светло је искључено.</translation> <translation id="1854180393107901205">Заустави пребацивање</translation> @@ -343,6 +346,7 @@ <translation id="2620436844016719705">Систем</translation> <translation id="2621713457727696555">Заштићено</translation> <translation id="263399434338050016">„Изабери све“</translation> +<translation id="2644422758626431000">Закачи прозор налево</translation> <translation id="2645435784669275700">Chrome ОС</translation> <translation id="2647092942972307022">Доступно је <ph name="USED_MEMORY" /> од <ph name="TOTAL_MEMORY" /></translation> <translation id="2653019840645008922">Снимање прозора</translation> @@ -466,6 +470,7 @@ <translation id="3255483164551725916">Шта можеш да радиш?</translation> <translation id="3256109297135787951">Уклоните истицање са ставке на полици</translation> <translation id="3260969790895726815">Говор се обрађује локално и диктирање ради офлајн, али неке гласовне команде не раде.</translation> +<translation id="3265032511221679826">Желите да укључите приступ прецизној локацији?</translation> <translation id="3269597722229482060">Десни клик</translation> <translation id="3289364673986435196">Мени дугмета за укључивање</translation> <translation id="3289544412142055976">Linux апликације тренутно нису подржане</translation> @@ -576,6 +581,7 @@ <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> Корисник којим се управља</translation> <translation id="3666266999138159418">Превуците да бисте сакрили плутајући прозор</translation> <translation id="367531336287639526">Изаберите прву икону са леве стране траке за адресу</translation> +<translation id="3677931086890821290">Ово омогућава свим апликацијама и веб-сајтовима са дозволом за локацију и ChromeOS-ом да користе локацију WiFi-ја и мобилних мрежа.</translation> <translation id="3679827876008292680">Иди на последњу картицу у прозору</translation> <translation id="36813544980941320">WiFi мреже ће се делити између вашег телефона и уређаја <ph name="DEVICE_NAME" /></translation> <translation id="3694122362646626770">Веб-сајтови</translation> @@ -1055,6 +1061,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Укључено</translation> <translation id="5920710855273935292">Микрофон је искључен.</translation> +<translation id="5922962980596822074">Прођи кроз прозоре од најскорије коришћеног прозора</translation> <translation id="5924855612669061715">Хотспот је укључен</translation> <translation id="5946788582095584774">Функција <ph name="FEATURE_NAME" /> је укључена.</translation> <translation id="5947494881799873997">Врати</translation> @@ -1144,6 +1151,7 @@ <translation id="6352082849089527770">Непознате мреже</translation> <translation id="6359587239691116345">Добијајте најновије функције и безбедносна побољшања. Ако одбијете ово ажурирање, уређај можда више неће радити како треба, а ви можете да имате проблема са безбедношћу и перформансама.</translation> <translation id="6376931439017688372">Bluetooth је укључен</translation> +<translation id="6378515133128829137">Закачи прозор надесно</translation> <translation id="6381109794406942707">Да бисте откључали уређај, унесите PIN.</translation> <translation id="638716340450135524">Укључи приступ камери</translation> <translation id="639644700271529076">CAPS LOCK је искључен</translation> @@ -1163,6 +1171,7 @@ <translation id="6459472438155181876">Проширивање екрана у <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Преузимање фајла није успело</translation> <translation id="6482559668224714696">Лупа за цео екран</translation> +<translation id="6483727822843292440">Прођи кроз прозоре од најмање коришћеног прозора</translation> <translation id="6490471652906364588">Уређај са USB прикључком типа C (десни порт)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> тражи да ажурирате <ph name="DEVICE_TYPE" /> пре истека рока</translation> <translation id="649452524636452238">PIN паметне картице</translation> @@ -1739,6 +1748,7 @@ <translation id="9198992156681343238">Резолуција екрана <ph name="DISPLAY_NAME" /> је промењена у <ph name="RESOLUTION" />. Кликните на Потврди да бисте задржали промене. Претходна подешавања ће бити враћена за <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="9201044636667689546">Повежите <ph name="NAME" /> са овим Chromebook-ом</translation> <translation id="9201374708878217446"><ph name="CONNECTION_STATUS" />, управља администратор</translation> +<translation id="9207682216934703221">Ово омогућава да <ph name="APP_NAME" />, <ph name="APP2_NAME" /> и све апликације и веб-сајтови са дозволом за локацију и ChromeOS-ом користе локацију WiFi-ја и мобилних мрежа.</translation> <translation id="9210037371811586452">Излазак из режима спојених радних површина</translation> <translation id="9211490828691860325">Све радне површине</translation> <translation id="9211681782751733685">Још <ph name="TIME_REMAINING" /> и батерија ће се у потпуности напунити.</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index 33c2105..d3a90a78 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -1215,6 +1215,7 @@ <translation id="6683022854667115063">Vipokea sauti vya kichwani</translation> <translation id="6696025732084565524">Kibodi unayoweza kutenganisha inahitaji sasisho muhimu</translation> <translation id="6700713906295497288">Kitufe cha menyu ya IME</translation> +<translation id="6705577071209924099">Rekebisha Mwangaza</translation> <translation id="6707693040195709527">Muda wa kubadilisha utumie toleo la awali kwenye kifaa umekwisha</translation> <translation id="6710213216561001401">Iliyopita</translation> <translation id="6723839937902243910">Nishati</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index 916a866d..c185ca5a 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C சாதனம் (முன்பக்கப் போர்ட்)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> இன் தெளிவுத்திறன் <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz) என்பதற்கு மாற்றப்பட்டது. மாற்றங்களை உறுதிசெய்ய 'உறுதிசெய்' என்பதைக் கிளிக் செய்யவும். இன்னும் <ph name="TIMEOUT_SECONDS" /> இல் முந்தைய அமைப்புகள் மீட்டெடுக்கப்படும்.</translation> <translation id="1013923882670373915">புளூடூத் சாதனம் "<ph name="DEVICE_NAME" />", இணைப்பதற்கான அனுமதியை விரும்புகிறது. அந்தச் சாதனத்தில் இந்த PIN குறியீட்டை உள்ளிடவும்: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Chromeமில் முந்தைய பதிவு இல்லையெனில் மேற்புறச் சாளரத்தைச் சிறிதாக்கு</translation> <translation id="1024364763893396229">உங்கள் <ph name="NAME" /> சாதனத்தைச் சேமித்திடுங்கள்</translation> <translation id="1032891413405719768">ஸ்டைலஸ் பேட்டரி குறைவாக உள்ளது</translation> <translation id="1036073649888683237">அறிவிப்புகளை நிர்வகிக்க அமைப்புகளுக்குச் செல்லவும்</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">அமைப்பு</translation> <translation id="2621713457727696555">பாதுகாக்கப்பட்ட வைஃபை நெட்வொர்க்</translation> <translation id="263399434338050016">"அனைத்தையும் தேர்ந்தெடு"</translation> +<translation id="2644422758626431000">சாளரத்தை இடதுபுறத்தில் பின் செய்</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022">(<ph name="TOTAL_MEMORY" /> இல் <ph name="USED_MEMORY" /> உள்ளது)</translation> <translation id="2653019840645008922">சாளரத்தைப் படமெடுக்கும்</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">இயக்கு</translation> <translation id="5920710855273935292">மைக் ஒலியடக்கப்பட்டுள்ளது.</translation> +<translation id="5922962980596822074">மிகச் சமீபத்தில் பயன்படுத்திய சாளரத்தில் இருந்து சாளரங்களுக்குச் செல்</translation> <translation id="5924855612669061715">ஹாட்ஸ்பாட் ஆன் செய்யப்பட்டுள்ளது</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> இயக்கப்பட்டுள்ளது.</translation> <translation id="5947494881799873997">மாற்றியமை</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">தெரியாத நெட்வொர்க்குகள்</translation> <translation id="6359587239691116345">சமீபத்திய அம்சங்களையும் பாதுகாப்பு மேம்பாடுகளையும் பெறலாம். இந்தப் புதுப்பிப்பை நிராகரித்தால் உங்கள் சாதனம் சரியாகச் செயல்படாமல் போகக்கூடும். அத்துடன் பாதுகாப்பு மற்றும் செயல்திறன் சிக்கல்களும் ஏற்படக்கூடும்.</translation> <translation id="6376931439017688372">புளூடூத் இயக்கப்பட்டுள்ளது</translation> +<translation id="6378515133128829137">சாளரத்தை வலதுபுறத்தில் பின் செய்</translation> <translation id="6381109794406942707">சாதனத்தை அன்லாக் செய்ய உங்கள் பின்னை உள்ளிடவும்.</translation> <translation id="638716340450135524">கேமரா அணுகலை இயக்கு</translation> <translation id="639644700271529076">CAPS LOCK முடக்கப்பட்டுள்ளது</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876"><ph name="DISPLAY_NAME" /> க்கு திரை விரிவாக்கப்படுகிறது</translation> <translation id="6477681113376365978">ஃபைலைப் பதிவிறக்க முடியவில்லை</translation> <translation id="6482559668224714696">முழுத்திரைப் பெரிதாக்கி</translation> +<translation id="6483727822843292440">கடைசியாகப் பயன்படுத்திய சாளரத்தில் இருந்து சாளரங்களுக்குச் செல்</translation> <translation id="6490471652906364588">USB-C சாதனம் (வலது போர்ட்)</translation> <translation id="6491071886865974820">காலக்கெடுவுக்கு முன்பு இந்த <ph name="DEVICE_TYPE" /> ஐப் புதுப்பிக்குமாறு <ph name="MANAGER" /> கோருகிறது</translation> <translation id="649452524636452238">ஸ்மார்ட் கார்டு பின்</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 09f6834f..1891cd4 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C పరికరం (ముందువైపు పోర్ట్)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz)కు మార్చబడింది. మార్పులను అలాగే ఉంచడానికి 'నిర్ధారించు'ను క్లిక్ చేయండి. మునుపటి సెట్టింగ్లు <ph name="TIMEOUT_SECONDS" />లో రీస్టోర్ చేయబడతాయి.</translation> <translation id="1013923882670373915">బ్లూటూత్ పరికరం "<ph name="DEVICE_NAME" />" జత కావడానికి అనుమతి కోరుతోంది. దయచేసి ఆ పరికరంలో ఈ PIN కోడ్ను నమోదు చేయండి: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Chromeలో బ్యాక్ హిస్టరీ లేనప్పుడు టాప్ విండోను కుదించండి</translation> <translation id="1024364763893396229">మీ <ph name="NAME" />ను సేవ్ చేయండి</translation> <translation id="1032891413405719768">స్టైలస్ బ్యాటరీ తక్కువగా ఉంది</translation> <translation id="1036073649888683237">నోటిఫికేషన్లను మేనేజ్ చేయడానికి, సెట్టింగ్లకు వెళ్లండి</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">సిస్టమ్</translation> <translation id="2621713457727696555">సురక్షితమైంది</translation> <translation id="263399434338050016">"అన్నింటినీ ఎంచుకోండి"</translation> +<translation id="2644422758626431000">విండోను ఎడమ వైపునకు పిన్ చేయండి</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="TOTAL_MEMORY" />లో <ph name="USED_MEMORY" /> అందుబాటులో ఉంది</translation> <translation id="2653019840645008922">విండోను క్యాప్చర్ చేయండి</translation> @@ -1055,6 +1057,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ఆన్ చేయి</translation> <translation id="5920710855273935292">మైక్ మ్యూట్ చేయబడింది.</translation> +<translation id="5922962980596822074">అత్యంత ఇటీవల ఉపయోగించబడిన విండో నుండి విండోలను బ్రౌజ్ చేయండి</translation> <translation id="5924855612669061715">హాట్స్పాట్ ఆన్లో ఉంది</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> ఆన్లో ఉంది.</translation> <translation id="5947494881799873997">తిరిగి పూర్వ స్థితికి మార్చు</translation> @@ -1144,6 +1147,7 @@ <translation id="6352082849089527770">తెలియని నెట్వర్క్లు</translation> <translation id="6359587239691116345">తాజా ఫీచర్లు, సెక్యూరిటీ మెరుగుదలలను పొందండి. మీరు ఈ అప్డేట్ను తిరస్కరిస్తే, మీ పరికరం ఇకపై సరిగ్గా పని చేయకపోవచ్చు, మీరు సెక్యూరిటీ, అలాగే పనితీరుకు సంబంధించిన సమస్యలను ఎదుర్కోవచ్చు.</translation> <translation id="6376931439017688372">బ్లూటూత్ ఆన్ చేయబడింది</translation> +<translation id="6378515133128829137">విండోను కుడి వైపునకు పిన్ చేయండి</translation> <translation id="6381109794406942707">పరికరాన్ని అన్లాక్ చేయడానికి, మీ పిన్ను ఎంటర్ చేయండి.</translation> <translation id="638716340450135524">కెమెరా యాక్సెస్ను ఆన్ చేయండి</translation> <translation id="639644700271529076">CAPS LOCK ఆపివేయబడింది</translation> @@ -1163,6 +1167,7 @@ <translation id="6459472438155181876"><ph name="DISPLAY_NAME" />కు స్క్రీన్ను విస్తరిస్తోంది</translation> <translation id="6477681113376365978">ఫైల్ను డౌన్లోడ్ చేయలేకపోయింది</translation> <translation id="6482559668224714696">ఫుల్-స్క్రీన్ మాగ్నిఫైయర్</translation> +<translation id="6483727822843292440">అతి తక్కువగా ఉపయోగించబడిన విండో నుండి విండోలను బ్రౌజ్ చేయండి</translation> <translation id="6490471652906364588">USB-C పరికరం (కుడి పోర్ట్)</translation> <translation id="6491071886865974820">గడువుకు ముందే ఈ <ph name="DEVICE_TYPE" />ను అప్డేట్ చేయమని <ph name="MANAGER" /> మిమ్మల్ని కోరుతోంది</translation> <translation id="649452524636452238">స్మార్ట్ కార్డ్ పిన్</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index e8701a7..7a501546 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -147,6 +147,7 @@ <translation id="1651914502370159744">เปิดหน้าประวัติการเข้าชม</translation> <translation id="1654477262762802994">เริ่มการค้นหาด้วยเสียง</translation> <translation id="1668469839109562275">VPN ในตัว</translation> +<translation id="1675844249244994876">อัปเดตหน้าต่างด้านขวา</translation> <translation id="1677472565718498478">ใช้ได้อีก <ph name="TIME" /></translation> <translation id="1677507110654891115"><ph name="FEATURE_NAME" /> ไม่เชื่อมต่อ</translation> <translation id="1677582821739292812">มีคนกำลังดูหน้าจอของคุณอยู่</translation> @@ -840,6 +841,7 @@ <translation id="493076006037866439">ซูมออกนอกหน้าจอ</translation> <translation id="4936329710968938986">ทุกคน ปิดอยู่</translation> <translation id="4938176435186993759">ซ่อนคำแนะนำทั้งหมด</translation> +<translation id="4943007472417128747">ปิดฮอตสปอตเพื่อใช้ Wi-Fi แล้ว หากต้องการใช้ฮอตสปอต ให้ปิด Wi-Fi</translation> <translation id="4945196315133970626">ปิดการแจ้งเตือน</translation> <translation id="4946376291507881335">จับภาพ</translation> <translation id="495046168593986294">เลื่อนขึ้น</translation> @@ -1384,6 +1386,7 @@ หากต้องการปิดอุปกรณ์ ให้กดปุ่มเปิด/ปิดบนอุปกรณ์ค้างไว้อีกครั้ง</translation> <translation id="7526573455193969409">อาจมีการตรวจสอบเครือข่าย</translation> <translation id="7536035074519304529">ที่อยู่ IP: <ph name="ADDRESS" /></translation> +<translation id="7536832381700852123">อัปเดตหน้าต่างด้านซ้าย</translation> <translation id="7543399541175347147">ขณะนี้ยังไม่รองรับแอป Linux และหน้าต่างที่ไม่ระบุตัวตน ระบบจะบันทึกแอปอื่นๆ</translation> <translation id="7544300628205093162">ไฟแบ็กไลต์ของแป้นพิมพ์เปิดอยู่</translation> <translation id="7548434653388805669">ได้เวลาเข้านอนแล้ว</translation> @@ -1464,6 +1467,7 @@ <translation id="7893503627044934815">ไม่ต้องการให้แสดงไฟล์นี้</translation> <translation id="7895348134893321514">Tote</translation> <translation id="7897375687985782769">คุณกดแป้นพิมพ์ลัดสำหรับการหมุนหน้าจอ จะหมุนหน้าจอไหม</translation> +<translation id="7901190436359881020">สลับหน้าต่าง</translation> <translation id="7901405293566323524">ฮับโทรศัพท์</translation> <translation id="7902625623987030061">แตะเซ็นเซอร์ลายนิ้วมือ</translation> <translation id="7904094684485781019">ผู้ดูแลระบบของบัญชีนี้ไม่อนุญาตการลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชี</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb index c7520f8a1..f1638000 100644 --- a/ash/strings/ash_strings_ur.xtb +++ b/ash/strings/ash_strings_ur.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">USB-C آلہ (سانے کا پورٹ)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> کو <ph name="RESOLUTION" /> (Hz<ph name="REFRESH_RATE" />) پر تبدیل کر دیا گیا ہے۔ تبدیلیاں باقی رکھنے کے لیے تصدیق کریں پر کلک کریں۔ گزشتہ ترتیبات کو <ph name="TIMEOUT_SECONDS" /> میں بحال کر دیا جائے گا۔</translation> <translation id="1013923882670373915">بلوٹوتھ آلہ "<ph name="DEVICE_NAME" />" جوڑا بنانے کی اجازت چاہتا ہے۔ براہ کرم اس PIN کوڈ کو اس آلہ پر درج کریں: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Chrome میں کوئی گزشتہ سرگزشت موجود نہ ہونے پر سرفہرست ونڈو کو چھوٹا کریں</translation> <translation id="1024364763893396229">اپنا <ph name="NAME" /> محفوظ کریں</translation> <translation id="1032891413405719768">اسٹائلس کی بیٹری کم ہے</translation> <translation id="1036073649888683237">اطلاعات کا نظم کرنے کیلئے ترتیبات پر جائیں</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">سسٹم</translation> <translation id="2621713457727696555">محفوظ ہے</translation> <translation id="263399434338050016">"تمام منتخب کریں"</translation> +<translation id="2644422758626431000">ونڈو کو بائیں طرف پن کریں</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> از <ph name="TOTAL_MEMORY" /> دستیاب ہے</translation> <translation id="2653019840645008922">ونڈو کیپچر</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">آن</translation> <translation id="5920710855273935292">مائیک خاموش کیا ہوا ہے۔</translation> +<translation id="5922962980596822074">سب سے زیادہ حال ہی میں استعمال شدہ ونڈو سے ایک ونڈو سے دوسری ونڈو پر جائیں</translation> <translation id="5924855612669061715">ہاٹ اسپاٹ آن ہے</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> آن ہے۔</translation> <translation id="5947494881799873997">واپس لوٹیں</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">نامعلوم نیٹ ورکس</translation> <translation id="6359587239691116345">تازہ ترین خصوصیات اور سیکیورٹی میں بہتریاں حاصل کریں۔ اگر آپ اس اپ ڈیٹ کو مسترد کرتے ہیں تو ہو سکتا ہے کہ آپ کا آلہ اب مزید ٹھیک سے کام نہ کرے اور آپ کو سیکیورٹی اور کارکردگی کے مسائل کا سامنا کرنا پڑے۔</translation> <translation id="6376931439017688372">بلوٹوتھ آن ہے</translation> +<translation id="6378515133128829137">ونڈو کو دائیں جانب پن کریں</translation> <translation id="6381109794406942707">آلہ غیر مقفل کرنے کے لیے، اپنا PIN درج کریں۔</translation> <translation id="638716340450135524">کیمرا تک رسائی آن کریں</translation> <translation id="639644700271529076">CAPS LOCK آف ہے</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">اسکرین کو <ph name="DISPLAY_NAME" /> میں پھیلایا جا رہا ہے</translation> <translation id="6477681113376365978">فائل ڈاؤن لوڈ نہیں کر سکتے</translation> <translation id="6482559668224714696">پوری اسکرین مکبّر</translation> +<translation id="6483727822843292440">سب سے کم استعمال شدہ ونڈو سے ایک ونڈو سے دوسری ونڈو پر جائیں</translation> <translation id="6490471652906364588">USB-C آلہ (دایاں پورٹ)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> کا تقاضہ ہے کہ آپ آخری تاریخ سے پہلے اپنے <ph name="DEVICE_TYPE" /> کو اپ ڈیٹ کریں</translation> <translation id="649452524636452238">اسمارٹ کارڈ PIN</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index b838c0a..c09efc4 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -4,6 +4,7 @@ <translation id="1012876632442809908">Thiết bị USB-C (cổng phía trước)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> đã đổi thành <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz). Hãy nhấp vào xác nhận để lưu các thay đổi. Các tùy chọn cài đặt trước sẽ được khôi phục sau <ph name="TIMEOUT_SECONDS" /> nữa.</translation> <translation id="1013923882670373915">Thiết bị Bluetooth "<ph name="DEVICE_NAME" />" muốn được phép ghép nối. Vui lòng nhập mã PIN này trên thiết bị đó: <ph name="PINCODE" /></translation> +<translation id="1017556409696559990">Thu nhỏ cửa sổ trên cùng khi không có nhật ký nội dung quay lại trong Chrome</translation> <translation id="1024364763893396229">Lưu <ph name="NAME" /></translation> <translation id="1032891413405719768">Pin của bút cảm ứng ở mức thấp</translation> <translation id="1036073649888683237">Để quản lý thông báo, hãy chuyển đến phần Cài đặt</translation> @@ -343,6 +344,7 @@ <translation id="2620436844016719705">Hệ thống</translation> <translation id="2621713457727696555">Đã bảo mật</translation> <translation id="263399434338050016">"Chọn tất cả"</translation> +<translation id="2644422758626431000">Ghim cửa sổ sang bên trái</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022"><ph name="USED_MEMORY" /> trong số <ph name="TOTAL_MEMORY" /> sẵn có</translation> <translation id="2653019840645008922">Chụp/ghi cửa sổ</translation> @@ -1054,6 +1056,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Bật</translation> <translation id="5920710855273935292">Micrô đang tắt.</translation> +<translation id="5922962980596822074">Di chuyển qua các cửa sổ từ cửa sổ được sử dụng gần đây nhất</translation> <translation id="5924855612669061715">Điểm phát sóng đang bật</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" /> đang bật.</translation> <translation id="5947494881799873997">Hoàn nguyên</translation> @@ -1143,6 +1146,7 @@ <translation id="6352082849089527770">Mạng không xác định</translation> <translation id="6359587239691116345">Nhận các tính năng mới nhất và mức độ bảo mật cao hơn. Nếu bạn từ chối bản cập nhật này, thiết bị của bạn có thể sẽ không còn hoạt động bình thường. Đồng thời, bạn có thể gặp các vấn đề về hiệu suất và bảo mật.</translation> <translation id="6376931439017688372">Bluetooth đang bật</translation> +<translation id="6378515133128829137">Ghim cửa sổ sang bên phải</translation> <translation id="6381109794406942707">Để mở khóa thiết bị, hãy nhập mã PIN của bạn.</translation> <translation id="638716340450135524">Bật quyền truy cập vào máy ảnh</translation> <translation id="639644700271529076">CAPS LOCK tắt</translation> @@ -1162,6 +1166,7 @@ <translation id="6459472438155181876">Đang mở rộng màn hình tới <ph name="DISPLAY_NAME" /></translation> <translation id="6477681113376365978">Không tải được tệp xuống</translation> <translation id="6482559668224714696">Phóng to toàn màn hình</translation> +<translation id="6483727822843292440">Di chuyển qua các cửa sổ từ cửa sổ ít được sử dụng nhất</translation> <translation id="6490471652906364588">Thiết bị USB-C (cổng bên phải)</translation> <translation id="6491071886865974820">Theo yêu cầu của <ph name="MANAGER" />, bạn phải cập nhật thiết bị <ph name="DEVICE_TYPE" /> của mình trước thời hạn</translation> <translation id="649452524636452238">Mã PIN của thẻ thông minh</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb index e1e25570..740edb4 100644 --- a/ash/strings/ash_strings_zh-HK.xtb +++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -4,6 +4,8 @@ <translation id="1012876632442809908">USB-C 裝置 (前方連接埠)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> 已變更為 <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz)。請按一下 [確認] 以保留變更。系統會在 <ph name="TIMEOUT_SECONDS" />後還原先前的設定。</translation> <translation id="1013923882670373915">藍牙裝置「<ph name="DEVICE_NAME" />」要求配對權限,請在裝置上輸入以下 PIN:<ph name="PINCODE" /></translation> +<translation id="1014722676793506285">這項操作會允許「<ph name="APP_NAME" />」、具有位置存取權的所有應用程式/網站和 ChromeOS 使用 Wi-Fi 和行動網路的位置資訊。</translation> +<translation id="1017556409696559990">當 Chrome 沒有返回記錄時,就將頂層視窗縮到最小</translation> <translation id="1024364763893396229">儲存 <ph name="NAME" /></translation> <translation id="1032891413405719768">觸控筆電量偏低</translation> <translation id="1036073649888683237">如要管理通知,請前往「設定」應用程式</translation> @@ -191,6 +193,7 @@ <ph name="IME" /> <ph name="LOCALE" /></translation> <translation id="1823873187264960516">以太網:<ph name="ADDRESS" /></translation> +<translation id="1824922790784036530">開啟位置存取權</translation> <translation id="1830308660060964064">已經將<ph name="ITEM_TITLE" />取消置頂</translation> <translation id="1838895407229022812">「夜燈模式」已關閉。</translation> <translation id="1854180393107901205">停止投放</translation> @@ -344,6 +347,7 @@ <translation id="2620436844016719705">系統</translation> <translation id="2621713457727696555">已受保護</translation> <translation id="263399434338050016">「全選」</translation> +<translation id="2644422758626431000">將視窗固定至左邊</translation> <translation id="2645435784669275700">Chrome OS</translation> <translation id="2647092942972307022">還有 <ph name="USED_MEMORY" /> 可用空間,共 <ph name="TOTAL_MEMORY" /></translation> <translation id="2653019840645008922">視窗擷取</translation> @@ -467,6 +471,7 @@ <translation id="3255483164551725916">你可以做咩嘢?</translation> <translation id="3256109297135787951">取消捷徑列上項目的突顯狀態</translation> <translation id="3260969790895726815">語音會在本機處理,而語音聽寫可離線運作,但部分語音指令無法使用。</translation> +<translation id="3265032511221679826">要開啟精確位置存取權嗎?</translation> <translation id="3269597722229482060">按滑鼠右鍵</translation> <translation id="3289364673986435196">電源選單</translation> <translation id="3289544412142055976">目前不支援 Linux 應用程式</translation> @@ -577,6 +582,7 @@ <translation id="366222428570480733">受管理嘅使用者:<ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="3666266999138159418">滑動即可隱藏浮動視窗</translation> <translation id="367531336287639526">選取網址列左方的第一個圖示</translation> +<translation id="3677931086890821290">這項操作會允許具有位置存取權的所有應用程式/網站和 ChromeOS 使用 Wi-Fi 和行動網路的位置資訊。</translation> <translation id="3679827876008292680">前往視窗中的最後一個分頁</translation> <translation id="36813544980941320">您的手機和 <ph name="DEVICE_NAME" /> 將共用 Wi-Fi 網絡</translation> <translation id="3694122362646626770">網站</translation> @@ -1055,6 +1061,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">開啟</translation> <translation id="5920710855273935292">咪高風校咗靜音。</translation> +<translation id="5922962980596822074">從最近使用的視窗開始略過</translation> <translation id="5924855612669061715">「熱點」已開啟</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" />功能已開啟。</translation> <translation id="5947494881799873997">還原</translation> @@ -1144,6 +1151,7 @@ <translation id="6352082849089527770">不明網絡</translation> <translation id="6359587239691116345">取得最新功能和改善安全性的資訊。如果拒絕此更新,裝置可能無法再正常運作,您亦可能會遇到安全性和效能問題。</translation> <translation id="6376931439017688372">藍牙已開啟</translation> +<translation id="6378515133128829137">將視窗固定至右邊</translation> <translation id="6381109794406942707">如要解鎖裝置,請輸入 PIN。</translation> <translation id="638716340450135524">開啟相機存取權</translation> <translation id="639644700271529076">大寫鍵已關閉</translation> @@ -1163,6 +1171,7 @@ <translation id="6459472438155181876">正在擴充 <ph name="DISPLAY_NAME" /> 螢幕</translation> <translation id="6477681113376365978">無法下載檔案</translation> <translation id="6482559668224714696">全螢幕放大鏡</translation> +<translation id="6483727822843292440">從最少用的視窗開始略過</translation> <translation id="6490471652906364588">USB-C 裝置 (右側連接埠)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> 要求您在期限前更新 <ph name="DEVICE_TYPE" /></translation> <translation id="649452524636452238">智能卡 PIN</translation> @@ -1215,6 +1224,7 @@ <translation id="6683022854667115063">耳機</translation> <translation id="6696025732084565524">您的拆除式鍵盤需執行重要更新</translation> <translation id="6700713906295497288">IME 選單按鈕</translation> +<translation id="6705577071209924099">調整亮度</translation> <translation id="6707693040195709527">未在期限內將裝置回復為先前的版本</translation> <translation id="6710213216561001401">上一個</translation> <translation id="6723839937902243910">電源</translation> @@ -1739,6 +1749,7 @@ <translation id="9198992156681343238"><ph name="DISPLAY_NAME" /> 的解像度已變更為 <ph name="RESOLUTION" />。請按一下 [確認] 以保留變更。系統會在 <ph name="TIMEOUT_SECONDS" />後還原先前的設定。</translation> <translation id="9201044636667689546">請將 <ph name="NAME" /> 連結至 Chromebook</translation> <translation id="9201374708878217446"><ph name="CONNECTION_STATUS" />,由管理員管理</translation> +<translation id="9207682216934703221">這項操作會允許「<ph name="APP_NAME" />」、「<ph name="APP2_NAME" />」、具有位置存取權的所有應用程式/網站和 ChromeOS 使用 Wi-Fi 和行動網路的位置資訊。</translation> <translation id="9210037371811586452">正在退出統一桌面模式</translation> <translation id="9211490828691860325">所有桌面</translation> <translation id="9211681782751733685">電池仲有 <ph name="TIME_REMAINING" />就差滿電。</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index 0d431fc..2da9bb12 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -4,6 +4,8 @@ <translation id="1012876632442809908">USB-C 裝置 (前方連接埠)</translation> <translation id="1013598600051641573"><ph name="DISPLAY_NAME" /> 已變更為 <ph name="RESOLUTION" /> (<ph name="REFRESH_RATE" /> Hz)。請按一下 [確認] 以保留變更。系統會在 <ph name="TIMEOUT_SECONDS" />後還原先前的設定。</translation> <translation id="1013923882670373915">藍牙裝置「<ph name="DEVICE_NAME" />」要求配對權限,請在裝置上輸入以下 PIN 碼:<ph name="PINCODE" /></translation> +<translation id="1014722676793506285">這項操作會允許「<ph name="APP_NAME" />」、具有位置存取權的所有應用程式/網站和 ChromeOS 使用 Wi-Fi 和行動網路的位置資訊。</translation> +<translation id="1017556409696559990">如果 Chrome 沒有返回歷史記錄,就將頂層視窗最小化</translation> <translation id="1024364763893396229">儲存 <ph name="NAME" /></translation> <translation id="1032891413405719768">觸控筆電量偏低</translation> <translation id="1036073649888683237">如要管理通知,請前往「設定」應用程式</translation> @@ -146,6 +148,7 @@ <translation id="1651914502370159744">開啟歷史記錄頁面</translation> <translation id="1654477262762802994">啟動語音查詢</translation> <translation id="1668469839109562275">內建 VPN</translation> +<translation id="1675844249244994876">更新右側視窗</translation> <translation id="1677472565718498478"><ph name="TIME" /> 後用盡</translation> <translation id="1677507110654891115">「<ph name="FEATURE_NAME" />」並未連線。</translation> <translation id="1677582821739292812">有人正在注視你的螢幕</translation> @@ -190,6 +193,7 @@ <ph name="IME" /> <ph name="LOCALE" /></translation> <translation id="1823873187264960516">乙太網路:<ph name="ADDRESS" /></translation> +<translation id="1824922790784036530">開啟位置存取權</translation> <translation id="1830308660060964064">已取消固定「<ph name="ITEM_TITLE" />」</translation> <translation id="1838895407229022812">夜燈模式已關閉。</translation> <translation id="1854180393107901205">停止投放</translation> @@ -343,6 +347,7 @@ <translation id="2620436844016719705">系統</translation> <translation id="2621713457727696555">已受到安全保護</translation> <translation id="263399434338050016">「全選」</translation> +<translation id="2644422758626431000">將視窗固定在左側</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2647092942972307022">可用空間還有 <ph name="USED_MEMORY" />,共 <ph name="TOTAL_MEMORY" /></translation> <translation id="2653019840645008922">擷取視窗畫面</translation> @@ -466,6 +471,7 @@ <translation id="3255483164551725916">你會做些什麼?</translation> <translation id="3256109297135787951">取消檔案櫃項目的醒目顯示狀態</translation> <translation id="3260969790895726815">語音內容會在本機進行處理,語音輸入可離線運作,但部分語音指令無法使用。</translation> +<translation id="3265032511221679826">要開啟精確位置存取權嗎?</translation> <translation id="3269597722229482060">按一下滑鼠右鍵</translation> <translation id="3289364673986435196">電源鍵選單</translation> <translation id="3289544412142055976">目前不支援 Linux 應用程式</translation> @@ -573,6 +579,7 @@ <translation id="366222428570480733">受管理的使用者:<ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="3666266999138159418">滑動即可隱藏浮動視窗</translation> <translation id="367531336287639526">選取網址列左側的第一個圖示</translation> +<translation id="3677931086890821290">這項操作會允許具有位置存取權的所有應用程式/網站和 ChromeOS 使用 Wi-Fi 和行動網路的位置資訊。</translation> <translation id="3679827876008292680">前往視窗中的最後一個分頁</translation> <translation id="36813544980941320">你的手機和「<ph name="DEVICE_NAME" />」將共用 Wi-Fi 網路</translation> <translation id="3694122362646626770">網站</translation> @@ -839,6 +846,7 @@ <translation id="493076006037866439">縮小畫面內容</translation> <translation id="4936329710968938986">所有人,已關閉</translation> <translation id="4938176435186993759">隱藏所有建議</translation> +<translation id="4943007472417128747">為了使用 Wi-Fi,系統已關閉無線基地台,如要使用,請關閉 Wi-Fi。</translation> <translation id="4945196315133970626">關閉通知</translation> <translation id="4946376291507881335">擷取</translation> <translation id="495046168593986294">向上捲動</translation> @@ -1051,6 +1059,7 @@ <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">開啟</translation> <translation id="5920710855273935292">麥克風已設為靜音。</translation> +<translation id="5922962980596822074">從最近使用的視窗開始略過</translation> <translation id="5924855612669061715">無線基地台已開啟</translation> <translation id="5946788582095584774"><ph name="FEATURE_NAME" />功能已開啟。</translation> <translation id="5947494881799873997">還原</translation> @@ -1140,6 +1149,7 @@ <translation id="6352082849089527770">不明的網路</translation> <translation id="6359587239691116345">取得最新功能並改善安全性。如果拒絕這項更新,裝置可能無法再正常運作,你也可能會遇到安全性和效能問題。</translation> <translation id="6376931439017688372">藍牙已開啟</translation> +<translation id="6378515133128829137">將視窗固定到右側</translation> <translation id="6381109794406942707">如要解鎖裝置,請輸入你的 PIN 碼。</translation> <translation id="638716340450135524">開啟攝影機存取權</translation> <translation id="639644700271529076">大寫鍵已關閉</translation> @@ -1159,6 +1169,7 @@ <translation id="6459472438155181876">正在擴充 <ph name="DISPLAY_NAME" /> 畫面</translation> <translation id="6477681113376365978">無法下載檔案</translation> <translation id="6482559668224714696">全螢幕放大鏡</translation> +<translation id="6483727822843292440">從最少用的視窗開始略過</translation> <translation id="6490471652906364588">USB-C 裝置 (右側連接埠)</translation> <translation id="6491071886865974820"><ph name="MANAGER" /> 要求你在期限內更新 <ph name="DEVICE_TYPE" /></translation> <translation id="649452524636452238">智慧型卡片 PIN 碼</translation> @@ -1211,6 +1222,7 @@ <translation id="6683022854667115063">耳罩式耳機</translation> <translation id="6696025732084565524">你的卸除式鍵盤需安裝重大更新</translation> <translation id="6700713906295497288">IME 選單按鈕</translation> +<translation id="6705577071209924099">調整亮度</translation> <translation id="6707693040195709527">未在期限內將裝置復原為先前的版本</translation> <translation id="6710213216561001401">返回</translation> <translation id="6723839937902243910">電源</translation> @@ -1378,6 +1390,7 @@ 如要關閉裝置,請再次按住裝置上的電源按鈕。</translation> <translation id="7526573455193969409">網路可能會受到監控</translation> <translation id="7536035074519304529">IP 位址:<ph name="ADDRESS" /></translation> +<translation id="7536832381700852123">更新左側視窗</translation> <translation id="7543399541175347147">目前不支援 Linux 應用程式和無痕式視窗。系統將儲存其他應用程式。</translation> <translation id="7544300628205093162">鍵盤背光功能已開啟</translation> <translation id="7548434653388805669">就寢時間到了</translation> @@ -1458,6 +1471,7 @@ <translation id="7893503627044934815">不想看到這個檔案</translation> <translation id="7895348134893321514">Tote</translation> <translation id="7897375687985782769">你按下了旋轉螢幕的鍵盤快速鍵。確定要旋轉螢幕嗎?</translation> +<translation id="7901190436359881020">交換視窗</translation> <translation id="7901405293566323524">Phone Hub</translation> <translation id="7902625623987030061">請輕觸指紋感應器</translation> <translation id="7904094684485781019">這個帳戶的管理員已禁止多重登入。</translation> @@ -1732,6 +1746,7 @@ <translation id="9198992156681343238"><ph name="DISPLAY_NAME" /> 的解析度已變更為 <ph name="RESOLUTION" />。請按一下 [確認] 以保留變更。系統會在 <ph name="TIMEOUT_SECONDS" />後還原先前的設定。</translation> <translation id="9201044636667689546">請將 <ph name="NAME" /> 連結到 Chromebook</translation> <translation id="9201374708878217446"><ph name="CONNECTION_STATUS" />,由系統管理員管理</translation> +<translation id="9207682216934703221">這項操作會允許「<ph name="APP_NAME" />」、「<ph name="APP2_NAME" />」、具有位置存取權的所有應用程式/網站和 ChromeOS 使用 Wi-Fi 和行動網路的位置資訊。</translation> <translation id="9210037371811586452">退出整合桌面模式</translation> <translation id="9211490828691860325">所有桌面</translation> <translation id="9211681782751733685">電池剩餘充電時間:<ph name="TIME_REMAINING" />。</translation>
diff --git a/ash/system/network/hotspot_notifier.cc b/ash/system/network/hotspot_notifier.cc index 47a7a91..f41cf55 100644 --- a/ash/system/network/hotspot_notifier.cc +++ b/ash/system/network/hotspot_notifier.cc
@@ -22,6 +22,12 @@ const char HotspotNotifier::kWiFiTurnedOnNotificationId[] = "cros_hotspot_notifier_ids.wifi_turned_on"; +const char HotspotNotifier::kAutoDisabledNotificationId[] = + "cros_hotspot_notifier_ids.auto_disabled"; + +const char HotspotNotifier::kInternalErrorNotificationId[] = + "cros_hotspot_notifier_ids.internal_error"; + const char kNotifierHotspot[] = "ash.hotspot"; HotspotNotifier::HotspotNotifier() { @@ -55,6 +61,7 @@ int title_id; int message_id; const char* notification_id; + std::vector<message_center::ButtonInfo> notification_actions; switch (disable_reason) { case hotspot_config::mojom::DisableReason::kProhibitedByPolicy: title_id = IDS_ASH_HOTSPOT_OFF_TITLE; @@ -66,12 +73,42 @@ message_id = IDS_ASH_HOTSPOT_WIFI_TURNED_ON_MESSAGE; notification_id = kWiFiTurnedOnNotificationId; break; + case hotspot_config::mojom::DisableReason::kAutoDisabled: + title_id = IDS_ASH_HOTSPOT_OFF_TITLE; + message_id = IDS_ASH_HOTSPOT_AUTO_DISABLED_MESSAGE; + notification_id = kAutoDisabledNotificationId; + delegate = + base::MakeRefCounted<message_center::HandleNotificationClickDelegate>( + base::BindRepeating(&HotspotNotifier::EnableHotspotHandler, + weak_ptr_factory_.GetWeakPtr(), + notification_id)); + notification_actions.push_back( + message_center::ButtonInfo(l10n_util::GetStringUTF16( + IDS_ASH_HOTSPOT_NOTIFICATION_TURN_ON_BUTTON))); + break; + case hotspot_config::mojom::DisableReason::kInternalError: + title_id = IDS_ASH_HOTSPOT_OFF_TITLE; + message_id = IDS_ASH_HOTSPOT_INTERNAL_ERROR_MESSAGE; + notification_id = kInternalErrorNotificationId; + delegate = + base::MakeRefCounted<message_center::HandleNotificationClickDelegate>( + base::BindRepeating(&HotspotNotifier::EnableHotspotHandler, + weak_ptr_factory_.GetWeakPtr(), + notification_id)); + notification_actions.push_back( + message_center::ButtonInfo(l10n_util::GetStringUTF16( + IDS_ASH_HOTSPOT_NOTIFICATION_TURN_ON_BUTTON))); + break; default: return; } std::unique_ptr<message_center::Notification> notification = CreateNotification(title_id, message_id, notification_id, delegate); + if (notification_actions.size() > 0) { + notification->set_buttons(notification_actions); + } + message_center::MessageCenter* message_center = message_center::MessageCenter::Get(); message_center->RemoveNotification(notification_id, @@ -79,6 +116,29 @@ message_center->AddNotification(std::move(notification)); } +void HotspotNotifier::EnableHotspotHandler(const char* notification_id, + absl::optional<int> button_index) { + if (!button_index) { + return; + } + + if (button_index.value() == 0) { + remote_cros_hotspot_config_->EnableHotspot( + base::BindOnce([](hotspot_config::mojom::HotspotControlResult result) { + if (result == hotspot_config::mojom::HotspotControlResult::kSuccess || + result == hotspot_config::mojom::HotspotControlResult:: + kAlreadyFulfilled) { + message_center::MessageCenter* message_center = + message_center::MessageCenter::Get(); + message_center->RemoveNotification(kAutoDisabledNotificationId, + /*by_user=*/false); + message_center->RemoveNotification(kInternalErrorNotificationId, + /*by_user=*/false); + } + })); + } +} + std::unique_ptr<message_center::Notification> HotspotNotifier::CreateNotification( const int title_id,
diff --git a/ash/system/network/hotspot_notifier.h b/ash/system/network/hotspot_notifier.h index 388e9a2..6455ac8 100644 --- a/ash/system/network/hotspot_notifier.h +++ b/ash/system/network/hotspot_notifier.h
@@ -34,6 +34,8 @@ static const char kWiFiTurnedOffNotificationId[]; static const char kAdminRestrictedNotificationId[]; static const char kWiFiTurnedOnNotificationId[]; + static const char kAutoDisabledNotificationId[]; + static const char kInternalErrorNotificationId[]; private: friend class HotspotNotifierTest; @@ -49,6 +51,9 @@ const char* notification_id, scoped_refptr<message_center::NotificationDelegate> delegate); + void EnableHotspotHandler(const char* notification_id, + absl::optional<int> index); + mojo::Remote<hotspot_config::mojom::CrosHotspotConfig> remote_cros_hotspot_config_; mojo::Receiver<hotspot_config::mojom::HotspotEnabledStateObserver>
diff --git a/ash/system/network/hotspot_notifier_unittest.cc b/ash/system/network/hotspot_notifier_unittest.cc index 928d8a29..61dc525e 100644 --- a/ash/system/network/hotspot_notifier_unittest.cc +++ b/ash/system/network/hotspot_notifier_unittest.cc
@@ -168,4 +168,47 @@ HotspotNotifier::kWiFiTurnedOnNotificationId)); } +TEST_F(HotspotNotifierTest, AutoDisabled) { + SetValidHotspotCapabilities(); + SetReadinessCheckResultReady(); + AddActiveCellularService(); + helper()->manager_test()->SetSimulateTetheringEnableResult( + FakeShillSimulatedResult::kSuccess, shill::kTetheringEnableResultSuccess); + base::RunLoop().RunUntilIdle(); + + EnableHotspot(); + EXPECT_TRUE(message_center::MessageCenter::Get()->FindVisibleNotificationById( + HotspotNotifier::kWiFiTurnedOffNotificationId)); + + NotifyHotspotTurnedOff(hotspot_config::mojom::DisableReason::kAutoDisabled); + base::RunLoop().RunUntilIdle(); + EXPECT_TRUE(message_center::MessageCenter::Get()->FindVisibleNotificationById( + HotspotNotifier::kAutoDisabledNotificationId)); + + message_center::MessageCenter::Get()->ClickOnNotificationButton( + HotspotNotifier::kAutoDisabledNotificationId, 0); + base::RunLoop().RunUntilIdle(); + EXPECT_FALSE( + message_center::MessageCenter::Get()->FindVisibleNotificationById( + HotspotNotifier::kAutoDisabledNotificationId)); +} + +TEST_F(HotspotNotifierTest, InternalError) { + SetValidHotspotCapabilities(); + SetReadinessCheckResultReady(); + AddActiveCellularService(); + helper()->manager_test()->SetSimulateTetheringEnableResult( + FakeShillSimulatedResult::kSuccess, shill::kTetheringEnableResultSuccess); + base::RunLoop().RunUntilIdle(); + + EnableHotspot(); + EXPECT_TRUE(message_center::MessageCenter::Get()->FindVisibleNotificationById( + HotspotNotifier::kWiFiTurnedOffNotificationId)); + + NotifyHotspotTurnedOff(hotspot_config::mojom::DisableReason::kInternalError); + base::RunLoop().RunUntilIdle(); + EXPECT_TRUE(message_center::MessageCenter::Get()->FindVisibleNotificationById( + HotspotNotifier::kInternalErrorNotificationId)); +} + } // namespace ash
diff --git a/ash/webui/camera_app_ui/resources/css/main.css b/ash/webui/camera_app_ui/resources/css/main.css index acdc0861..94c651c 100644 --- a/ash/webui/camera_app_ui/resources/css/main.css +++ b/ash/webui/camera_app_ui/resources/css/main.css
@@ -353,11 +353,6 @@ display: none; } -/* TODO(b/236800499): Handle pause for time-lapse recording */ -body.record-type-time-lapse #pause-recordvideo { - display: none; -} - #video-snapshot-holder { bottom: calc(var(--shutter-vertical-center) + 84px); transform: translate(50%, 50%);
diff --git a/ash/webui/camera_app_ui/resources/js/device/mode/video.ts b/ash/webui/camera_app_ui/resources/js/device/mode/video.ts index ddc213e..680141fc 100644 --- a/ash/webui/camera_app_ui/resources/js/device/mode/video.ts +++ b/ash/webui/camera_app_ui/resources/js/device/mode/video.ts
@@ -419,6 +419,11 @@ return this.togglePausedInternal; } this.everPaused = true; + + if (this.recordingType === RecordType.TIME_LAPSE) { + return this.togglePausedTimeLapse(); + } + const waitable = new WaitableEvent(); this.togglePausedInternal = waitable.wait(); @@ -427,13 +432,11 @@ const toBePaused = this.mediaRecorder.state !== 'paused'; const toggledEvent = toBePaused ? 'pause' : 'resume'; - if (!toBePaused) { - const canResume = await this.startMonitorStorage(); - if (!canResume) { - this.autoStopped = true; - this.stop(); - return; - } + if (!toBePaused && !(await this.resumeMonitorStorage())) { + // Keep |togglePausedInternal| non-null to prevent pause/resume while + // stopping the recording. + waitable.signal(); + return; } const onToggled = () => { @@ -443,20 +446,14 @@ this.togglePausedInternal = null; waitable.signal(); }; - async function playEffect() { - state.set(state.State.RECORDING_UI_PAUSED, toBePaused); - await sound.play(dom.get( - toBePaused ? '#sound-rec-pause' : '#sound-rec-start', - HTMLAudioElement)); - } this.mediaRecorder.addEventListener(toggledEvent, onToggled); if (toBePaused) { - waitable.wait().then(playEffect); + waitable.wait().then(() => this.playPauseEffect(toBePaused)); this.recordTime.stop({pause: true}); this.mediaRecorder.pause(); } else { - await playEffect(); + await this.playPauseEffect(toBePaused); this.recordTime.start({resume: true}); this.mediaRecorder.resume(); } @@ -464,6 +461,51 @@ return waitable.wait(); } + private async togglePausedTimeLapse(): Promise<void> { + const toggleDone = new WaitableEvent(); + this.togglePausedInternal = toggleDone.wait(); + const toBePaused = !state.get(state.State.RECORDING_PAUSED); + + if (!toBePaused && !(await this.resumeMonitorStorage())) { + toggleDone.signal(); + return; + } + + // Pause: Pause -> Update Timer -> Sound/Button UI + // Resume: Sound/Button UI -> Update Timer -> Resume + if (toBePaused) { + state.set(state.State.RECORDING_PAUSED, true); + this.recordTime.stop({pause: true}); + await this.playPauseEffect(true); + } else { + await this.playPauseEffect(false); + this.recordTime.start({resume: true}); + state.set(state.State.RECORDING_PAUSED, false); + } + + toggleDone.signal(); + this.togglePausedInternal = null; + } + + private async playPauseEffect(toBePaused: boolean): Promise<void> { + state.set(state.State.RECORDING_UI_PAUSED, toBePaused); + await sound.play(dom.get( + toBePaused ? '#sound-rec-pause' : '#sound-rec-start', + HTMLAudioElement)); + } + + /** + * Resumes storage monitoring and returns if the recording can be resumed. + */ + private async resumeMonitorStorage(): Promise<boolean> { + const canResume = await this.startMonitorStorage(); + if (!canResume) { + this.autoStopped = true; + this.stop(); + } + return canResume; + } + private getEncoderParameters(): h264.EncoderParameters|null { if (avc1Parameters !== null) { return avc1Parameters; @@ -594,7 +636,6 @@ assert(param !== null); timeLapseSaver = await this.captureTimeLapse(param); } finally { - // TODO(b/236800499): Handle pause. // TODO(b/236800499): Handle video too short. state.set(state.State.RECORDING, false); this.recordTime.stop({pause: false}); @@ -663,6 +704,8 @@ if (this.recordingType === RecordType.GIF || this.recordingType === RecordType.TIME_LAPSE) { state.set(state.State.RECORDING, false); + state.set(state.State.RECORDING_PAUSED, false); + state.set(state.State.RECORDING_UI_PAUSED, false); } else { sound.cancel(dom.get('#sound-rec-start', HTMLAudioElement)); @@ -759,6 +802,10 @@ resolve(writtenFrameCount); return; } + if (state.get(state.State.RECORDING_PAUSED)) { + video.requestVideoFrameCallback(updateFrame); + return; + } if (frameCount % saver.speed === 0) { try { const {done, value: frame} = await reader.read();
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings.grd b/ash/webui/camera_app_ui/resources/strings/camera_strings.grd index ae90b4e..c55a41ec6 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings.grd +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings.grd
@@ -418,7 +418,9 @@ <message desc="Label for spoken feedback to read out switch to take portrait (bokeh effect, background blur) photo mode button." name="IDS_SWITCH_TAKE_PORTRAIT_BOKEH_PHOTO_BUTTON"> Switch to take portrait photo </message> - <message desc="Label for switch to take portrait (bokeh effect, background blur) photo mode button." name="IDS_LABEL_SWITCH_TAKE_PORTRAIT_BOKEH_PHOTO_BUTTON"> + <message desc="Label for switch to take portrait (bokeh effect, background blur) photo mode button." + meaning="Short for Portrait mode: a camera mode that uses machine learning to synthetically blur our backgrounds in a photo and create a pleasing bokeh effect." + name="IDS_LABEL_SWITCH_TAKE_PORTRAIT_BOKEH_PHOTO_BUTTON"> Portrait </message> <message desc="Label for spoken feedback to read out for switch to scan mode button." name="IDS_SWITCH_SCAN_MODE_BUTTON">
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_ar.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_ar.xtb index 3b3a5b3..f8efea0 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_ar.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_ar.xtb
@@ -27,7 +27,7 @@ <translation id="199526504800285197">توقَّف التسجيل</translation> <translation id="1995951722691075581">توقَّف التسجيل بسبب انخفاض مساحة التخزين على الجهاز. لتسجيل المزيد من الفيديوهات، عليك إخلاء مساحة على جهازك.</translation> <translation id="2036868001356139588">مدة المؤقِّت</translation> -<translation id="2050339315714019657">رأسي</translation> +<translation id="2050339315714019657">عمودي</translation> <translation id="2064538373111010176"><ph name="CAMERA" /> نشطة</translation> <translation id="2128052519899549250">تسجيل فيديو في وضع التسريع الزمني</translation> <translation id="2134029355740465625">إعدادات الفيديو</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_ja.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_ja.xtb index d0bd833..1c8af71 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_ja.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_ja.xtb
@@ -27,7 +27,7 @@ <translation id="199526504800285197">録画が停止しました</translation> <translation id="1995951722691075581">デバイスの空き容量が不足しているため、録画が停止しました。録画を続行するには、デバイスの空き容量を増やしてください。</translation> <translation id="2036868001356139588">タイマーの時間</translation> -<translation id="2050339315714019657">縦向き</translation> +<translation id="2050339315714019657">ポートレート</translation> <translation id="2064538373111010176"><ph name="CAMERA" />(有効)</translation> <translation id="2128052519899549250">タイムラプス動画を撮影</translation> <translation id="2134029355740465625">動画の設定</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_no.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_no.xtb index 4b42c34d..f253afc 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_no.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_no.xtb
@@ -27,7 +27,7 @@ <translation id="199526504800285197">Opptaket er stanset</translation> <translation id="1995951722691075581">Opptaket er stanset på grunn av lite lagringsplass på enheten. For å ta opp flere videoer må du frigjøre plass på enheten.</translation> <translation id="2036868001356139588">Nedtellervarighet</translation> -<translation id="2050339315714019657">Stående</translation> +<translation id="2050339315714019657">Portrett</translation> <translation id="2064538373111010176"><ph name="CAMERA" /> er aktivt</translation> <translation id="2128052519899549250">Spill inn timelapse-video</translation> <translation id="2134029355740465625">Videoinnstillinger</translation>
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index fc8529c..4f198c2 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -12.20230409.2.1 +12.20230410.1.1
diff --git a/cc/paint/image_transfer_cache_entry.cc b/cc/paint/image_transfer_cache_entry.cc index 6a94789c..1bb09a1b 100644 --- a/cc/paint/image_transfer_cache_entry.cc +++ b/cc/paint/image_transfer_cache_entry.cc
@@ -80,9 +80,9 @@ base::checked_cast<size_t>(SkYUVAInfo::kMaxPlanes)); std::array<GrBackendTexture, SkYUVAInfo::kMaxPlanes> plane_backend_textures; for (size_t plane = 0u; plane < plane_images.size(); plane++) { - plane_backend_textures[plane] = plane_images[plane]->getBackendTexture( - true /* flushPendingGrContextIO */); - if (!plane_backend_textures[plane].isValid()) { + if (!SkImages::GetBackendTextureFromImage( + plane_images[plane], &plane_backend_textures[plane], + true /* flushPendingGrContextIO */)) { DLOG(ERROR) << "Invalid backend texture found"; return nullptr; } @@ -424,8 +424,8 @@ // Upload to the GPU if the image will fit. if (fits_on_gpu) { - image = image->makeTextureImage(context, mip_mapped_for_upload, - skgpu::Budgeted::kNo); + image = SkImages::TextureFromImage(context, image, mip_mapped_for_upload, + skgpu::Budgeted::kNo); if (!image) { DLOG(ERROR) << "Failed to upload pixmap to texture image."; return nullptr; @@ -455,14 +455,15 @@ DLOG(ERROR) << "Failed to create image from plane pixmap"; return nullptr; } - plane = plane->makeTextureImage(context, mip_mapped_for_upload, - skgpu::Budgeted::kNo); + plane = SkImages::TextureFromImage(context, plane, mip_mapped_for_upload, + skgpu::Budgeted::kNo); if (!plane) { DLOG(ERROR) << "Failed to upload plane pixmap to texture image"; return nullptr; } DCHECK(plane->isTextureBacked()); - plane->getBackendTexture(/*flushPendingGrContextIO=*/true); + SkImages::GetBackendTextureFromImage(plane, nullptr, + /*flushPendingGrContextIO=*/true); plane_images.push_back(std::move(plane)); } SkYUVAInfo yuva_info(plane_images[0]->dimensions(), plane_config, @@ -640,8 +641,9 @@ DCHECK(plane_sizes_.empty()); base::CheckedNumeric<size_t> safe_total_size(0u); for (size_t plane = 0; plane < plane_images.size(); plane++) { - plane_images[plane] = plane_images[plane]->makeTextureImage( - context_, GrMipMapped::kYes, skgpu::Budgeted::kNo); + plane_images[plane] = + SkImages::TextureFromImage(context_, plane_images[plane], + GrMipMapped::kYes, skgpu::Budgeted::kNo); if (!plane_images[plane]) { DLOG(ERROR) << "Could not generate mipmap chain for plane " << plane; return false; @@ -770,8 +772,8 @@ // If mipmaps were requested, create them after color conversion. if (needs_mips && image_->isTextureBacked()) { - image_ = image_->makeTextureImage(context, GrMipMapped::kYes, - skgpu::Budgeted::kNo); + image_ = SkImages::TextureFromImage(context, image_, GrMipMapped::kYes, + skgpu::Budgeted::kNo); if (!image_) { DLOG(ERROR) << "Failed to generate mipmaps after color conversion"; return false; @@ -828,8 +830,9 @@ std::vector<size_t> mipped_plane_sizes; for (size_t plane = 0; plane < plane_images_.size(); plane++) { DCHECK(plane_images_.at(plane)); - sk_sp<SkImage> mipped_plane = plane_images_.at(plane)->makeTextureImage( - context_, GrMipMapped::kYes, skgpu::Budgeted::kNo); + sk_sp<SkImage> mipped_plane = + SkImages::TextureFromImage(context_, plane_images_.at(plane), + GrMipMapped::kYes, skgpu::Budgeted::kNo); if (!mipped_plane) return; mipped_planes.push_back(std::move(mipped_plane)); @@ -849,8 +852,8 @@ plane_sizes_ = std::move(mipped_plane_sizes); image_ = std::move(mipped_image); } else { - sk_sp<SkImage> mipped_image = image_->makeTextureImage( - context_, GrMipMapped::kYes, skgpu::Budgeted::kNo); + sk_sp<SkImage> mipped_image = SkImages::TextureFromImage( + context_, image_, GrMipMapped::kYes, skgpu::Budgeted::kNo); if (!mipped_image) { DLOG(ERROR) << "Failed to mipmapped image"; return;
diff --git a/cc/test/skia_common.cc b/cc/test/skia_common.cc index 1fd5e022..7ca3999 100644 --- a/cc/test/skia_common.cc +++ b/cc/test/skia_common.cc
@@ -33,6 +33,7 @@ #include "third_party/skia/include/core/SkRefCnt.h" #include "third_party/skia/include/core/SkYUVAPixmaps.h" #include "third_party/skia/include/gpu/GrDirectContext.h" +#include "third_party/skia/include/gpu/ganesh/SkImageGanesh.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/skia_conversions.h" @@ -289,9 +290,9 @@ bitmap.eraseColor(SK_AlphaTRANSPARENT); return PaintImageBuilder::WithDefault() .set_id(PaintImage::GetNextId()) - .set_texture_image( - SkImages::RasterFromBitmap(bitmap)->makeTextureImage(context.get()), - PaintImage::GetNextContentId()) + .set_texture_image(SkImages::TextureFromImage( + context.get(), SkImages::RasterFromBitmap(bitmap)), + PaintImage::GetNextContentId()) .TakePaintImage(); }
diff --git a/cc/tiles/gpu_image_decode_cache.cc b/cc/tiles/gpu_image_decode_cache.cc index d200d8d..47f55b9 100644 --- a/cc/tiles/gpu_image_decode_cache.cc +++ b/cc/tiles/gpu_image_decode_cache.cc
@@ -397,7 +397,8 @@ } GrSurfaceOrigin origin; - image->getBackendTexture(false /* flushPendingGrContextIO */, &origin); + SkImages::GetBackendTextureFromImage( + image, nullptr, false /* flushPendingGrContextIO */, &origin); SkColorType color_type = image->colorType(); if (color_type == kUnknown_SkColorType) { return nullptr; @@ -405,8 +406,8 @@ sk_sp<SkColorSpace> color_space = image->refColorSpace(); GrBackendTexture backend_texture; SkImages::BackendTextureReleaseProc release_proc; - SkImages::GetBackendTextureFromImage(context, std::move(image), - &backend_texture, &release_proc); + SkImages::MakeBackendTextureFromImage(context, std::move(image), + &backend_texture, &release_proc); return SkImages::BorrowTextureFrom(context, backend_texture, origin, color_type, kPremul_SkAlphaType, std::move(color_space)); @@ -432,7 +433,7 @@ } } -// TODO(ericrk): Replace calls to this with calls to SkImage::makeTextureImage, +// TODO(ericrk): Replace calls to this with calls to SkImages::TextureFromImage, // once that function handles colorspaces. https://crbug.com/834837 sk_sp<SkImage> MakeTextureImage(viz::RasterContextProvider* context, sk_sp<SkImage> source_image, @@ -443,8 +444,8 @@ // conversion, in step 3. bool add_mips_after_color_conversion = (target_color_space && mip_mapped == GrMipMapped::kYes); - sk_sp<SkImage> uploaded_image = source_image->makeTextureImage( - context->GrContext(), + sk_sp<SkImage> uploaded_image = SkImages::TextureFromImage( + context->GrContext(), source_image, add_mips_after_color_conversion ? GrMipMapped::kNo : mip_mapped); // Step 2: Apply a color-space conversion if necessary. @@ -461,8 +462,8 @@ // add mips here. if (uploaded_image && add_mips_after_color_conversion) { sk_sp<SkImage> pre_mipped_image = uploaded_image; - uploaded_image = uploaded_image->makeTextureImage(context->GrContext(), - GrMipMapped::kYes); + uploaded_image = SkImages::TextureFromImage( + context->GrContext(), uploaded_image, GrMipMapped::kYes); DCHECK_NE(pre_mipped_image, uploaded_image); DeleteSkImageAndPreventCaching(context, std::move(pre_mipped_image)); } @@ -986,14 +987,16 @@ // static GrGLuint GpuImageDecodeCache::GlIdFromSkImage(const SkImage* image) { DCHECK(image->isTextureBacked()); - GrBackendTexture backend_texture = - image->getBackendTexture(true /* flushPendingGrContextIO */); - if (!backend_texture.isValid()) + GrBackendTexture backend_texture; + if (!SkImages::GetBackendTextureFromImage( + image, &backend_texture, true /* flushPendingGrContextIO */)) { return 0; + } GrGLTextureInfo info; - if (!backend_texture.getGLTextureInfo(&info)) + if (!backend_texture.getGLTextureInfo(&info)) { return 0; + } return info.fID; } @@ -2481,12 +2484,12 @@ if (image_data->mode == DecodedDataMode::kGpu) { DCHECK(!use_transfer_cache_); base::AutoUnlock unlock(lock_); - uploaded_y_image = uploaded_y_image->makeTextureImage(context_->GrContext(), - image_needs_mips); - uploaded_u_image = uploaded_u_image->makeTextureImage(context_->GrContext(), - image_needs_mips); - uploaded_v_image = uploaded_v_image->makeTextureImage(context_->GrContext(), - image_needs_mips); + uploaded_y_image = SkImages::TextureFromImage( + context_->GrContext(), uploaded_y_image, image_needs_mips); + uploaded_u_image = SkImages::TextureFromImage( + context_->GrContext(), uploaded_u_image, image_needs_mips); + uploaded_v_image = SkImages::TextureFromImage( + context_->GrContext(), uploaded_v_image, image_needs_mips); if (!uploaded_y_image || !uploaded_u_image || !uploaded_v_image) { DLOG(WARNING) << "TODO(crbug.com/740737): Context was lost. Early out."; return; @@ -2511,8 +2514,8 @@ DCHECK(uploaded_u_image); DCHECK(uploaded_v_image); // We do not call DeleteSkImageAndPreventCaching for |uploaded_image| - // because calls to getBackendTexture will flatten the YUV planes to - // an RGB texture only to immediately delete it. + // because calls to GetBackendTextureFromImage will flatten the YUV planes + // to an RGB texture only to immediately delete it. DeleteSkImageAndPreventCaching(context_, std::move(uploaded_y_image)); DeleteSkImageAndPreventCaching(context_, std::move(uploaded_u_image)); DeleteSkImageAndPreventCaching(context_, std::move(uploaded_v_image)); @@ -2802,8 +2805,8 @@ } image_data->upload.OnUnlock(); - // If we were holding onto an unmipped image for defering deletion, do it now - // it is guarenteed to have no-refs. + // If we were holding onto an unmipped image for deferring deletion, do it now + // it is guaranteed to have no-refs. auto unmipped_image = image_data->upload.take_unmipped_image(); if (unmipped_image) { if (image_data->yuva_pixmap_info.has_value()) { @@ -2831,8 +2834,9 @@ std::vector<sk_sp<SkImage>>* yuv_images) { CheckContextLockAcquiredIfNecessary(); lock_.AssertAcquired(); + GrDirectContext* ctx = context_->GrContext(); for (auto& image : *yuv_images) { - image->flushAndSubmit(context_->GrContext()); + ctx->flushAndSubmit(image); } yuv_images->clear(); } @@ -3214,9 +3218,12 @@ SkYUVAInfo yuva_info({image_width, image_height}, yuva_plane_config, yuva_subsampling, yuv_color_space); GrBackendTexture yuv_textures[3]{}; - yuv_textures[0] = uploaded_y_image->getBackendTexture(false); - yuv_textures[1] = uploaded_u_image->getBackendTexture(false); - yuv_textures[2] = uploaded_v_image->getBackendTexture(false); + CHECK(SkImages::GetBackendTextureFromImage(uploaded_y_image, &yuv_textures[0], + false)); + CHECK(SkImages::GetBackendTextureFromImage(uploaded_u_image, &yuv_textures[1], + false)); + CHECK(SkImages::GetBackendTextureFromImage(uploaded_v_image, &yuv_textures[2], + false)); GrYUVABackendTextures yuva_backend_textures(yuva_info, yuv_textures, kTopLeft_GrSurfaceOrigin); DCHECK(yuva_backend_textures.isValid()); @@ -3229,9 +3236,10 @@ sk_sp<SkImage> yuva_image = SkImages::TextureFromYUVATextures( context_->GrContext(), yuva_backend_textures, std::move(decoded_color_space)); - if (target_color_space) + if (target_color_space && yuva_image) { return yuva_image->makeColorSpace(target_color_space, context_->GrContext()); + } return yuva_image; } @@ -3265,12 +3273,12 @@ sk_sp<SkImage> previous_v_image = image_data->upload.v_image(); // Generate a new image from the previous, adding mips. - sk_sp<SkImage> image_y_with_mips = previous_y_image->makeTextureImage( - context_->GrContext(), GrMipMapped::kYes); - sk_sp<SkImage> image_u_with_mips = previous_u_image->makeTextureImage( - context_->GrContext(), GrMipMapped::kYes); - sk_sp<SkImage> image_v_with_mips = previous_v_image->makeTextureImage( - context_->GrContext(), GrMipMapped::kYes); + sk_sp<SkImage> image_y_with_mips = SkImages::TextureFromImage( + context_->GrContext(), previous_y_image, GrMipMapped::kYes); + sk_sp<SkImage> image_u_with_mips = SkImages::TextureFromImage( + context_->GrContext(), previous_u_image, GrMipMapped::kYes); + sk_sp<SkImage> image_v_with_mips = SkImages::TextureFromImage( + context_->GrContext(), previous_v_image, GrMipMapped::kYes); // Handle lost context. if (!image_y_with_mips || !image_u_with_mips || !image_v_with_mips) { @@ -3354,8 +3362,8 @@ sk_sp<SkImage> previous_image = image_data->upload.image(); // Generate a new image from the previous, adding mips. - sk_sp<SkImage> image_with_mips = previous_image->makeTextureImage( - context_->GrContext(), GrMipMapped::kYes); + sk_sp<SkImage> image_with_mips = SkImages::TextureFromImage( + context_->GrContext(), previous_image, GrMipMapped::kYes); // Handle lost context. if (!image_with_mips) {
diff --git a/cc/tiles/gpu_image_decode_cache_unittest.cc b/cc/tiles/gpu_image_decode_cache_unittest.cc index 1f08180f..fde3858 100644 --- a/cc/tiles/gpu_image_decode_cache_unittest.cc +++ b/cc/tiles/gpu_image_decode_cache_unittest.cc
@@ -47,6 +47,7 @@ #include "third_party/skia/include/effects/SkHighContrastFilter.h" #include "third_party/skia/include/gpu/GrBackendSurface.h" #include "third_party/skia/include/gpu/GrDirectContext.h" +#include "third_party/skia/include/gpu/ganesh/SkImageGanesh.h" using testing::_; using testing::StrictMock; @@ -664,8 +665,9 @@ draw_image, static_cast<YUVIndex>(i)); } ASSERT_TRUE(original_uploaded_plane); - auto plane_with_mips = original_uploaded_plane->makeTextureImage( - context_provider()->GrContext(), GrMipMapped::kYes); + auto plane_with_mips = SkImages::TextureFromImage( + context_provider()->GrContext(), original_uploaded_plane, + GrMipMapped::kYes); ASSERT_TRUE(plane_with_mips); EXPECT_EQ(should_have_mips, original_uploaded_plane == plane_with_mips); } @@ -3185,15 +3187,15 @@ EXPECT_EQ(should_have_mips, decoded_draw_image.image()->hasMipmaps()); if (do_yuv_decode_) { - // Skia will flatten a YUV SkImage upon calling makeTextureImage. Thus, + // Skia will flatten a YUV SkImage upon calling TextureFromImage. Thus, // we must separately request mips for each plane and compare to the // original uploaded planes. CompareAllPlanesToMippedVersions( cache.get(), draw_image, transfer_cache_entry_id, should_have_mips); } else { - sk_sp<SkImage> image_with_mips = - decoded_draw_image.image()->makeTextureImage( - context_provider()->GrContext(), GrMipMapped::kYes); + sk_sp<SkImage> image_with_mips = SkImages::TextureFromImage( + context_provider()->GrContext(), decoded_draw_image.image(), + GrMipMapped::kYes); EXPECT_EQ(should_have_mips, image_with_mips == decoded_draw_image.image()); } @@ -3255,16 +3257,16 @@ // No mips should be generated. if (do_yuv_decode_) { - // Skia will flatten a YUV SkImage upon calling makeTextureImage. Thus, + // Skia will flatten a YUV SkImage upon calling TextureFromImage. Thus, // we must separately request mips for each plane and compare to the // original uploaded planes. CompareAllPlanesToMippedVersions(cache.get(), draw_image, transfer_cache_entry_id, false /* should_have_mips */); } else { - sk_sp<SkImage> image_with_mips = - decoded_draw_image.image()->makeTextureImage( - context_provider()->GrContext(), GrMipMapped::kYes); + sk_sp<SkImage> image_with_mips = SkImages::TextureFromImage( + context_provider()->GrContext(), decoded_draw_image.image(), + GrMipMapped::kYes); ASSERT_TRUE(image_with_mips); EXPECT_NE(image_with_mips, decoded_draw_image.image()); } @@ -3303,16 +3305,16 @@ // Mips should be generated if (do_yuv_decode_) { - // Skia will flatten a YUV SkImage upon calling makeTextureImage. Thus, + // Skia will flatten a YUV SkImage upon calling TextureFromImage. Thus, // we must separately request mips for each plane and compare to the // original uploaded planes. CompareAllPlanesToMippedVersions(cache.get(), draw_image, transfer_cache_entry_id, true /* should_have_mips */); } else { - sk_sp<SkImage> image_with_mips = - decoded_draw_image.image()->makeTextureImage( - context_provider()->GrContext(), GrMipMapped::kYes); + sk_sp<SkImage> image_with_mips = SkImages::TextureFromImage( + context_provider()->GrContext(), decoded_draw_image.image(), + GrMipMapped::kYes); EXPECT_EQ(image_with_mips, decoded_draw_image.image()); } cache->DrawWithImageFinished(draw_image, decoded_draw_image); @@ -3358,16 +3360,16 @@ // No mips should be generated. if (do_yuv_decode_) { - // Skia will flatten a YUV SkImage upon calling makeTextureImage. Thus, + // Skia will flatten a YUV SkImage upon calling TextureFromImage. Thus, // we must separately request mips for each plane and compare to the // original uploaded planes. CompareAllPlanesToMippedVersions(cache.get(), draw_image, transfer_cache_entry_id, false /* should_have_mips */); } else { - sk_sp<SkImage> image_with_mips = - decoded_draw_image.image()->makeTextureImage( - context_provider()->GrContext(), GrMipMapped::kYes); + sk_sp<SkImage> image_with_mips = SkImages::TextureFromImage( + context_provider()->GrContext(), decoded_draw_image.image(), + GrMipMapped::kYes); EXPECT_NE(image_with_mips, decoded_draw_image.image()); } images_to_unlock.push_back({draw_image, decoded_draw_image}); @@ -3399,16 +3401,16 @@ // Mips should be generated. if (do_yuv_decode_) { - // Skia will flatten a YUV SkImage upon calling makeTextureImage. Thus, + // Skia will flatten a YUV SkImage upon calling TextureFromImage. Thus, // we must separately request mips for each plane and compare to the // original uploaded planes. CompareAllPlanesToMippedVersions(cache.get(), draw_image, transfer_cache_entry_id, true /* should_have_mips */); } else { - sk_sp<SkImage> image_with_mips = - decoded_draw_image.image()->makeTextureImage( - context_provider()->GrContext(), GrMipMapped::kYes); + sk_sp<SkImage> image_with_mips = SkImages::TextureFromImage( + context_provider()->GrContext(), decoded_draw_image.image(), + GrMipMapped::kYes); EXPECT_EQ(image_with_mips, decoded_draw_image.image()); } images_to_unlock.push_back({draw_image, decoded_draw_image}); @@ -3493,7 +3495,7 @@ EXPECT_TRUE(decoded_draw_image.image()); EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked()); - // Skia will flatten a YUV SkImage upon calling makeTextureImage. Thus, we + // Skia will flatten a YUV SkImage upon calling TextureFromImage. Thus, we // must separately request mips for each plane and compare to the original // uploaded planes. CompareAllPlanesToMippedVersions(cache, draw_image, transfer_cache_entry_id, @@ -3597,7 +3599,7 @@ cache->SupportsColorSpaceConversion(); if (decodes_to_yuv && !color_converted_to_rgba) { - // Skia will flatten a YUV SkImage upon calling makeTextureImage. Thus, we + // Skia will flatten a YUV SkImage upon calling TextureFromImage. Thus, we // must separately request mips for each plane and compare to the original // uploaded planes. CompareAllPlanesToMippedVersions(cache, draw_image, @@ -3809,7 +3811,7 @@ EXPECT_TRUE(decoded_draw_image.image()); EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked()); - // Skia will flatten a YUV SkImage upon calling makeTextureImage. Thus, + // Skia will flatten a YUV SkImage upon calling TextureFromImage. Thus, // we must separately request mips for each plane and compare to the // original uploaded planes. CompareAllPlanesToMippedVersions(cache, draw_image,
diff --git a/cc/trees/target_property.cc b/cc/trees/target_property.cc index f6e873a..7d73467a 100644 --- a/cc/trees/target_property.cc +++ b/cc/trees/target_property.cc
@@ -4,6 +4,8 @@ #include "cc/trees/target_property.h" +#include <stdint.h> + #include "ui/gfx/animation/keyframe/target_property.h" namespace cc {
diff --git a/chrome/VERSION b/chrome/VERSION index ba6d6c23..aa185314 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=114 MINOR=0 -BUILD=5706 +BUILD=5708 PATCH=0
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayoutTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayoutTest.java index dd0b37c2..2ba6b11 100644 --- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayoutTest.java +++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayoutTest.java
@@ -13,7 +13,6 @@ import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist; import static androidx.test.espresso.assertion.ViewAssertions.matches; import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition; -import static androidx.test.espresso.matcher.RootMatchers.withDecorView; import static androidx.test.espresso.matcher.ViewMatchers.Visibility.VISIBLE; import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; import static androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility; @@ -21,7 +20,6 @@ import static androidx.test.espresso.matcher.ViewMatchers.withParent; import static androidx.test.espresso.matcher.ViewMatchers.withText; -import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.core.AllOf.allOf; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -63,7 +61,6 @@ import androidx.test.espresso.contrib.RecyclerViewActions; import androidx.test.filters.LargeTest; import androidx.test.filters.MediumTest; -import androidx.test.uiautomator.UiDevice; import org.hamcrest.Matcher; import org.hamcrest.Matchers; @@ -888,9 +885,6 @@ @CommandLineFlags.Add({BASE_PARAMS + "/baseline_tab_suggestions/true" + "/baseline_close_tab_suggestions/true/min_time_between_prefetches/0/" + "thumbnail_aspect_ratio/1.0"}) - // TODO(crbug/1422295): TabSelectionEditorV2 is currently not compatible with TabSuggestions. - // TabSuggestions are not launched and need to be reworked to use TabSelectionEditorV2. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testTabSuggestionMessageCard_dismiss() throws InterruptedException { // clang-format on prepareTabs(3, 0, null); @@ -923,9 +917,6 @@ @CommandLineFlags.Add({BASE_PARAMS + "/baseline_tab_suggestions/true" + "/baseline_close_tab_suggestions/true/min_time_between_prefetches/0" + "/thumbnail_aspect_ratio/1.0"}) - // TODO(crbug/1422295): TabSelectionEditorV2 is currently not compatible with TabSuggestions. - // TabSuggestions are not launched and need to be reworked to use TabSelectionEditorV2. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testTabSuggestionMessageCard_review() throws InterruptedException { // clang-format on prepareTabs(3, 0, null); @@ -959,9 +950,6 @@ @CommandLineFlags.Add({BASE_PARAMS + "/baseline_tab_suggestions/true" + "/baseline_close_tab_suggestions/true/min_time_between_prefetches/0/" + "thumbnail_aspect_ratio/1.0"}) - // TODO(crbug/1422295): TabSelectionEditorV2 is currently not compatible with TabSuggestions. - // TabSuggestions are not launched and need to be reworked to use TabSelectionEditorV2. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testShowOnlyOneTabSuggestionMessageCard_withSoftCleanup() throws InterruptedException { // clang-format on @@ -977,9 +965,6 @@ @CommandLineFlags.Add({BASE_PARAMS + "/baseline_tab_suggestions/true" + "/baseline_close_tab_suggestions/true/min_time_between_prefetches/0/" + "thumbnail_aspect_ratio/1.0"}) - // TODO(crbug/1422295): TabSelectionEditorV2 is currently not compatible with TabSuggestions. - // TabSuggestions are not launched and need to be reworked to use TabSelectionEditorV2. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @DisabledTest(message = "https://crbug.com/1198484, crbug.com/1130621") public void testShowOnlyOneTabSuggestionMessageCard_withHardCleanup() throws InterruptedException { @@ -996,9 +981,6 @@ @CommandLineFlags.Add({BASE_PARAMS + "/baseline_tab_suggestions/true" + "/baseline_close_tab_suggestions/true/min_time_between_prefetches/0/" + "thumbnail_aspect_ratio/1.0"}) - // TODO(crbug/1422295): TabSelectionEditorV2 is currently not compatible with TabSuggestions. - // TabSuggestions are not launched and need to be reworked to use TabSelectionEditorV2. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @DisabledTest(message = "https://crbug.com/1311825") public void testTabSuggestionMessageCardDismissAfterTabClosing() throws InterruptedException { // clang-format on @@ -1033,9 +1015,6 @@ @CommandLineFlags.Add({BASE_PARAMS + "/baseline_tab_suggestions/true" + "/baseline_close_tab_suggestions/true/min_time_between_prefetches/0/" + "thumbnail_aspect_ratio/1.0"}) - // TODO(crbug/1422295): TabSelectionEditorV2 is currently not compatible with TabSuggestions. - // TabSuggestions are not launched and need to be reworked to use TabSelectionEditorV2. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @DisabledTest(message = "https://crbug.com/1326533") public void testTabSuggestionMessageCard_orientation() throws InterruptedException { // clang-format on @@ -1466,26 +1445,22 @@ @Test @MediumTest @EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) - // TODO(crbug/1422295): Manual selection for V2 is tested elsewhere in TabSelectionEditorTest. - // This can be removed once the feature flag is cleaned up. - @DisableFeatures( - {ChromeFeatureList.TAB_TO_GTS_ANIMATION, ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @DisableFeatures({ChromeFeatureList.TAB_TO_GTS_ANIMATION}) @DisabledTest(message = "crbug.com/1096997") - public void - testTabGroupManualSelection() throws InterruptedException { + public void testTabGroupManualSelection() throws InterruptedException { ChromeTabbedActivity cta = mActivityTestRule.getActivity(); TabSelectionEditorTestingRobot robot = new TabSelectionEditorTestingRobot(); createTabs(cta, false, 3); enterTabSwitcher(cta); onView(tabSwitcherViewMatcher()).check(TabCountAssertion.havingTabCount(3)); - enterTabGroupManualSelection(cta); + enterTabSelectionEditorV2(cta); robot.resultRobot.verifyTabSelectionEditorIsVisible(); // Group first two tabs. robot.actionRobot.clickItemAtAdapterPosition(0); robot.actionRobot.clickItemAtAdapterPosition(1); - robot.actionRobot.clickToolbarActionButton(); + robot.actionRobot.clickToolbarMenuButton().clickToolbarMenuItem("Group tabs"); // Exit manual selection mode, back to tab switcher. robot.resultRobot.verifyTabSelectionEditorIsHidden(); @@ -1495,76 +1470,8 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) - // TODO(crbug/1422295): Manual selection for V2 is tested elsewhere in TabSelectionEditorTest. - // This can be removed once the feature flag is cleaned up. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void testTabGroupManualSelection_DisabledForSingleTab() { - ChromeTabbedActivity cta = mActivityTestRule.getActivity(); - TabSelectionEditorTestingRobot robot = new TabSelectionEditorTestingRobot(); - enterTabSwitcher(cta); - verifyTabSwitcherCardCount(cta, 1); - - // Group option should be disabled when there is only one single tab. - // We are using UiDevice to finish the click here since there seems to be more than one menu - // button in the view hierarchy, and we couldn't locate it using espresso approach. Also, - // performClick() won't work as the logic that handles menu button lies in onTouchListener. - View menuButton = - cta.findViewById(R.id.tab_switcher_toolbar).findViewById(R.id.menu_button); - int[] location = new int[2]; - menuButton.getLocationOnScreen(location); - UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - .click(location[0], location[1]); - // Even if we can tell the group option is disabled by looking at the device when the test - // is running, the espresso view matcher says it is enabled and all view parameters are the - // same with the one when we have two tabs. Thus, we check the item's click response here to - // tell if it is enabled. - onViewWaiting(withText("Group tabs")) - .inRoot(withDecorView(not(cta.getWindow().getDecorView()))) - .perform(click()); - robot.resultRobot.verifyTabSelectionEditorIsHidden(); - - // Group option should be enabled when there is more than one single tab. - createTabs(cta, false, 2); - enterTabSwitcher(cta); - verifyTabSwitcherCardCount(cta, 2); - UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - .click(location[0], location[1]); - onViewWaiting(withText("Group tabs")) - .inRoot(withDecorView(not(cta.getWindow().getDecorView()))) - .perform(click()); - robot.resultRobot.verifyTabSelectionEditorIsVisible(); - } - - @Test - @MediumTest // clang-format off - @EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_TO_GTS_ANIMATION + "<Study"}) - // TODO(crbug/1422295): System back is partly tested in TabSelectionEditorTest. This test should - // stay, but the test fixtures for TabSelectionEditor assume V1 here and need to be updated - // during flag cleanup. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void testTabGroupManualSelection_SystemBackDismiss() { - // clang-format on - ChromeTabbedActivity cta = mActivityTestRule.getActivity(); - TabSelectionEditorTestingRobot robot = new TabSelectionEditorTestingRobot(); - createTabs(cta, false, 2); - enterTabSwitcher(cta); - onView(tabSwitcherViewMatcher()).check(TabCountAssertion.havingTabCount(2)); - enterTabGroupManualSelection(cta); - robot.resultRobot.verifyTabSelectionEditorIsVisible(); - - // Pressing system back should dismiss the selection editor. - Espresso.pressBack(); - robot.resultRobot.verifyTabSelectionEditorIsHidden(); - } - - @Test - @MediumTest - // clang-format off - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2, - ChromeFeatureList.TAB_TO_GTS_ANIMATION}) + @EnableFeatures({ChromeFeatureList.TAB_TO_GTS_ANIMATION}) public void testTabSelectionEditorV2_SystemBackDismiss() { // clang-format on ChromeTabbedActivity cta = mActivityTestRule.getActivity(); @@ -1586,10 +1493,7 @@ // clang-format off @EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.CLOSE_TAB_SUGGESTIONS + "<Study"}) - // TODO(crbug/1422295): TabSelectionEditorV2 is currently not compatible with TabSuggestions. - // TabSuggestions are not launched and need to be reworked to use TabSelectionEditorV2. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2, - ChromeFeatureList.TAB_TO_GTS_ANIMATION}) + @DisableFeatures({ChromeFeatureList.TAB_TO_GTS_ANIMATION}) @CommandLineFlags.Add({BASE_PARAMS + "/baseline_tab_suggestions/true" + "/baseline_close_tab_suggestions/true/min_time_between_prefetches/0" + "/thumbnail_aspect_ratio/1.0"}) @@ -1614,11 +1518,10 @@ onView(allOf(withId(R.id.action_button), withParent(withId(R.id.tab_grid_message_item)))) .perform(click()); - robot.resultRobot.verifyTabSelectionEditorIsVisible() - .verifyToolbarActionButtonWithResourceId( - R.string.tab_suggestion_close_tab_action_button); + robot.resultRobot.verifyTabSelectionEditorIsVisible().verifyToolbarActionViewEnabled( + R.id.tab_selection_editor_close_menu_item); - robot.actionRobot.clickToolbarActionButton(); + robot.actionRobot.clickToolbarActionView(R.id.tab_selection_editor_close_menu_item); robot.resultRobot.verifyTabSelectionEditorIsHidden(); CriteriaHelper.pollUiThread(() -> { Criteria.checkThat(mActivityTestRule.getActivity().getCurrentTabModel().getCount(), @@ -1629,14 +1532,13 @@ createTabs(cta, false, 3); TabUiTestHelper.enterTabSwitcher(mActivityTestRule.getActivity()); - enterTabGroupManualSelection(cta); - robot.resultRobot.verifyTabSelectionEditorIsVisible() - .verifyToolbarActionButtonWithResourceId(R.string.tab_selection_editor_group); + enterTabSelectionEditorV2(cta); + robot.resultRobot.verifyTabSelectionEditorIsVisible(); // Group first two tabs. robot.actionRobot.clickItemAtAdapterPosition(0); robot.actionRobot.clickItemAtAdapterPosition(1); - robot.actionRobot.clickToolbarActionButton(); + robot.actionRobot.clickToolbarMenuButton().clickToolbarMenuItem("Group tabs"); // Exit manual selection mode, back to tab switcher. robot.resultRobot.verifyTabSelectionEditorIsHidden(); @@ -1830,10 +1732,9 @@ } @Test - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @MediumTest public void testLongPressTab_entryInTabSwitcher_verifyNoSelectionOccurs() { - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(true); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(true); final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 2); @@ -1851,14 +1752,13 @@ Criteria.checkThat( mActivityTestRule.getActivity().getCurrentTabModel().index(), Matchers.is(1)); - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(false); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(false); } @Test - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @MediumTest public void testLongPressTabGroup_entryInTabSwitcher() { - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(true); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(true); final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 2); @@ -1876,14 +1776,13 @@ TabSelectionEditorTestingRobot mSelectionEditorRobot = new TabSelectionEditorTestingRobot(); mSelectionEditorRobot.resultRobot.verifyTabSelectionEditorIsVisible(); - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(false); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(false); } @Test - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @MediumTest public void testLongPressTab_verifyPostLongPressClickNoSelectionEditor() { - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(true); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(true); final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 2); @@ -1907,7 +1806,7 @@ Criteria.checkThat( mActivityTestRule.getActivity().getCurrentTabModel().index(), Matchers.is(0)); - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(false); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(false); } @Test @@ -2017,11 +1916,6 @@ return tabListDelegate.get(); } - private void enterTabGroupManualSelection(ChromeTabbedActivity cta) { - MenuUtils.invokeCustomMenuActionSync( - InstrumentationRegistry.getInstrumentation(), cta, R.id.menu_group_tabs); - } - private void enterTabSelectionEditorV2(ChromeTabbedActivity cta) { MenuUtils.invokeCustomMenuActionSync( InstrumentationRegistry.getInstrumentation(), cta, R.id.menu_select_tabs);
diff --git a/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinatorUnitTest.java b/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinatorUnitTest.java index 0cfa4e3..4adf45c 100644 --- a/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinatorUnitTest.java +++ b/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinatorUnitTest.java
@@ -52,8 +52,7 @@ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) @Features.EnableFeatures(ChromeFeatureList.START_SURFACE_ANDROID) -@Features.DisableFeatures({ChromeFeatureList.WEB_FEED, ChromeFeatureList.SHOPPING_LIST, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) +@Features.DisableFeatures({ChromeFeatureList.WEB_FEED, ChromeFeatureList.SHOPPING_LIST}) public class StartSurfaceCoordinatorUnitTest { private static final long MILLISECONDS_PER_MINUTE = TimeUtils.SECONDS_PER_MINUTE * 1000; private static final String START_SURFACE_TIME_SPENT = "StartSurface.TimeSpent";
diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn index 52f151ee..a414677 100644 --- a/chrome/android/features/tab_ui/BUILD.gn +++ b/chrome/android/features/tab_ui/BUILD.gn
@@ -100,7 +100,6 @@ "javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridPanelViewBinderTest.java", "javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiViewBinderTest.java", "javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java", - "javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorLayoutBinderTest.java", ] deps = [
diff --git a/chrome/android/features/tab_ui/java/res/layout/tab_selection_editor_toolbar.xml b/chrome/android/features/tab_ui/java/res/layout/tab_selection_editor_toolbar.xml index 84b6461..a01d4779 100644 --- a/chrome/android/features/tab_ui/java/res/layout/tab_selection_editor_toolbar.xml +++ b/chrome/android/features/tab_ui/java/res/layout/tab_selection_editor_toolbar.xml
@@ -16,14 +16,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> - <org.chromium.ui.widget.ButtonCompat - android:id="@+id/action_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical|end" - android:enabled="false" - android:text="@string/tab_selection_editor_group" - style="@style/TextButton.OnAccent1" /> <org.chromium.components.browser_ui.widget.listmenu.ListMenuButton style="@style/ToolbarMenuButton" android:id="@+id/list_menu_button"
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java index 0c536d96..7c9ce6c 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java
@@ -96,7 +96,8 @@ }, null, false, gridCardOnClickListenerProvider, mMediator.getTabGridDialogHandler(), TabProperties.UiType.CLOSABLE, null, null, - containerView, false, mComponentName, rootView, null, mMediator); + containerView, false, mComponentName, rootView, null); + mTabListCoordinator.setOnLongPressTabItemEventListener(mMediator); TabListRecyclerView recyclerView = mTabListCoordinator.getContainerView(); TabGroupUiToolbarView toolbarView = @@ -106,10 +107,6 @@ if (!TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(activity)) { toolbarView.hideTitleWidget(); } - if (!TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(activity) - && !TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(activity)) { - toolbarView.hideMenuButton(); - } mModelChangeProcessor = PropertyModelChangeProcessor.create(mModel, new TabGridPanelViewBinder.ViewHolder(toolbarView, recyclerView, mDialogView), TabGridPanelViewBinder::bind); @@ -131,11 +128,6 @@ @Nullable private TabSelectionEditorController getTabSelectionEditorController() { - if (!TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(mActivity) - && !TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mActivity)) { - return null; - } - if (mTabSelectionEditorCoordinator == null) { @TabListCoordinator.TabListMode int mode = TabUiFeatureUtilities.shouldUseListMode(mActivity)
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java index 19cd29d9..e170139 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
@@ -290,7 +290,7 @@ mToolbarMenuCallback = result -> { if (result == R.id.ungroup_tab || result == R.id.select_tabs) { mModel.set(TabGridPanelProperties.IS_TITLE_TEXT_FOCUSED, false); - if (setupAndShowTabSelectionEditorV2(mCurrentTabId)) { + if (setupAndShowTabSelectionEditor(mCurrentTabId)) { TabUiMetricsHelper.recordSelectionEditorOpenMetrics( TabSelectionEditorOpenMetricGroups.OPEN_FROM_DIALOG, mContext); } @@ -309,15 +309,9 @@ if (TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(mContext)) { // Setup toolbar edit text. setupToolbarEditText(); - if (!TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mContext)) { - // Eagerly set up the dialog selection editor to measure performance difference. - setupDialogSelectionEditor(); - } - - mModel.set(TabGridPanelProperties.MENU_CLICK_LISTENER, getMenuButtonClickListener()); - } else if (TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mContext)) { - mModel.set(TabGridPanelProperties.MENU_CLICK_LISTENER, getMenuButtonClickListener()); } + + mModel.set(TabGridPanelProperties.MENU_CLICK_LISTENER, getMenuButtonClickListener()); } void hideDialog(boolean showAnimation) { @@ -497,36 +491,18 @@ mTabSelectionEditorSetup = true; - if (TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mContext)) { - List<TabSelectionEditorAction> actions = new ArrayList<>(); - actions.add(TabSelectionEditorSelectionAction.createAction( - mContext, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.END)); - actions.add(TabSelectionEditorCloseAction.createAction( - mContext, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); - actions.add(TabSelectionEditorUngroupAction.createAction( - mContext, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); - if (TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_BOOKMARKS.getValue()) { - actions.add(TabSelectionEditorBookmarkAction.createAction(mActivity, - ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); - } - if (TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_SHARE.getValue()) { - actions.add(TabSelectionEditorShareAction.createAction(mContext, ShowMode.MENU_ONLY, - ButtonType.ICON_AND_TEXT, IconPosition.START)); - } - mTabSelectionEditorControllerSupplier.get().configureToolbarWithMenuItems( - actions, null); - return; - } - - TabSelectionEditorActionProvider actionProvider = - new TabSelectionEditorActionProvider(mTabSelectionEditorControllerSupplier.get(), - TabSelectionEditorActionProvider.TabSelectionEditorAction.UNGROUP); - - String actionButtonText = - mContext.getString(R.string.tab_grid_dialog_selection_mode_remove); - mTabSelectionEditorControllerSupplier.get().configureToolbar(actionButtonText, - R.plurals.accessibility_tab_selection_dialog_remove_button, actionProvider, 1, - null); + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorSelectionAction.createAction( + mContext, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.END)); + actions.add(TabSelectionEditorCloseAction.createAction( + mContext, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); + actions.add(TabSelectionEditorUngroupAction.createAction( + mContext, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); + actions.add(TabSelectionEditorBookmarkAction.createAction( + mActivity, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); + actions.add(TabSelectionEditorShareAction.createAction( + mContext, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); + mTabSelectionEditorControllerSupplier.get().configureToolbarWithMenuItems(actions, null); } private void setupToolbarEditText() { @@ -701,20 +677,19 @@ // OnLongPressTabItemEventListener implementation @Override public void onLongPressEvent(int tabId) { - if (setupAndShowTabSelectionEditorV2(tabId)) { + if (setupAndShowTabSelectionEditor(tabId)) { RecordUserAction.record("TabMultiSelectV2.OpenLongPressInDialog"); } } - private boolean setupAndShowTabSelectionEditorV2(int currentTabId) { + private boolean setupAndShowTabSelectionEditor(int currentTabId) { if (mTabSelectionEditorControllerSupplier == null) return false; List<Tab> tabs = getRelatedTabs(currentTabId); // Setup dialog selection editor. setupDialogSelectionEditor(); - boolean v2Enabled = TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mContext); mTabSelectionEditorControllerSupplier.get().show(tabs, - /*preSelectedTabCount=*/0, v2Enabled ? mRecyclerViewPositionSupplier.get() : null); + /*preSelectedTabCount=*/0, mRecyclerViewPositionSupplier.get()); return true; } @@ -735,21 +710,6 @@ } } - private String getTabGroupStringForSharing() { - StringBuilder sb = new StringBuilder(); - List<Tab> tabgroup = getRelatedTabs(mCurrentTabId); - assert tabgroup.size() > 0; - for (int i = 0; i < tabgroup.size(); i++) { - sb.append(i + 1).append(". ").append(tabgroup.get(i).getUrl().getSpec()).append("\n"); - } - return sb.toString(); - } - - @VisibleForTesting - String getTabGroupStringForSharingForTesting() { - return getTabGroupStringForSharing(); - } - @VisibleForTesting int getCurrentTabIdForTesting() { return mCurrentTabId;
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMenuCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMenuCoordinator.java index e90a9d46..e6b0377 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMenuCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMenuCoordinator.java
@@ -133,14 +133,8 @@ private ModelList buildMenuItems(Context context) { ModelList itemList = new ModelList(); - if (TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mContext)) { - itemList.add(new ListItem(ListItemType.MENU_ITEM, - buildPropertyModel(context, R.string.menu_select_tabs, R.id.select_tabs))); - } else { - itemList.add(new ListItem(ListItemType.MENU_ITEM, - buildPropertyModel(context, R.string.tab_grid_dialog_toolbar_remove_from_group, - R.id.ungroup_tab))); - } + itemList.add(new ListItem(ListItemType.MENU_ITEM, + buildPropertyModel(context, R.string.menu_select_tabs, R.id.select_tabs))); if (TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(mContext)) { itemList.add(new ListItem(ListItemType.MENU_ITEM, buildPropertyModel(context, R.string.tab_grid_dialog_toolbar_edit_group_name,
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback.java index efb823d..22ad04d 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback.java
@@ -61,7 +61,8 @@ private final String mComponentName; private final TabListMediator.TabGridDialogHandler mTabGridDialogHandler; private final @TabListMode int mMode; - private final OnLongPressTabItemEventListener mOnLongPressTabItemEventListener; + @Nullable + private OnLongPressTabItemEventListener mOnLongPressTabItemEventListener; private final int mLongPressDpThreshold; private float mSwipeToDismissThreshold; private float mMergeThreshold; @@ -87,8 +88,7 @@ public TabGridItemTouchHelperCallback(Context context, TabListModel tabListModel, TabModelSelector tabModelSelector, TabActionListener tabClosedListener, TabGridDialogHandler tabGridDialogHandler, String componentName, - boolean actionsOnAllRelatedTabs, @TabListMode int mode, - @Nullable OnLongPressTabItemEventListener onLongPressTabItemEventListener) { + boolean actionsOnAllRelatedTabs, @TabListMode int mode) { super(0, 0); mModel = tabListModel; mTabModelSelector = tabModelSelector; @@ -98,12 +98,18 @@ mTabGridDialogHandler = tabGridDialogHandler; mContext = context; mMode = mode; - mOnLongPressTabItemEventListener = onLongPressTabItemEventListener; mLongPressDpThreshold = context.getResources().getDimensionPixelSize( R.dimen.tab_selection_editor_longpress_entry_threshold); } /** + * @param listener the handler for longpress actions. + */ + void setOnLongPressTabItemEventListener(OnLongPressTabItemEventListener listener) { + mOnLongPressTabItemEventListener = listener; + } + + /** * This method sets up parameters that are used by the {@link ItemTouchHelper} to make decisions * about user actions. * @param swipeToDismissThreshold Defines the threshold that user needs to swipe in @@ -301,11 +307,8 @@ mShouldBlockAction = true; } - // The following is the entry point for the longpress action for - // TabSelectionEditorV2. if (mOnLongPressTabItemEventListener != null - && TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY - .getValue()) { + && TabUiFeatureUtilities.isTabSelectionEditorLongPressEntryEnabled()) { int tabId = mModel.get(mSelectedTabIndex).model.get(TabProperties.TAB_ID); mOnLongPressTabItemEventListener.onLongPressEvent(tabId); }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java index fb98a8c9..ce69116 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java
@@ -144,7 +144,7 @@ mTabStripCoordinator = new TabListCoordinator(TabListCoordinator.TabListMode.STRIP, mContext, mTabModelSelector, null, null, false, null, null, TabProperties.UiType.STRIP, null, null, mTabListContainerView, true, - COMPONENT_NAME, mRootView, onModelTokenChange, null); + COMPONENT_NAME, mRootView, onModelTokenChange); mTabStripCoordinator.initWithNative(mDynamicResourceLoaderSupplier.get()); mModelChangeProcessor = PropertyModelChangeProcessor.create(mModel,
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java index ffde309..40d1db6 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
@@ -136,9 +136,7 @@ @Nullable TabSwitcherMediator .PriceWelcomeMessageController priceWelcomeMessageController, @NonNull ViewGroup parentView, boolean attachToParent, String componentName, - @NonNull ViewGroup rootView, @Nullable Callback<Object> onModelTokenChange, - @Nullable TabGridItemTouchHelperCallback - .OnLongPressTabItemEventListener onLongPressTabItemEventListener) { + @NonNull ViewGroup rootView, @Nullable Callback<Object> onModelTokenChange) { mMode = mode; mItemType = itemType; mContext = context; @@ -226,8 +224,7 @@ mMediator = new TabListMediator(context, mModel, mMode, tabModelSelector, thumbnailProvider, titleProvider, tabListFaviconProvider, actionOnRelatedTabs, selectionDelegateProvider, gridCardOnClickListenerProvider, dialogHandler, - priceWelcomeMessageController, componentName, itemType, - onLongPressTabItemEventListener); + priceWelcomeMessageController, componentName, itemType); try (TraceEvent e = TraceEvent.scoped("TabListCoordinator.setupRecyclerView")) { if (!attachToParent) { @@ -279,6 +276,16 @@ } } + /** + * @param onLongPressTabItemEventListener to handle long press events on tabs. + */ + public void setOnLongPressTabItemEventListener( + @Nullable TabGridItemTouchHelperCallback + .OnLongPressTabItemEventListener onLongPressTabItemEventListener) { + assert mMediator != null; + mMediator.setOnLongPressTabItemEventListener(onLongPressTabItemEventListener); + } + @NonNull Rect getThumbnailLocationOfCurrentTab() { // TODO(crbug.com/964406): calculate the location before the real one is ready.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java index ab81948..71d1f4d9 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -536,9 +536,7 @@ @Nullable GridCardOnClickListenerProvider gridCardOnClickListenerProvider, @Nullable TabGridDialogHandler dialogHandler, @Nullable PriceWelcomeMessageController priceWelcomeMessageController, - String componentName, @UiType int uiType, - @Nullable TabGridItemTouchHelperCallback - .OnLongPressTabItemEventListener onLongPressTabItemEventListener) { + String componentName, @UiType int uiType) { mContext = context; mTabModelSelector = tabModelSelector; mThumbnailProvider = thumbnailProvider; @@ -735,7 +733,7 @@ mTabGridItemTouchHelperCallback = new TabGridItemTouchHelperCallback(context, mModel, mTabModelSelector, mTabClosedListener, mTabGridDialogHandler, mComponentName, - mActionsOnAllRelatedTabs, mMode, onLongPressTabItemEventListener); + mActionsOnAllRelatedTabs, mMode); // Right now we need to update layout only if there is a price welcome message card in tab // switcher. @@ -767,6 +765,16 @@ } } + /** + * @param onLongPressTabItemEventListener to handle long press events on tabs. + */ + public void setOnLongPressTabItemEventListener( + @Nullable TabGridItemTouchHelperCallback + .OnLongPressTabItemEventListener onLongPressTabItemEventListener) { + mTabGridItemTouchHelperCallback.setOnLongPressTabItemEventListener( + onLongPressTabItemEventListener); + } + private void selectTab(int oldIndex, int newIndex) { if (oldIndex != TabModel.INVALID_TAB_INDEX) { int lastId = mModel.get(oldIndex).model.get(TAB_ID);
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProvider.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProvider.java deleted file mode 100644 index 98a5310f..0000000 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProvider.java +++ /dev/null
@@ -1,126 +0,0 @@ -// Copyright 2019 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.tasks.tab_management; - -import androidx.annotation.IntDef; - -import org.chromium.chrome.browser.tab.Tab; -import org.chromium.chrome.browser.tabmodel.TabModel; -import org.chromium.chrome.browser.tabmodel.TabModelSelector; -import org.chromium.chrome.browser.tabmodel.TabModelUtils; -import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter; -import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabSelectionEditorActionMetricGroups; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.util.List; - -/** - * Provider of actions for a list of selected tabs in {@link TabSelectionEditorMediator}. - */ -class TabSelectionEditorActionProvider { - @IntDef({TabSelectionEditorAction.UNDEFINED_ACTION, TabSelectionEditorAction.GROUP, - TabSelectionEditorAction.UNGROUP, TabSelectionEditorAction.CLOSE}) - @Retention(RetentionPolicy.SOURCE) - @interface TabSelectionEditorAction { - int UNDEFINED_ACTION = 0; - int GROUP = 1; - int UNGROUP = 2; - int CLOSE = 3; - int NUM_ENTRIES = 4; - } - - private final TabSelectionEditorCoordinator - .TabSelectionEditorController mTabSelectionEditorController; - private final @TabSelectionEditorAction int mAction; - - /** - * Construct {@link TabSelectionEditorActionProvider} with customized process selected tabs - * action. - * @see TabSelectionEditorActionProvider#processSelectedTabs(List, TabModelSelector). - */ - TabSelectionEditorActionProvider() { - mTabSelectionEditorController = null; - mAction = TabSelectionEditorAction.UNDEFINED_ACTION; - } - - /** - * Construct {@link TabSelectionEditorActionProvider} with defined - * {@link TabSelectionEditorAction}. - * - * @param tabSelectionEditorController Controller that associated with the TabSelectionEditor. - * @param action {@link TabSelectionEditorAction} to provide. - */ - TabSelectionEditorActionProvider( - TabSelectionEditorCoordinator.TabSelectionEditorController tabSelectionEditorController, - @TabSelectionEditorAction int action) { - mTabSelectionEditorController = tabSelectionEditorController; - mAction = action; - } - - /** - * Defines how to process {@code selectedTabs} based on the {@link TabSelectionEditorAction} - * specified in the constructor. If {@link TabSelectionEditorAction} is not specified, the - * caller must override this method. - * - * @param selectedTabs The list of selected tabs to process. - * @param tabModelSelector {@link TabModelSelector} to use. - */ - void processSelectedTabs(List<Tab> selectedTabs, TabModelSelector tabModelSelector) { - assert !(mAction == TabSelectionEditorAction.GROUP) - && !(mAction == TabSelectionEditorAction.UNGROUP) - || tabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter() - instanceof TabGroupModelFilter; - - switch (mAction) { - case TabSelectionEditorAction.GROUP: - Tab destinationTab = getDestinationTab(selectedTabs, tabModelSelector); - - TabGroupModelFilter tabGroupModelFilter = - (TabGroupModelFilter) tabModelSelector.getTabModelFilterProvider() - .getCurrentTabModelFilter(); - tabGroupModelFilter.mergeListOfTabsToGroup( - selectedTabs, destinationTab, false, true); - mTabSelectionEditorController.hide(); - - TabUiMetricsHelper.recordSelectionEditorActionMetrics( - TabSelectionEditorActionMetricGroups.PROVIDER_GROUP); - break; - case TabSelectionEditorAction.UNGROUP: - TabGroupModelFilter filter = - (TabGroupModelFilter) tabModelSelector.getTabModelFilterProvider() - .getCurrentTabModelFilter(); - for (Tab tab : selectedTabs) { - filter.moveTabOutOfGroup(tab.getId()); - } - mTabSelectionEditorController.hide(); - TabUiMetricsHelper.recordSelectionEditorActionMetrics( - TabSelectionEditorActionMetricGroups.PROVIDER_UNGROUP); - break; - case TabSelectionEditorAction.CLOSE: - tabModelSelector.getCurrentModel().closeMultipleTabs(selectedTabs, true); - mTabSelectionEditorController.hide(); - break; - case TabSelectionEditorAction.UNDEFINED_ACTION: - default: - assert false : "TabSelectionEditorActionProvider must override" - + "processSelectedTab() if mAction is not pre-defined with" - + "TabSelectionEditorAction."; - } - } - - /** - * @return The {@link Tab} that has the greatest index in TabModel among the given list of tabs. - */ - private Tab getDestinationTab(List<Tab> tabs, TabModelSelector tabModelSelector) { - int greatestIndex = TabModel.INVALID_TAB_INDEX; - for (int i = 0; i < tabs.size(); i++) { - int index = TabModelUtils.getTabIndexById( - tabModelSelector.getCurrentModel(), tabs.get(i).getId()); - greatestIndex = Math.max(index, greatestIndex); - } - return tabModelSelector.getCurrentModel().getTabAt(greatestIndex); - } -}
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionViewLayout.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionViewLayout.java index f5719ce..f042e5a 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionViewLayout.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionViewLayout.java
@@ -18,7 +18,6 @@ import org.chromium.components.browser_ui.widget.NumberRollView; import org.chromium.components.browser_ui.widget.listmenu.ListMenuButton; import org.chromium.components.browser_ui.widget.listmenu.ListMenuButtonDelegate; -import org.chromium.ui.widget.ButtonCompat; import java.util.ArrayList; import java.util.Set; @@ -139,30 +138,8 @@ } } - private boolean isUsingTabSelectionEditorV2Features() { - return TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mContext) && mDelegate != null - && (!mMenuItemsWithActionView.isEmpty() || mHasMenuOnlyItems); - } - @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - if (!isUsingTabSelectionEditorV2Features()) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - final int width = getMeasuredWidth(); - - if (getChildCount() < 3 || !(getChildAt(1) instanceof ButtonCompat)) return; - - // Child 1 will be the button. - getChildAt(1).measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); - int requiredWidth = - getPaddingLeft() + getPaddingRight() + getChildAt(1).getMeasuredWidth(); - // Make the number roll view use the remaining space. - makeNumberRollViewFill(MathUtils.clamp(width - requiredWidth, 0, width)); - // Get the final measurement. - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - return; - } - // Get empty size without action views. removeAllActionViews(); mMenuButton.setVisibility(View.VISIBLE);
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java index fcdde53..520a4c5c 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java
@@ -21,7 +21,6 @@ import org.chromium.base.TraceEvent; import org.chromium.base.library_loader.LibraryLoader; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tasks.pseudotab.PseudoTab; @@ -96,26 +95,7 @@ boolean handleBackPressed(); /** - * Configure the Toolbar for TabSelectionEditor. The default button text is "Group". - * @param actionButtonText Button text for the action button. - * @param actionButtonDescriptionResourceId Content description template resource Id for the - * action button. This should be in a plurals form. - * @param actionProvider The {@link TabSelectionEditorActionProvider} that specifies the - * action when action button gets clicked. - * @param actionButtonEnablingThreshold The minimum threshold to enable the action button. - * If it's -1 use the default value. - * @param navigationProvider The {@link TabSelectionEditorNavigationProvider} that specifies - * the back action. - */ - void configureToolbar(@Nullable String actionButtonText, - @Nullable Integer actionButtonDescriptionResourceId, - @Nullable TabSelectionEditorActionProvider actionProvider, - int actionButtonEnablingThreshold, - @Nullable TabSelectionEditorNavigationProvider navigationProvider); - - /** - * Configure the Toolbar for TabSelectionEditor with multiple actions. Requires - * {@link ChromeFeatureList.TAB_SELECTION_EDITOR_V2} to be enabled. + * Configure the Toolbar for TabSelectionEditor with multiple actions. * @param actions The {@link TabSelectionEditorAction} to make available. * @param navigationProvider The {@link TabSelectionEditorNavigationProvider} that specifies * the back action. @@ -178,10 +158,6 @@ mClientTabListRecyclerViewPositionSetter = clientTabListRecyclerViewPositionSetter; assert mode == TabListCoordinator.TabListMode.GRID || mode == TabListCoordinator.TabListMode.LIST; - assert !displayGroups - || (displayGroups - && ChromeFeatureList.isEnabled( - ChromeFeatureList.TAB_SELECTION_EDITOR_V2)); mTabSelectionEditorLayout = LayoutInflater.from(activity) @@ -198,7 +174,7 @@ mTabListCoordinator = new TabListCoordinator(mode, activity, mTabModelSelector, thumbnailProvider, titleProvider, displayGroups, null, null, TabProperties.UiType.SELECTABLE, this::getSelectionDelegate, null, - mTabSelectionEditorLayout, false, COMPONENT_NAME, rootView, null, null); + mTabSelectionEditorLayout, false, COMPONENT_NAME, rootView, null); // Note: The TabSelectionEditorCoordinator is always created after native is // initialized. @@ -248,8 +224,7 @@ @Nullable RecyclerViewPosition recyclerViewPosition, boolean quickMode) { TabSelectionEditorCoordinator.this.resetWithListOfTabs( tabs, preSelectedCount, quickMode); - if (!ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_SELECTION_EDITOR_V2) - || recyclerViewPosition == null) { + if (recyclerViewPosition == null) { return; } @@ -258,8 +233,7 @@ @Override public void syncRecyclerViewPosition() { - if (!ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_SELECTION_EDITOR_V2) - || mClientTabListRecyclerViewPositionSetter == null) { + if (mClientTabListRecyclerViewPositionSetter == null) { return; }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorLayoutBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorLayoutBinder.java index 6c82bc8..efc26983 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorLayoutBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorLayoutBinder.java
@@ -25,9 +25,6 @@ } else { view.hide(); } - } else if (TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_LISTENER == propertyKey) { - view.getToolbar().setActionButtonOnClickListener( - model.get(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_LISTENER)); } else if (TabSelectionEditorProperties.TOOLBAR_NAVIGATION_LISTENER == propertyKey) { view.getToolbar().setNavigationOnClickListener( model.get(TabSelectionEditorProperties.TOOLBAR_NAVIGATION_LISTENER)); @@ -36,26 +33,12 @@ } else if (TabSelectionEditorProperties.TOOLBAR_BACKGROUND_COLOR == propertyKey) { view.getToolbar().setToolbarBackgroundColor( model.get(TabSelectionEditorProperties.TOOLBAR_BACKGROUND_COLOR)); - } else if (TabSelectionEditorProperties.TOOLBAR_GROUP_TEXT_TINT == propertyKey) { + } else if (TabSelectionEditorProperties.TOOLBAR_TEXT_TINT == propertyKey) { view.getToolbar().setTextColorStateList( - model.get(TabSelectionEditorProperties.TOOLBAR_GROUP_TEXT_TINT)); - } else if (TabSelectionEditorProperties.TOOLBAR_GROUP_BUTTON_TINT == propertyKey) { + model.get(TabSelectionEditorProperties.TOOLBAR_TEXT_TINT)); + } else if (TabSelectionEditorProperties.TOOLBAR_BUTTON_TINT == propertyKey) { view.getToolbar().setButtonTint( - model.get(TabSelectionEditorProperties.TOOLBAR_GROUP_BUTTON_TINT)); - } else if (TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_TEXT == propertyKey) { - view.getToolbar().setActionButtonText( - model.get(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_TEXT)); - } else if (TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_ENABLING_THRESHOLD - == propertyKey) { - view.getToolbar().setActionButtonEnablingThreshold(model.get( - TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_ENABLING_THRESHOLD)); - } else if (TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_DESCRIPTION_RESOURCE_ID - == propertyKey) { - view.getToolbar().setActionButtonDescriptionResourceId(model.get( - TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_DESCRIPTION_RESOURCE_ID)); - } else if (TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_VISIBILITY == propertyKey) { - view.getToolbar().setActionButtonVisibility( - model.get(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_VISIBILITY)); + model.get(TabSelectionEditorProperties.TOOLBAR_BUTTON_TINT)); } else if (TabSelectionEditorProperties.RELATED_TAB_COUNT_PROVIDER == propertyKey) { view.getToolbar().setRelatedTabCountProvider( model.get(TabSelectionEditorProperties.RELATED_TAB_COUNT_PROVIDER));
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorMediator.java index c9dac30a..a9ccaae 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorMediator.java
@@ -13,7 +13,6 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabCreationState; import org.chromium.chrome.browser.tab.TabLaunchType; @@ -21,7 +20,6 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver; -import org.chromium.chrome.browser.tabmodel.TabModelUtils; import org.chromium.chrome.browser.tasks.tab_management.TabListRecyclerView.RecyclerViewPosition; import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorCoordinator.TabSelectionEditorNavigationProvider; import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabSelectionEditorExitMetricGroups; @@ -55,7 +53,6 @@ private final boolean mActionOnRelatedTabs; private final TabModelSelectorTabModelObserver mTabModelObserver; private final TabModelSelectorObserver mTabModelSelectorObserver; - private TabSelectionEditorActionProvider mActionProvider; private TabSelectionEditorCoordinator.TabSelectionEditorNavigationProvider mNavigationProvider; private final ObservableSupplierImpl<Boolean> mBackPressChangedSupplier = new ObservableSupplierImpl<>(); @@ -74,21 +71,6 @@ } }; - private final View.OnClickListener mActionButtonOnClickListener = new View.OnClickListener() { - @Override - public void onClick(View v) { - List<Tab> selectedTabs = new ArrayList<>(); - - for (int tabId : mSelectionDelegate.getSelectedItems()) { - selectedTabs.add( - TabModelUtils.getTabById(mTabModelSelector.getCurrentModel(), tabId)); - } - - if (mActionProvider == null) return; - mActionProvider.processSelectedTabs(selectedTabs, mTabModelSelector); - } - }; - TabSelectionEditorMediator(Context context, TabModelSelector tabModelSelector, TabListCoordinator tabListCoordinator, TabSelectionEditorCoordinator.ResetHandler resetHandler, PropertyModel model, @@ -108,8 +90,6 @@ mModel.set( TabSelectionEditorProperties.TOOLBAR_NAVIGATION_LISTENER, mNavigationClickListener); - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_LISTENER, - mActionButtonOnClickListener); if (mActionOnRelatedTabs) { mModel.set(TabSelectionEditorProperties.RELATED_TAB_COUNT_PROVIDER, (tabIdList) -> { return TabSelectionEditorAction.getTabCountIncludingRelatedTabs( @@ -147,10 +127,6 @@ mTabModelSelector.addObserver(mTabModelSelectorObserver); updateColors(mTabModelSelector.isIncognitoSelected()); - // Default action for action button is to group selected tabs. - mActionProvider = new TabSelectionEditorActionProvider( - this, TabSelectionEditorActionProvider.TabSelectionEditorAction.GROUP); - mNavigationProvider = new TabSelectionEditorCoordinator.TabSelectionEditorNavigationProvider( context, this); @@ -177,8 +153,8 @@ mModel.set(TabSelectionEditorProperties.PRIMARY_COLOR, primaryColor); mModel.set(TabSelectionEditorProperties.TOOLBAR_BACKGROUND_COLOR, toolbarBackgroundColor); - mModel.set(TabSelectionEditorProperties.TOOLBAR_GROUP_TEXT_TINT, toolbarTintColorList); - mModel.set(TabSelectionEditorProperties.TOOLBAR_GROUP_BUTTON_TINT, toolbarTintColorList); + mModel.set(TabSelectionEditorProperties.TOOLBAR_TEXT_TINT, toolbarTintColorList); + mModel.set(TabSelectionEditorProperties.TOOLBAR_BUTTON_TINT, toolbarTintColorList); if (mActionListModel == null) return; @@ -225,42 +201,9 @@ } @Override - public void configureToolbar(@Nullable String actionButtonText, - @Nullable Integer actionButtonDescriptionResourceId, - @Nullable TabSelectionEditorActionProvider actionProvider, - int actionButtonEnablingThreshold, - @Nullable TabSelectionEditorNavigationProvider navigationProvider) { - if (mActionListModel != null) { - mActionListModel.clear(); - } - if (actionButtonText != null) { - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_TEXT, actionButtonText); - } - if (actionProvider != null) { - mActionProvider = actionProvider; - } - if (actionButtonEnablingThreshold != -1) { - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_ENABLING_THRESHOLD, - actionButtonEnablingThreshold); - } - if (navigationProvider != null) { - mNavigationProvider = navigationProvider; - } - if (actionButtonDescriptionResourceId != null) { - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_DESCRIPTION_RESOURCE_ID, - actionButtonDescriptionResourceId); - } - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_VISIBILITY, View.VISIBLE); - updateColors(mTabModelSelector.isIncognitoSelected()); - } - - @Override public void configureToolbarWithMenuItems(List<TabSelectionEditorAction> actions, @Nullable TabSelectionEditorNavigationProvider navigationProvider) { // Deferred initialization. - // TODO(ckitagawa): Move this to TabSelectionEditorCoordinator once it is lazily - // initialized. - assert ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_SELECTION_EDITOR_V2); if (mActionListModel == null) { mActionListModel = new PropertyListModel<>(); mTabSelectionEditorMenu = new TabSelectionEditorMenu( @@ -279,7 +222,6 @@ if (navigationProvider != null) { mNavigationProvider = navigationProvider; } - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_VISIBILITY, View.GONE); updateColors(mTabModelSelector.isIncognitoSelected()); }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorProperties.java index 221bf3c..f673ae0b 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorProperties.java
@@ -18,17 +18,6 @@ new PropertyModel.WritableBooleanPropertyKey(); public static final PropertyModel - .WritableObjectPropertyKey<View.OnClickListener> TOOLBAR_ACTION_BUTTON_LISTENER = - new PropertyModel.WritableObjectPropertyKey<>(); - - public static final PropertyModel.WritableObjectPropertyKey<String> TOOLBAR_ACTION_BUTTON_TEXT = - new PropertyModel.WritableObjectPropertyKey<>(); - - public static final PropertyModel - .WritableIntPropertyKey TOOLBAR_ACTION_BUTTON_ENABLING_THRESHOLD = - new PropertyModel.WritableIntPropertyKey(); - - public static final PropertyModel .WritableObjectPropertyKey<View.OnClickListener> TOOLBAR_NAVIGATION_LISTENER = new PropertyModel.WritableObjectPropertyKey<>(); @@ -38,29 +27,18 @@ public static final PropertyModel.WritableIntPropertyKey TOOLBAR_BACKGROUND_COLOR = new PropertyModel.WritableIntPropertyKey(); - public static final PropertyModel - .WritableObjectPropertyKey<ColorStateList> TOOLBAR_GROUP_TEXT_TINT = + public static final PropertyModel.WritableObjectPropertyKey<ColorStateList> TOOLBAR_TEXT_TINT = new PropertyModel.WritableObjectPropertyKey<>(); public static final PropertyModel - .WritableObjectPropertyKey<ColorStateList> TOOLBAR_GROUP_BUTTON_TINT = + .WritableObjectPropertyKey<ColorStateList> TOOLBAR_BUTTON_TINT = new PropertyModel.WritableObjectPropertyKey<>(); public static final PropertyModel - .WritableIntPropertyKey TOOLBAR_ACTION_BUTTON_DESCRIPTION_RESOURCE_ID = - new PropertyModel.WritableIntPropertyKey(); - - public static final PropertyModel.WritableIntPropertyKey TOOLBAR_ACTION_BUTTON_VISIBILITY = - new PropertyModel.WritableIntPropertyKey(); - - public static final PropertyModel .WritableObjectPropertyKey<TabSelectionEditorToolbar.RelatedTabCountProvider> RELATED_TAB_COUNT_PROVIDER = new PropertyModel.WritableObjectPropertyKey<>(); public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {IS_VISIBLE, - TOOLBAR_ACTION_BUTTON_LISTENER, TOOLBAR_ACTION_BUTTON_TEXT, - TOOLBAR_ACTION_BUTTON_ENABLING_THRESHOLD, TOOLBAR_NAVIGATION_LISTENER, PRIMARY_COLOR, - TOOLBAR_BACKGROUND_COLOR, TOOLBAR_GROUP_TEXT_TINT, TOOLBAR_GROUP_BUTTON_TINT, - TOOLBAR_ACTION_BUTTON_DESCRIPTION_RESOURCE_ID, TOOLBAR_ACTION_BUTTON_VISIBILITY, - RELATED_TAB_COUNT_PROVIDER}; + TOOLBAR_NAVIGATION_LISTENER, PRIMARY_COLOR, TOOLBAR_BACKGROUND_COLOR, TOOLBAR_TEXT_TINT, + TOOLBAR_BUTTON_TINT, RELATED_TAB_COUNT_PROVIDER}; }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java index 04d22724..1a51ce3 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java
@@ -9,11 +9,9 @@ import android.util.AttributeSet; import android.view.Gravity; import android.view.ViewGroup; -import android.widget.Button; import android.widget.LinearLayout; import androidx.annotation.ColorInt; -import androidx.annotation.PluralsRes; import androidx.core.widget.ImageViewCompat; import org.chromium.chrome.tab_ui.R; @@ -32,13 +30,10 @@ class TabSelectionEditorToolbar extends SelectableListToolbar<Integer> { private static final List<Integer> sEmptyIntegerList = Collections.emptyList(); private Context mContext; - private Button mActionButton; private ChromeImageButton mMenuButton; private TabSelectionEditorActionViewLayout mActionViewLayout; - private Integer mActionButtonDescriptionResourceId; @ColorInt private int mBackgroundColor; - private int mActionButtonEnablingThreshold = 2; private RelatedTabCountProvider mRelatedTabCountProvider; public interface RelatedTabCountProvider { @@ -61,13 +56,10 @@ showNavigationButton(); mActionViewLayout = (TabSelectionEditorActionViewLayout) findViewById(R.id.action_view_layout); - mActionButton = (Button) findViewById(R.id.action_button); mMenuButton = (ChromeImageButton) findViewById(R.id.list_menu_button); - mNumberRollView.setStringForZero(R.string.tab_selection_editor_toolbar_select_tabs); - if (TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mContext)) { - mNumberRollView.setString(R.plurals.tab_selection_editor_tabs_count); - } + mNumberRollView.setStringForZero(R.string.tab_selection_editor_toolbar_select_tabs); + mNumberRollView.setString(R.plurals.tab_selection_editor_tabs_count); // Move the number roll view into a LinearLayout to manage spacing. LinearLayout.LayoutParams params = @@ -93,16 +85,6 @@ public void onSelectionStateChange(List<Integer> selectedItems) { super.onSelectionStateChange(selectedItems); int selectedItemsSize = selectedItems.size(); - boolean enabled = selectedItemsSize >= mActionButtonEnablingThreshold; - mActionButton.setEnabled(enabled); - - String contentDescription = null; - if (enabled && mActionButtonDescriptionResourceId != null) { - contentDescription = getContext().getResources().getQuantityString( - mActionButtonDescriptionResourceId, selectedItemsSize, selectedItemsSize); - } - - mActionButton.setContentDescription(contentDescription); if (mRelatedTabCountProvider == null) return; @@ -136,20 +118,10 @@ } /** - * Sets a {@link android.view.View.OnClickListener} to respond to {@code mActionButton} clicking - * event. - * @param listener The listener to set. - */ - public void setActionButtonOnClickListener(OnClickListener listener) { - mActionButton.setOnClickListener(listener); - } - - /** * Update the tint for buttons, the navigation button and the action button, in the toolbar. * @param tint New {@link ColorStateList} to use. */ public void setButtonTint(ColorStateList tint) { - mActionButton.setTextColor(tint); TintedDrawable navigation = (TintedDrawable) getNavigationIcon(); navigation.setTint(tint); ImageViewCompat.setImageTintList(mMenuButton, tint); @@ -172,43 +144,6 @@ } /** - * Set action button text. - * @param text The text to display. - */ - public void setActionButtonText(String text) { - mActionButton.setText(text); - } - - /** - * Set the action button enabling threshold. - * @param threshold New threshold. - */ - public void setActionButtonEnablingThreshold(int threshold) { - mActionButtonEnablingThreshold = threshold; - } - - /** - * Set ContentDescription template for action button. - * @param template The template to use. - */ - public void setActionButtonDescriptionResourceId(@PluralsRes int template) { - String expectedResourceTypeName = "plurals"; - assert expectedResourceTypeName.equals( - getContext().getResources().getResourceTypeName(template)) - : "Quantity strings (plurals) with one integer format argument is needed"; - - mActionButtonDescriptionResourceId = template; - } - - /** - * Set visibility of the action button. - * @param visibility The visibility state. - */ - public void setActionButtonVisibility(int visibility) { - mActionButton.setVisibility(visibility); - } - - /** * Set provider for related tab count. * @param relatedTabCountProvider The provider to call to get the related tab count. */
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageService.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageService.java index 3c55a6f..bf5806e 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageService.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageService.java
@@ -14,6 +14,7 @@ import androidx.annotation.VisibleForTesting; import org.chromium.base.Callback; +import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModelFilter; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -21,9 +22,9 @@ import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestion; import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestionFeedback; import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestionsObserver; -import org.chromium.chrome.tab_ui.R; import java.util.ArrayList; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -32,8 +33,6 @@ * One of the concrete {@link MessageService} that only serve {@link MessageType#TAB_SUGGESTION}. */ public class TabSuggestionMessageService extends MessageService implements TabSuggestionsObserver { - static final int CLOSE_SUGGESTION_ACTION_ENABLING_THRESHOLD = 1; - static final int GROUP_SUGGESTION_ACTION_ENABLING_THRESHOLD = 2; private static boolean sSuggestionAvailableForTesting; /** @@ -93,96 +92,67 @@ private final Context mContext; private final TabModelSelector mTabModelSelector; - private TabSelectionEditorCoordinator - .TabSelectionEditorController mTabSelectionEditorController; + private final Supplier<TabSelectionEditorCoordinator.TabSelectionEditorController> + mTabSelectionEditorControllerSupplier; public TabSuggestionMessageService(Context context, TabModelSelector tabModelSelector, - TabSelectionEditorCoordinator - .TabSelectionEditorController tabSelectionEditorController) { + Supplier<TabSelectionEditorCoordinator.TabSelectionEditorController> + tabSelectionEditorControllerSupplier) { super(MessageType.TAB_SUGGESTION); mContext = context; mTabModelSelector = tabModelSelector; - mTabSelectionEditorController = tabSelectionEditorController; + mTabSelectionEditorControllerSupplier = tabSelectionEditorControllerSupplier; } @VisibleForTesting void review(@NonNull TabSuggestion tabSuggestion, @NonNull Callback<TabSuggestionFeedback> feedbackCallback) { - mTabSelectionEditorController.configureToolbar(getActionString(tabSuggestion), - getActionButtonContentDescriptionTemplate(tabSuggestion), - getActionProvider(tabSuggestion, feedbackCallback), - getEnablingThreshold(tabSuggestion), + TabSelectionEditorCoordinator.TabSelectionEditorController tabSelectionEditorController = + mTabSelectionEditorControllerSupplier.get(); + assert tabSelectionEditorController != null; + + tabSelectionEditorController.configureToolbarWithMenuItems( + Collections.singletonList(getAction(tabSuggestion, feedbackCallback)), getNavigationProvider(tabSuggestion, feedbackCallback)); - mTabSelectionEditorController.show(getTabListFromSuggestion(tabSuggestion), + tabSelectionEditorController.show(getTabListFromSuggestion(tabSuggestion), tabSuggestion.getTabsInfo().size(), /*recyclerViewPosition=*/null); } - private String getActionString(TabSuggestion tabSuggestion) { - switch (tabSuggestion.getAction()) { - case TabSuggestion.TabSuggestionAction.CLOSE: - return mContext.getString(R.string.tab_suggestion_close_tab_action_button); - case TabSuggestion.TabSuggestionAction.GROUP: - return mContext.getString(R.string.tab_selection_editor_group); - default: - assert false; - } - return null; - } - - private int getActionButtonContentDescriptionTemplate(TabSuggestion tabSuggestion) { - switch (tabSuggestion.getAction()) { - case TabSuggestion.TabSuggestionAction.CLOSE: - return R.plurals.accessibility_tab_suggestion_close_tab_action_button; - case TabSuggestion.TabSuggestionAction.GROUP: - return R.plurals.accessibility_tab_selection_editor_group_button; - default: - assert false; - } - return 0; - } - - private int getEnablingThreshold(TabSuggestion tabSuggestion) { - switch (tabSuggestion.getAction()) { - case TabSuggestion.TabSuggestionAction.CLOSE: - return CLOSE_SUGGESTION_ACTION_ENABLING_THRESHOLD; - case TabSuggestion.TabSuggestionAction.GROUP: - return GROUP_SUGGESTION_ACTION_ENABLING_THRESHOLD; - default: - assert false; - } - return -1; - } - @VisibleForTesting - TabSelectionEditorActionProvider getActionProvider( + TabSelectionEditorAction getAction( TabSuggestion tabSuggestion, Callback<TabSuggestionFeedback> feedbackCallback) { - int action; + TabSelectionEditorAction action; switch (tabSuggestion.getAction()) { case TabSuggestion.TabSuggestionAction.CLOSE: - action = TabSelectionEditorActionProvider.TabSelectionEditorAction.CLOSE; + action = TabSelectionEditorCloseAction.createAction(mContext, + TabSelectionEditorAction.ShowMode.IF_ROOM, + TabSelectionEditorAction.ButtonType.TEXT, + TabSelectionEditorAction.IconPosition.END); break; case TabSuggestion.TabSuggestionAction.GROUP: - action = TabSelectionEditorActionProvider.TabSelectionEditorAction.GROUP; + action = TabSelectionEditorGroupAction.createAction(mContext, + TabSelectionEditorAction.ShowMode.IF_ROOM, + TabSelectionEditorAction.ButtonType.TEXT, + TabSelectionEditorAction.IconPosition.END); break; default: assert false; return null; } - return new TabSelectionEditorActionProvider(mTabSelectionEditorController, action) { + action.addActionObserver(new TabSelectionEditorAction.ActionObserver() { @Override - void processSelectedTabs(List<Tab> selectedTabs, TabModelSelector tabModelSelector) { - int totalTabCountBeforeProcess = tabModelSelector.getCurrentModel().getCount(); + public void preProcessSelectedTabs(List<Tab> selectedTabs) { + int totalTabCountBeforeProcess = mTabModelSelector.getCurrentModel().getCount(); List<Integer> selectedTabIds = new ArrayList<>(); for (int i = 0; i < selectedTabs.size(); i++) { selectedTabIds.add(selectedTabs.get(i).getId()); } accept(selectedTabIds, totalTabCountBeforeProcess, tabSuggestion, feedbackCallback); - - super.processSelectedTabs(selectedTabs, tabModelSelector); } - }; + }); + return action; } @VisibleForTesting @@ -190,7 +160,7 @@ TabSuggestion tabSuggestion, @NonNull Callback<TabSuggestionFeedback> feedbackCallback) { return new TabSelectionEditorCoordinator.TabSelectionEditorNavigationProvider( - mContext, mTabSelectionEditorController) { + mContext, mTabSelectionEditorControllerSupplier.get()) { @Override public void goBack() { super.goBack();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java index f8810317..577ff01 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.ButtonType; import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.IconPosition; import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.ShowMode; -import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorCoordinator.TabSelectionEditorController; import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorCoordinator.TabSelectionEditorNavigationProvider; import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabSelectionEditorOpenMetricGroups; import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestionsOrchestrator; @@ -91,25 +90,6 @@ void showIph(); } - private class TabGroupManualSelectionMode { - public final String actionString; - public final int actionButtonDescriptionResourceId; - public final int enablingThreshold; - public final TabSelectionEditorActionProvider actionProvider; - public final TabSelectionEditorCoordinator - .TabSelectionEditorNavigationProvider navigationProvider; - - TabGroupManualSelectionMode(String actionString, int actionButtonDescriptionResourceId, - int enablingThreshold, TabSelectionEditorActionProvider actionProvider, - TabSelectionEditorNavigationProvider navigationProvider) { - this.actionString = actionString; - this.actionButtonDescriptionResourceId = actionButtonDescriptionResourceId; - this.enablingThreshold = enablingThreshold; - this.actionProvider = actionProvider; - this.navigationProvider = navigationProvider; - } - } - // TODO(crbug.com/982018): Rename 'COMPONENT_NAME' so as to add different metrics for carousel // tab switcher. static final String COMPONENT_NAME = "GridTabSwitcher"; @@ -135,8 +115,6 @@ @Nullable private TabSelectionEditorCoordinator mTabSelectionEditorCoordinator; @Nullable - private TabGroupManualSelectionMode mTabGroupManualSelectionMode; - @Nullable private List<TabSelectionEditorAction> mTabSelectionEditorActions; private TabSuggestionsOrchestrator mTabSuggestionsOrchestrator; private TabAttributeCache mTabAttributeCache; @@ -272,7 +250,8 @@ mTabListCoordinator = new TabListCoordinator(mode, activity, tabModelSelector, mMultiThumbnailCardProvider, titleProvider, true, mMediator, null, TabProperties.UiType.CLOSABLE, null, this, container, true, COMPONENT_NAME, - mRootView, null, this); + mRootView, null); + mTabListCoordinator.setOnLongPressTabItemEventListener(this); mContainerViewChangeProcessor = PropertyModelChangeProcessor.create(containerViewModel, mTabListCoordinator.getContainerView(), TabListContainerViewBinder::bind); @@ -362,28 +341,8 @@ new MenuOrKeyboardActionController.MenuOrKeyboardActionHandler() { @Override public boolean handleMenuOrKeyboardAction(int id, boolean fromMenu) { - if (id == R.id.menu_group_tabs - && mTabSelectionEditorCoordinator != null) { - assert mTabGroupManualSelectionMode != null; - - mTabSelectionEditorCoordinator.getController().configureToolbar( - mTabGroupManualSelectionMode.actionString, - mTabGroupManualSelectionMode - .actionButtonDescriptionResourceId, - mTabGroupManualSelectionMode.actionProvider, - mTabGroupManualSelectionMode.enablingThreshold, - mTabGroupManualSelectionMode.navigationProvider); - - mTabSelectionEditorCoordinator.getController().show( - mTabModelSelector.getTabModelFilterProvider() - .getCurrentTabModelFilter() - .getTabsWithNoOtherRelatedTabs(), - /*preSelectedTabCount=*/0, - /*recyclerViewPosition=*/null); - RecordUserAction.record("MobileMenuGroupTabs"); - return true; - } else if (id == R.id.menu_select_tabs) { - showTabSelectionEditorV2(); + if (id == R.id.menu_select_tabs) { + showTabSelectionEditor(); RecordUserAction.record("MobileMenuSelectTabs"); return true; } @@ -445,33 +404,15 @@ try (TraceEvent e = TraceEvent.scoped("TabSwitcherCoordinator.initWithNative")) { mTabListCoordinator.initWithNative(mDynamicResourceLoaderSupplier.get()); - // TODO(ckitagawa): TabSelectionEditorV2 lazily loads the TabSelectionEditor which - // prevents the CloseTabSuggestions feature from running. Unblock the close suggestions - // feature if the V2 editor is enabled. - if (!TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mActivity)) { - // Selector editor required for tab groups if not using the V2 editor and close tab - // suggestions. - if (TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mActivity) - || ChromeFeatureList.sCloseTabSuggestions.isEnabled()) { - setUpTabSelectionEditorCoordinator(mActivity, mTabContentManager); - } - if (TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mActivity)) { - setUpTabGroupManualSelectionMode(mActivity); - } - } - - final TabSelectionEditorController controller = mTabSelectionEditorCoordinator != null - ? mTabSelectionEditorCoordinator.getController() - : null; - if (mMode == TabListCoordinator.TabListMode.GRID) { - if (ChromeFeatureList.sCloseTabSuggestions.isEnabled() - && !TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mActivity)) { + if (ChromeFeatureList.sCloseTabSuggestions.isEnabled()) { mTabSuggestionsOrchestrator = new TabSuggestionsOrchestrator( mActivity, mTabModelSelector, mLifecycleDispatcher); TabSuggestionMessageService tabSuggestionMessageService = - new TabSuggestionMessageService( - mActivity, mTabModelSelector, controller); + new TabSuggestionMessageService(mActivity, mTabModelSelector, () -> { + initTabSelectionEditor(); + return mTabSelectionEditorCoordinator.getController(); + }); mTabSuggestionsOrchestrator.addObserver(tabSuggestionMessageService); mMessageCardProviderCoordinator.subscribeMessageService( tabSuggestionMessageService); @@ -503,7 +444,7 @@ } mMultiThumbnailCardProvider.initWithNative(); - mMediator.initWithNative(controller, mSnackbarManager); + mMediator.initWithNative(mSnackbarManager); // TODO(crbug.com/1222762): Only call setUpPriceTracking in GRID TabSwitcher. setUpPriceTracking(mActivity, mModalDialogManager); @@ -511,34 +452,10 @@ } } - private void setUpTabGroupManualSelectionMode(Context context) { - try (TraceEvent e = TraceEvent.scoped( - "TabSwitcherCoordintor.setUpTabGroupManualSelectionMode")) { - mTabGroupManualSelectionMode = new TabGroupManualSelectionMode( - context.getString(R.string.tab_selection_editor_group), - R.plurals.accessibility_tab_selection_editor_group_button, 2, - new TabSelectionEditorActionProvider( - mTabSelectionEditorCoordinator.getController(), - TabSelectionEditorActionProvider.TabSelectionEditorAction.GROUP), - new TabSelectionEditorNavigationProvider( - mActivity, mTabSelectionEditorCoordinator.getController())); - } - } - - private void setUpTabSelectionEditorCoordinator( - Activity activity, TabContentManager tabContentManager) { - // For tab switcher in carousel mode, the selection editor should still follow grid - // style. - int selectionEditorMode = mMode == TabListMode.CAROUSEL ? TabListMode.GRID : mMode; - mTabSelectionEditorCoordinator = new TabSelectionEditorCoordinator(activity, - mCoordinatorView, mTabModelSelector, tabContentManager, null, selectionEditorMode, - mRootView, /*displayGroups=*/false, mTabSelectionEditorSnackbarManager); - } - - private void showTabSelectionEditorV2() { - assert TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mActivity); - + private void initTabSelectionEditor() { if (mTabSelectionEditorCoordinator == null) { + // For tab switcher in carousel mode, the selection editor should still follow grid + // style. int selectionEditorMode = mMode == TabListMode.CAROUSEL ? TabListMode.GRID : mMode; mTabSelectionEditorCoordinator = new TabSelectionEditorCoordinator(mActivity, mCoordinatorView, mTabModelSelector, mTabContentManager, @@ -547,6 +464,11 @@ mMediator.setTabSelectionEditorController( mTabSelectionEditorCoordinator.getController()); } + } + + private void showTabSelectionEditor() { + // Lazy initialize if required. + initTabSelectionEditor(); if (mTabSelectionEditorActions == null) { mTabSelectionEditorActions = new ArrayList<>(); @@ -556,15 +478,10 @@ mActivity, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); mTabSelectionEditorActions.add(TabSelectionEditorGroupAction.createAction( mActivity, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); - if (TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_BOOKMARKS.getValue()) { - mTabSelectionEditorActions.add( - TabSelectionEditorBookmarkAction.createAction(mActivity, ShowMode.MENU_ONLY, - ButtonType.ICON_AND_TEXT, IconPosition.START)); - } - if (TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_SHARE.getValue()) { - mTabSelectionEditorActions.add(TabSelectionEditorShareAction.createAction(mActivity, - ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); - } + mTabSelectionEditorActions.add(TabSelectionEditorBookmarkAction.createAction( + mActivity, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); + mTabSelectionEditorActions.add(TabSelectionEditorShareAction.createAction( + mActivity, ShowMode.MENU_ONLY, ButtonType.ICON_AND_TEXT, IconPosition.START)); } mTabSelectionEditorCoordinator.getController().configureToolbarWithMenuItems( @@ -823,7 +740,7 @@ // OnLongPressTabItemEventListener implementation @Override public void onLongPressEvent(int tabId) { - showTabSelectionEditorV2(); + showTabSelectionEditor(); RecordUserAction.record("TabMultiSelectV2.OpenLongPressInGrid"); }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java index 0ee71c4..48375c4c 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
@@ -542,13 +542,8 @@ /** * Called after native initialization is completed. - * @param tabSelectionEditorController The controller that can control the visibility of the - * TabSelectionEditor. */ - public void initWithNative(@Nullable TabSelectionEditorCoordinator - .TabSelectionEditorController tabSelectionEditorController, - @Nullable SnackbarManager snackbarManager) { - setTabSelectionEditorController(tabSelectionEditorController); + public void initWithNative(@Nullable SnackbarManager snackbarManager) { mSnackbarManager = snackbarManager; }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java index 3370565..77591f5 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java
@@ -65,28 +65,21 @@ new BooleanCachedFieldTrialParameter(ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, SHOW_OPEN_IN_TAB_GROUP_MENU_ITEM_FIRST_PARAM, true); - // Field trial parameter for controlling share tabs in TabSelectionEditorV2. - private static final String TAB_SELECTION_EDITOR_V2_SHARE_PARAM = "enable_share"; - public static final BooleanCachedFieldTrialParameter ENABLE_TAB_SELECTION_EDITOR_V2_SHARE = - new BooleanCachedFieldTrialParameter(ChromeFeatureList.TAB_SELECTION_EDITOR_V2, - TAB_SELECTION_EDITOR_V2_SHARE_PARAM, true); + private static boolean sTabSelectionEditorLongPressEntryEnabled; - // Field trial parameter for controlling longpress entry into TabSelectionEditorV2 from - // TabGridDialog and TabSwitcher. - private static final String TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY_PARAM = - "enable_longpress_entrypoint"; - public static final BooleanCachedFieldTrialParameter - ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY = - new BooleanCachedFieldTrialParameter(ChromeFeatureList.TAB_SELECTION_EDITOR_V2, - TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY_PARAM, false); + /** + * Set whether the longpress entry for TabSelectionEditor is enabled. Currently only in tests. + */ + public static void setTabSelectionEditorLongPressEntryEnabledForTesting(boolean enabled) { + sTabSelectionEditorLongPressEntryEnabled = enabled; + } - // Field trial parameter for controlling bookmark tabs in TabSelectionEditorV2. - private static final String TAB_SELECTION_EDITOR_V2_BOOKMARKS_PARAM = "enable_bookmarks"; - public static final BooleanCachedFieldTrialParameter ENABLE_TAB_SELECTION_EDITOR_V2_BOOKMARKS = - new BooleanCachedFieldTrialParameter(ChromeFeatureList.TAB_SELECTION_EDITOR_V2, - TAB_SELECTION_EDITOR_V2_BOOKMARKS_PARAM, true); - - private static Boolean sTabManagementModuleSupportedForTesting; + /** + * Whether the longpress entry for TabSelectionEditor is enabled. Currently only in tests. + */ + public static boolean isTabSelectionEditorLongPressEntryEnabled() { + return sTabSelectionEditorLongPressEntryEnabled; + } /** * @return Whether the Grid Tab Switcher UI is enabled and available for use. @@ -155,15 +148,6 @@ } /** - * @return Whether the tab selection editor v2 is enabled and available for use. - * @param context The activity context. - */ - public static boolean isTabSelectionEditorV2Enabled(Context context) { - return isTabGroupsAndroidEnabled(context) - && ChromeFeatureList.sTabSelectionEditorV2.isEnabled(); - } - - /** * @return Whether the thumbnail_aspect_ratio field trail is set. */ public static boolean isTabThumbnailAspectRatioNotOne() {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiMetricsHelper.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiMetricsHelper.java index 95b59dd7..e1b28ef3 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiMetricsHelper.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiMetricsHelper.java
@@ -136,72 +136,34 @@ public static void recordSelectionEditorExitMetrics( @TabSelectionEditorExitMetricGroups int actionId, Context context) { - if (TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(context)) { - switch (actionId) { - case TabSelectionEditorExitMetricGroups.CLOSED: - RecordUserAction.record("TabMultiSelectV2.Closed"); - break; - case TabSelectionEditorExitMetricGroups.CLOSED_AUTOMATICALLY: - RecordUserAction.record("TabMultiSelectV2.ClosedAutomatically"); - break; - case TabSelectionEditorExitMetricGroups.CLOSED_BY_USER: - RecordUserAction.record("TabMultiSelectV2.ClosedByUser"); - break; - default: - assert false - : "Unexpected TabSelectionEditorExitMetricGroups value of " - + actionId - + " when calling recordSelectionEditorExitMetrics with V2 enabled."; - } - } else { - switch (actionId) { - case TabSelectionEditorExitMetricGroups.CLOSED: - // Since the equivalent metric is not recorded for V1, it will result in a - // no-op. - break; - case TabSelectionEditorExitMetricGroups.CLOSED_AUTOMATICALLY: - // Since the equivalent metric is not recorded for V1, it will result in a - // no-op. - break; - case TabSelectionEditorExitMetricGroups.CLOSED_BY_USER: - RecordUserAction.record("TabMultiSelect.Cancelled"); - break; - default: - assert false - : "Unexpected TabSelectionEditorExitMetricGroups value of " - + actionId - + " when calling recordSelectionEditorExitMetrics with V2 disabled."; - } + switch (actionId) { + case TabSelectionEditorExitMetricGroups.CLOSED: + RecordUserAction.record("TabMultiSelectV2.Closed"); + break; + case TabSelectionEditorExitMetricGroups.CLOSED_AUTOMATICALLY: + RecordUserAction.record("TabMultiSelectV2.ClosedAutomatically"); + break; + case TabSelectionEditorExitMetricGroups.CLOSED_BY_USER: + RecordUserAction.record("TabMultiSelectV2.ClosedByUser"); + break; + default: + assert false : "Unexpected TabSelectionEditorExitMetricGroups value of " + actionId + + " when calling recordSelectionEditorExitMetrics with V2 enabled."; } } public static void recordSelectionEditorOpenMetrics( @TabSelectionEditorOpenMetricGroups int actionId, Context context) { - if (TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(context)) { - switch (actionId) { - case TabSelectionEditorOpenMetricGroups.OPEN_FROM_GRID: - RecordUserAction.record("TabMultiSelectV2.OpenFromGrid"); - break; - case TabSelectionEditorOpenMetricGroups.OPEN_FROM_DIALOG: - RecordUserAction.record("TabMultiSelectV2.OpenFromDialog"); - break; - default: - assert false - : "Unexpected TabSelectionEditorOpenMetricGroups value of " - + actionId - + " when calling recordSelectionEditorOpenMetrics with V2 enabled."; - } - } else { - switch (actionId) { - case TabSelectionEditorOpenMetricGroups.OPEN_FROM_DIALOG: - RecordUserAction.record("TabMultiSelect.OpenFromDialog"); - break; - default: - assert false - : "Unexpected TabSelectionEditorOpenMetricGroups value of " - + actionId - + " when calling recordSelectionEditorOpenMetrics with V2 disabled."; - } + switch (actionId) { + case TabSelectionEditorOpenMetricGroups.OPEN_FROM_GRID: + RecordUserAction.record("TabMultiSelectV2.OpenFromGrid"); + break; + case TabSelectionEditorOpenMetricGroups.OPEN_FROM_DIALOG: + RecordUserAction.record("TabMultiSelectV2.OpenFromDialog"); + break; + default: + assert false : "Unexpected TabSelectionEditorOpenMetricGroups value of " + actionId + + " when calling recordSelectionEditorOpenMetrics with V2 enabled."; } } -} \ No newline at end of file +}
diff --git a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd index ad1e716..3a20163 100644 --- a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd +++ b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
@@ -226,18 +226,9 @@ </message> <!-- Tab Selection Editor strings --> - <message name="IDS_TAB_SELECTION_EDITOR_GROUP" desc="This text button is shown in the Tab Selection Editor Toolbar. 'Group' is a verb. When the user taps the button, Chrome creates a new group that contains the selected tabs."> - Group - </message> <message name="IDS_TAB_SELECTION_EDITOR_TOOLBAR_SELECT_TABS" desc="Label shown on Tab Selection Editor Toolbar asking user to select tabs from the list."> Select tabs </message> - <message name="IDS_ACCESSIBILITY_TAB_SELECTION_EDITOR_GROUP_BUTTON" desc="The accessibility text to read when the 'Group' text button in the selection mode toolbar is focused. When this button is tapped, all the selected tabs will be grouped together."> - {TABS_COUNT, plural, - =1 {Group <ph name="TABS_COUNT_ONE">%1$d<ex>1</ex></ph> selected tab} - other {Group <ph name="TABS_COUNT_MANY">%1$d<ex>8</ex></ph> selected tabs} - } - </message> <message name="IDS_ACCESSIBILITY_TAB_SELECTION_EDITOR_BACK_BUTTON" desc="Accessibility string for the back button in the Tab Selection Editor Toolbar. Tap this button to exit out of the multi-select mode"> Hide multi-select mode </message> @@ -334,12 +325,6 @@ <message name="IDS_TAB_GRID_DIALOG_REMOVE_FROM_GROUP" desc="This text shows on the ungroup bar in TabGridDialog. When user drags a tab and drops it on the ungroup bar, this tab will be moved out of the group."> Remove from group </message> - <message name="IDS_TAB_GRID_DIALOG_TOOLBAR_REMOVE_FROM_GROUP" desc="This text shows in the TabGridDialog toolbar menu as one menu item. When user selects this item, user will enter a selection mode where they can select tabs that they want to move out of tab group. Two things worth mentioning here: 1. The remove here does not mean delete, it means move tab out of tab group and becomes a single tab. 2. If the translation goes beyond 30 characters, replace it with "Remove tabs" to keep this text under 30 characters."> - Remove tabs from group - </message> - <message name="IDS_TAB_GRID_DIALOG_SELECTION_MODE_REMOVE" desc="This texts shows on the action button of tab group selection mode. When user clicks this action button, all the tabs that are currently selected will be moved out of tab group. One thing worth mentioning here is that the remove here does not mean delete, it means move tab out of tab group and becomes a single tab."> - Remove - </message> <message name="IDS_TAB_GRID_DIALOG_TOOLBAR_EDIT_GROUP_NAME" desc="This text shows in the TabGridDialog toolbar menu as one menu item. When user selects this item, the group name field will be focused and the keyboard will show for users to edit the group name."> Edit group name </message> @@ -351,12 +336,6 @@ <message name="IDS_ACCESSIBILITY_EXPAND_TAB_GROUP_WITH_GROUP_NAME" desc="The accessibility text to read when a card representing a tab group is clicked in grid tab switcher. TITLE_OF_GROUP is the title of the group. NUMBER_OF_TABS is the number of tabs within this group. Note that there are always at least two tabs in a group so plural form should always be used."> Expand <ph name="TITLE_OF_GROUP">%1$s<ex>Shopping cart</ex></ph> tab group with <ph name="NUMBER_OF_TABS">%2$s<ex>2</ex></ph> tabs. </message> - <message name="IDS_ACCESSIBILITY_TAB_SELECTION_DIALOG_REMOVE_BUTTON" desc="The accessibility text to read when the 'Remove' text button in the selection mode toolbar is focused. When this button is tapped, all the selected tabs will be removed out of the existed group and become single tab(s)."> - {TABS_COUNT, plural, - =1 {Remove <ph name="TABS_COUNT_ONE">%1$d<ex>1</ex></ph> selected tab from group.} - other {Remove <ph name="TABS_COUNT_MANY">%1$d<ex>8</ex></ph> selected tabs from group.} - } - </message> <message name="IDS_ACCESSIBILITY_DIALOG_BACK_BUTTON" desc="The accessibility text to read when the back button in the dialog is focused. When this button is tapped, the dialog will be hidden. NUMBER_OF_TABS is the number of tabs within this group. Note that after collapsing with one tab, that group becomes a tab."> {TABS_COUNT, plural, =1 {Collapse <ph name="TABS_COUNT_ONE">%1$d<ex>1</ex></ph> tab.} @@ -399,9 +378,6 @@ <message name="IDS_TAB_SUGGESTION_REVIEW_BUTTON" desc="This text button shows next to the message 'X of your tabs haven't been used lately. Close them?', or 'X tabs seem related. Group them?'. When a user clicks this 'Review' text button, they will enter a selection mode where they can see the suggested tabs to close or to group, see the rest of their open tabs, and choose what tabs to close or to group."> Review </message> - <message name="IDS_TAB_SUGGESTION_CLOSE_TAB_ACTION_BUTTON" desc="When a user chooses to review suggested tabs to close, they enter a section mode to review and close the tabs. In that selection mode, this text button in the toolbar lets the user finalize their choices. When this button is tapped, all the selected tabs will be closed."> - Close - </message> <message name="IDS_TAB_SUGGESTION_CLOSE_STALE_MESSAGE" desc="On Chrome mobile, this text shows as a suggestion under a user's tabs. The suggestion prompts the user to automatically close some tabs that haven't been used lately. The placeholder denotes the number of suggested tabs to close, which will always be 2 or more (so 'tabs' should be plural)."> <ph name="NUMBER_OF_TABS">%1$s<ex>2</ex></ph> of your tabs haven't been used lately. Close them? </message> @@ -422,12 +398,6 @@ <message name="IDS_ACCESSIBILITY_TAB_SUGGESTION_DISMISS_BUTTON" desc="The accessibility text to read when the 'X' button on the TAB_SUGGESTION card is focused"> Dismiss the suggestions. </message> - <message name="IDS_ACCESSIBILITY_TAB_SUGGESTION_CLOSE_TAB_ACTION_BUTTON" desc="The accessibility text to read when the 'Close' text button in the selection mode toolbar is focused. When this button is tapped, all the selected tabs will be closed."> - {TABS_COUNT, plural, - =1 {Close <ph name="TABS_COUNT_ONE">%1$d<ex>1</ex></ph> selected tab} - other {Close <ph name="TABS_COUNT_MANY">%1$d<ex>8</ex></ph> selected tabs} - } - </message> <!-- Accessibility strings for Tab Reordering --> <message name="IDS_ACCESSIBILITY_TAB_MOVEMENT_LEFT" desc="This text button shows in the accessibility mode action menu. When user selects a tab, triggers action menu and clicks on this button, the current tab will switch position with the tab next to it on the left side in the grid to achieve reordering.">
diff --git a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_SELECTION_DIALOG_REMOVE_BUTTON.png.sha1 b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_SELECTION_DIALOG_REMOVE_BUTTON.png.sha1 deleted file mode 100644 index b994c7218..0000000 --- a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_SELECTION_DIALOG_REMOVE_BUTTON.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -1203fc871697c2ad96ebdf2fcdc623dc096bb754 \ No newline at end of file
diff --git a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_SUGGESTION_CLOSE_TAB_ACTION_BUTTON.png.sha1 b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_SUGGESTION_CLOSE_TAB_ACTION_BUTTON.png.sha1 deleted file mode 100644 index b4ddc05..0000000 --- a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_ACCESSIBILITY_TAB_SUGGESTION_CLOSE_TAB_ACTION_BUTTON.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -cce687e824ea337d7a1bbf8471c879d93a7709a1
diff --git a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_TAB_SUGGESTION_CLOSE_TAB_ACTION_BUTTON.png.sha1 b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_TAB_SUGGESTION_CLOSE_TAB_ACTION_BUTTON.png.sha1 deleted file mode 100644 index 28a164f..0000000 --- a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_TAB_SUGGESTION_CLOSE_TAB_ACTION_BUTTON.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -cce687e824ea337d7a1bbf8471c879d93a7709a1 \ No newline at end of file
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java index c0975990..c72269e 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java
@@ -111,7 +111,6 @@ import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.night_mode.ChromeNightModeTestUtils; import org.chromium.chrome.browser.tasks.pseudotab.TabAttributeCache; -import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate; import org.chromium.chrome.test.ChromeTabbedActivityTestRule; @@ -292,11 +291,8 @@ @Test @MediumTest - @Features.DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID) public void testDisableTabGroupsContinuation() { - // TabSelectionEditorV2 enables the menu, but not edit text for this test - // so needs to be disabled. - final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 2); enterTabSwitcher(cta); @@ -315,12 +311,8 @@ @Test @MediumTest - @Features.DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @Features.EnableFeatures(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID) public void testEnableTabGroupsContinuation() { - // TabSelectionEditorV2 enables the menu. Ensure Tab Groups Continuation also enables the - // menu independently. - final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 2); enterTabSwitcher(cta); @@ -460,7 +452,6 @@ @Test @MediumTest // clang-format off - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testDialogToolbarSelectionEditorV2() throws ExecutionException { // clang-format on final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); @@ -504,11 +495,9 @@ @Test @MediumTest - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2 + "<Study"}) - @CommandLineFlags.Add({"force-fieldtrials=Study/Group", - "force-fieldtrial-params=Study.Group:enable_longpress_entrypoint/true"}) - public void - testDialogSelectionEditorV2_LongPressTabAndVerifyNoSelectionOccurs() throws ExecutionException { + public void testDialogSelectionEditorV2_LongPressTabAndVerifyNoSelectionOccurs() + throws ExecutionException { + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(true); final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 2); enterTabSwitcher(cta); @@ -527,15 +516,15 @@ // Verify no selection action occurred to switch the selected tab in the tab model Criteria.checkThat( mActivityTestRule.getActivity().getCurrentTabModel().index(), Matchers.is(1)); + + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(false); } @Test @MediumTest - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2 + "<Study"}) - @CommandLineFlags.Add({"force-fieldtrials=Study/Group", - "force-fieldtrial-params=Study.Group:enable_longpress_entrypoint/true"}) - public void - testDialogSelectionEditorV2_PostLongPressClickNoSelectionEditor() throws ExecutionException { + public void testDialogSelectionEditorV2_PostLongPressClickNoSelectionEditor() + throws ExecutionException { + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(true); final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 2); enterTabSwitcher(cta); @@ -565,15 +554,12 @@ .getBottomControlOffset() == 0); waitForView(allOf(withId(R.id.toolbar_left_button), isCompletelyDisplayed())); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(false); } @Test @MediumTest - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2 + "<Study"}) - @CommandLineFlags.Add({"force-fieldtrials=Study/Group", - "force-fieldtrial-params=Study.Group:enable_bookmarks/true"}) - public void - testDialogSelectionEditorV2_BookmarkSingleTabView() throws ExecutionException { + public void testDialogSelectionEditorV2_BookmarkSingleTabView() throws ExecutionException { final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); SnackbarManager snackbarManager = cta.getSnackbarManager(); createTabs(cta, false, 2); @@ -610,11 +596,7 @@ @Test @MediumTest - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2 + "<Study"}) - @CommandLineFlags.Add({"force-fieldtrials=Study/Group", - "force-fieldtrial-params=Study.Group:enable_bookmarks/true"}) - public void - testDialogSelectionEditorV2_BookmarkTabsView() throws ExecutionException { + public void testDialogSelectionEditorV2_BookmarkTabsView() throws ExecutionException { final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); SnackbarManager snackbarManager = cta.getSnackbarManager(); createTabs(cta, false, 2); @@ -652,9 +634,6 @@ @Test @MediumTest - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2 + "<Study"}) - @CommandLineFlags. - Add({"force-fieldtrials=Study/Group", "force-fieldtrial-params=Study.Group:enable_share/true"}) public void testDialogSelectionEditorV2_ShareActionView() throws ExecutionException { final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 2); @@ -693,9 +672,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2 + "<Study"}) - @CommandLineFlags. - Add({"force-fieldtrials=Study/Group", "force-fieldtrial-params=Study.Group:enable_share/true"}) public void testDialogSelectionEditorV2_ShareActionTabs() throws ExecutionException { final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); @@ -743,9 +719,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2 + "<Study"}) - @CommandLineFlags. - Add({"force-fieldtrials=Study/Group", "force-fieldtrial-params=Study.Group:enable_share/true"}) public void testDialogSelectionEditorV2_ShareActionAllFilterableTabs() throws ExecutionException { final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); @@ -772,7 +745,6 @@ @Test @MediumTest - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testDialogSelectionEditorV2_UndoClose() throws ExecutionException { final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 4); @@ -804,7 +776,6 @@ @Test @MediumTest - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testDialogSelectionEditorV2_UndoCloseAll() throws ExecutionException { final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 4); @@ -836,65 +807,6 @@ @Test @MediumTest - @Features.DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - @Features.EnableFeatures(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID) - public void testSelectionEditorUngroup() throws ExecutionException { - // TabSelectionEditorV2 replaces this behavior. - - final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); - assertTrue(cta.getTabModelSelector().getTabModelFilterProvider().getCurrentTabModelFilter() - instanceof TabGroupModelFilter); - final TabGroupModelFilter filter = (TabGroupModelFilter) cta.getTabModelSelector() - .getTabModelFilterProvider() - .getCurrentTabModelFilter(); - createTabs(cta, false, 3); - enterTabSwitcher(cta); - verifyTabSwitcherCardCount(cta, 3); - - // Create a tab group. - mergeAllNormalTabsToAGroup(cta); - verifyTabSwitcherCardCount(cta, 1); - assertEquals(1, filter.getCount()); - - // Open dialog and open selection editor. - openDialogFromTabSwitcherAndVerify(cta, 3, null); - openSelectionEditorAndVerify(cta, 3); - - // Select and ungroup the first tab. - mSelectionEditorRobot.actionRobot.clickItemAtAdapterPosition(0); - mSelectionEditorRobot.resultRobot.verifyItemSelectedAtAdapterPosition(0) - .verifyToolbarActionButtonEnabled() - .verifyToolbarSelectionText("1 selected"); - - mSelectionEditorRobot.actionRobot.clickToolbarActionButton(); - mSelectionEditorRobot.resultRobot.verifyTabSelectionEditorIsHidden(); - verifyShowingDialog(cta, 2, null); - clickScrimToExitDialog(cta); - waitForDialogHidingAnimationInTabSwitcher(cta); - verifyTabSwitcherCardCount(cta, 2); - assertEquals(2, filter.getCount()); - - // Open dialog and open selection editor. - openDialogFromTabSwitcherAndVerify(cta, 2, null); - openSelectionEditorAndVerify(cta, 2); - - // Select and ungroup all two tabs in dialog. - mSelectionEditorRobot.actionRobot.clickItemAtAdapterPosition(0).clickItemAtAdapterPosition( - 1); - mSelectionEditorRobot.resultRobot.verifyItemSelectedAtAdapterPosition(0) - .verifyItemSelectedAtAdapterPosition(1) - .verifyToolbarActionButtonEnabled() - .verifyToolbarSelectionText("2 selected"); - - mSelectionEditorRobot.actionRobot.clickToolbarActionButton(); - mSelectionEditorRobot.resultRobot.verifyTabSelectionEditorIsHidden(); - waitForDialogHidingAnimationInTabSwitcher(cta); - verifyTabSwitcherCardCount(cta, 3); - assertEquals(3, filter.getCount()); - } - - @Test - @MediumTest public void testSwipeToDismiss_Dialog() { ChromeTabbedActivity cta = mActivityTestRule.getActivity(); // Create 2 tabs and merge them into one group. @@ -1110,10 +1022,8 @@ // Regression test for https://crbug.com/1378226. @Test @MediumTest - @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void - testTabGroupNaming_afterMergeWithSelectionEditorV2() throws ExecutionException { + @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) + public void testTabGroupNaming_afterMergeWithSelectionEditorV2() throws ExecutionException { final ChromeTabbedActivity cta = mActivityTestRule.getActivity(); createTabs(cta, false, 4); enterTabSwitcher(cta); @@ -1395,7 +1305,6 @@ @Test @MediumTest @DisableIf.Device(type = UiDisableIf.TABLET) - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testStripDialog_TabSelectionEditorV2CloseAll_NoCustomHomepage() throws Exception { ChromeTabbedActivity cta = mActivityTestRule.getActivity(); // Create a tab group with 2 tabs. @@ -1435,7 +1344,6 @@ @Test @MediumTest @DisableIf.Device(type = UiDisableIf.TABLET) - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testStripDialog_TabSelectionEditorV2CloseAll_CustomHomepage() throws Exception { GURL url = new GURL(mActivityTestRule.getEmbeddedTestServerRule().getServer().getURL( "/chrome/test/data/android/google.html")); @@ -1705,9 +1613,8 @@ private void verifyTabGroupsContinuation(ChromeTabbedActivity cta, boolean isEnabled) { assertEquals(isEnabled, TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(cta)); - // Verify whether the menu button exists. - onView(withId(R.id.toolbar_menu_button)) - .check(isEnabled ? matches(isDisplayed()) : doesNotExist()); + // Verify the menu button exists. + onView(withId(R.id.toolbar_menu_button)).check(matches(isDisplayed())); // Try to grab focus of the title text field by clicking on it. onView(allOf(withParent(withId(R.id.main_content)), withId(R.id.title))) @@ -1736,13 +1643,8 @@ Assert.assertTrue(v instanceof ListView); ListView listView = (ListView) v; int menuItemCount = 1; - if (TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(cta)) { - verifyTabGridDialogToolbarMenuItem( - listView, 0, cta.getString(R.string.menu_select_tabs)); - } else { - verifyTabGridDialogToolbarMenuItem(listView, 0, - cta.getString(R.string.tab_grid_dialog_toolbar_remove_from_group)); - } + verifyTabGridDialogToolbarMenuItem( + listView, 0, cta.getString(R.string.menu_select_tabs)); if (TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(cta)) { menuItemCount += 1; verifyTabGridDialogToolbarMenuItem(listView, menuItemCount - 1, @@ -1791,23 +1693,6 @@ }); } - private void openSelectionEditorAndVerify(ChromeTabbedActivity cta, int count) { - // Open tab selection editor by selecting ungroup item in tab grid dialog menu. - onView(withId(R.id.toolbar_menu_button)) - .perform(click()); - onView(withText(cta.getString(R.string.tab_grid_dialog_toolbar_remove_from_group))) - .inRoot(withDecorView(not(cta.getWindow().getDecorView()))) - .perform(click()); - - mSelectionEditorRobot.resultRobot.verifyTabSelectionEditorIsVisible() - .verifyToolbarActionButtonDisabled() - .verifyToolbarActionButtonWithResourceId( - R.string.tab_grid_dialog_selection_mode_remove) - .verifyToolbarSelectionTextWithResourceId( - R.string.tab_selection_editor_toolbar_select_tabs) - .verifyAdapterHasItemCount(count); - } - private void openSelectionEditorV2AndVerify(ChromeTabbedActivity cta, int count) { // Open tab selection editor by selecting the select tabs item in tab grid dialog menu. onView(withId(R.id.toolbar_menu_button)).perform(click());
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorLayoutBinderTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorLayoutBinderTest.java deleted file mode 100644 index 0d125da..0000000 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorLayoutBinderTest.java +++ /dev/null
@@ -1,153 +0,0 @@ -// Copyright 2019 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.tasks.tab_management; - -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertTrue; - -import static org.junit.Assert.assertNull; - -import android.view.ViewGroup; -import android.widget.Button; -import android.widget.LinearLayout; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; -import androidx.test.filters.MediumTest; -import androidx.test.filters.SmallTest; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.chromium.base.test.UiThreadTest; -import org.chromium.chrome.tab_ui.R; -import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; -import org.chromium.content_public.browser.test.util.TestThreadUtils; -import org.chromium.ui.modelutil.PropertyModel; -import org.chromium.ui.modelutil.PropertyModelChangeProcessor; -import org.chromium.ui.test.util.BlankUiTestActivityTestCase; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Tests for {@link TabSelectionEditorLayoutBinder}. - */ -@SuppressWarnings("ArraysAsListWithZeroOrOneArgument") -@RunWith(ChromeJUnit4ClassRunner.class) -public class TabSelectionEditorLayoutBinderTest extends BlankUiTestActivityTestCase { - private TabSelectionEditorLayout mEditorLayoutView; - private PropertyModel mModel; - private PropertyModelChangeProcessor mMCP; - private SelectionDelegate<Integer> mSelectionDelegate; - private ViewGroup mParentView; - - @Override - public void setUpTest() throws Exception { - super.setUpTest(); - - mParentView = new LinearLayout(getActivity()); - - TestThreadUtils.runOnUiThreadBlocking(() -> { - mModel = new PropertyModel(TabSelectionEditorProperties.ALL_KEYS); - mSelectionDelegate = new SelectionDelegate<>(); - getActivity().setContentView(mParentView); - mEditorLayoutView = - (TabSelectionEditorLayout) getActivity().getLayoutInflater().inflate( - R.layout.tab_selection_editor_layout, null); - mEditorLayoutView.initialize(mParentView, null, new RecyclerView.Adapter() { - @SuppressWarnings("ConstantConditions") - @NonNull - @Override - public RecyclerView.ViewHolder onCreateViewHolder( - @NonNull ViewGroup viewGroup, int i) { - return null; - } - - @Override - public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {} - - @Override - public int getItemCount() { - return 0; - } - }, mSelectionDelegate); - - mMCP = PropertyModelChangeProcessor.create( - mModel, mEditorLayoutView, TabSelectionEditorLayoutBinder::bind); - }); - } - - @Override - public void tearDownTest() throws Exception { - TestThreadUtils.runOnUiThreadBlocking(mMCP::destroy); - super.tearDownTest(); - } - - @Test - @SmallTest - @UiThreadTest - public void testBindViews() { - // TODO(1005929): test other properties as well. - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_TEXT, "Test"); - Assert.assertEquals("Test", - ((TextView) mEditorLayoutView.findViewById(R.id.action_button)) - .getText() - .toString()); - } - - @Test - @SmallTest - @UiThreadTest - public void testBindActionButtonClickListener() { - AtomicBoolean actionButtonClicked = new AtomicBoolean(false); - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_LISTENER, - v -> actionButtonClicked.set(true)); - mEditorLayoutView.findViewById(R.id.action_button).performClick(); - assertTrue(actionButtonClicked.get()); - } - - @Test - @MediumTest - @UiThreadTest - public void testActionButtonEnabling() { - Button button = mEditorLayoutView.findViewById(R.id.action_button); - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_ENABLING_THRESHOLD, 1); - assertFalse(button.isEnabled()); - - HashSet<Integer> selectedItem = new HashSet<>(Arrays.asList(1)); - mSelectionDelegate.setSelectedItems(selectedItem); - assertTrue(button.isEnabled()); - - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_ENABLING_THRESHOLD, 2); - mSelectionDelegate.setSelectedItems(selectedItem); - assertFalse(button.isEnabled()); - } - - @Test - @SmallTest - @UiThreadTest - public void testActionButtonContentDescriptionBinding() { - // Set up action button. - Button button = mEditorLayoutView.findViewById(R.id.action_button); - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_ENABLING_THRESHOLD, 1); - - int expectedResourceId = R.plurals.accessibility_tab_selection_editor_group_button; - mModel.set(TabSelectionEditorProperties.TOOLBAR_ACTION_BUTTON_DESCRIPTION_RESOURCE_ID, - expectedResourceId); - assertNull(button.getContentDescription()); - - // Simulate selection. - HashSet<Integer> selectedItem = new HashSet<>(Arrays.asList(1)); - mSelectionDelegate.setSelectedItems(selectedItem); - - assertNotNull(button.getContentDescription()); - } -}
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorMenuTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorMenuTest.java index 7618a27..947b5c1a 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorMenuTest.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorMenuTest.java
@@ -17,12 +17,10 @@ import static org.mockito.Mockito.when; import static org.chromium.chrome.browser.flags.ChromeFeatureList.TAB_GROUPS_FOR_TABLETS; -import static org.chromium.chrome.browser.flags.ChromeFeatureList.TAB_SELECTION_EDITOR_V2; import static org.chromium.ui.test.util.ViewUtils.onViewWaiting; import android.content.Context; import android.view.LayoutInflater; -import android.view.View; import android.widget.LinearLayout; import androidx.appcompat.content.res.AppCompatResources; @@ -42,7 +40,6 @@ import org.chromium.base.test.util.Batch; import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.Feature; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -81,7 +78,7 @@ */ @RunWith(ParameterizedRunner.class) @ParameterAnnotations.UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class) -@Features.EnableFeatures({TAB_GROUPS_FOR_TABLETS, TAB_SELECTION_EDITOR_V2}) +@Features.EnableFeatures({TAB_GROUPS_FOR_TABLETS}) @Batch(Batch.PER_CLASS) public class TabSelectionEditorMenuTest extends BlankUiTestActivityTestCase { private static final int TAB_COUNT = 3; @@ -177,7 +174,6 @@ @Override public void setUpTest() throws Exception { super.setUpTest(); - ChromeFeatureList.sTabSelectionEditorV2.setForTesting(true); MockitoAnnotations.initMocks(this); when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel); @@ -207,7 +203,6 @@ layout.addView(mToolbar, layoutParams); getActivity().setContentView(layout); mToolbar.initialize(mSelectionDelegate, 0, 0, 0, true); - mToolbar.setActionButtonVisibility(View.GONE); mPropertyListModel = new PropertyListModel<>(); mTabSelectionEditorMenu = @@ -223,7 +218,6 @@ @Override public void tearDownTest() throws Exception { NightModeTestUtils.tearDownNightModeForBlankUiTestActivity(); - ChromeFeatureList.sTabSelectionEditorV2.setForTesting(false); TestThreadUtils.runOnUiThreadBlocking(() -> { mPropertyListModel.clear(); }); super.tearDownTest(); } @@ -506,26 +500,6 @@ mRenderTestRule.render(mToolbar, "longTextV2ActionAndMenu"); } - // Regression test for https://crbug.com/1377205. - @Test - @MediumTest - @Feature({"RenderTest"}) - @Features.DisableFeatures({TAB_SELECTION_EDITOR_V2}) - public void testLongTextV2Disabled() throws Exception { - ChromeFeatureList.sTabSelectionEditorV2.setForTesting(false); - TestThreadUtils.runOnUiThreadBlocking(() -> { - mToolbar.setActionButtonVisibility(View.VISIBLE); - NumberRollView numberRoll = - (NumberRollView) mToolbar.getActionViewLayout().getChildAt(0); - numberRoll.setStringForZero(R.string.close_all_tabs_dialog_message); - }); - - setSelectedItems(new HashSet<Integer>(Arrays.asList(new Integer[] {}))); - - forceFinishRollAnimation(); - mRenderTestRule.render(mToolbar, "longTextDefaultGroupButton"); - } - @Test @MediumTest @Feature({"RenderTest"})
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java index 0f761f73..de2fc49 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java
@@ -21,9 +21,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.isNotNull; -import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -36,7 +34,6 @@ import android.content.Intent; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; import androidx.test.InstrumentationRegistry; import androidx.test.espresso.Espresso; @@ -138,8 +135,8 @@ public ChromeRenderTestRule mRenderTestRule = ChromeRenderTestRule.Builder.withPublicCorpus() .setBugComponent(ChromeRenderTestRule.Component.UI_BROWSER_MOBILE_TAB_SWITCHER) - .setRevision(5) - .setDescription("TabSelectionEditorV2 New selection icons") + .setRevision(6) + .setDescription("TabSelectionEditorV2 replaced v1") .build(); @Mock @@ -164,15 +161,13 @@ mTabModelSelector = sActivityTestRule.getActivity().getTabModelSelector(); mParentView = (ViewGroup) sActivityTestRule.getActivity().findViewById(R.id.coordinator); mSnackbarManager = sActivityTestRule.getActivity().getSnackbarManager(); - final boolean displayGroups = - ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_SELECTION_EDITOR_V2); TestThreadUtils.runOnUiThreadBlocking(() -> { mTabSelectionEditorCoordinator = new TabSelectionEditorCoordinator( sActivityTestRule.getActivity(), mParentView, mTabModelSelector, sActivityTestRule.getActivity().getTabContentManager(), mSetRecyclerViewPosition, getMode(), sActivityTestRule.getActivity().getCompositorViewHolderForTesting(), - displayGroups, mSnackbarManager); + /*displayGroups=*/true, mSnackbarManager); mTabSelectionEditorController = mTabSelectionEditorCoordinator.getController(); mTabSelectionEditorLayout = @@ -264,15 +259,28 @@ prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + actions.add(TabSelectionEditorCloseAction.createAction(sActivityTestRule.getActivity(), + ShowMode.MENU_ONLY, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + }); showSelectionEditor(tabs); mRobot.resultRobot.verifyTabSelectionEditorIsVisible() - .verifyToolbarActionButtonDisabled() - .verifyToolbarActionButtonWithResourceId(R.string.tab_selection_editor_group) + .verifyToolbarActionViewDisabled(R.id.tab_selection_editor_group_menu_item) + .verifyToolbarActionViewWithText( + R.id.tab_selection_editor_group_menu_item, "Group tabs") .verifyToolbarSelectionTextWithResourceId( R.string.tab_selection_editor_toolbar_select_tabs) .verifyAdapterHasItemCount(tabs.size()) .verifyHasAtLeastNItemVisible(1); + mRobot.actionRobot.clickToolbarMenuButton(); + mRobot.resultRobot.verifyToolbarMenuItemState("Close tabs", /*enabled=*/false); + Espresso.pressBack(); } @Test @@ -298,31 +306,7 @@ @Test @MediumTest // clang-format off - @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID + "<Study"}) - @CommandLineFlags.Add({"force-fieldtrials=Study/Group", - "force-fieldtrial-params=Study.Group:enable_launch_polish/true"}) - // TODO(crbug/1422295): Replaced by testToolbarNavigationButtonHideTabSelectionEditorV2. Delete - // this test. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void testToolbarNavigationButtonHideTabSelectionEditor() { - // clang-format on - prepareBlankTab(2, false); - List<Tab> tabs = getTabsInCurrentTabModel(); - - showSelectionEditor(tabs); - - mRobot.resultRobot.verifyTabSelectionEditorIsVisible(); - - mRobot.actionRobot.clickToolbarNavigationButton(); - mRobot.resultRobot.verifyTabSelectionEditorIsHidden(); - - verify(mSetRecyclerViewPosition, never()).onResult(any()); - } - - @Test - @MediumTest - // clang-format off - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2, + @Features.EnableFeatures({ ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID + "<Study"}) @CommandLineFlags.Add({"force-fieldtrials=Study/Group", "force-fieldtrial-params=Study.Group:enable_launch_polish/true"}) @@ -347,45 +331,28 @@ prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + }); showSelectionEditor(tabs); - mRobot.resultRobot.verifyToolbarActionButtonDisabled() - .verifyToolbarActionButtonWithResourceId(R.string.tab_selection_editor_group); + mRobot.resultRobot.verifyToolbarActionViewDisabled( + R.id.tab_selection_editor_group_menu_item); mRobot.actionRobot.clickItemAtAdapterPosition(0); - mRobot.resultRobot.verifyToolbarActionButtonDisabled(); + mRobot.resultRobot.verifyToolbarActionViewDisabled( + R.id.tab_selection_editor_group_menu_item); mRobot.actionRobot.clickItemAtAdapterPosition(1); - mRobot.resultRobot.verifyToolbarActionButtonEnabled(); + mRobot.resultRobot.verifyToolbarActionViewEnabled( + R.id.tab_selection_editor_group_menu_item); mRobot.actionRobot.clickItemAtAdapterPosition(1); - mRobot.resultRobot.verifyToolbarActionButtonDisabled(); - } - - @Test - @MediumTest - // TODO(crbug/1422295): This test is no longer relevant once TabSelectionEditorV2 is enabled. - // Remove it during flag cleanup. - @DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void testToolbarGroupButton() { - prepareBlankTab(2, false); - List<Tab> tabs = getTabsInCurrentTabModel(); - - showSelectionEditor(tabs); - - mRobot.resultRobot.verifyToolbarActionButtonWithResourceId( - R.string.tab_selection_editor_group); - - mRobot.actionRobot.clickItemAtAdapterPosition(0) - .clickItemAtAdapterPosition(1) - .clickToolbarActionButton(); - - mRobot.resultRobot.verifyTabSelectionEditorIsHidden(); - - verify(mSetRecyclerViewPosition, never()).onResult(any()); - // TODO(1021803): verify the undo snack after the bug is resolved. - // verifyUndoSnackbarWithTextIsShown(sActivityTestRule.getActivity().getString( - // R.string.undo_bar_group_tabs_message, 2)); + mRobot.resultRobot.verifyToolbarActionViewDisabled( + R.id.tab_selection_editor_group_menu_item); } @Test @@ -397,14 +364,20 @@ List<Tab> tabs = getTabsInCurrentTabModel(); TabUiTestHelper.enterTabSwitcher(cta); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + }); showSelectionEditor(tabs); - mRobot.resultRobot.verifyToolbarActionButtonWithResourceId( - R.string.tab_selection_editor_group); + mRobot.resultRobot.verifyToolbarActionViewDisabled( + R.id.tab_selection_editor_group_menu_item); mRobot.actionRobot.clickItemAtAdapterPosition(0) .clickItemAtAdapterPosition(1) - .clickToolbarActionButton(); + .clickToolbarActionView(R.id.tab_selection_editor_group_menu_item); mRobot.resultRobot.verifyTabSelectionEditorIsHidden(); TabUiTestHelper.verifyTabSwitcherCardCount(cta, 1); @@ -415,33 +388,6 @@ @Test @MediumTest - public void testConfigureToolbar_ActionButtonEnableThreshold() { - prepareBlankTab(2, false); - List<Tab> tabs = getTabsInCurrentTabModel(); - - int enableThreshold = 1; - TestThreadUtils.runOnUiThreadBlocking(() -> { - mTabSelectionEditorController.configureToolbar("Test", - R.plurals.accessibility_tab_selection_editor_group_button, null, - enableThreshold, null); - }); - showSelectionEditor(tabs); - - mRobot.resultRobot.verifyToolbarActionButtonDisabled().verifyToolbarActionButtonWithText( - "Test"); - - for (int i = 0; i < enableThreshold; i++) { - mRobot.actionRobot.clickItemAtAdapterPosition(i); - } - mRobot.resultRobot.verifyToolbarActionButtonEnabled(); - - mRobot.actionRobot.clickItemAtAdapterPosition(enableThreshold - 1); - mRobot.resultRobot.verifyToolbarActionButtonDisabled(); - } - - @Test - @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE}) public void testConfigureToolbarMenuItems() { prepareBlankTab(2, false); @@ -487,7 +433,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_CloseActionView() { prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); @@ -514,7 +459,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_CloseActionView_WithGroups() { prepareBlankTab(2, false); prepareBlankTabGroup(3, false); @@ -552,7 +496,6 @@ // Regression test for https://crbug.com/1374935 @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_GroupActionView_WithGroups() { prepareBlankTab(2, false); // Index: 0, 1 prepareBlankTabGroup(3, false); // Index: 2 @@ -591,7 +534,6 @@ @Test @MediumTest @Feature({"RenderTest"}) - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @DisabledTest(message = "crbug.com/1420233") public void testToolbarMenuItem_GroupActionAndUndo() throws Exception { prepareBlankTab(2, false); @@ -659,7 +601,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_CloseMenuItem() { prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); @@ -688,7 +629,6 @@ @Test @MediumTest @RequiresRestart("Share sheet is sometimes persistent when calling pressBack to retract") - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_ShareActionView() throws IOException { Intents.init(); prepareBlankTab(1, false); @@ -737,7 +677,6 @@ @Test @MediumTest @RequiresRestart("Share sheet is sometimes persistent when calling pressBack to retract") - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_ShareActionTabsOnly() throws IOException { prepareBlankTab(3, false); List<Tab> tabs = getTabsInCurrentTabModel(); @@ -771,7 +710,6 @@ @Test @MediumTest @RequiresRestart("Share sheet is sometimes persistent when calling pressBack to retract") - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_ShareActionGroupsOnly() throws IOException { ArrayList<String> urls = new ArrayList<String>(); urls.add(sActivityTestRule.getTestServer().getURL(PAGE_WITH_HTTPS_CANONICAL_URL)); @@ -815,7 +753,6 @@ @Test @MediumTest @RequiresRestart("Share sheet is sometimes persistent when calling pressBack to retract") - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_ShareActionTabsWithGroups() throws IOException { prepareBlankTab(2, false); @@ -866,7 +803,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_ShareActionAllFilterableTabs() throws Exception { prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); @@ -888,7 +824,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_BookmarkActionSingleTab() throws Exception { prepareBlankTab(1, false); @@ -931,7 +866,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_BookmarkActionGroupsOnly() throws Exception { prepareBlankTabGroup(2, false); List<Tab> tabs = getTabsInCurrentTabModelFilter(); @@ -976,7 +910,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testToolbarMenuItem_BookmarkActionTabsWithGroups() throws Exception { final String httpsCanonicalUrl = sActivityTestRule.getTestServer().getURL(PAGE_WITH_HTTPS_CANONICAL_URL); @@ -1030,7 +963,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE}) public void testSelectionAction_IndividualTabSelection() { prepareBlankTab(2, false); @@ -1072,19 +1004,30 @@ prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); int preSelectedTabCount = 1; - TestThreadUtils.runOnUiThreadBlocking( - () - -> mTabSelectionEditorController.show( - tabs, preSelectedTabCount, /*recyclerViewPosition=*/null)); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + actions.add(TabSelectionEditorCloseAction.createAction(sActivityTestRule.getActivity(), + ShowMode.MENU_ONLY, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + mTabSelectionEditorController.show( + tabs, preSelectedTabCount, /*recyclerViewPosition=*/null); + }); mRobot.resultRobot.verifyTabSelectionEditorIsVisible() - .verifyToolbarActionButtonDisabled() - .verifyToolbarActionButtonWithResourceId(R.string.tab_selection_editor_group) + .verifyToolbarActionViewDisabled(R.id.tab_selection_editor_group_menu_item) + .verifyToolbarActionViewWithText( + R.id.tab_selection_editor_group_menu_item, "Group tab") .verifyToolbarSelectionText("1 tab") .verifyHasAtLeastNItemVisible(tabs.size() + 1) .verifyItemSelectedAtAdapterPosition(0) .verifyHasItemViewTypeAtAdapterPosition(1, TabProperties.UiType.DIVIDER) .verifyDividerAlwaysStartsAtTheEdgeOfScreen(); + mRobot.actionRobot.clickToolbarMenuButton(); + mRobot.resultRobot.verifyToolbarMenuItemState("Close tab", /*enabled=*/true); + Espresso.pressBack(); } @Test @@ -1095,10 +1038,17 @@ int preSelectedTabCount = 6; List<Tab> tabs = getTabsInCurrentTabModel(); - TestThreadUtils.runOnUiThreadBlocking( - () - -> mTabSelectionEditorController.show( - tabs, preSelectedTabCount, /*recyclerViewPosition=*/null)); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + actions.add(TabSelectionEditorCloseAction.createAction(sActivityTestRule.getActivity(), + ShowMode.MENU_ONLY, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + mTabSelectionEditorController.show( + tabs, preSelectedTabCount, /*recyclerViewPosition=*/null); + }); mRobot.resultRobot.verifyToolbarSelectionText("6 tabs") .verifyHasItemViewTypeAtAdapterPosition( @@ -1132,6 +1082,13 @@ TabUiTestHelper.enterTabSwitcher(sActivityTestRule.getActivity()); TabUiTestHelper.verifyAllTabsHaveThumbnail( sActivityTestRule.getActivity().getCurrentTabModel()); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + }); showSelectionEditor(tabs); mRobot.resultRobot.verifyTabSelectionEditorIsVisible(); @@ -1152,6 +1109,13 @@ TabUiTestHelper.enterTabSwitcher(sActivityTestRule.getActivity()); TabUiTestHelper.verifyAllTabsHaveThumbnail( sActivityTestRule.getActivity().getCurrentTabModel()); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + }); showSelectionEditor(tabs); mRobot.actionRobot.clickItemAtAdapterPosition(0); @@ -1176,6 +1140,11 @@ TabUiTestHelper.verifyAllTabsHaveThumbnail( sActivityTestRule.getActivity().getCurrentTabModel()); TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); mTabSelectionEditorController.show( tabs, preSelectedTabCount, /*recyclerViewPosition=*/null); }); @@ -1200,6 +1169,11 @@ TabUiTestHelper.verifyAllTabsHaveThumbnail( sActivityTestRule.getActivity().getCurrentTabModel()); TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); mTabSelectionEditorController.show( tabs, preSelectedTabCount, /*recyclerViewPosition=*/null); }); @@ -1224,6 +1198,11 @@ TabUiTestHelper.verifyAllTabsHaveThumbnail( sActivityTestRule.getActivity().getCurrentTabModel()); TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); mTabSelectionEditorController.show( tabs, preSelectedTabCount, /*recyclerViewPosition=*/null); }); @@ -1237,7 +1216,6 @@ @Test @MediumTest @Feature({"RenderTest"}) - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE, RESTRICTION_TYPE_NON_LOW_END_DEVICE}) public void testSelectionAction_Toggle() throws IOException { prepareBlankTab(3, false); @@ -1290,6 +1268,13 @@ prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + }); showSelectionEditor(tabs); mRobot.resultRobot.verifyTabSelectionEditorIsVisible(); @@ -1302,11 +1287,9 @@ @MediumTest @Feature({"RenderTest"}) @CommandLineFlags.Add(BaseSwitches.ENABLE_LOW_END_DEVICE_MODE) - @EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE, RESTRICTION_TYPE_LOW_END_DEVICE}) - public void - testListViewV2Shows() throws IOException { + public void testListViewV2Shows() throws IOException { prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); @@ -1325,6 +1308,13 @@ prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + }); showSelectionEditor(tabs); mRobot.actionRobot.clickItemAtAdapterPosition(0); @@ -1344,12 +1334,19 @@ prepareBlankTab(2, false); List<Tab> tabs = getTabsInCurrentTabModel(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + List<TabSelectionEditorAction> actions = new ArrayList<>(); + actions.add(TabSelectionEditorGroupAction.createAction(sActivityTestRule.getActivity(), + ShowMode.IF_ROOM, ButtonType.TEXT, IconPosition.START)); + + mTabSelectionEditorController.configureToolbarWithMenuItems(actions, null); + }); showSelectionEditor(tabs); mRobot.actionRobot.clickItemAtAdapterPosition(0); - mRobot.resultRobot.verifyToolbarActionButtonDisabled().verifyTabSelectionEditorIsVisible(); - mRobot.actionRobot.clickEndButtonAtAdapterPosition(1); - mRobot.resultRobot.verifyToolbarActionButtonEnabled().verifyTabSelectionEditorIsVisible(); + mRobot.resultRobot + .verifyToolbarActionViewDisabled(R.id.tab_selection_editor_group_menu_item) + .verifyTabSelectionEditorIsVisible(); } @Test @@ -1392,30 +1389,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void testToolbarActionButtonContentDescription() { - prepareBlankTab(2, false); - List<Tab> tabs = getTabsInCurrentTabModel(); - - TestThreadUtils.runOnUiThreadBlocking(() -> { - mTabSelectionEditorController.configureToolbar("Group", - R.plurals.accessibility_tab_selection_editor_group_button, null, 2, null); - }); - showSelectionEditor(tabs); - mRobot.resultRobot.verifyTabSelectionEditorIsVisible(); - - Button actionButton = - mTabSelectionEditorLayout.getToolbar().findViewById(R.id.action_button); - assertNull(actionButton.getContentDescription()); - - mRobot.actionRobot.clickItemAtAdapterPosition(0); - mRobot.actionRobot.clickItemAtAdapterPosition(1); - assertEquals("Group 2 selected tabs", actionButton.getContentDescription()); - } - - @Test - @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE}) public void testToolbarMenuItem_SelectAllMenu() { prepareBlankTab(2, false); @@ -1447,7 +1420,6 @@ @Test @MediumTest - @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE}) public void testToolbarActionViewAndMenuItemContentDescription() { prepareBlankTab(2, false);
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTestingRobot.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTestingRobot.java index 2d3a3d2c..98e5e34b 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTestingRobot.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTestingRobot.java
@@ -129,13 +129,6 @@ return this; } - public TabSelectionEditorTestingRobot.Action clickToolbarActionButton() { - onView(inTabSelectionEditor(allOf(withId(R.id.action_button), - withParent(withId(R.id.action_view_layout))))) - .perform(click()); - return this; - } - public TabSelectionEditorTestingRobot.Action clickToolbarActionView(int id) { onView(inTabSelectionEditor(withId(id))).perform(click()); return this; @@ -215,47 +208,17 @@ return this; } - public TabSelectionEditorTestingRobot.Result verifyToolbarActionButtonWithResourceId( - int resourceId) { - onView(inTabSelectionEditor(allOf(withId(R.id.action_button), - withParent(withId(R.id.action_view_layout))))) - .check(matches(withText(resourceId))); - return this; - } - - public TabSelectionEditorTestingRobot.Result verifyToolbarActionButtonWithText( - String text) { - onView(inTabSelectionEditor(allOf(withId(R.id.action_button), - withParent(withId(R.id.action_view_layout))))) - .check(matches(withText(text))); - return this; - } - public TabSelectionEditorTestingRobot.Result verifyToolbarActionViewWithText( int id, String text) { onView(inTabSelectionEditor(withId(id))).check(matches(withText(text))); return this; } - public TabSelectionEditorTestingRobot.Result verifyToolbarActionButtonDisabled() { - onView(inTabSelectionEditor(allOf(withId(R.id.action_button), - withParent(withId(R.id.action_view_layout))))) - .check(matches(not(isEnabled()))); - return this; - } - public TabSelectionEditorTestingRobot.Result verifyToolbarActionViewDisabled(int id) { onView(inTabSelectionEditor(withId(id))).check(matches(not(isEnabled()))); return this; } - public TabSelectionEditorTestingRobot.Result verifyToolbarActionButtonEnabled() { - onView(inTabSelectionEditor(allOf(withId(R.id.action_button), - withParent(withId(R.id.action_view_layout))))) - .check(matches(isEnabled())); - return this; - } - public TabSelectionEditorTestingRobot.Result verifyToolbarActionViewEnabled(int id) { onView(inTabSelectionEditor(withId(id))).check(matches(isEnabled())); return this;
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageCardTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageCardTest.java index dbf5e2e8..5f3f421 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageCardTest.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageCardTest.java
@@ -147,9 +147,9 @@ mTabSelectionEditorTestingRobot.resultRobot.verifyTabSelectionEditorIsVisible(); } - private void acceptSuggestion() { + private void acceptSuggestion(int id) { mTabSelectionEditorTestingRobot.resultRobot.verifyTabSelectionEditorIsVisible(); - mTabSelectionEditorTestingRobot.actionRobot.clickToolbarActionButton(); + mTabSelectionEditorTestingRobot.actionRobot.clickToolbarActionView(id); mTabSelectionEditorTestingRobot.resultRobot.verifyTabSelectionEditorIsHidden(); } @@ -173,7 +173,7 @@ enteringTabSwitcherAndVerifySuggestionIsShown(mClosingSuggestionMessage); reviewSuggestion(); - acceptSuggestion(); + acceptSuggestion(R.id.tab_selection_editor_close_menu_item); onViewWaiting(allOf(withParent(withId(R.id.snackbar)), withText("3 tabs closed"))); } @@ -199,7 +199,7 @@ enteringTabSwitcherAndVerifySuggestionIsShown(mGroupingSuggestionMessage); reviewSuggestion(); - acceptSuggestion(); + acceptSuggestion(R.id.tab_selection_editor_group_menu_item); onViewWaiting(allOf(withParent(withId(R.id.snackbar)), withText("3 tabs grouped"))); } @@ -287,7 +287,7 @@ enteringTabSwitcherAndVerifySuggestionIsShown(mGroupingSuggestionMessage); reviewSuggestion(); - acceptSuggestion(); + acceptSuggestion(R.id.tab_selection_editor_group_menu_item); onView(withId(R.id.tab_grid_message_item)).check(doesNotExist()); }
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java index 22cffd2c..94b1f1c 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java
@@ -6,7 +6,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; -import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; @@ -70,7 +70,6 @@ import org.chromium.ui.base.TestActivity; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.url.GURL; -import org.chromium.url.JUnitTestGURLs; import java.util.ArrayList; import java.util.Arrays; @@ -84,8 +83,7 @@ @Config(manifest = Config.NONE) // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) -@Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) +@Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) public class TabGridDialogMediatorUnitTest { // clang-format on @@ -187,12 +185,6 @@ doReturn(CUSTOMIZED_DIALOG_TITLE).when(mEditable).toString(); doReturn(null).when(mRecyclerViewPositionSupplier).get(); - if (!TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( - ContextUtils.getApplicationContext()) - && !TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())) { - mTabSelectionEditorController = null; - } mActivity = Robolectric.buildActivity(TestActivity.class).get(); mModel = new PropertyModel(TabGridPanelProperties.ALL_KEYS); mMediator = new TabGridDialogMediator(mActivity, mDialogController, mModel, @@ -228,26 +220,10 @@ instanceOf(TextWatcher.class)); assertThat(mModel.get(TabGridPanelProperties.TITLE_TEXT_ON_FOCUS_LISTENER), instanceOf(View.OnFocusChangeListener.class)); - - // Setup selection editor for ungrouping. - assertThat(mModel.get(TabGridPanelProperties.MENU_CLICK_LISTENER), - instanceOf(View.OnClickListener.class)); - - mMediator.getToolbarMenuCallbackForTesting().onResult(R.id.ungroup_tab); - verify(mTabSelectionEditorController) - .configureToolbar(eq(REMOVE_BUTTON_STRING), anyInt(), - any(TabSelectionEditorActionProvider.class), eq(1), eq(null)); - verify(mRecyclerViewPositionSupplier, never()).get(); - verify(mTabSelectionEditorController).show(any(), eq(0), eq(null)); } @Test - @Features.EnableFeatures(ChromeFeatureList.TAB_SELECTION_EDITOR_V2) - public void setupTabSelectionEditorV2_flagEnabled() { - assertThat(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext()), - equalTo(true)); - + public void setupTabSelectionEditorV2() { assertThat(mMediator.getKeyboardVisibilityListenerForTesting(), equalTo(null)); assertThat(mModel.get(TabGridPanelProperties.TITLE_TEXT_WATCHER), equalTo(null)); assertThat(mModel.get(TabGridPanelProperties.TITLE_TEXT_ON_FOCUS_LISTENER), equalTo(null)); @@ -279,8 +255,8 @@ assertThat(mModel.get(TabGridPanelProperties.TITLE_TEXT_WATCHER), equalTo(null)); assertThat(mModel.get(TabGridPanelProperties.TITLE_TEXT_ON_FOCUS_LISTENER), equalTo(null)); - assertThat(mModel.get(TabGridPanelProperties.MENU_CLICK_LISTENER), equalTo(null)); - assertNull(mTabSelectionEditorController); + assertNotNull(mModel.get(TabGridPanelProperties.MENU_CLICK_LISTENER)); + assertNotNull(mTabSelectionEditorController); } @Test @@ -1158,28 +1134,8 @@ } @Test - @Features.EnableFeatures(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID) - public void testDialogToolbarMenu_SelectionMode() { - Callback<Integer> callback = mMediator.getToolbarMenuCallbackForTesting(); - // Mock that currently the title text is focused and the keyboard is showing. The current - // tab is tab1 which is in a group of {tab1, tab2}. - mModel.set(TabGridPanelProperties.IS_TITLE_TEXT_FOCUSED, true); - mMediator.setCurrentTabIdForTesting(TAB1_ID); - List<Tab> tabgroup = new ArrayList<>(Arrays.asList(mTab1, mTab2)); - createTabGroup(tabgroup, TAB1_ID); - - callback.onResult(R.id.ungroup_tab); - - assertThat(mModel.get(TabGridPanelProperties.IS_TITLE_TEXT_FOCUSED), equalTo(false)); - verify(mRecyclerViewPositionSupplier, never()).get(); - verify(mTabSelectionEditorController).show(eq(tabgroup), eq(0), eq(null)); - } - - @Test - @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void - testDialogToolbarMenu_SelectionModeV2() { + @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) + public void testDialogToolbarMenu_SelectionModeV2() { Callback<Integer> callback = mMediator.getToolbarMenuCallbackForTesting(); // Mock that currently the title text is focused and the keyboard is showing. The current // tab is tab1 which is in a group of {tab1, tab2}. @@ -1196,35 +1152,6 @@ } @Test - @Features.EnableFeatures(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID) - public void testGetTabGroupStringForShare() { - Tab newTab = prepareTab(TAB3_ID, TAB3_TITLE); - String url1 = JUnitTestGURLs.SEARCH_URL; - String url2 = JUnitTestGURLs.EXAMPLE_URL; - String url3 = JUnitTestGURLs.MAPS_URL; - - doReturn(JUnitTestGURLs.getGURL(url1)).when(mTab1).getUrl(); - doReturn(JUnitTestGURLs.getGURL(url2)).when(mTab2).getUrl(); - doReturn(JUnitTestGURLs.getGURL(url3)).when(newTab).getUrl(); - mMediator.setCurrentTabIdForTesting(TAB1_ID); - - // Setup two sets of tab group and share strings. - List<Tab> tabgroup1 = new ArrayList<>(Arrays.asList(newTab, mTab1, mTab2)); - String shareString1 = - "1. https://maps.google.com/\n2. https://www.google.com/search?q=test\n3. https://www.example.com/\n"; - - List<Tab> tabgroup2 = new ArrayList<>(Arrays.asList(mTab2, newTab, mTab1)); - String shareString2 = - "1. https://www.example.com/\n2. https://maps.google.com/\n3. https://www.google.com/search?q=test\n"; - - doReturn(tabgroup1).when(mTabGroupModelFilter).getRelatedTabList(TAB1_ID); - assertThat(shareString1, equalTo(mMediator.getTabGroupStringForSharingForTesting())); - - doReturn(tabgroup2).when(mTabGroupModelFilter).getRelatedTabList(TAB1_ID); - assertThat(shareString2, equalTo(mMediator.getTabGroupStringForSharingForTesting())); - } - - @Test public void testSnackbarController_onAction_singleTab() { doReturn(mTabModel).when(mTabModelSelector).getModelForTabId(TAB1_ID);
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallbackUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallbackUnitTest.java index cd47e15e..2acb186 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallbackUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallbackUnitTest.java
@@ -207,7 +207,8 @@ private void setupItemTouchHelperCallback(boolean isDialog) { mItemTouchHelperCallback = new TabGridItemTouchHelperCallback( ContextUtils.getApplicationContext(), mModel, mTabModelSelector, mTabClosedListener, - isDialog ? mTabGridDialogHandler : null, "", !isDialog, TabListMode.GRID, + isDialog ? mTabGridDialogHandler : null, "", !isDialog, TabListMode.GRID); + mItemTouchHelperCallback.setOnLongPressTabItemEventListener( mOnLongPressTabItemEventListener); mItemTouchHelperCallback.setupCallback(THRESHOLD, THRESHOLD, THRESHOLD); mItemTouchHelperCallback.getMovementFlags(mRecyclerView, mMockViewHolder1); @@ -828,9 +829,8 @@ } @Test - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void onLongPress_triggerTabSelectionEditor() { - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(true); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(true); initAndAssertAllProperties(); @@ -842,13 +842,13 @@ verify(mOnLongPressTabItemEventListener).onLongPressEvent(TAB1_ID); assertTrue(mItemTouchHelperCallback.shouldBlockAction()); - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(false); + + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(false); } @Test - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void onLongPress_preventTriggerTabSelectionEditor() { - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(true); + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(true); initAndAssertAllProperties(); @@ -863,7 +863,8 @@ verify(mOnLongPressTabItemEventListener, never()).onLongPressEvent(TAB1_ID); assertFalse(mItemTouchHelperCallback.shouldBlockAction()); - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY.setForTesting(false); + + TabUiFeatureUtilities.setTabSelectionEditorLongPressEntryEnabledForTesting(false); } private void verifyDrag(
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java index 6041d962..31d3ff6 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
@@ -447,7 +447,7 @@ mMediator = new TabListMediator(mActivity, mModel, TabListMode.GRID, mTabModelSelector, getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, false, null, mGridCardOnClickListenerProvider, null, null, getClass().getSimpleName(), - UiType.CLOSABLE, null); + UiType.CLOSABLE); mMediator.registerOrientationListener(mGridLayoutManager); TrackerFactory.setTrackerForTests(mTracker); @@ -1330,7 +1330,7 @@ mMediator = new TabListMediator(mActivity, mModel, TabListMode.GRID, mTabModelSelector, getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, null, mGridCardOnClickListenerProvider, null, null, getClass().getSimpleName(), - UiType.CLOSABLE, null); + UiType.CLOSABLE); mMediator.initWithNative(); // mTabModelObserverCaptor captures on every initWithNative calls. There is one // initWithNative call in the setup already. @@ -3166,7 +3166,7 @@ setPriceTrackingEnabledForTesting(true); mMediator = new TabListMediator(mActivity, mModel, TabListMode.GRID, mTabModelSelector, getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, null, - null, null, null, getClass().getSimpleName(), TabProperties.UiType.CLOSABLE, null); + null, null, null, getClass().getSimpleName(), TabProperties.UiType.CLOSABLE); mMediator.registerOrientationListener(mGridLayoutManager); mMediator.initWithNative(); initAndAssertAllProperties(); @@ -3183,7 +3183,7 @@ setPriceTrackingEnabledForTesting(true); mMediator = new TabListMediator(mActivity, mModel, TabListMode.GRID, mTabModelSelector, getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, null, - null, null, null, getClass().getSimpleName(), TabProperties.UiType.CLOSABLE, null); + null, null, null, getClass().getSimpleName(), TabProperties.UiType.CLOSABLE); mMediator.registerOrientationListener(mGridLayoutManager); mMediator.initWithNative(); initWithThreeTabs(); @@ -3495,11 +3495,9 @@ when(mSelectionDelegate.isItemSelected(TAB3_ID)).thenReturn(false); when(mTabModelSelector.isTabStateInitialized()).thenReturn(true); mMediator = new TabListMediator(mActivity, mModel, TabListMode.GRID, mTabModelSelector, - getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, - () - -> { return mSelectionDelegate; }, - null, null, null, getClass().getSimpleName(), TabProperties.UiType.SELECTABLE, - null); + getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, () -> { + return mSelectionDelegate; + }, null, null, null, getClass().getSimpleName(), TabProperties.UiType.SELECTABLE); mMediator.registerOrientationListener(mGridLayoutManager); mMediator.initWithNative(); initAndAssertAllProperties(); @@ -3530,11 +3528,9 @@ when(mSelectionDelegate.isItemSelected(TAB3_ID)).thenReturn(false); when(mTabModelSelector.isTabStateInitialized()).thenReturn(true); mMediator = new TabListMediator(mActivity, mModel, TabListMode.GRID, mTabModelSelector, - getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, - () - -> { return mSelectionDelegate; }, - null, null, null, getClass().getSimpleName(), TabProperties.UiType.SELECTABLE, - null); + getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, () -> { + return mSelectionDelegate; + }, null, null, null, getClass().getSimpleName(), TabProperties.UiType.SELECTABLE); mMediator.registerOrientationListener(mGridLayoutManager); mMediator.initWithNative(); initAndAssertAllProperties(); @@ -3565,11 +3561,9 @@ when(mSelectionDelegate.isItemSelected(TAB3_ID)).thenReturn(false); when(mTabModelSelector.isTabStateInitialized()).thenReturn(true); mMediator = new TabListMediator(mActivity, mModel, TabListMode.GRID, mTabModelSelector, - getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, - () - -> { return mSelectionDelegate; }, - null, null, null, getClass().getSimpleName(), TabProperties.UiType.SELECTABLE, - null); + getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, true, () -> { + return mSelectionDelegate; + }, null, null, null, getClass().getSimpleName(), TabProperties.UiType.SELECTABLE); mMediator.registerOrientationListener(mGridLayoutManager); mMediator.initWithNative(); initAndAssertAllProperties(); @@ -3774,8 +3768,7 @@ mMediator = new TabListMediator(mActivity, mModel, mode, mTabModelSelector, getTabThumbnailCallback(), mTitleProvider, mTabListFaviconProvider, - actionOnRelatedTabs, null, null, handler, null, getClass().getSimpleName(), uiType, - null); + actionOnRelatedTabs, null, null, handler, null, getClass().getSimpleName(), uiType); mMediator.registerOrientationListener(mGridLayoutManager); // TabGroupModelFilterObserver is registered when native is ready.
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProviderUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProviderUnitTest.java deleted file mode 100644 index 8dd2921..0000000 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProviderUnitTest.java +++ /dev/null
@@ -1,158 +0,0 @@ -// Copyright 2019 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.tasks.tab_management; - -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.view.View; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TestRule; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.annotation.Config; - -import org.chromium.base.UserDataHost; -import org.chromium.base.test.BaseRobolectricTestRunner; -import org.chromium.chrome.browser.tab.Tab; -import org.chromium.chrome.browser.tab.TabImpl; -import org.chromium.chrome.browser.tabmodel.TabModel; -import org.chromium.chrome.browser.tabmodel.TabModelFilterProvider; -import org.chromium.chrome.browser.tabmodel.TabModelSelector; -import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl; -import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter; -import org.chromium.chrome.test.util.browser.Features; -import org.chromium.url.GURL; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Tests for {@link TabSelectionEditorActionProvider}. - */ -@SuppressWarnings("ResultOfMethodCallIgnored") -@RunWith(BaseRobolectricTestRunner.class) -@Config(manifest = Config.NONE) -public class TabSelectionEditorActionProviderUnitTest { - @Rule - public TestRule mProcessor = new Features.JUnitProcessor(); - - private static final String TAB1_TITLE = "Tab1"; - private static final String TAB2_TITLE = "Tab2"; - private static final int TAB1_ID = 456; - private static final int TAB2_ID = 789; - private static final int POSITION1 = 0; - private static final int POSITION2 = 1; - - @Mock - TabModelSelectorImpl mTabModelSelector; - @Mock - TabSelectionEditorCoordinator.TabSelectionEditorController mTabSelectionEditorController; - @Mock - TabModel mTabModel; - @Mock - TabModelFilterProvider mTabModelFilterProvider; - @Mock - TabGroupModelFilter mTabGroupModelFilter; - - private TabImpl mTab1; - private TabImpl mTab2; - - @Before - public void setUp() { - - MockitoAnnotations.initMocks(this); - - mTab1 = prepareTab(TAB1_ID, TAB1_TITLE); - mTab2 = prepareTab(TAB2_ID, TAB2_TITLE); - - doReturn(mTabModel).when(mTabModelSelector).getCurrentModel(); - doReturn(mTab1).when(mTabModel).getTabAt(POSITION1); - doReturn(mTab2).when(mTabModel).getTabAt(POSITION2); - doReturn(POSITION1).when(mTabModel).indexOf(mTab1); - doReturn(POSITION2).when(mTabModel).indexOf(mTab2); - doReturn(0).when(mTabModel).index(); - doReturn(2).when(mTabModel).getCount(); - doReturn(mTabModelFilterProvider).when(mTabModelSelector).getTabModelFilterProvider(); - doReturn(mTabGroupModelFilter).when(mTabModelFilterProvider).getCurrentTabModelFilter(); - } - - @Test - public void testGroupAction() { - TabSelectionEditorActionProvider tabSelectionEditorActionProvider = - new TabSelectionEditorActionProvider(mTabSelectionEditorController, - TabSelectionEditorActionProvider.TabSelectionEditorAction.GROUP); - List<Tab> selectedTabs = new ArrayList<>(Arrays.asList(mTab1, mTab2)); - tabSelectionEditorActionProvider.processSelectedTabs(selectedTabs, mTabModelSelector); - - verify(mTabGroupModelFilter) - .mergeListOfTabsToGroup(eq(selectedTabs), eq(mTab2), eq(false), eq(true)); - verify(mTabSelectionEditorController).hide(); - } - - @Test - public void testUngroupAction() { - TabSelectionEditorActionProvider tabSelectionEditorActionProvider = - new TabSelectionEditorActionProvider(mTabSelectionEditorController, - TabSelectionEditorActionProvider.TabSelectionEditorAction.UNGROUP); - List<Tab> selectedTabs = new ArrayList<>(Arrays.asList(mTab1, mTab2)); - tabSelectionEditorActionProvider.processSelectedTabs(selectedTabs, mTabModelSelector); - - verify(mTabGroupModelFilter).moveTabOutOfGroup(TAB1_ID); - verify(mTabGroupModelFilter).moveTabOutOfGroup(TAB2_ID); - verify(mTabSelectionEditorController).hide(); - } - - @Test - public void testCloseAction() { - TabSelectionEditorActionProvider tabSelectionEditorActionProvider = - new TabSelectionEditorActionProvider(mTabSelectionEditorController, - TabSelectionEditorActionProvider.TabSelectionEditorAction.CLOSE); - List<Tab> selectedTabs = new ArrayList<>(Arrays.asList(mTab1, mTab2)); - tabSelectionEditorActionProvider.processSelectedTabs(selectedTabs, mTabModelSelector); - - verify(mTabModel).closeMultipleTabs(selectedTabs, true); - verify(mTabSelectionEditorController).hide(); - } - - @Test - public void testCustomizeAction() { - AtomicBoolean isProcessed = new AtomicBoolean(); - - TabSelectionEditorActionProvider tabSelectionEditorActionProvider = - new TabSelectionEditorActionProvider() { - @Override - void processSelectedTabs( - List<Tab> selectedTabs, TabModelSelector tabModelSelector) { - isProcessed.set(true); - } - }; - List<Tab> selectedTabs = new ArrayList<>(Arrays.asList(mTab1, mTab2)); - tabSelectionEditorActionProvider.processSelectedTabs(selectedTabs, mTabModelSelector); - - assertTrue(isProcessed.get()); - } - - private TabImpl prepareTab(int id, String title) { - TabImpl tab = mock(TabImpl.class); - when(tab.getView()).thenReturn(mock(View.class)); - when(tab.getUserDataHost()).thenReturn(new UserDataHost()); - doReturn(id).when(tab).getId(); - doReturn(GURL.emptyGURL()).when(tab).getUrl(); - doReturn(title).when(tab).getTitle(); - doReturn(false).when(tab).isClosing(); - return tab; - } -}
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCloseActionUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCloseActionUnitTest.java index 8204dfd..757ab58 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCloseActionUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCloseActionUnitTest.java
@@ -24,7 +24,6 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.CallbackHelper; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModelFilterProvider; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -38,7 +37,6 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorActionUnitTestHelper.TabListHolder; import org.chromium.chrome.tab_ui.R; import org.chromium.chrome.test.util.browser.Features; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.chrome.test.util.browser.tabmodel.MockTabModel; import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; @@ -53,7 +51,6 @@ */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) -@EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public class TabSelectionEditorCloseActionUnitTest { @Rule public TestRule mProcessor = new Features.JUnitProcessor();
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorGroupActionUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorGroupActionUnitTest.java index 047d0a02..1ac85696 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorGroupActionUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorGroupActionUnitTest.java
@@ -24,7 +24,6 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.CallbackHelper; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModelFilterProvider; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -38,7 +37,6 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorActionUnitTestHelper.TabListHolder; import org.chromium.chrome.tab_ui.R; import org.chromium.chrome.test.util.browser.Features; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.chrome.test.util.browser.tabmodel.MockTabModel; import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; @@ -52,7 +50,6 @@ */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) -@EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public class TabSelectionEditorGroupActionUnitTest { @Rule public TestRule mProcessor = new Features.JUnitProcessor();
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorShareActionUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorShareActionUnitTest.java index 618820c5..32e52c4 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorShareActionUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorShareActionUnitTest.java
@@ -30,7 +30,6 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.JniMocker; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.MockTab; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModelFilterProvider; @@ -42,7 +41,6 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.ShowMode; import org.chromium.chrome.tab_ui.R; import org.chromium.chrome.test.util.browser.Features; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.chrome.test.util.browser.tabmodel.MockTabModel; import org.chromium.components.browser_ui.share.ShareParams; import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; @@ -61,7 +59,6 @@ */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) -@EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public class TabSelectionEditorShareActionUnitTest { @Rule public JniMocker mJniMocker = new JniMocker();
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorUngroupActionUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorUngroupActionUnitTest.java index 030687a0..fb7971ba 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorUngroupActionUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorUngroupActionUnitTest.java
@@ -24,7 +24,6 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.CallbackHelper; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModelFilterProvider; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -36,7 +35,6 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.ShowMode; import org.chromium.chrome.tab_ui.R; import org.chromium.chrome.test.util.browser.Features; -import org.chromium.chrome.test.util.browser.Features.EnableFeatures; import org.chromium.chrome.test.util.browser.tabmodel.MockTabModel; import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; @@ -50,7 +48,6 @@ */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) -@EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public class TabSelectionEditorUngroupActionUnitTest { @Rule public TestRule mProcessor = new Features.JUnitProcessor();
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageServiceUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageServiceUnitTest.java index 46fea56..2f7d3510 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageServiceUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSuggestionMessageServiceUnitTest.java
@@ -43,14 +43,17 @@ import org.chromium.chrome.browser.tabmodel.TabModelFilterProvider; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter; +import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.ActionDelegate; import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabContext; import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestion; import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestionFeedback; +import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import org.chromium.testing.local.LocalRobolectricTestRunner; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; /** @@ -69,11 +72,6 @@ private static final int TAB2_ROOT_ID = TAB2_ID; private static final int TAB3_ROOT_ID = TAB2_ID; - private static final int CLOSE_SUGGESTION_ACTION_BUTTON_RESOURCE_ID = - org.chromium.chrome.tab_ui.R.string.tab_suggestion_close_tab_action_button; - private static final int GROUP_SUGGESTION_ACTION_BUTTON_RESOURCE_ID = - org.chromium.chrome.tab_ui.R.string.tab_selection_editor_group; - private Tab mTab1; private Tab mTab2; private Tab mTab3; @@ -100,6 +98,10 @@ Callback<TabSuggestionFeedback> mTabSuggestionFeedbackCallback; @Mock MessageService.MessageObserver mMessageObserver; + @Mock + SelectionDelegate<Integer> mSelectionDelegate; + @Mock + ActionDelegate mActionDelegate; @Captor ArgumentCaptor<TabSuggestionFeedback> mTabSuggestionFeedbackCallbackArgumentCaptor; @@ -140,7 +142,7 @@ doNothing().when(mMessageObserver).messageInvalidate(anyInt()); mMessageService = new TabSuggestionMessageService( - mContext, mTabModelSelector, mTabSelectionEditorController); + mContext, mTabModelSelector, () -> mTabSelectionEditorController); mMessageService.addObserver(mMessageObserver); } @@ -149,14 +151,9 @@ public void testReviewHandler_closeSuggestion() { TabSuggestion tabSuggestion = prepareTabSuggestion( Arrays.asList(mTab1, mTab2), TabSuggestion.TabSuggestionAction.CLOSE); - String closeSuggestionActionButtonText = "Close"; - int expectedEnablingThreshold = - TabSuggestionMessageService.CLOSE_SUGGESTION_ACTION_ENABLING_THRESHOLD; mMessageService.review(tabSuggestion, mTabSuggestionFeedbackCallback); - verify(mTabSelectionEditorController) - .configureToolbar(eq(closeSuggestionActionButtonText), anyInt(), any(), - eq(expectedEnablingThreshold), any()); + verify(mTabSelectionEditorController).configureToolbarWithMenuItems(any(), any()); verify(mTabSelectionEditorController) .show(eq(Arrays.asList(mTab1, mTab2, mTab3)), eq(2), eq(null)); @@ -176,9 +173,15 @@ assertEquals(3, mTabModelSelector.getCurrentModel().getCount()); - TabSelectionEditorActionProvider actionProvider = - mMessageService.getActionProvider(tabSuggestion, mTabSuggestionFeedbackCallback); - actionProvider.processSelectedTabs(suggestedTabs, mTabModelSelector); + LinkedHashSet<Integer> tabSet = new LinkedHashSet<>(); + tabSet.add(TAB1_ID); + tabSet.add(TAB2_ID); + doReturn(tabSet).when(mSelectionDelegate).getSelectedItems(); + TabSelectionEditorAction action = + mMessageService.getAction(tabSuggestion, mTabSuggestionFeedbackCallback); + action.configure(mTabModelSelector, mSelectionDelegate, mActionDelegate, + /*editorSupportsActionOnRelatedTabs=*/false); + action.perform(); verify(mTabModel).closeMultipleTabs(eq(suggestedTabs), eq(true)); verify(mTabSuggestionFeedbackCallback) @@ -196,7 +199,6 @@ public void testClosingSuggestionNavigationHandler() { ChromeFeatureList.sTabGroupsAndroid.setForTesting(true); ChromeFeatureList.sTabGroupsContinuationAndroid.setForTesting(true); - ChromeFeatureList.sTabSelectionEditorV2.setForTesting(true); List<Tab> suggestedTabs = Arrays.asList(mTab1, mTab2); TabSuggestion tabSuggestion = prepareTabSuggestion(suggestedTabs, TabSuggestion.TabSuggestionAction.CLOSE); @@ -214,7 +216,6 @@ assertEquals(DISMISSED, capturedFeedback.tabSuggestionResponse); ChromeFeatureList.sTabGroupsAndroid.setForTesting(null); ChromeFeatureList.sTabGroupsContinuationAndroid.setForTesting(null); - ChromeFeatureList.sTabSelectionEditorV2.setForTesting(null); } // Tests for grouping suggestion @@ -222,14 +223,9 @@ public void testReviewHandler_groupSuggestion() { TabSuggestion tabSuggestion = prepareTabSuggestion( Arrays.asList(mTab1, mTab2), TabSuggestion.TabSuggestionAction.GROUP); - String groupSuggestionActionButtonText = "Group"; - int expectedEnablingThreshold = - TabSuggestionMessageService.GROUP_SUGGESTION_ACTION_ENABLING_THRESHOLD; mMessageService.review(tabSuggestion, mTabSuggestionFeedbackCallback); - verify(mTabSelectionEditorController) - .configureToolbar(eq(groupSuggestionActionButtonText), anyInt(), any(), - eq(expectedEnablingThreshold), any()); + verify(mTabSelectionEditorController).configureToolbarWithMenuItems(any(), any()); verify(mTabSelectionEditorController) .show(eq(Arrays.asList(mTab1, mTab2, mTab3)), eq(2), eq(null)); @@ -249,14 +245,20 @@ assertEquals(3, mTabModelSelector.getCurrentModel().getCount()); - TabSelectionEditorActionProvider actionProvider = - mMessageService.getActionProvider(tabSuggestion, mTabSuggestionFeedbackCallback); - actionProvider.processSelectedTabs(suggestedTabs, mTabModelSelector); + LinkedHashSet<Integer> tabSet = new LinkedHashSet<>(); + tabSet.add(TAB1_ID); + tabSet.add(TAB2_ID); + doReturn(tabSet).when(mSelectionDelegate).getSelectedItems(); + TabSelectionEditorAction action = + mMessageService.getAction(tabSuggestion, mTabSuggestionFeedbackCallback); + action.configure(mTabModelSelector, mSelectionDelegate, mActionDelegate, + /*editorSupportsActionOnRelatedTabs=*/false); + action.perform(); verify(mTabSuggestionFeedbackCallback) .onResult(mTabSuggestionFeedbackCallbackArgumentCaptor.capture()); verify(mTabGroupModelFilter) - .mergeListOfTabsToGroup(eq(suggestedTabs), any(), eq(false), eq(true)); + .mergeListOfTabsToGroup(eq(suggestedTabs), eq(mTab2), eq(true), eq(true)); TabSuggestionFeedback capturedFeedback = mTabSuggestionFeedbackCallbackArgumentCaptor.getValue();
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediatorUnitTest.java index c3b6f35..d4fc341 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediatorUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediatorUnitTest.java
@@ -241,7 +241,8 @@ TabListCoordinator.TabListMode.GRID, mIncognitoReauthControllerSupplier, null, mTabGridDialogControllerSupplier); - mMediator.initWithNative(mEditorController, null); + mMediator.initWithNative(null); + mMediator.setTabSelectionEditorController(mEditorController); mMediator.addTabSwitcherViewObserver(mTabSwitcherViewObserver); mMediator.setOnTabSelectingListener(mLayout::onTabSelecting); verify(mIncognitoReauthController, times(1)) @@ -358,7 +359,8 @@ mPriceWelcomeMessageController, mMultiWindowModeStateDispatcher, TabListCoordinator.TabListMode.GRID, mIncognitoReauthControllerSupplier, null, null); - mMediator.initWithNative(mEditorController, null); + mMediator.initWithNative(null); + mMediator.setTabSelectionEditorController(mEditorController); mMediator.addTabSwitcherViewObserver(mTabSwitcherViewObserver); mMediator.setOnTabSelectingListener(mLayout::onTabSelecting); @@ -433,7 +435,8 @@ mPriceWelcomeMessageController, mMultiWindowModeStateDispatcher, TabListCoordinator.TabListMode.GRID, mIncognitoReauthControllerSupplier, null, null); - mMediator.initWithNative(mEditorController, null); + mMediator.initWithNative(null); + mMediator.setTabSelectionEditorController(mEditorController); mMediator.addTabSwitcherViewObserver(mTabSwitcherViewObserver); mMediator.setOnTabSelectingListener(mLayout::onTabSelecting);
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilitiesUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilitiesUnitTest.java index 71bb61c8..c1f16a2 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilitiesUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilitiesUnitTest.java
@@ -63,8 +63,7 @@ private void cacheFeatureFlags() { List<CachedFlag> featuresToCache = Arrays.asList(ChromeFeatureList.sTabGridLayoutAndroid, ChromeFeatureList.sTabGroupsAndroid, - ChromeFeatureList.sTabGroupsContinuationAndroid, - ChromeFeatureList.sTabSelectionEditorV2); + ChromeFeatureList.sTabGroupsContinuationAndroid); CachedFeatureFlags.cacheNativeFlags(featuresToCache); } @@ -72,8 +71,7 @@ // clang-format off @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_NoEnabledFlags() { // clang-format on @@ -106,8 +104,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID}) @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_ANDROID}) @CommandLineFlags.Add({BaseSwitches.DISABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_HighEnd_Layout() { // clang-format on @@ -144,8 +141,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID}) @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_Layout() { // clang-format on @@ -182,8 +178,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @CommandLineFlags.Add({BaseSwitches.DISABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_HighEnd_LayoutGroup() { // clang-format on @@ -220,8 +215,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_LayoutGroup() { // clang-format on @@ -257,8 +251,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @CommandLineFlags.Add({BaseSwitches.DISABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_HighEnd_Group() { // clang-format on @@ -294,8 +287,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_Group() { // clang-format on @@ -331,8 +323,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_Continuation() { // clang-format on @@ -370,51 +361,9 @@ @Test // clang-format off - @Features.EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) - @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) - public void testCacheGridTabSwitcher_LowEnd_SelectionEditorV2() { - // clang-format on - cacheFeatureFlags(); - - CachedFeatureFlags.resetFlagsForTesting(); - assertFalse(TabUiFeatureUtilities.isGridTabSwitcherEnabled( - ContextUtils.getApplicationContext())); - assertFalse(TabUiFeatureUtilities.isTabGroupsAndroidEnabled( - ContextUtils.getApplicationContext())); - assertFalse(TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( - ContextUtils.getApplicationContext())); - assertFalse(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())); - assertFalse(TabUiFeatureUtilities.shouldUseListMode(ContextUtils.getApplicationContext())); - assertTrue(TabUiFeatureUtilities.isTabToGtsAnimationEnabled( - ContextUtils.getApplicationContext())); - - setAccessibilityEnabledForTesting(true); - DeviceClassManager.resetForTesting(); - cacheFeatureFlags(); - - assertFalse(TabUiFeatureUtilities.isGridTabSwitcherEnabled( - ContextUtils.getApplicationContext())); - assertFalse(TabUiFeatureUtilities.isTabGroupsAndroidEnabled( - ContextUtils.getApplicationContext())); - assertFalse(TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( - ContextUtils.getApplicationContext())); - assertFalse(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())); - assertFalse(TabUiFeatureUtilities.shouldUseListMode(ContextUtils.getApplicationContext())); - assertTrue(TabUiFeatureUtilities.isTabToGtsAnimationEnabled( - ContextUtils.getApplicationContext())); - } - - @Test - // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @CommandLineFlags.Add({BaseSwitches.DISABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_HighEnd_AllFlags() { // clang-format on @@ -431,8 +380,6 @@ ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( ContextUtils.getApplicationContext())); - assertTrue(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())); assertFalse(TabUiFeatureUtilities.shouldUseListMode(ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabToGtsAnimationEnabled( ContextUtils.getApplicationContext())); @@ -447,8 +394,6 @@ ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( ContextUtils.getApplicationContext())); - assertTrue(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())); assertFalse(TabUiFeatureUtilities.shouldUseListMode(ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabToGtsAnimationEnabled( ContextUtils.getApplicationContext())); @@ -458,8 +403,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @CommandLineFlags.Add({BaseSwitches.DISABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_HighEnd_AllFlags_AccessibilityListMode() { // clang-format on @@ -476,8 +420,6 @@ ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( ContextUtils.getApplicationContext())); - assertTrue(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())); assertFalse(TabUiFeatureUtilities.shouldUseListMode(ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabToGtsAnimationEnabled( ContextUtils.getApplicationContext())); @@ -492,8 +434,6 @@ ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( ContextUtils.getApplicationContext())); - assertTrue(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.shouldUseListMode(ContextUtils.getApplicationContext())); assertFalse(TabUiFeatureUtilities.isTabToGtsAnimationEnabled( ContextUtils.getApplicationContext())); @@ -503,8 +443,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_AllFlags() { // clang-format on @@ -521,8 +460,6 @@ ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( ContextUtils.getApplicationContext())); - assertTrue(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.shouldUseListMode(ContextUtils.getApplicationContext())); assertFalse(TabUiFeatureUtilities.isTabToGtsAnimationEnabled( ContextUtils.getApplicationContext())); @@ -537,8 +474,6 @@ ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled( ContextUtils.getApplicationContext())); - assertTrue(TabUiFeatureUtilities.isTabSelectionEditorV2Enabled( - ContextUtils.getApplicationContext())); assertTrue(TabUiFeatureUtilities.shouldUseListMode(ContextUtils.getApplicationContext())); assertFalse(TabUiFeatureUtilities.isTabToGtsAnimationEnabled( ContextUtils.getApplicationContext())); @@ -548,8 +483,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) @CommandLineFlags.Add({BaseSwitches.DISABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_HighEnd_LayoutContinuation() { // clang-format on @@ -589,8 +523,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_LayoutContinuation() { // clang-format on @@ -630,8 +563,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID}) @CommandLineFlags.Add({BaseSwitches.DISABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_HighEnd_GroupContinuation() { // clang-format on @@ -671,8 +603,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID}) @CommandLineFlags.Add({BaseSwitches.DISABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_HighEnd_GroupContinuation_NoAccessibility() { // clang-format on @@ -712,8 +643,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_GroupContinuation() { // clang-format on @@ -753,8 +683,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridTabSwitcher_LowEnd_GroupContinuation_NoLowEnd() { // clang-format on @@ -794,8 +723,7 @@ // clang-format off @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) + @Features.DisableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID}) @CommandLineFlags.Add({BaseSwitches.ENABLE_LOW_END_DEVICE_MODE}) public void testCacheGridAndGroup_LowEnd_enabledThenDisabled_withContinuationFlag() { // clang-format on
diff --git a/chrome/android/features/tab_ui/tab_management_java_sources.gni b/chrome/android/features/tab_ui/tab_management_java_sources.gni index 727fa185..a493cab 100644 --- a/chrome/android/features/tab_ui/tab_management_java_sources.gni +++ b/chrome/android/features/tab_ui/tab_management_java_sources.gni
@@ -76,7 +76,6 @@ "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorAction.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProperties.java", - "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProvider.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionViewLayout.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorBookmarkAction.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCloseAction.java", @@ -152,7 +151,6 @@ "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediatorUnitTest.java", "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListFaviconProviderTest.java", "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java", - "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionProviderUnitTest.java", "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorActionUnitTestHelper.java", "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorBookmarkActionUnitTest.java", "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCloseActionUnitTest.java",
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml index 51b289d..ffd01526 100644 --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml
@@ -178,9 +178,6 @@ <item android:id="@id/quick_delete_menu_id" android:title="@string/menu_quick_delete" android:icon="@drawable/quick_delete_trash_bin_icon_24dp"/> - <item android:id="@+id/menu_group_tabs" - android:title="@string/menu_group_tabs" - android:icon="@drawable/ic_widgets" /> <item android:id="@+id/menu_select_tabs" android:title="@string/menu_select_tabs" android:icon="@drawable/ic_select_tabs" />
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java index dc7a8cf..6ea54d7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -572,27 +572,12 @@ && TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mContext) && !DeviceClassManager.enableAccessibilityLayout(mContext); - boolean isMenuSelectTabsEnabled = false; - boolean isMenuSelectTabsVisible = false; - boolean isMenuGroupTabsEnabled = false; - boolean isMenuGroupTabsVisible = false; - - if (TabUiFeatureUtilities.isTabSelectionEditorV2Enabled(mContext)) { - isMenuSelectTabsVisible = isTabSelectionEditorContext; - isMenuSelectTabsEnabled = !isIncognitoReauthShowing && isMenuSelectTabsVisible - && mTabModelSelector.getTabModelFilterProvider() - .getCurrentTabModelFilter() - .getCount() - != 0; - } else { - isMenuGroupTabsVisible = isTabSelectionEditorContext; - isMenuGroupTabsEnabled = !isIncognitoReauthShowing && isMenuGroupTabsVisible - && mTabModelSelector.getTabModelFilterProvider() - .getCurrentTabModelFilter() - .getTabsWithNoOtherRelatedTabs() - .size() - > 1; - } + boolean isMenuSelectTabsVisible = isTabSelectionEditorContext; + boolean isMenuSelectTabsEnabled = !isIncognitoReauthShowing && isMenuSelectTabsVisible + && mTabModelSelector.getTabModelFilterProvider() + .getCurrentTabModelFilter() + .getCount() + != 0; boolean hasItemBetweenDividers = false; @@ -637,10 +622,6 @@ if (item.getItemId() == R.id.recent_tabs_menu_id) { item.setVisible(!isIncognito); } - if (item.getItemId() == R.id.menu_group_tabs) { - item.setVisible(isMenuGroupTabsVisible); - item.setEnabled(isMenuGroupTabsEnabled); - } if (item.getItemId() == R.id.menu_select_tabs) { item.setVisible(isMenuSelectTabsVisible); item.setEnabled(isMenuSelectTabsEnabled);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java index 149afa1..ae074b9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
@@ -119,7 +119,6 @@ ChromeFeatureList.sTabGroupsAndroid, ChromeFeatureList.sTabGroupsContinuationAndroid, ChromeFeatureList.sTabGroupsForTablets, - ChromeFeatureList.sTabSelectionEditorV2, ChromeFeatureList.sTabToGTSAnimation, ChromeFeatureList.sToolbarUseHardwareBitmapDraw, ChromeFeatureList.sUseChimeAndroidSdk, @@ -167,9 +166,6 @@ TabUiFeatureUtilities.ZOOMING_MIN_MEMORY, TabUiFeatureUtilities.SKIP_SLOW_ZOOMING, TabUiFeatureUtilities.THUMBNAIL_ASPECT_RATIO, - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_LONGPRESS_ENTRY, - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_SHARE, - TabUiFeatureUtilities.ENABLE_TAB_SELECTION_EDITOR_V2_BOOKMARKS, TabManagementFieldTrial.TAB_STRIP_REDESIGN_ENABLE_FOLIO, TabManagementFieldTrial.TAB_STRIP_REDESIGN_ENABLE_DETACHED, VersionNumberGetter.MIN_SDK_VERSION,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OWNERS index 008e644..fb7a91c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OWNERS +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OWNERS
@@ -3,6 +3,5 @@ per-file Overlay*=mdjones@chromium.org # Secondary -bttk@chromium.org donnd@chromium.org -twellington@chromium.org \ No newline at end of file +twellington@chromium.org
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/OWNERS index a4aa196..5aab7778 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/OWNERS +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/OWNERS
@@ -1,5 +1,4 @@ gangwu@chromium.org # Secondary -bttk@chromium.org donnd@chromium.org twellington@chromium.org
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategy.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategy.java index 1de59a0..acf1fa3 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategy.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/partialcustomtab/PartialCustomTabSideSheetStrategy.java
@@ -145,6 +145,7 @@ AnimatorUpdateListener updateListener; WindowManager.LayoutParams windowLayout = mActivity.getWindow().getAttributes(); int displayWidth = mVersionCompat.getDisplayWidth(); + int clampedInitialWidth = calculateWidth(mUnclampedInitialWidth); int start; int end; if (mSheetOnRight) { @@ -152,11 +153,11 @@ setWindowWidth(displayWidth); int xOffset = mVersionCompat.getXOffset(); start = windowLayout.x; - end = (mIsMaximized ? 0 : displayWidth - mUnclampedInitialWidth) + xOffset; + end = (mIsMaximized ? 0 : displayWidth - clampedInitialWidth) + xOffset; updateListener = (anim) -> setWindowX((int) anim.getAnimatedValue()); } else { start = windowLayout.width; - end = calculateWidth(mIsMaximized ? displayWidth : mUnclampedInitialWidth); + end = mIsMaximized ? displayWidth : clampedInitialWidth; updateListener = (anim) -> setWindowWidth((int) anim.getAnimatedValue()); } // Keep the WebContents invisible during the animation to hide the jerky visual artifacts
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/OverviewAppMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/OverviewAppMenuTest.java index 8d10ef35..80e26e4 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/OverviewAppMenuTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/OverviewAppMenuTest.java
@@ -66,7 +66,7 @@ AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); }); - verifyTabSwitcherMenu(false); + verifyTabSwitcherMenu(); } @Test @@ -81,7 +81,7 @@ AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); }); - verifyTabSwitcherMenuIncognito(false); + verifyTabSwitcherMenuIncognito(); } @Test @@ -89,35 +89,18 @@ @Feature({"Browser", "Main"}) @Features. EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID}) - @Features.DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) public void testAllMenuItemsWithStartSurface() throws Exception { openTabSwitcher(); TestThreadUtils.runOnUiThreadBlocking(() -> { AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); }); - verifyTabSwitcherMenu(false); + verifyTabSwitcherMenu(); } @Test @SmallTest @Feature({"Browser", "Main"}) - @Features.EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID, - ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void - testAllMenuItemsWithStartSurfaceAndSelectTabs() throws Exception { - openTabSwitcher(); - TestThreadUtils.runOnUiThreadBlocking(() -> { - AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); - }); - - verifyTabSwitcherMenu(true); - } - - @Test - @SmallTest - @Feature({"Browser", "Main"}) - @Features.DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @Features. EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID}) public void testIncognitoAllMenuItemsWithStartSurface() throws Exception { @@ -127,23 +110,7 @@ AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); }); - verifyTabSwitcherMenuIncognito(false); - } - - @Test - @SmallTest - @Feature({"Browser", "Main"}) - @Features.EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID, - ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void - testIncognitoAllMenuItemsWithStartSurfaceAndSelectTabs() throws Exception { - openTabSwitcher(); - TestThreadUtils.runOnUiThreadBlocking(() -> { - mActivityTestRule.getActivity().getTabModelSelector().selectModel(true); - AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); - }); - - verifyTabSwitcherMenuIncognito(true); + verifyTabSwitcherMenuIncognito(); } @Test @@ -170,7 +137,7 @@ @Feature({"Browser", "Main"}) @Features. DisableFeatures({ChromeFeatureList.START_SURFACE_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID}) - public void testGroupTabsIsDisabled() throws Exception { + public void testSelectTabsIsDisabledWithOldAccessibilityLayout() throws Exception { // Force accessibility mode as that is the only way to get a tab switcher with the flags on // this test being disabled. TestThreadUtils.runOnUiThreadBlocking( @@ -181,9 +148,9 @@ }); assertNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), R.id.menu_group_tabs)); + mActivityTestRule.getAppMenuCoordinator(), R.id.menu_select_tabs)); TestThreadUtils.runOnUiThreadBlocking( - () -> { ChromeAccessibilityUtil.get().setAccessibilityEnabledForTesting(null); }); + () -> { ChromeAccessibilityUtil.get().setAccessibilityEnabledForTesting(false); }); } @Test @@ -191,14 +158,14 @@ @Feature({"Browser", "Main"}) @Features.EnableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) @Features.DisableFeatures({ChromeFeatureList.START_SURFACE_ANDROID}) - public void testGroupTabsIsEnabled() throws Exception { + public void testSelectTabsIsEnabled() throws Exception { openTabSwitcher(); TestThreadUtils.runOnUiThreadBlocking(() -> { AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); }); assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), R.id.menu_group_tabs)); + mActivityTestRule.getAppMenuCoordinator(), R.id.menu_select_tabs)); } @Test @@ -206,53 +173,32 @@ @Feature({"Browser", "Main"}) @Features.EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID}) @Features.DisableFeatures({ChromeFeatureList.TAB_GROUPS_ANDROID}) - public void testGroupTabsIsDisabledWithStartSurface() throws Exception { + public void testSelectTabsIsDisabledWithStartSurface() throws Exception { openTabSwitcher(); TestThreadUtils.runOnUiThreadBlocking(() -> { AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); }); assertNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), R.id.menu_group_tabs)); + mActivityTestRule.getAppMenuCoordinator(), R.id.menu_select_tabs)); } @Test @SmallTest @Feature({"Browser", "Main"}) - @Features.DisableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) @Features. EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID, ChromeFeatureList.TAB_GROUPS_ANDROID}) - public void testGroupTabsIsEnabledWithStartSurface() throws Exception { + public void testSelectTabsIsEnabledWithStartSurface() throws Exception { openTabSwitcher(); TestThreadUtils.runOnUiThreadBlocking(() -> { AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); }); assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), R.id.menu_group_tabs)); - assertNull(AppMenuTestSupport.getMenuItemPropertyModel( mActivityTestRule.getAppMenuCoordinator(), R.id.menu_select_tabs)); } - @Test - @SmallTest - @Feature({"Browser", "Main"}) - @Features.EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID, - ChromeFeatureList.TAB_GROUPS_ANDROID, ChromeFeatureList.TAB_SELECTION_EDITOR_V2}) - public void - testGroupTabsIsEnabledWithStartSurfaceAndSelectTabs() throws Exception { - openTabSwitcher(); - TestThreadUtils.runOnUiThreadBlocking(() -> { - AppMenuTestSupport.showAppMenu(mActivityTestRule.getAppMenuCoordinator(), null, false); - }); - - assertNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), R.id.menu_group_tabs)); - assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), R.id.menu_select_tabs)); - } - - private void verifyTabSwitcherMenu(boolean selectTabs) { + private void verifyTabSwitcherMenu() { assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( mActivityTestRule.getAppMenuCoordinator(), R.id.new_tab_menu_id)); assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( @@ -260,11 +206,7 @@ assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( mActivityTestRule.getAppMenuCoordinator(), R.id.close_all_tabs_menu_id)); assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), - selectTabs ? R.id.menu_select_tabs : R.id.menu_group_tabs)); - assertNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), - selectTabs ? R.id.menu_group_tabs : R.id.menu_select_tabs)); + mActivityTestRule.getAppMenuCoordinator(), R.id.menu_select_tabs)); assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( mActivityTestRule.getAppMenuCoordinator(), R.id.preferences_id)); @@ -276,7 +218,7 @@ assertEquals(5, menuItemsModelList.size()); } - private void verifyTabSwitcherMenuIncognito(boolean selectTabs) { + private void verifyTabSwitcherMenuIncognito() { assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( mActivityTestRule.getAppMenuCoordinator(), R.id.new_tab_menu_id)); assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( @@ -284,11 +226,7 @@ assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( mActivityTestRule.getAppMenuCoordinator(), R.id.close_all_incognito_tabs_menu_id)); assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), - selectTabs ? R.id.menu_select_tabs : R.id.menu_group_tabs)); - assertNull(AppMenuTestSupport.getMenuItemPropertyModel( - mActivityTestRule.getAppMenuCoordinator(), - selectTabs ? R.id.menu_group_tabs : R.id.menu_select_tabs)); + mActivityTestRule.getAppMenuCoordinator(), R.id.menu_select_tabs)); assertNotNull(AppMenuTestSupport.getMenuItemPropertyModel( mActivityTestRule.getAppMenuCoordinator(), R.id.preferences_id));
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java index 7bbceb9..1342994 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java
@@ -247,7 +247,6 @@ ChromeAccessibilityUtil.get().setAccessibilityEnabledForTesting(false); ChromeAccessibilityUtil.get().setTouchExplorationEnabledForTesting(false); ReadingListUtils.setReadingListSupportedForTesting(null); - ChromeFeatureList.sTabSelectionEditorV2.setForTesting(null); ShoppingFeatures.setShoppingListEligibleForTesting(null); } @@ -255,7 +254,6 @@ setBookmarkItemRowEnabled(false); setShoppingListItemRowEnabled(false); setDesktopSiteExceptionsEnabled(false); - setTabSelectionEditorV2Enabled(false); setWebApkUniqueIdEnabled(false); FeatureList.setTestValues(mTestValues); } @@ -279,11 +277,6 @@ ContentFeatureList.REQUEST_DESKTOP_SITE_EXCEPTIONS, enabled); } - private void setTabSelectionEditorV2Enabled(boolean enabled) { - mTestValues.addFeatureFlagOverride(ChromeFeatureList.TAB_SELECTION_EDITOR_V2, enabled); - ChromeFeatureList.sTabSelectionEditorV2.setForTesting(enabled); - } - private void setWebApkUniqueIdEnabled(boolean enabled) { mTestValues.addFeatureFlagOverride(ChromeFeatureList.WEB_APK_UNIQUE_ID, enabled); } @@ -535,14 +528,7 @@ @Test @Config(qualifiers = "sw320dp") - public void testOverviewMenuItems_Phone_GroupTabs() { - checkOverviewMenuItemsPhone(R.id.menu_group_tabs); - } - - @Test - @Config(qualifiers = "sw320dp") public void testOverviewMenuItems_Phone_SelectTabs() { - setTabSelectionEditorV2Enabled(true); checkOverviewMenuItemsPhone(R.id.menu_select_tabs); } @@ -902,24 +888,7 @@ @Test @SmallTest - public void testGroupTabsOption_IsEnabled_InIncognitoMode_When_IncognitoReauthIsNotShowing() { - Menu menu = setUpMenuWithIncognitoReauthPage(/*isShowing=*/false); - MenuItem item = menu.findItem(R.id.menu_group_tabs); - assertTrue(item.isEnabled()); - } - - @Test - @SmallTest - public void testGroupTabsOption_IsDisabled_InIncognitoMode_When_IncognitoReauthIsShowing() { - Menu menu = setUpMenuWithIncognitoReauthPage(/*isShowing=*/true); - MenuItem item = menu.findItem(R.id.menu_group_tabs); - assertFalse(item.isEnabled()); - } - - @Test - @SmallTest public void testSelectTabsOption_IsEnabled_InIncognitoMode_When_IncognitoReauthIsNotShowing() { - setTabSelectionEditorV2Enabled(true); Menu menu = setUpMenuWithIncognitoReauthPage(/*isShowing=*/false); MenuItem item = menu.findItem(R.id.menu_select_tabs); assertTrue(item.isEnabled()); @@ -928,7 +897,6 @@ @Test @SmallTest public void testSelectTabsOption_IsDisabled_InIncognitoMode_When_IncognitoReauthIsShowing() { - setTabSelectionEditorV2Enabled(true); Menu menu = setUpMenuWithIncognitoReauthPage(/*isShowing=*/true); MenuItem item = menu.findItem(R.id.menu_select_tabs); assertFalse(item.isEnabled()); @@ -936,39 +904,7 @@ @Test @SmallTest - public void testGroupTabsOption_IsEnabled_InRegularMode_IndependentOfIncognitoReauth() { - setUpMocksForOverviewMenu(LayoutType.TAB_SWITCHER); - when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel); - prepareMocksForGroupTabsOnTabModel(mTabModel); - - Menu menu = createTestMenu(); - mAppMenuPropertiesDelegate.prepareMenu(menu, null); - // Check group tabs enabled decision in regular mode doesn't depend on re-auth. - verify(mIncognitoReauthControllerMock, times(0)).isReauthPageShowing(); - - MenuItem item = menu.findItem(R.id.menu_group_tabs); - assertTrue(item.isEnabled()); - } - - @Test - @SmallTest - public void testGroupTabsOption_IsDisabled_InRegularMode_IndependentOfIncognitoReauth() { - setUpMocksForOverviewMenu(LayoutType.TAB_SWITCHER); - when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel); - - Menu menu = createTestMenu(); - mAppMenuPropertiesDelegate.prepareMenu(menu, null); - // Check group tabs enabled decision in regular mode doesn't depend on re-auth. - verify(mIncognitoReauthControllerMock, times(0)).isReauthPageShowing(); - - MenuItem item = menu.findItem(R.id.menu_group_tabs); - assertFalse(item.isEnabled()); - } - - @Test - @SmallTest public void testSelectTabsOption_IsEnabled_InRegularMode_IndependentOfIncognitoReauth() { - setTabSelectionEditorV2Enabled(true); setUpMocksForOverviewMenu(LayoutType.TAB_SWITCHER); when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel); prepareMocksForGroupTabsOnTabModel(mTabModel); @@ -985,7 +921,6 @@ @Test @SmallTest public void testSelectTabsOption_IsEnabledOneTab_InRegularMode_IndependentOfIncognitoReauth() { - setTabSelectionEditorV2Enabled(true); setUpMocksForOverviewMenu(LayoutType.TAB_SWITCHER); when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel); when(mTabModelFilter.getTabModel()).thenReturn(mTabModel); @@ -1006,7 +941,6 @@ @Test @SmallTest public void testSelectTabsOption_IsDisabled_InRegularMode_IndependentOfIncognitoReauth() { - setTabSelectionEditorV2Enabled(true); setUpMocksForOverviewMenu(LayoutType.TAB_SWITCHER); when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel);
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 561a8ba6..9e1eaab 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -697,6 +697,7 @@ <translation id="1593594475886691512">ቅርጸት በመስራት ላይ...</translation> <translation id="159359590073980872">የምስል መሸጎጫ</translation> <translation id="1593926297800505364">የመክፈያ ዘዴን አስቀምጥ</translation> +<translation id="1594703455918849716">ወደ ፍተሻ ገጽ ይሂዱ</translation> <translation id="1595492813686795610">Linux እያላቀ ነው</translation> <translation id="1596286373007273895">ይገኛል</translation> <translation id="1596709061955594992">ብሉቱዝ ጠፍቷል። ያሉትን መሳሪያዎች ለማየት ብሉቱዝን ያብሩ።</translation> @@ -1688,6 +1689,7 @@ <translation id="2399699884460174994">ማሳወቂያዎች በርተዋል</translation> <translation id="2399939490305346086">የደህንነት ቁልፍ በመለያ መግቢያ ውሂብ</translation> <translation id="2400664245143453337">አስቸኳይ ዝማኔ ያስፈልጋል</translation> +<translation id="2402226831639195063">ድምጾች</translation> <translation id="2406153734066939945">ይህ መገለጫ እና ውሂቡ ይሰረዝ?</translation> <translation id="2408018932941436077">ካርድን በማስቀመጥ ላይ</translation> <translation id="2408955596600435184">የእርስዎን ፒን ያስገቡ</translation> @@ -1699,6 +1701,7 @@ <translation id="241082044617551207">ያልታወቀ ተሰኪ</translation> <translation id="2410940059315936967">እርስዎ የሚጎበኙት ጣቢያ ከሌሎች ጣቢያዎች ይዘት መክተት ይችላል ለምሳሌ፣ ምስሎች፣ ማስታወቂያዎች እና ጽሑፍ። በእነዚህ ሌሎች ጣቢያዎች የተቀናበሩ ኩኪዎች የሦስተኛ ወገን ኩኪዎች ይባላሉ።</translation> <translation id="2411666601450687801">በዚህ መሣሪያ ላይ ምንም ምናባዊ ማሽኖች የሉም</translation> +<translation id="2412015533711271895">የእርስዎ ወላጅ ወይም ጠባቂ እርስዎ ይህን ቅጥያ መጠቀምዎ ችግር እንደሌለው መናገር አለባቸው</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">ጨለማ</translation> <translation id="2416435988630956212">የቁልፍ ሰሌዳ ተግባር ቁልፎች</translation> @@ -3081,6 +3084,7 @@ <translation id="3651488188562686558">ከWi-Fi ግንኙነት አቋርጥ</translation> <translation id="3652817283076144888">በማስጀመር ላይ</translation> <translation id="3653160965917900914">የአውታረ መረብ ፋይል ማጋራቶች</translation> +<translation id="3653887973853407813">ይህን ቅጥያ መጠቀም አይችሉም። የእርስዎ ወላጅ ወይም ጠባቂ ለChrome «የጣቢያዎች፣ መተግበሪያዎች እና ቅጥያዎች ፈቃዶች»ን አጥፍቷል።</translation> <translation id="3653999333232393305"><ph name="HOST" />ን የማይክሮፎንዎን መዳረሻ መፍቀዱን ይቀጥሉ</translation> <translation id="3654045516529121250">የተደራሽነት ቅንብሮችዎን ያነብባል</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{ወደ አንድ ፋይል ቋሚ መዳረሻ አለው።}one{ወደ # ፋይሎች ቋሚ መዳረሻ አለው።}other{ወደ # ፋይሎች ቋሚ መዳረሻ አለው።}}</translation> @@ -5150,6 +5154,7 @@ <translation id="5517304475148761050">ይህ መተግበሪያ የPlay መደብር መዳረሻ ያስፈልገዋል</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">አንድ ጣቢያ ወደ ቅንጥብ ሰሌዳ የተቀዱትን ጽሁፍ እና ምስሎች መመልከት ሲፈልግ ይጠይቅ</translation> +<translation id="5518949581554491184">በAndroid ስልክ ያዋቅሩ</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">የጠበቁት የመነሻ ገጽ ይሄ ነው?</translation> <translation id="5522156646677899028">ይህ ቅጥያ ከባድ የደህንነት ተጋላጭነት ያካትታል።</translation> @@ -6485,6 +6490,7 @@ <translation id="6725206449694821596">የበይነመረብ ህትመት ፕሮቶኮል (አይፒፒፒ)</translation> <translation id="6725970970008349185">በገጽ የሚታዩ የእጩዎች ብዛት</translation> <translation id="672609503628871915">ምን አዲስ ነገር እንዳለ ይመልከቱ</translation> +<translation id="6726800386221816228">ልዩ ቁምፊዎች</translation> <translation id="67269783048918309">የአጠቃቀም እና የምርመራ ውሂብ ይላኩ። ይህ መሣሪያ በአሁኑ ጊዜ በራስ-ሰር የምርመራ፣ የመሣሪያ እና የመተግበሪያ አጠቃቀም ውሂብ ወደ Google እየላከ ነው። ይህ ልጅዎን ለመለየት ስራ ላይ አይውልም፣ እና የስርዓት እና የመተግበሪያ እርጋታን እና ሌሎች ማሻሻያዎችን ያግዛል። አንዳንድ ውሑድ ውሂብ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮችን ያግዛሉ። ይህ <ph name="BEGIN_LINK1" />ቅንብር<ph name="END_LINK1" /> በባለቤቱ ተፈጻሚ ይደረጋል። የተጨማሪ የድር እና መተግበሪያ እንቅስቃሴ ቅንብር ለልጅዎ በርቶ ከሆነ ይህ ውሂብ ወደ የGoogle መለያቸው ሊቀመጥ ይችላል። <ph name="BEGIN_LINK2" />የበለጠ ለመረዳት<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">በ<ph name="LAST_FOUR_DIGITS" /> የሚያበቃ አይ ቢ ኤ ኤን</translation> <translation id="6729192290958770680">የተጠቃሚ ስምዎን ያስገቡ</translation> @@ -6887,6 +6893,7 @@ <translation id="7063129466199351735">አቋራጮች በመስራት ላይ...</translation> <translation id="7063311912041006059">ከመጠይቅ ይልቅ <ph name="SPECIAL_SYMBOL" /> ያለው ዩአርኤል</translation> <translation id="706342288220489463">የእርስዎ ረዳት እንዲያግዝ በማያ ገጽዎ ላይ ያለ መረጃን እንዲጠቀም ይፍቀዱለት</translation> +<translation id="70641621694466590">ወደ የይለፍ ቃላት ገጽ ይሂዱ</translation> <translation id="7064734931812204395">የLinux መያዣውን በማዋቀር ላይ። ይህ እስከ 30 ደቂቃ ሊወስድ ይችላል።</translation> <translation id="7065223852455347715">ይህ መሣሪያ የድርጅት ምዝገባን በሚከላከል ሁነታ ተቆልፏል። መሣሪያውን ማስመዘገብ ከፈለጉ በመጀመሪያ ወደ የጠፋ መሣሪያ ማግኛ መሄድ ያስፈልግዎታል።</translation> <translation id="7065534935986314333">ስለስርዓቱ</translation> @@ -7388,6 +7395,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> ከ<ph name="APP_NAME" /> መተግበሪያ</translation> <translation id="754207240458482646">በመለያዎ ላይ ካሉ ሌሎች መሣሪያዎች ጋር ሰምሯል። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation> <translation id="7543104066686362383">በዚህ የ<ph name="IDS_SHORT_PRODUCT_NAME" /> መሣሪያ ላይ የማረሚያ ባህሪያትን ያንቁ</translation> +<translation id="7544977292347272434">ወላጅዎ ቅጥያ እንዲፈቅድ ይጠይቁ</translation> <translation id="7545466883021407599">ከአገልጋዩ ጋር መገናኘት አልተቻለም። የአውታረ መረብ ግንኙነትዎን ይፈትሹ እና እንደገና ይሞክሩ። አሁንም ችግር እያጋጠምዎት ከሆነ የእርስዎን Chromebook እንደገና ለመጀመር ይሞክሩ። የስህተት ኮድ፦ <ph name="ERROR_CODE" />።</translation> <translation id="7547317915858803630">ማስጠንቀቂያ፦ የ<ph name="PRODUCT_NAME" /> ቅንብሮችዎ በአውታረ መረብ አንጻፊ ላይ ነው የተከማቹት። ይሄ ማንቀራፈፍ፣ ብልሽቶች እና እንዲያውም የውሂብ መጥፋት ሊያስከትል ይችላል።</translation> <translation id="7548856833046333824">የሎሚ ጭማቂ</translation> @@ -7616,6 +7624,7 @@ <translation id="7728668285692163452">የሰርጥ ለውጥ በኋላ ላይ ነው የሚተገበረው</translation> <translation id="7730449930968088409">የእርስዎ ማያ ገጽ ይዘት ይቀርጻል</translation> <translation id="7730683939467795481">ይህ ገጽ በ «<ph name="EXTENSION_NAME" />» ቅጥያ ነበር የተለወጠዉ</translation> +<translation id="773511996612364297">የአጽንዖት ምልክቶች</translation> <translation id="7735165285389721951">ሌላ የSteam ውቅረት በማሄድ ላይ ነው። እባክዎ እንደገና ከመሞከርዎ በፊት እስኪጨርስ ድረስ ይጠብቁት</translation> <translation id="7737115349420013392">ከ«<ph name="DEVICE_NAME" />» ጋር በማጣመር ላይ ...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> መመሪያ ተቀባይነት አግኝቷል</translation> @@ -7698,6 +7707,7 @@ <translation id="7792388396321542707">ማጋራት አቁም</translation> <translation id="779308894558717334">ፈካ ያለ አረንጓዴ</translation> <translation id="7793098747275782155">ጠቆር ያለ ሰማያዊ</translation> +<translation id="7796453472368605346">የንባብ ምልክቶች</translation> <translation id="7797571222998226653">ጠፍቷል</translation> <translation id="7798504574384119986">የድር ፈቃዶችን ተመልከት</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> በራስ-ሰር ታግዷል</translation> @@ -7782,6 +7792,7 @@ <translation id="7876027585589532670">አቋራጭን ማርትዕ አልተቻለም</translation> <translation id="7877451762676714207">ያልታወቀ የአገልጋይ ስህተት። እባክዎ እንደገና ይሞክሩ ወይም የአገልጋይ አስተዳዳሪውን ያግኙ።</translation> <translation id="7878945852730162014">እነሱ ሲያወርዱ ፋይሎችን ያስተዳድሩ እና ሲጨርሱ ይክፈቷቸው</translation> +<translation id="7879172417209159252">ቅጥያን መጠቀም አልተቻለም</translation> <translation id="7879478708475862060">የግቤት ሁነታን ተከተል</translation> <translation id="7879631849810108578">የአቋራጭ ስብስብ፦ <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">ዳግም ሲያስነሱ አካባቢያዊ ውሂብ ይሰረዛል</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index d9b56314..aeadbc0 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">تجري التهيئة...</translation> <translation id="159359590073980872">ذاكرة التخزين المؤقت للصور</translation> <translation id="1593926297800505364">حفظ طريقة الدفع</translation> +<translation id="1594703455918849716">الانتقال إلى صفحة "عمليات التحقّق من كلمات المرور"</translation> <translation id="1595492813686795610">جارٍ ترقية Linux</translation> <translation id="1596286373007273895">متوفِّر</translation> <translation id="1596709061955594992">تم إيقاف اتصال البلوتوث. يُرجى تفعيل اتصال البلوتوث لرؤية الأجهزة المتاحة.</translation> @@ -1240,7 +1241,7 @@ <translation id="2048554637254265991">حدث خطأ في تشغيل مدير الحاويات. يُرجى إعادة المحاولة.</translation> <translation id="2048653237708779538">الإجراء غير متاح</translation> <translation id="204914487372604757">إنشاء اختصار</translation> -<translation id="2050339315714019657">رأسي</translation> +<translation id="2050339315714019657">عمودي</translation> <translation id="2051555741181591333">إيقاف نقطة الاتصال تلقائيًا</translation> <translation id="2052572566310583903">التطبيق مثبَّت على أجهزتك الأخرى.</translation> <translation id="2053105195397337973">نستكشف طرقًا للحد من تتبّع البيانات ونشاط التصفّح، مع السماح للمواقع الإلكترونية بحظر الرسائل الإعلانية غير المرغوب فيها ومنع الاحتيال.</translation> @@ -1683,6 +1684,7 @@ <translation id="2399699884460174994">تم تفعيل الإشعارات</translation> <translation id="2399939490305346086">بيانات تسجيل الدخول على مفتاح الأمان</translation> <translation id="2400664245143453337">مطلوب التحديث فورًا</translation> +<translation id="2402226831639195063">النبرات</translation> <translation id="2406153734066939945">هل تريد حذف هذا الملف الشخصي وكل بياناته؟</translation> <translation id="2408018932941436077">جارٍ حفظ البطاقة</translation> <translation id="2408955596600435184">إدخال رقم التعريف الشخصي</translation> @@ -1694,6 +1696,7 @@ <translation id="241082044617551207">مكوّن إضافي غير محدّد</translation> <translation id="2410940059315936967">يمكن للموقع الإلكتروني الذي تنتقل إليه أن يضمِّن محتوى من مواقع إلكترونية أخرى، مثل الصور والإعلانات والنصوص. ويُطلق على ملفات تعريف الارتباط التي تضبطها هذه المواقع الإلكترونية الأخرى اسم "ملفات تعريف الارتباط التابعة لجهات خارجية".</translation> <translation id="2411666601450687801">لا يُسمح باستخدام أجهزة افتراضية على هذا الجهاز.</translation> +<translation id="2412015533711271895">يجب أن يوافق الوصي عليك أو أحد والدَيك على استخدام هذه الإضافة.</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">داكن</translation> <translation id="2416435988630956212">مفاتيح الوظائف على لوحة المفاتيح</translation> @@ -3022,6 +3025,7 @@ <translation id="3609277884604412258">بحث سريع</translation> <translation id="3610241585790874201">المواقع الإلكترونية غير المسموح لها بحفظ البيانات على جهازك</translation> <translation id="3610369246614755442">تحتاج مروحة تبريد محطة الإرساء إلى الصيانة.</translation> +<translation id="3610961622607302617">تغيير كلمة مرور <ph name="WEBSITE" /></translation> <translation id="361106536627977100">بيانات فلاش</translation> <translation id="3611655097742243705">يمكنك الانتقال إلى "متجر Play" للعثور على المزيد من التطبيقات.</translation> <translation id="3611658447322220736">السماح للمواقع الإلكترونية التي تم إغلاقها مؤخرًا بإنهاء إرسال البيانات واستلامها</translation> @@ -3078,6 +3082,7 @@ <translation id="3651488188562686558">قطع الاتصال بشبكة Wi-Fi</translation> <translation id="3652817283076144888">تجري التهيئة</translation> <translation id="3653160965917900914">مشاركات ملفات الشبكة</translation> +<translation id="3653887973853407813">لا يمكنك استخدام هذه الإضافة. أوقف أحد والدَيك أو الوصي عليك "الأذونات اللازمة للمواقع الإلكترونية والتطبيقات والإضافات" لمتصفِّح Chrome.</translation> <translation id="3653999333232393305">مواصلة السماح لـ <ph name="HOST" /> بالدخول إلى الميكروفون</translation> <translation id="3654045516529121250">الاطّلاع على إعدادات إمكانية الوصول</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{لديه الإذن بالوصول الدائم إلى ملف واحد.}zero{لديه الإذن بالوصول الدائم إلى # من الملفات.}two{لديه الإذن بالوصول الدائم إلى ملفين (#).}few{ لديه الإذن بالوصول الدائم إلى # ملفات.}many{لديه الإذن بالوصول الدائم إلى # ملفًا.}other{لديه الإذن بالوصول الدائم إلى # من الملفات.}}</translation> @@ -5147,6 +5152,7 @@ <translation id="5517304475148761050">يتطلّب هذا التطبيق الوصول إلى "متجر Play"</translation> <translation id="5517412723934627386">نوع الشبكة <ph name="NETWORK_TYPE" /> - الاسم المعروض للشبكة <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">طلب الإذن عند محاولة أحد المواقع الاطلاع على النصوص والصور التي تم نسختها إلى الحافظة</translation> +<translation id="5518949581554491184">بدء الإعداد باستخدام هاتف Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">هل هذه هي الصفحة الرئيسية التي كنت تتوقع ظهورها؟</translation> <translation id="5522156646677899028">هذه الإضافة تحتوي على ثغرة أمنية خطيرة.</translation> @@ -6036,6 +6042,7 @@ <translation id="6318125393809743217">إدراج ملف policies.json في إعدادات السياسة</translation> <translation id="6318407754858604988">بدأ التنزيل</translation> <translation id="6318944945640833942">تعذّر العثور على طابعة. يُرجى إدخال عنوان الطابعة مرة أخرى.</translation> +<translation id="6320808462673705899">ما مِن إشارات مرجعية تتطابق مع طلب بحثك.</translation> <translation id="6322370287306604163">فتح القفل بشكل أسرع من خلال بصمة الإصبع</translation> <translation id="6322559670748154781">هذا الملف لا يتم تنزيله عادةً، وقد تم حظره من خلال "الحماية المتقدّمة".</translation> <translation id="6324916366299863871">تعديل الاختصار</translation> @@ -6488,6 +6495,7 @@ <translation id="6725206449694821596">بروتوكول الطباعة على الإنترنت (IPP)</translation> <translation id="6725970970008349185">عدد المرشحين المراد عرضهم لكل صفحة</translation> <translation id="672609503628871915">تعرف على الجديد</translation> +<translation id="6726800386221816228">الرموز الخاصة</translation> <translation id="67269783048918309">يمكنك إرسال بيانات الاستخدام والتشخيص. يرسل هذا الجهاز حاليًا بيانات استخدام التطبيق والجهاز والتشخيص تلقائيًا إلى Google. لن يتم استخدام ذلك لتعريف حسابك الفرعي وسيساعد في استقرار عمل النظام والتطبيقات، بالإضافة إلى التحسينات الأخرى. كما ستساعد بعض البيانات المجمّعة تطبيقات Google وشركائها، مثل مطوّري برامج نظام التشغيل Android. ويفرض المالك هذا <ph name="BEGIN_LINK1" />الإعداد<ph name="END_LINK1" />. في حال تفعيل إعداد "النشاط الإضافي على الويب وفي التطبيقات" لحسابك الفرعي، قد يتم حفظ هذه البيانات في حسابك على Google. <ph name="BEGIN_LINK2" />مزيد من المعلومات<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">رقم الحساب بصيغة IBAN الذي ينتهي بـ <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">أدخِل اسم المستخدم.</translation> @@ -6890,6 +6898,7 @@ <translation id="7063129466199351735">معالجة الاختصارات...</translation> <translation id="7063311912041006059">عنوان URL الذي يحتوي على <ph name="SPECIAL_SYMBOL" /> بدلاً من طلب البحث</translation> <translation id="706342288220489463">السماح لخدمة "مساعد Google" باستخدام المعلومات التي تظهر على الشاشة لتقديم المساعدة</translation> +<translation id="70641621694466590">الانتقال إلى صفحة "كلمات المرور"</translation> <translation id="7064734931812204395">جارٍ إعداد حاوية نظام التشغيل Linux. قد تستغرق عملية الإعداد ما يصل إلى 30 دقيقة.</translation> <translation id="7065223852455347715">تم قفل هذا الجهاز في وضع يمنع التسجيل في المؤسسة. إذا كنت ترغب في تسجيل الجهاز، ينبغي تنفيذ إجراءات استرداد الجهاز أولاً.</translation> <translation id="7065534935986314333">لمحة عن النظام</translation> @@ -7391,6 +7400,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> في التطبيق <ph name="APP_NAME" /></translation> <translation id="754207240458482646">تمت مزامنة الشبكة مع أجهزة أخرى على حسابك. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation> <translation id="7543104066686362383">تفعيل ميزات تصحيح الأخطاء على جهاز <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="7544977292347272434">اطلب من أحد والدَيك السماح بتثبيت الإضافة</translation> <translation id="7545466883021407599">تعذَّر الاتصال بالخادم. يُرجى التحقُّق من اتصال الشبكة ثم إعادة المحاولة. إذا كنت لا تزال تواجه مشكلة، يُرجى إعادة تشغيل جهاز Chromebook. رمز الخطأ: <ph name="ERROR_CODE" /></translation> <translation id="7547317915858803630">تحذير: إعدادات <ph name="PRODUCT_NAME" /> مخزنة على محرك أقراص شبكة. قد يؤدي هذا إلى حدوث مشاكل بطء أو أعطال أو حتى فقدان البيانات.</translation> <translation id="7548856833046333824">الليمون</translation> @@ -7619,6 +7629,7 @@ <translation id="7728668285692163452">سيتم تطبيق تغييرات القناة في وقت لاحق</translation> <translation id="7730449930968088409">التقاط محتوى الشاشة</translation> <translation id="7730683939467795481">غيّرَت الإضافة "<ph name="EXTENSION_NAME" />" هذه الصفحة.</translation> +<translation id="773511996612364297">العلامات الصوتية</translation> <translation id="7735165285389721951">يتم حاليًا إجراء عملية إعداد أخرى لتطبيق Steam. يُرجى الانتظار حتى اكتمالها قبل إعادة المحاولة.</translation> <translation id="7737115349420013392">جارٍ الإقران مع "<ph name="DEVICE_NAME" />" ...</translation> <translation id="7737203573077018777">تم تلقي تعليمات "<ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" />".</translation> @@ -7701,6 +7712,7 @@ <translation id="7792388396321542707">إيقاف المشاركة</translation> <translation id="779308894558717334">أخضر فاتح</translation> <translation id="7793098747275782155">أزرق داكن</translation> +<translation id="7796453472368605346">علامات التشكيل</translation> <translation id="7797571222998226653">غير مفعّل</translation> <translation id="7798504574384119986">عرض أذونات الويب</translation> <translation id="7798844538707273832">تم حظر إذن <ph name="PERMISSION" /> تلقائيًا.</translation> @@ -7785,6 +7797,7 @@ <translation id="7876027585589532670">يتعذَّر تعديل الاختصار.</translation> <translation id="7877451762676714207">خطأ غير معروف في الخادم. يُرجى إعادة المحاولة أو الاتصال بمشرف الخادم.</translation> <translation id="7878945852730162014">يمكنك إدارة الملفات أثناء تنزيلها، وفتحها عند الانتهاء من التنزيل.</translation> +<translation id="7879172417209159252">لا يمكن استخدام الإضافة</translation> <translation id="7879478708475862060">متابعة وضع الإدخال</translation> <translation id="7879631849810108578">تم إعداد الاختصار: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">سيتم حذف البيانات المحلية عند إعادة التشغيل.</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 6a054b2..5d8be0e 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -692,6 +692,7 @@ <translation id="1593594475886691512">Format olunur...</translation> <translation id="159359590073980872">Təsvir keşi</translation> <translation id="1593926297800505364">Ödəniş üsulunu yadda saxlayın</translation> +<translation id="1594703455918849716">Yoxlama səhifəsinə keçin</translation> <translation id="1595492813686795610">Linux güncəllənir</translation> <translation id="1596286373007273895">Əlçatan</translation> <translation id="1596709061955594992">Bluetooth deaktivdir. Əlçatan cihazları görmək üçün Bluetooth'u aktiv edin.</translation> @@ -1678,6 +1679,7 @@ <translation id="2399699884460174994">Bildirişlər aktiv edildi</translation> <translation id="2399939490305346086">Təhlükəsizlik açarının giriş datası</translation> <translation id="2400664245143453337">Dərhal güncəlləmə tələb edilir</translation> +<translation id="2402226831639195063">Tonlar</translation> <translation id="2406153734066939945">Bu profil və datası silinsin?</translation> <translation id="2408018932941436077">Kart yadda saxlanılır</translation> <translation id="2408955596600435184">PİN kodunuzu daxil edin</translation> @@ -1689,6 +1691,7 @@ <translation id="241082044617551207">Naməlum plaqin</translation> <translation id="2410940059315936967">Baxdığınız sayt şəkillər, reklamlar və mətn kimi digər saytlardan məzmunu daxil edə bilər. Digər saytlar tərəfindən təyin olunan kukilərə üçüncü tərəf kukiləri deyilir.</translation> <translation id="2411666601450687801">Bu cihazda Virtual Mexanizmlərə icazə verilmir</translation> +<translation id="2412015533711271895">Valideyn və ya qəyyum bu artırmadan istifadəni təsdiq etməlidir</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Qara</translation> <translation id="2416435988630956212">Klaviaturanın funksiya düymələri</translation> @@ -3015,6 +3018,7 @@ <translation id="3609277884604412258">Cəld axtarış</translation> <translation id="3610241585790874201">Cihazınızda məlumat saxlanmasına icazə verilmir</translation> <translation id="3610369246614755442">Dok havalandırması texniki baxışdan keçirilməlidir</translation> +<translation id="3610961622607302617"><ph name="WEBSITE" /> üçün parolu dəyişin</translation> <translation id="361106536627977100">Flaş data</translation> <translation id="3611655097742243705">Daha çox tətbiq tapmaq üçün Play Marketə baş çəkin</translation> <translation id="3611658447322220736">Son qapadılan saytlar data göndərilməsi və qəbulunu bitirə bilər</translation> @@ -3071,6 +3075,7 @@ <translation id="3651488188562686558">Wi-Fi şəbəkəsindən ayrıldı</translation> <translation id="3652817283076144888">Başladılır</translation> <translation id="3653160965917900914">Şəbəkə fayl paylaşımları</translation> +<translation id="3653887973853407813">Bu artırmadan istifadə edə bilməzsiniz. Valideyn və ya qəyyum Chrome üçün "Sayt, tətbiq və artırmalar üzrə icazələr" seçimini deaktiv edib.</translation> <translation id="3653999333232393305"><ph name="HOST" /> saytına mikrofonunuza girməyə icazə verin</translation> <translation id="3654045516529121250">Əlçatımlılıq ayarlarını oxuyun</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Bir fayla daimi girişi var.}other{# fayla daimi girişi var.}}</translation> @@ -5140,6 +5145,7 @@ <translation id="5517304475148761050">Bu tətbiq Play Marketə giriş tələb edir</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Sayt bufere kopyalanan mətn və şəkilləri görmək istədiyində icazə tələb edilsin</translation> +<translation id="5518949581554491184">Android telefonu ilə ayarlayın</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Gözlədiyiniz ana səhifə budur?</translation> <translation id="5522156646677899028">Bu artırmanın ciddi güvənlik problemləri var.</translation> @@ -6027,6 +6033,7 @@ <translation id="6318125393809743217">Siyasət konfiqurasiyalarına policies.json faylını daxil edin.</translation> <translation id="6318407754858604988">Endirmə başladı</translation> <translation id="6318944945640833942">Printer aşkarlanmadı. Printer ünvanını yenidən daxil edin.</translation> +<translation id="6320808462673705899">Axtarışa uyğun əlfəcin yoxdur.</translation> <translation id="6322370287306604163">Barmaq izi ilə daha sürətli kiliddən çıxarın</translation> <translation id="6322559670748154781">Bu fayl tez-tez endirilmədiyinə görə Qabaqcıl Qoruma tərəfindən bloklanıb.</translation> <translation id="6324916366299863871">Qısayola düzəliş edin</translation> @@ -6471,6 +6478,7 @@ <translation id="6725206449694821596">İnternet Çap Protokolu (IPP)</translation> <translation id="6725970970008349185">Hər səhifədə göstəriləcək aday sayı</translation> <translation id="672609503628871915">Yeniliklərə baxın</translation> +<translation id="6726800386221816228">Xüsusi simvollar</translation> <translation id="67269783048918309">İstifadə və diaqnostika datasını göndərin. Bu cihaz hazırda Google'a diaqnostika, cihaz və tətbiq istifadə datasını avtomatik göndərir. Bu, övladınızı müəyyən etmək üçün istifadə edilməyəcək, eyni zamanda, sistem və tətbiq sabitliyi və digər təkmilləşdirmələrə kömək edəcək. Ümumi data, həmçinin, Google tətbiqləri və Android developerləri kimi partnyorlara kömək edəcək. Bu <ph name="BEGIN_LINK1" />ayar<ph name="END_LINK1" /> sahibi tərəfindən tətbiq edilir. Övladınız üçün əlavə Veb və Tətbiq Fəaliyyəti ayarı aktiv edilərsə, həmin data Google hesabında yadda saxlana bilər. <ph name="BEGIN_LINK2" />Ətraflı Məlumat<ph name="END_LINK2" /></translation> <translation id="6728528977475057549"><ph name="LAST_FOUR_DIGITS" /> ilə bitən IBAN</translation> <translation id="6729192290958770680">İstifadəçi adınızı daxil edin</translation> @@ -6873,6 +6881,7 @@ <translation id="7063129466199351735">Qısayollar icra olunur...</translation> <translation id="7063311912041006059">Sorğu yerində <ph name="SPECIAL_SYMBOL" /> ilə link</translation> <translation id="706342288220489463">Assistentinizin kömək etmək üçün ekranınızdakı məlumatdan istifadə etməsinə icazə verin</translation> +<translation id="70641621694466590">Parol səhifəsinə keçin</translation> <translation id="7064734931812204395">Linux konteyneri konfiqurasiya edilir. Bu, 30 dəqiqəyə qədər vaxt apara bilər.</translation> <translation id="7065223852455347715">Müəssisə qeydiyyatının qarşısını alan rejimdə cihaz kilidlənib. Cihazı qeydiyyat etmək istəsəniz, əvvəlcə cihaz bərpasından keçməlisiniz.</translation> <translation id="7065534935986314333">Sistem haqqında</translation> @@ -7374,6 +7383,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> Tətbiqi ilə <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">Hesabınızdakı digər cihazlarla sinxronlaşdırılıb. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Bu <ph name="IDS_SHORT_PRODUCT_NAME" /> cihazında debaq funksiyalarına icazə verin</translation> +<translation id="7544977292347272434">Valideyndən artırmaya icazə verməsini istəyin</translation> <translation id="7545466883021407599">Serverə qoşulmaq mümkün olmadı. Şəbəkə bağlantınızı yoxlayıb yenidən cəhd edin. Hələ də problem varsa, Chromebook'u yenidən başladın Xəta kodu: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Xəbərdarlıq: <ph name="PRODUCT_NAME" /> ayarlarınız şəbəkə diskində saxlanılır. Bu, işin yavaşlamasına, qəzaya və hətta datanın itməsinə gətirə bilər.</translation> <translation id="7548856833046333824">Limonad</translation> @@ -7602,6 +7612,7 @@ <translation id="7728668285692163452">Kanal dəyişikliyi daha sonra tətbiq ediləcək</translation> <translation id="7730449930968088409">Ekran kontentinizi kəsin</translation> <translation id="7730683939467795481">Bu səhifə "<ph name="EXTENSION_NAME" />" artırması tərəfindən dəyişdirilib</translation> +<translation id="773511996612364297">Vurğu işarələri</translation> <translation id="7735165285389721951">Başqa Steam ayarlaması icra olunur. Yenidən cəhd etməzdən əvvəl onun tamamlanmasını gözləyin</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" ilə birləşdirilir ...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> təlimatı alınıb</translation> @@ -7684,6 +7695,7 @@ <translation id="7792388396321542707">Paylaşımı dayandırın</translation> <translation id="779308894558717334">Açıq-yaşıl</translation> <translation id="7793098747275782155">Tünd-mavi</translation> +<translation id="7796453472368605346">Diakritiklər</translation> <translation id="7797571222998226653">Deaktiv</translation> <translation id="7798504574384119986">Veb İcazələrinə Baxın</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> avtomatik bloklanıb</translation> @@ -7768,6 +7780,7 @@ <translation id="7876027585589532670">Qısayolu redaktə etmək olmur</translation> <translation id="7877451762676714207">Naməlum server xətası. Lütfən, yenidən cəhd edin vəya server administratoru ilə əlaqə saxlayın.</translation> <translation id="7878945852730162014">Endirilən kimi faylları idarə edin və hazır olduqda açın</translation> +<translation id="7879172417209159252">Artırmadan istifadə etmək olmur</translation> <translation id="7879478708475862060">Daxiletmə rejimini izləyin</translation> <translation id="7879631849810108578">Qısayol ayarlanıb: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Yenidən başlatma zamanı lokal data silinəcək</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index 4f55def..cfa193c 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -696,6 +696,7 @@ <translation id="1593594475886691512">Форматира се...</translation> <translation id="159359590073980872">Кеш за изображения</translation> <translation id="1593926297800505364">Запазване на начина на плащане</translation> +<translation id="1594703455918849716">Към страницата „Проверка“</translation> <translation id="1595492813686795610">Извършва се надстройване на Linux</translation> <translation id="1596286373007273895">Налице</translation> <translation id="1596709061955594992">Функцията за Bluetooth е изключена. Включете я, за да видите наличните устройства.</translation> @@ -1690,6 +1691,7 @@ <translation id="2399699884460174994">Известията са включени</translation> <translation id="2399939490305346086">Данни за вход от ключа за сигурност</translation> <translation id="2400664245143453337">Изисква се незабавна актуализация</translation> +<translation id="2402226831639195063">Звуци</translation> <translation id="2406153734066939945">Този потребителски профил и данните му да се изтрият ли?</translation> <translation id="2408018932941436077">Картата се запазва</translation> <translation id="2408955596600435184">Въведете своя ПИН</translation> @@ -1701,6 +1703,7 @@ <translation id="241082044617551207">Неизвестна приставка</translation> <translation id="2410940059315936967">В посетен от вас сайт може да има вградено съдържание от други сайтове, като например изображения, реклами и текст. „Бисквитките“, зададени от другите сайтове, се наричат „бисквитки“ на трети страна.</translation> <translation id="2411666601450687801">На това устройство няма разрешени виртуални машини</translation> +<translation id="2412015533711271895">Родителят или настойникът ви трябва да одобрят използването на това разширение от ваша страна</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Тъмно</translation> <translation id="2416435988630956212">Функционални клавиши на клавиатурата</translation> @@ -3027,6 +3030,7 @@ <translation id="3609277884604412258">Бързо търсене</translation> <translation id="3610241585790874201">Без разрешение за запазване на данни на устройството ви</translation> <translation id="3610369246614755442">Вентилаторът на докинг станцията трябва да бъде обслужен</translation> +<translation id="3610961622607302617">Промяна на паролата за <ph name="WEBSITE" /></translation> <translation id="361106536627977100">Данни на Flash</translation> <translation id="3611655097742243705">Посетете Google Play Магазин, за да намерите още приложения</translation> <translation id="3611658447322220736">Наскоро затворените сайтове могат да завършат изпращането и получаването на данни</translation> @@ -3083,6 +3087,7 @@ <translation id="3651488188562686558">прекрати връзката си с Wi-Fi</translation> <translation id="3652817283076144888">Подготвя се за работа</translation> <translation id="3653160965917900914">Споделени хранилища в мрежата</translation> +<translation id="3653887973853407813">Не можете да използвате това разширение. Родителят или настойникът ви е изключил настройката „Разрешения за сайтове, приложения и разширения“ за Chrome.</translation> <translation id="3653999333232393305">Достъпът на <ph name="HOST" /> до микрофона ви да продължава да е разрешен</translation> <translation id="3654045516529121250">Четене на настройките ви за достъпност</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Има постоянен достъп до един файл.}other{Има постоянен достъп до # файла.}}</translation> @@ -4101,6 +4106,7 @@ <translation id="4545759655004063573">Не може да се запази поради недостатъчни разрешения. Моля, запазете на друго място.</translation> <translation id="4546308221697447294">Сърфирайте бързо с Google Chrome</translation> <translation id="4546345569117159016">Десен бутон</translation> +<translation id="4546509872654834602"><ph name="SUPERVISED_USER_NAME" /> иска да използва това разширение:</translation> <translation id="4546692474302123343">Гласово въвеждане с Google Асистент</translation> <translation id="4547659257713117923">Няма раздели от други устройства</translation> <translation id="4547672827276975204">Автоматично задаване</translation> @@ -5156,6 +5162,7 @@ <translation id="5517304475148761050">Това приложение изисква достъп до Google Play Магазин</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Извеждане на запитване, когато сайт иска да преглежда текста и изображенията, копирани в буферната памет</translation> +<translation id="5518949581554491184">Настройване посредством телефон с Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Това ли е очакваната от вас начална страница?</translation> <translation id="5522156646677899028">Това разширение съдържа сериозна уязвимост в сигурността.</translation> @@ -6046,6 +6053,7 @@ <translation id="6318125393809743217">Запазване на файл policies.json с конфигурациите на правилата.</translation> <translation id="6318407754858604988">Изтеглянето започна</translation> <translation id="6318944945640833942">Принтерът не бе открит. Моля, въведете отново адреса му.</translation> +<translation id="6320808462673705899">Няма отметки, съответстващи на търсенето ви.</translation> <translation id="6322370287306604163">По-бързо отключване с отпечатък</translation> <translation id="6322559670748154781">Този файл обикновено не се изтегля и бе блокиран от „Разширена защита“</translation> <translation id="6324916366299863871">Редактиране на прекия път</translation> @@ -6490,6 +6498,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Брой на предложенията, които да се показват на страница</translation> <translation id="672609503628871915">Вижте новите неща</translation> +<translation id="6726800386221816228">Специални знаци</translation> <translation id="67269783048918309">Изпращане на данни за употребата и диагностиката. Понастоящем това устройство автоматично изпраща до Google диагностична информация и данни за употребата на устройството и приложенията. Тази информация няма да се използва за идентифициране на детето ви, а ще послужи за подобряване на стабилността на системата и приложенията и др. Някои обобщени данни също така ще подпомогнат приложенията и партньорите на Google, напр. програмистите за Android. Тази <ph name="BEGIN_LINK1" />настройка<ph name="END_LINK1" /> е наложена от собственика. Ако настройката „Допълнителна активност в мрежата и приложенията“ е включена за детето ви, тези данни може да се запазват в профила му в Google. <ph name="BEGIN_LINK2" />Научете повече<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN номер, завършващ на <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Въведете потребителското си име</translation> @@ -6892,6 +6901,7 @@ <translation id="7063129466199351735">Преките пътища се обработват...</translation> <translation id="7063311912041006059">URL адрес с <ph name="SPECIAL_SYMBOL" /> вместо заявка</translation> <translation id="706342288220489463">Разрешаване на Асистент да използва информацията на екрана, за да ви помага</translation> +<translation id="70641621694466590">Към страницата „Пароли“</translation> <translation id="7064734931812204395">Контейнерът за Linux се конфигурира. Това може да отнеме до 30 минути.</translation> <translation id="7065223852455347715">Това устройство е заключено в режим, който не позволява корпоративно записване. Ако искате да го запишете, трябва първо да преминете през процеса на възстановяване.</translation> <translation id="7065534935986314333">Всичко за системата</translation> @@ -7393,6 +7403,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> чрез приложението <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Мрежата е синхронизирана с другите устройства в профила ви. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Активиране на функциите за отстраняване на грешки на това устройство с <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="7544977292347272434">Помолете родителя си да позволи дадено разширение</translation> <translation id="7545466883021407599">Не се установи връзка със сървъра. Проверете връзката си с мрежата и опитайте отново. Ако продължавате да имате проблеми, рестартирайте своя Chromebook. Код на грешката: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Предупреждение: Настройките ви за <ph name="PRODUCT_NAME" /> се съхраняват на мрежов диск. Това може да доведе до забавяния, сривове или дори до загуба на данни.</translation> <translation id="7548856833046333824">Лимонада</translation> @@ -7621,6 +7632,7 @@ <translation id="7728668285692163452">Промяната на канала ще бъде приложена по-късно</translation> <translation id="7730449930968088409">Заснемане на съдържанието на екрана ви</translation> <translation id="7730683939467795481">Тази страница бе променена от разширението <ph name="EXTENSION_NAME" /></translation> +<translation id="773511996612364297">Диакритични знаци</translation> <translation id="7735165285389721951">Извършва се друго настройване на Steam. Изчакайте то да завърши, преди да опитате отново</translation> <translation id="7737115349420013392">Сдвоява се с(ъс) „<ph name="DEVICE_NAME" />“...</translation> <translation id="7737203573077018777">Получена е инструкция за <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /></translation> @@ -7703,6 +7715,7 @@ <translation id="7792388396321542707">Спиране на споделянето</translation> <translation id="779308894558717334">Светлозелено</translation> <translation id="7793098747275782155">Тъмносиньо</translation> +<translation id="7796453472368605346">Диакритични знаци</translation> <translation id="7797571222998226653">Изключено</translation> <translation id="7798504574384119986">Преглед на разрешенията за мрежата</translation> <translation id="7798844538707273832">„<ph name="PERMISSION" />“ е блокирано автоматично</translation> @@ -7787,6 +7800,7 @@ <translation id="7876027585589532670">Прекият път не бе редактиран</translation> <translation id="7877451762676714207">Неизвестна грешка в сървъра. Моля, опитайте отново или се свържете с администратора му.</translation> <translation id="7878945852730162014">Управлявайте файловете, докато се изтеглят, и ги отваряйте, когато са готови</translation> +<translation id="7879172417209159252">Разширението не може да бъде използвано</translation> <translation id="7879478708475862060">Следване на режима за въвеждане</translation> <translation id="7879631849810108578">Прекият път е зададен: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Локалните данни ще бъдат изтрити, когато рестартирате</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index ca77ee0..27a92d4e 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -1496,7 +1496,7 @@ <translation id="2251218783371366160">Otvori u pregledniku sistema</translation> <translation id="225163402930830576">Osvježi mreže</translation> <translation id="2251809247798634662">Novi anonimni prozor</translation> -<translation id="2252017960592955005">Zaštita pregleda (beta verzija)</translation> +<translation id="2252017960592955005">Zaštita od pregleda (beta verzija)</translation> <translation id="225240747099314620">Dozvoli identifikatore za zaštićeni sadržaj (može biti potrebno ponovno pokretanje računara)</translation> <translation id="2253318212986772520">Nije moguće dohvatiti PPD za štampač <ph name="PRINTER_NAME" />.</translation> <translation id="2253927598983295051">Odaberite šta ćete dijeliti s aplikacijom <ph name="APP_NAME" /></translation> @@ -8390,7 +8390,7 @@ <translation id="8380266723152870797">Naziv prozora</translation> <translation id="8380941800586852976">Opasno</translation> <translation id="8382677870544805359">Morat ćete vratiti uređaj na fabričke postavke da koristite funkcije za preduzeća.</translation> -<translation id="8382715499079447151">Zaštita pregleda</translation> +<translation id="8382715499079447151">Zaštita od pregleda</translation> <translation id="8382913212082956454">Kopiraj adresu &e-pošte</translation> <translation id="8383266303049437646"><ph name="BEGIN_PARAGRAPH1" />Pokušajte s ovim koracima za rješavanje problema: <ph name="BEGIN_LIST" />
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 9fd7d81..5c6f0b7 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -696,6 +696,7 @@ <translation id="1593594475886691512">S'està formatant...</translation> <translation id="159359590073980872">Memòria cau d'imatges</translation> <translation id="1593926297800505364">Desa la forma de pagament</translation> +<translation id="1594703455918849716">Ves a la pàgina Comprova</translation> <translation id="1595492813686795610">Linux s'està actualitzant</translation> <translation id="1596286373007273895">Disponible</translation> <translation id="1596709061955594992">El Bluetooth està desactivat. Per veure els dispositius disponibles, activa el Bluetooth.</translation> @@ -1679,6 +1680,7 @@ <translation id="2399699884460174994">Les notificacions estan activades</translation> <translation id="2399939490305346086">Dades d'inici de sessió de la clau de seguretat</translation> <translation id="2400664245143453337">Cal una actualització immediatament</translation> +<translation id="2402226831639195063">Tons</translation> <translation id="2406153734066939945">Vols suprimir aquest perfil i les dades associades?</translation> <translation id="2408018932941436077">S'està desant la targeta</translation> <translation id="2408955596600435184">Introdueix el PIN</translation> @@ -1690,6 +1692,7 @@ <translation id="241082044617551207">Connector desconegut</translation> <translation id="2410940059315936967">Els llocs web que visites poden inserir contingut d'altres llocs web, com ara imatges, anuncis i text. Les galetes establertes per aquests altres llocs web s'anomenen "galetes de tercers".</translation> <translation id="2411666601450687801">No es permeten màquines virtuals en aquest dispositiu</translation> +<translation id="2412015533711271895">El teu pare, mare o tutor ha d'aprovar que utilitzis aquesta extensió</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Fosc</translation> <translation id="2416435988630956212">Tecles de funció del teclat</translation> @@ -3073,6 +3076,7 @@ <translation id="3651488188562686558">Desconnecta de la Wi-Fi</translation> <translation id="3652817283076144888">S'està inicialitzant</translation> <translation id="3653160965917900914">Fitxers compartits de la xarxa</translation> +<translation id="3653887973853407813">No pots utilitzar aquesta extensió. El teu pare, mare o tutor ha desactivat per a Chrome l'opció Permisos per a llocs web, aplicacions i extensions.</translation> <translation id="3653999333232393305">Continua permetent que <ph name="HOST" /> accedeixi al micròfon</translation> <translation id="3654045516529121250">Consultar la configuració d'accessibilitat</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Té accés permanent a un fitxer.}other{Té accés permanent a # fitxers.}}</translation> @@ -5144,6 +5148,7 @@ <translation id="5517304475148761050">Aquesta aplicació requereix accés a Play Store</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Pregunta'm quan un lloc web vulgui veure el text i les imatges copiats al porta-retalls</translation> +<translation id="5518949581554491184">Configura amb el telèfon Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Aquesta pàgina d'inici és la que esperàveu?</translation> <translation id="5522156646677899028">Aquesta extensió conté una vulnerabilitat de seguretat greu.</translation> @@ -6476,6 +6481,7 @@ <translation id="6725206449694821596">Protocol d'impressió per Internet (IPP)</translation> <translation id="6725970970008349185">Nombre de candidats que es mostren per pàgina</translation> <translation id="672609503628871915">Novetats</translation> +<translation id="6726800386221816228">Caràcters especials</translation> <translation id="67269783048918309">Envia dades d'ús i de diagnòstic. En aquests moments aquest dispositiu envia automàticament a Google dades de diagnòstic, del dispositiu i d'ús d'aplicacions. Aquestes dades no es faran servir per identificar el teu fill i ajudaran a millorar l'estabilitat del sistema i de les aplicacions, entre altres característiques. Una part de les dades agregades també serà útil per a les aplicacions i per als partners de Google, com ara els desenvolupadors d'Android. El propietari ha aplicat aquesta <ph name="BEGIN_LINK1" />opció de configuració<ph name="END_LINK1" />. Si l'opció Activitat al web i en aplicacions addicional està activada per al teu fill, és possible que aquestes dades es desin al seu Compte de Google. <ph name="BEGIN_LINK2" />Més informació<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN acabat en <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Introdueix el teu nom d'usuari</translation> @@ -6878,6 +6884,7 @@ <translation id="7063129466199351735">S'estan processant les dreceres...</translation> <translation id="7063311912041006059">URL amb <ph name="SPECIAL_SYMBOL" /> en el lloc de la consulta</translation> <translation id="706342288220489463">Permet que el teu Assistent utilitzi la informació de la pantalla per ajudar-te</translation> +<translation id="70641621694466590">Ves a la pàgina Contrasenyes</translation> <translation id="7064734931812204395">S'està configurant el contenidor de Linux. Aquest procés pot tardar fins a 30 minuts.</translation> <translation id="7065223852455347715">Aquest dispositiu està bloquejat de tal manera que no permet la inscripció empresarial. Si voleu inscriure el dispositiu, primer cal que el recupereu.</translation> <translation id="7065534935986314333">Quant al Sistema</translation> @@ -7379,6 +7386,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> amb l'aplicació <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Està sincronitzada amb altres dispositius del teu compte. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Activa les funcions de depuració en aquest dispositiu <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="7544977292347272434">Demana al teu pare o mare que permeti una extensió</translation> <translation id="7545466883021407599">No s'ha pogut connectar amb el servidor. Comprova la connexió a la xarxa i torna-ho a provar. Si encara tens problemes, prova de reiniciar el Chromebook. Codi d'error: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Advertiment: la vostra configuració de <ph name="PRODUCT_NAME" /> s'emmagatzema en una unitat de xarxa. Això pot provocar alentiments, bloquejos o fins i tot la pèrdua de dades.</translation> <translation id="7548856833046333824">Còctel</translation> @@ -7607,6 +7615,7 @@ <translation id="7728668285692163452">El canvi de canal s'aplicarà més tard</translation> <translation id="7730449930968088409">Capturar el contingut de la pantalla</translation> <translation id="7730683939467795481">L'extensió "<ph name="EXTENSION_NAME" />" ha fet canvis en aquesta pàgina</translation> +<translation id="773511996612364297">Accents</translation> <translation id="7735165285389721951">S'està executant una altra instal·lació de Steam. Espera que es completi abans de tornar-ho a provar.</translation> <translation id="7737115349420013392">S'està vinculant amb "<ph name="DEVICE_NAME" />"...</translation> <translation id="7737203573077018777">S'ha rebut la instrucció <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /></translation> @@ -7689,6 +7698,7 @@ <translation id="7792388396321542707">Deixa de compartir</translation> <translation id="779308894558717334">Verd clar</translation> <translation id="7793098747275782155">Blau fosc</translation> +<translation id="7796453472368605346">Diacrítics</translation> <translation id="7797571222998226653">Desactivat</translation> <translation id="7798504574384119986">Mostra els permisos web</translation> <translation id="7798844538707273832">S'ha bloquejat automàticament <ph name="PERMISSION" /></translation> @@ -7773,6 +7783,7 @@ <translation id="7876027585589532670">No es pot editar la drecera</translation> <translation id="7877451762676714207">Error de servidor desconegut. Torneu-ho a provar o contacteu amb l'administrador del servidor.</translation> <translation id="7878945852730162014">Gestiona els fitxers mentre es baixen i obre'ls quan es completi la baixada</translation> +<translation id="7879172417209159252">No es pot utilitzar l'extensió</translation> <translation id="7879478708475862060">Segueix el mode d'entrada</translation> <translation id="7879631849810108578">Drecera definida: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Les dades locals se suprimiran en reiniciar el dispositiu</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 5bf3d954..e45d367 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -698,6 +698,7 @@ <translation id="1593594475886691512">Formátování...</translation> <translation id="159359590073980872">Mezipaměť obrázků</translation> <translation id="1593926297800505364">Uložit platební metodu</translation> +<translation id="1594703455918849716">Přejít na stránku Kontrola</translation> <translation id="1595492813686795610">Linux se upgraduje</translation> <translation id="1596286373007273895">Dostupné</translation> <translation id="1596709061955594992">Bluetooth je vypnutý. Pokud chcete zobrazit dostupná zařízení, zapněte Bluetooth.</translation> @@ -1681,6 +1682,7 @@ <translation id="2399699884460174994">Oznámení jsou zapnutá</translation> <translation id="2399939490305346086">Přihlašovací údaje na bezpečnostním klíči</translation> <translation id="2400664245143453337">Je vyžadována okamžitá aktualizace</translation> +<translation id="2402226831639195063">Tóny</translation> <translation id="2406153734066939945">Smazat tento profil a jeho data?</translation> <translation id="2408018932941436077">Ukládání karty</translation> <translation id="2408955596600435184">Zadejte PIN</translation> @@ -1692,6 +1694,7 @@ <translation id="241082044617551207">Neznámý plugin</translation> <translation id="2410940059315936967">Navštívený web může zahrnovat vložený obsah z jiných webů, například obrázky, reklamy a text. Soubory cookie, které nastaví tyto jiné weby, se nazývají soubory cookie třetích stran.</translation> <translation id="2411666601450687801">Na tomto zařízení nejsou povoleny žádné virtuální počítače</translation> +<translation id="2412015533711271895">Používání tohoto rozšíření musí schválit rodič nebo zákonný zástupce</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Tmavé</translation> <translation id="2416435988630956212">Funkční klávesy</translation> @@ -3018,6 +3021,7 @@ <translation id="3609277884604412258">Rychlé vyhledávání</translation> <translation id="3610241585790874201">Nemá povoleno ukládat data do zařízení</translation> <translation id="3610369246614755442">Větrák doku vyžaduje servis</translation> +<translation id="3610961622607302617">Změna hesla pro web <ph name="WEBSITE" /></translation> <translation id="361106536627977100">Data Flash</translation> <translation id="3611655097742243705">Navštivte Obchod Play, kde najdete další aplikace</translation> <translation id="3611658447322220736">Nedávno zavřené weby mohou dokončit odeslání a příjem dat</translation> @@ -3074,6 +3078,7 @@ <translation id="3651488188562686558">Bude odpojen od sítě Wi-Fi</translation> <translation id="3652817283076144888">Probíhá inicializace</translation> <translation id="3653160965917900914">Sdílená úložiště na síti</translation> +<translation id="3653887973853407813">Toto rozšíření nemůžeš použít. Rodič nebo zákonný zástupce v Chromu vypnul možnost „Oprávnění pro weby, aplikace a rozšíření“.</translation> <translation id="3653999333232393305">Povolit webu <ph name="HOST" /> přístup k mikrofonu i nadále</translation> <translation id="3654045516529121250">Čtení nastavení usnadnění přístupu</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Má trvalý přístup k jednomu souboru.}few{Má trvalý přístup ke # souborům.}many{Má trvalý přístup k # souboru.}other{Má trvalý přístup k # souborům.}}</translation> @@ -5144,6 +5149,7 @@ <translation id="5517304475148761050">Tato aplikace vyžaduje přístup do Obchodu Play</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Zeptat se, když chce web získat přístup k textu a obrázkům zkopírovaným do schránky</translation> +<translation id="5518949581554491184">Nastavit pomocí telefonu Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Je toto domovská stránka, kterou jste očekávali?</translation> <translation id="5522156646677899028">Toto rozšíření představuje závažné bezpečnostní riziko.</translation> @@ -6030,6 +6036,7 @@ <translation id="6318125393809743217">Zahrnout soubor policies.json s konfiguracemi zásad.</translation> <translation id="6318407754858604988">Stahování bylo zahájeno</translation> <translation id="6318944945640833942">Tiskárnu se nepodařilo rozpoznat. Zadejte adresu tiskárny znovu.</translation> +<translation id="6320808462673705899">Hledání neodpovídají žádné záložky.</translation> <translation id="6322370287306604163">Rychlejší odemykání otiskem prstu</translation> <translation id="6322559670748154781">Tento soubor se běžně nestahuje a pokročilá ochrana ho zablokovala</translation> <translation id="6324916366299863871">Upravit zkratku</translation> @@ -6478,6 +6485,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Počet zobrazených návrhů na stránku</translation> <translation id="672609503628871915">Co je nového</translation> +<translation id="6726800386221816228">Speciální znaky</translation> <translation id="67269783048918309">Odesílat údaje o využití a diagnostice. Toto zařízení aktuálně automaticky odesílá do Googlu diagnostické údaje a údaje o zařízení a využití. Tyto údaje nebudou používány ke zjištění totožnosti dítěte a pomohou nám se zvyšováním stability systému a aplikací a dalšími vylepšeními. Některá souhrnná data budou moci využít také naši partneři, např. vývojáři aplikací pro Android. Toto nastavení je <ph name="BEGIN_LINK1" />vyžadováno<ph name="END_LINK1" /> vlastníkem. Pokud má dítě zapnuté dodatečné nastavení Aktivita na webu a v aplikacích, mohou se tato data ukládat do jeho účtu Google. <ph name="BEGIN_LINK2" />Další informace<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">Číslo IBAN končící na <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Zadejte své uživatelské jméno</translation> @@ -6880,6 +6888,7 @@ <translation id="7063129466199351735">Zpracování zástupců...</translation> <translation id="7063311912041006059">Adresa URL se zástupným symbolem <ph name="SPECIAL_SYMBOL" /> místo dotazu</translation> <translation id="706342288220489463">Povolit Asistentovi používat informace na obrazovce, aby vám mohl pomáhat</translation> +<translation id="70641621694466590">Přejít na stránku Hesla</translation> <translation id="7064734931812204395">Probíhá konfigurace kontejneru Linuxu. Může to trvat až 30 minut.</translation> <translation id="7065223852455347715">Toto zařízení je uzamčeno v režimu, který brání registraci v podniku. Chcete-li zařízení zaregistrovat, je nutné nejdříve provést obnovení zařízení.</translation> <translation id="7065534935986314333">O systému</translation> @@ -7380,6 +7389,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> pomocí aplikace <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Synchronizuje se s jinými zařízeními v účtu. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Aktivovat v tomto zařízení <ph name="IDS_SHORT_PRODUCT_NAME" /> funkce ladění</translation> +<translation id="7544977292347272434">Požádej rodiče o povolení rozšíření</translation> <translation id="7545466883021407599">K serveru se nelze připojit. Zkontrolujte připojení k síti a zkuste to znovu. Pokud potíže přetrvávají, zkuste Chromebook restartovat. Kód chyby: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Upozornění: Vaše nastavení aplikace <ph name="PRODUCT_NAME" /> jsou uložena na síťovém disku. To může vést ke zpomalení, chybám nebo ztrátě dat.</translation> <translation id="7548856833046333824">Limonáda</translation> @@ -7608,6 +7618,7 @@ <translation id="7728668285692163452">Změna kanálu bude použita později</translation> <translation id="7730449930968088409">Zachycení obsahu obrazovky</translation> <translation id="7730683939467795481">Tato stránka byla změněna rozšířením <ph name="EXTENSION_NAME" /></translation> +<translation id="773511996612364297">Přízvuk</translation> <translation id="7735165285389721951">Je spuštěna jiná instalace Steamu. Před dalším pokusem počkejte, až skončí.</translation> <translation id="7737115349420013392">Párování se zařízením <ph name="DEVICE_NAME" />…</translation> <translation id="7737203573077018777">Byl přijat pokyn <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /></translation> @@ -7690,6 +7701,7 @@ <translation id="7792388396321542707">Ukončit sdílení</translation> <translation id="779308894558717334">Světle zelená</translation> <translation id="7793098747275782155">Tmavě modrá</translation> +<translation id="7796453472368605346">Diakritika</translation> <translation id="7797571222998226653">Vypnuto</translation> <translation id="7798504574384119986">Zobrazit webová oprávnění</translation> <translation id="7798844538707273832">Automaticky zablokované oprávnění: <ph name="PERMISSION" /></translation> @@ -7774,6 +7786,7 @@ <translation id="7876027585589532670">Zkratku nelze upravit</translation> <translation id="7877451762676714207">Neznámá chyba serveru. Zkuste to prosím znovu, nebo kontaktujte správce serveru.</translation> <translation id="7878945852730162014">Spravujte soubory při stahování a po dokončení je otevřete</translation> +<translation id="7879172417209159252">Rozšíření nelze použít</translation> <translation id="7879478708475862060">Sledovat režim vstupu</translation> <translation id="7879631849810108578">Byla nastavena zkratka: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Při restartu se vymažou místní data</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 39ff516..ea84b7af 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -700,6 +700,7 @@ <translation id="1593594475886691512">Formaterer...</translation> <translation id="159359590073980872">Billedcache</translation> <translation id="1593926297800505364">Gem betalingsmetode</translation> +<translation id="1594703455918849716">Gå til siden Adgangskodetjek</translation> <translation id="1595492813686795610">Linux opgraderes</translation> <translation id="1596286373007273895">Tilgængelig</translation> <translation id="1596709061955594992">Bluetooth er deaktiveret. Du kan se tilgængelige enheder ved at aktivere Bluetooth.</translation> @@ -1695,6 +1696,7 @@ <translation id="2399699884460174994">Notifikationer er slået til</translation> <translation id="2399939490305346086">Logindata på sikkerhedsnøglen</translation> <translation id="2400664245143453337">Kræver omgående opdatering</translation> +<translation id="2402226831639195063">Toner</translation> <translation id="2406153734066939945">Vil du slette denne profil og de tilhørende data?</translation> <translation id="2408018932941436077">Gemmer kort</translation> <translation id="2408955596600435184">Angiv din pinkode</translation> @@ -1706,6 +1708,7 @@ <translation id="241082044617551207">Ukendt plugin</translation> <translation id="2410940059315936967">Et website, du besøger, kan indlejre indhold fra andre websites, f.eks. billeder, annoncer og tekst. Cookies, der gemmes af disse andre websites, kaldes tredjepartscookies.</translation> <translation id="2411666601450687801">Virtuelle maskiner er ikke tilladt på denne enhed</translation> +<translation id="2412015533711271895">Din forælder eller værge skal give dig lov til at bruge denne udvidelse</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Mørk</translation> <translation id="2416435988630956212">Funktionstaster på tastaturet</translation> @@ -3032,6 +3035,7 @@ <translation id="3609277884604412258">Hurtig søgning</translation> <translation id="3610241585790874201">Har ikke tilladelse til at gemme data på din enhed</translation> <translation id="3610369246614755442">Dockingstationens blæser trænger til service</translation> +<translation id="3610961622607302617">Skift adgangskoden til <ph name="WEBSITE" /></translation> <translation id="361106536627977100">Flash-data</translation> <translation id="3611655097742243705">Gå til Play Butik for at finde flere apps</translation> <translation id="3611658447322220736">Nyligt lukkede websites kan gennemføre afsendelse og modtagelse af data</translation> @@ -3088,6 +3092,7 @@ <translation id="3651488188562686558">Afbryd Wi-Fi-forbindelsen</translation> <translation id="3652817283076144888">Initialiserer</translation> <translation id="3653160965917900914">Fildeling via netværk</translation> +<translation id="3653887973853407813">Du må ikke bruge denne udvidelse. Din forælder eller værge har deaktiveret "Tilladelser for websites, apps og udvidelser" for Chrome.</translation> <translation id="3653999333232393305">Tillad fortsat, at <ph name="HOST" /> har adgang til din mikrofon</translation> <translation id="3654045516529121250">Læse dine indstillinger for hjælpefunktioner</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Den har permanent adgang til én fil.}one{Den har permanent adgang til # filer.}other{Den har permanent adgang til # filer.}}</translation> @@ -5160,6 +5165,7 @@ <translation id="5517304475148761050">Denne app kræver adgang til Play Butik</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Spørg, når et website vil se tekst og billeder, der er kopieret til udklipsholderen</translation> +<translation id="5518949581554491184">Konfigurer med Android-telefon</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Var det den startside, du forventede?</translation> <translation id="5522156646677899028">Denne udvidelse indeholder en alvorlig sikkerhedsbrist.</translation> @@ -6049,6 +6055,7 @@ <translation id="6318125393809743217">Medtag en policies.json-fil med politikkonfigurationer.</translation> <translation id="6318407754858604988">Downloaden er i gang</translation> <translation id="6318944945640833942">Der blev ikke registreret en printer. Angiv adressen til printeren igen.</translation> +<translation id="6320808462673705899">Der er ingen bogmærker, som matcher din søgning.</translation> <translation id="6322370287306604163">Lås op hurtigere med fingeraftryk</translation> <translation id="6322559670748154781">Denne fil er ikke downloadet på normal vis og er blevet blokeret af Avanceret beskyttelse</translation> <translation id="6324916366299863871">Rediger genvej</translation> @@ -6495,6 +6502,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Antal kandidater, der skal vises pr. side</translation> <translation id="672609503628871915">Se de nye funktioner</translation> +<translation id="6726800386221816228">Specialtegn</translation> <translation id="67269783048918309">Send brugs- og diagnosticeringsdata. Denne enhed sender i øjeblikket automatisk diagnosticerings- og enhedsdata samt data om brug af apps til Google. Disse data bruges ikke til at identificere dit barn. De bruges kun til forbedring af bl.a. systemets og appens stabilitet. Visse samlede data hjælper også Google-apps og -partnere, f.eks. Android-udviklere. Denne <ph name="BEGIN_LINK1" />indstilling<ph name="END_LINK1" /> håndhæves af ejeren. Hvis indstillingen til yderligere web- og appaktivitet er aktiveret for dit barn, gemmes disse data muligvis på barnets Google-konto. <ph name="BEGIN_LINK2" />Få flere oplysninger<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN-nummer, der slutter med <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Angiv dit brugernavn</translation> @@ -6897,6 +6905,7 @@ <translation id="7063129466199351735">Genveje behandles...</translation> <translation id="7063311912041006059">Webadresse med <ph name="SPECIAL_SYMBOL" /> i stedet for forespørgsel</translation> <translation id="706342288220489463">Tillad, at Assistent bruger oplysninger på din skærm for at hjælpe dig</translation> +<translation id="70641621694466590">Gå til siden Adgangskoder</translation> <translation id="7064734931812204395">Konfigurerer Linux-containeren. Dette kan tage op til 30 minutter.</translation> <translation id="7065223852455347715">Denne enhed er låst i en tilstand, der forhindrer virksomhedstilmelding. Hvis du vil tilmelde enheden, skal du gendanne den først.</translation> <translation id="7065534935986314333">Om systemet</translation> @@ -7398,6 +7407,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> med appen <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Synkroniseret med andre enheder på din konto. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Aktivér fejlretningsfunktioner på denne <ph name="IDS_SHORT_PRODUCT_NAME" />-enhed</translation> +<translation id="7544977292347272434">Bed din forælder om at give dig lov til at installere en udvidelse</translation> <translation id="7545466883021407599">Der kunne ikke oprettes forbindelse til serveren. Tjek din netværksforbindelse, og prøv igen. Hvis du stadig har problemer, kan du prøve at genstarte din Chromebook. Fejlkode: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Advarsel: Dine indstillinger for <ph name="PRODUCT_NAME" /> er gemt på et netværksdrev. Dette resulterer muligvis i forsinkelser, nedbrud eller sågar datatab.</translation> <translation id="7548856833046333824">James Bond</translation> @@ -7626,6 +7636,7 @@ <translation id="7728668285692163452">Ændringerne af kanalen træder i kraft senere</translation> <translation id="7730449930968088409">Tage et screenshot af dit indhold</translation> <translation id="7730683939467795481">Denne side blev ændret af udvidelsen "<ph name="EXTENSION_NAME" />"</translation> +<translation id="773511996612364297">Accenttegn</translation> <translation id="7735165285389721951">En anden Steam-konfiguration er i gang. Vent, indtil den er fuldført, før du prøver igen</translation> <translation id="7737115349420013392">Parrer med "<ph name="DEVICE_NAME" />"...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" />-instruktionen er modtaget</translation> @@ -7707,6 +7718,7 @@ <translation id="7792388396321542707">Stop deling</translation> <translation id="779308894558717334">Lysegrøn</translation> <translation id="7793098747275782155">Mørkeblå</translation> +<translation id="7796453472368605346">Diakritiske tegn</translation> <translation id="7797571222998226653">Fra</translation> <translation id="7798504574384119986">Se webtilladelser</translation> <translation id="7798844538707273832">Blokerede automatisk <ph name="PERMISSION" /></translation> @@ -7791,6 +7803,7 @@ <translation id="7876027585589532670">Genvejen kan ikke redigeres</translation> <translation id="7877451762676714207">Ukendt serverfejl. Prøv igen, eller kontakt serveradministratoren.</translation> <translation id="7878945852730162014">Administrer filer, mens de downloades, og åbn dem, når de er downloadet</translation> +<translation id="7879172417209159252">Udvidelsen må ikke bruges</translation> <translation id="7879478708475862060">Følg indtastningstilstand</translation> <translation id="7879631849810108578">Genvejen blev gemt: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Lokale data slettes, når du genstarter</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 900f00f..90caea33 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">Formatting...</translation> <translation id="159359590073980872">Image Cache</translation> <translation id="1593926297800505364">Save payment method</translation> +<translation id="1594703455918849716">Go to Checkup page</translation> <translation id="1595492813686795610">Linux is upgrading</translation> <translation id="1596286373007273895">Available</translation> <translation id="1596709061955594992">Bluetooth is turned off. To see available devices, turn Bluetooth on.</translation> @@ -1694,6 +1695,7 @@ <translation id="2399699884460174994">Notifications turned on</translation> <translation id="2399939490305346086">Security key sign-in data</translation> <translation id="2400664245143453337">Immediate update required</translation> +<translation id="2402226831639195063">Tones</translation> <translation id="2406153734066939945">Delete this profile and its data?</translation> <translation id="2408018932941436077">Saving card</translation> <translation id="2408955596600435184">Enter your PIN</translation> @@ -1705,6 +1707,7 @@ <translation id="241082044617551207">Unknown plug-in</translation> <translation id="2410940059315936967">A site that you visit can embed content from other sites, for example, images, ads and text. Cookies set by these other sites are called third-party cookies.</translation> <translation id="2411666601450687801">No virtual machines are allowed on this device</translation> +<translation id="2412015533711271895">Your parent or guardian has to say that it's OK for you to use this extension</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Dark</translation> <translation id="2416435988630956212">Keyboard function keys</translation> @@ -3088,6 +3091,7 @@ <translation id="3651488188562686558">Disconnect from Wi-Fi</translation> <translation id="3652817283076144888">Initialising</translation> <translation id="3653160965917900914">Network file shares</translation> +<translation id="3653887973853407813">You can't use this extension. Your parent or guardian has turned off "Permissions for sites, apps and extensions" for Chrome.</translation> <translation id="3653999333232393305">Continue allowing <ph name="HOST" /> to access your microphone</translation> <translation id="3654045516529121250">Read your accessibility settings</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{It has permanent access to one file.}other{It has permanent access to # files.}}</translation> @@ -5160,6 +5164,7 @@ <translation id="5517304475148761050">This app requires access to the Play Store</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Ask when a site wants to see text and images copied to the clipboard</translation> +<translation id="5518949581554491184">Set up with Android phone</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Is this the home page that you were expecting?</translation> <translation id="5522156646677899028">This extension contains a serious security vulnerability.</translation> @@ -6494,6 +6499,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Number of candidates to be displayed per page</translation> <translation id="672609503628871915">See what's new</translation> +<translation id="6726800386221816228">Special characters</translation> <translation id="67269783048918309">Send usage and diagnostic data. This device is currently automatically sending diagnostic, device and app usage data to Google. This won't be used to identify your child, and will help system and app stability and other improvements. Some aggregate data will also help Google apps and partners, such as Android developers. This <ph name="BEGIN_LINK1" />setting<ph name="END_LINK1" /> is enforced by the owner. If additional Web & App Activity setting is turned on for your child, this data may be saved to their Google Account. <ph name="BEGIN_LINK2" />Find out more<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN ending in <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Enter your username</translation> @@ -6896,6 +6902,7 @@ <translation id="7063129466199351735">Processing shortcuts...</translation> <translation id="7063311912041006059">URL with <ph name="SPECIAL_SYMBOL" /> in place of query</translation> <translation id="706342288220489463">Allow your Assistant to use info on your screen to help</translation> +<translation id="70641621694466590">Go to the Passwords page</translation> <translation id="7064734931812204395">Configuring the Linux container. This might take up to 30 minutes.</translation> <translation id="7065223852455347715">This device is locked in a mode that prevents enterprise enrolment. If you want to enrol the device you need to go through device recovery first.</translation> <translation id="7065534935986314333">About System</translation> @@ -7397,6 +7404,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> with <ph name="APP_NAME" /> app</translation> <translation id="754207240458482646">Synced with other devices on your account. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Enable debugging features on this <ph name="IDS_SHORT_PRODUCT_NAME" /> device</translation> +<translation id="7544977292347272434">Ask your parent to allow an extension</translation> <translation id="7545466883021407599">Couldn’t connect with the server. Check your network connection and try again. If you're still having trouble, try restarting your Chromebook. Error code: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Warning: your <ph name="PRODUCT_NAME" /> settings are stored on a network drive. This may result in slowdowns, crashes or even loss of data.</translation> <translation id="7548856833046333824">Fizzy</translation> @@ -7625,6 +7633,7 @@ <translation id="7728668285692163452">Channel change will be applied later</translation> <translation id="7730449930968088409">Capture content of your screen</translation> <translation id="7730683939467795481">This page was changed by the '<ph name="EXTENSION_NAME" />' extension</translation> +<translation id="773511996612364297">Accent marks</translation> <translation id="7735165285389721951">Another Steam setup is running. Please wait for it to complete before trying again</translation> <translation id="7737115349420013392">Pairing with "<ph name="DEVICE_NAME" />" ...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> instruction received</translation> @@ -7707,6 +7716,7 @@ <translation id="7792388396321542707">Stop sharing</translation> <translation id="779308894558717334">Light green</translation> <translation id="7793098747275782155">Dark blue</translation> +<translation id="7796453472368605346">Diacritics</translation> <translation id="7797571222998226653">Off</translation> <translation id="7798504574384119986">View web permissions</translation> <translation id="7798844538707273832">Automatically blocked <ph name="PERMISSION" /></translation> @@ -7791,6 +7801,7 @@ <translation id="7876027585589532670">Can't edit shortcut</translation> <translation id="7877451762676714207">Unknown server error. Please try again, or contact the server administrator.</translation> <translation id="7878945852730162014">Manage files as they download and open them when they’re done</translation> +<translation id="7879172417209159252">Can't use extension</translation> <translation id="7879478708475862060">Follow input mode</translation> <translation id="7879631849810108578">Shortcut set: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Local data will be deleted when you restart</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index 74e3bb0..ce9261b5 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -697,6 +697,7 @@ <translation id="1593594475886691512">در حال قالببندی...</translation> <translation id="159359590073980872">حافظهٔ پنهان تصویر</translation> <translation id="1593926297800505364">ذخیره روش پرداخت</translation> +<translation id="1594703455918849716">رفتن به صفحه «بازبینی»</translation> <translation id="1595492813686795610">Linux درحال ارتقا است</translation> <translation id="1596286373007273895">دردسترس</translation> <translation id="1596709061955594992">بلوتوث خاموش است. برای دیدن دستگاههای دردسترس، بلوتوث را روشن کنید.</translation> @@ -1691,6 +1692,7 @@ <translation id="2399699884460174994">اعلانها روشن شد</translation> <translation id="2399939490305346086">دادههای ورود به سیستم کلید امنیتی</translation> <translation id="2400664245143453337">بهروزرسانی فوری الزامی است</translation> +<translation id="2402226831639195063">صداها</translation> <translation id="2406153734066939945">این نمایه و دادههای آن حذف شود؟</translation> <translation id="2408018932941436077">درحال ذخیره کارت</translation> <translation id="2408955596600435184">پین را وارد کنید</translation> @@ -1702,6 +1704,7 @@ <translation id="241082044617551207">افزایه ناشناس</translation> <translation id="2410940059315936967">سایتی که بازدید میکنید میتواند از سایتهای دیگر محتوایی مثل تصویر، آگهی، و نوشتار جاسازی کند. کوکیهای تنظیمشده توسط سایتهای دیگر کوکیهای شخص ثالث نامیده میشوند.</translation> <translation id="2411666601450687801">هیچ «ماشین مجازیای» در این دستگاه مجاز نیست</translation> +<translation id="2412015533711271895">ولی یا سرپرستتان باید تأیید کند که میتوانید از این افزونه استفاده کنید</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">تاریک</translation> <translation id="2416435988630956212">کلیدهای عملکرد صفحهکلید</translation> @@ -3028,6 +3031,7 @@ <translation id="3609277884604412258">جستجوی سریع</translation> <translation id="3610241585790874201">مجاز نیست در دستگاه داده ذخیره کند</translation> <translation id="3610369246614755442">پنکه پایه اتصال نیاز به سرویس دارد</translation> +<translation id="3610961622607302617">تغییر گذرواژه <ph name="WEBSITE" /></translation> <translation id="361106536627977100">دادههای فلاش</translation> <translation id="3611655097742243705">برای پیدا کردن برنامههای بیشتر، از Play Store بازدید کنید</translation> <translation id="3611658447322220736">سایتهایی که اخیراً بسته شدهاند میتوانند ارسال و دریافت داده را تکمیل کنند</translation> @@ -3084,6 +3088,7 @@ <translation id="3651488188562686558">قطع اتصال Wi-Fi</translation> <translation id="3652817283076144888">مقداردهی اولیه</translation> <translation id="3653160965917900914">دستگاه ذخیرهسازی متصل به شبکه</translation> +<translation id="3653887973853407813">نمیتوانید از این افزونه استفاده کنید. ولی یا سرپرستتان «اجازههای سایتها، برنامهها، و افزونهها» را در Chrome خاموش کرده است.</translation> <translation id="3653999333232393305">ادامه اجازه به <ph name="HOST" /> برای دسترسی به میکروفون</translation> <translation id="3654045516529121250">خواندن تنظیمات دسترسپذیری خودتان</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{به یک فایل دسترسی دائم دارد.}one{به # فایل دسترسی دائم دارد.}other{به # فایل دسترسی دائم دارد.}}</translation> @@ -5156,6 +5161,7 @@ <translation id="5517304475148761050">این برنامه باید به «فروشگاه Play» دسترسی پیدا کند</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">وقتی سایتی میخواهد به نوشتار و تصاویر کپیشده در بریدهدان دسترسی پیدا کند، سؤال شود.</translation> +<translation id="5518949581554491184">راهاندازی با تلفن Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">آیا این همان صفحه اصلی مورد انتظار شماست؟</translation> <translation id="5522156646677899028">این برنامه افزودنی از لحاظ امنیتی اصلاً مطمئن نیست.</translation> @@ -6045,6 +6051,7 @@ <translation id="6318125393809743217">فایل policies.json بههمراه پیکربندیهای خطمشی اضافه شود.</translation> <translation id="6318407754858604988">بارگیری شروع شد</translation> <translation id="6318944945640833942">چاپگر شناسایی نشد لطفاً نشانی چاپگر را دوباره وارد کنید.</translation> +<translation id="6320808462673705899">هیچ نشانکی با جستجوی شما مطابقت ندارد.</translation> <translation id="6322370287306604163">باز کردن سریعتر قفل با اثر انگشت</translation> <translation id="6322559670748154781">این فایل معمولاً بارگیری نمیشود و «محافظت پیشرفته» آن را مسدود کرده است</translation> <translation id="6324916366299863871">ویرایش میانبر</translation> @@ -6491,6 +6498,7 @@ <translation id="6725206449694821596">پروتکل چاپ اینترنتی (IPP)</translation> <translation id="6725970970008349185">تعداد کاندیداها برای نمایش در هر صفحه</translation> <translation id="672609503628871915">مشاهده تازهها</translation> +<translation id="6726800386221816228">نویسههای خاص</translation> <translation id="67269783048918309">دادههای استفاده و عیبیابی را ارسال کنید. این دستگاه درحالحاضر بهصورت خودکار دادههای عیبیابی و دادههای استفاده از دستگاه و برنامه را برای Google ارسال میکند. این دادهها برای شناسایی فرزندتان استفاده نخواهند شد و به بهبود پایداری سیستم و برنامه و موارد دیگر کمک خواهد کرد. بعضی دادههای انبوهشی نیز به برنامهها و شرکای Google (مانند برنامهنویسهای Android) کمک میکند. این <ph name="BEGIN_LINK1" />تنظیم<ph name="END_LINK1" /> توسط مالک اعمال میشود. اگر تنظیم «فعالیت وب و برنامه» تکمیلی برای فرزندتان روشن باشد، ممکن است این دادهها در حساب Google او ذخیره شود. <ph name="BEGIN_LINK2" />بیشتر بدانید<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN با انتهای <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">نام کاربریتان را وارد کنید</translation> @@ -6893,6 +6901,7 @@ <translation id="7063129466199351735">در حال پردازش میانبرها...</translation> <translation id="7063311912041006059">نشانی وب با <ph name="SPECIAL_SYMBOL" /> بهجای پرسش</translation> <translation id="706342288220489463">به «دستیار» اجازه دهید برای ارائه کمک از اطلاعات روی صفحه استفاده کند</translation> +<translation id="70641621694466590">رفتن به صفحه «گذرواژهها»</translation> <translation id="7064734931812204395">درحال پیکربندی محتوی Linux. این کار ممکن است تا ۳۰ دقیقه طول بکشد.</translation> <translation id="7065223852455347715">این دستگاه در حالتی قفل شده است که از ثبتنام شرکتی جلوگیری میکند. اگر میخواهید دستگاه را ثبتنام کنید ابتدا باید دستگاه را بازیابی کنید.</translation> <translation id="7065534935986314333">درباره سیستم</translation> @@ -7394,6 +7403,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> با برنامه <ph name="APP_NAME" /></translation> <translation id="754207240458482646">با دستگاههای دیگر در حسابتان همگامسازی شده است. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation> <translation id="7543104066686362383">فعال کردن ویژگیهای رفع اشکال در این دستگاه <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="7544977292347272434">از ولیتان بخواهید افزونهای را مجاز کند</translation> <translation id="7545466883021407599">اتصال با سرور برقرار نشد. اتصال شبکهتان را بررسی و دوباره امتحان کنید. اگر همچنان با مشکل روبرو هستید، Chromebook را بازراهاندازی کنید. کد خطا: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">اخطار: تنظیمات <ph name="PRODUCT_NAME" /> شما در درایو شبکه ذخیره میشود. این کار ممکن است منجر به از دست رفتن دادهٰها٬ کند شدن و خرابی شود.</translation> <translation id="7548856833046333824">لیموناد</translation> @@ -7622,6 +7632,7 @@ <translation id="7728668285692163452">تغییر کانال بعداً اعمال خواهد شد</translation> <translation id="7730449930968088409">ثبت محتوا از صفحه شما</translation> <translation id="7730683939467795481">افزونه «<ph name="EXTENSION_NAME" />» این صفحه را تغییر داد</translation> +<translation id="773511996612364297">نشانههای تکیه</translation> <translation id="7735165285389721951">راهاندازی Steam دیگری درحال اجرا است. قبلاز امتحان دوباره، منتظر بمانید تا این راهاندازی تکمیل شود.</translation> <translation id="7737115349420013392">درحال مرتبطسازی با «<ph name="DEVICE_NAME" />» …</translation> <translation id="7737203573077018777">دستورالعمل <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> دریافت شده است</translation> @@ -7703,6 +7714,7 @@ <translation id="7792388396321542707">توقف همرسانی</translation> <translation id="779308894558717334">سبز روشن</translation> <translation id="7793098747275782155">آبی تیره</translation> +<translation id="7796453472368605346">آوانماها</translation> <translation id="7797571222998226653">خاموش</translation> <translation id="7798504574384119986">مشاهده اجازههای وب</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> بهطور خودکار مسدود شده است</translation> @@ -7787,6 +7799,7 @@ <translation id="7876027585589532670">نمیتوان میانبر را ویرایش کرد</translation> <translation id="7877451762676714207">خطای سرور ناشناس. لطفاً دوباره سعی کنید یا با سرپرست سرور تماس بگیرید.</translation> <translation id="7878945852730162014">فایلها را هنگام بارگیری مدیریت کنید و آنها را بعداز بارگیری باز کنید</translation> +<translation id="7879172417209159252">نمیتوان از این افزونه استفاده کرد</translation> <translation id="7879478708475862060">پیروی از روش ورودی</translation> <translation id="7879631849810108578">میانبر تنظیم شد: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">وقتی بازراهاندازی کنید، دادههای محلی حذف میشود</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index f246714..2d7c228a 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -693,6 +693,7 @@ <translation id="1593594475886691512">ફોર્મેટિંગ...</translation> <translation id="159359590073980872">ફોટો કૅશ મેમરી</translation> <translation id="1593926297800505364">ચુકવણી પદ્ધતિ સાચવો</translation> +<translation id="1594703455918849716">ચેકઅપ પેજ પર જાઓ</translation> <translation id="1595492813686795610">Linux અપગ્રેડ થાય છે</translation> <translation id="1596286373007273895">ઉપલબ્ધ</translation> <translation id="1596709061955594992">બ્લૂટૂથ બંધ છે. ઉપલબ્ધ ડિવાઇસ જોવા માટે, બ્લૂટૂથ ચાલુ કરો.</translation> @@ -1677,6 +1678,7 @@ <translation id="2399699884460174994">નોટિફિકેશન ચાલુ કર્યા</translation> <translation id="2399939490305346086">સુરક્ષા કોડનો સાઇન ઇન ડેટા</translation> <translation id="2400664245143453337">તાત્કાલિક અપડેટ આવશ્યક છે</translation> +<translation id="2402226831639195063">ટોન</translation> <translation id="2406153734066939945">આ પ્રોફાઇલ અને તેનો ડેટા ડિલીટ કરીએ?</translation> <translation id="2408018932941436077">કાર્ડ સાચવી રહ્યાં છીએ</translation> <translation id="2408955596600435184">તમારો PIN દાખલ કરો</translation> @@ -1688,6 +1690,7 @@ <translation id="241082044617551207">અજ્ઞાત પ્લગિન</translation> <translation id="2410940059315936967">તમે મુલાકાત લેતા હો એવી કોઈ સાઇટ અન્ય સાઇટમાંનું કન્ટેન્ટ શામેલ કરી શકે છે, ઉદાહરણ તરીકે છબીઓ, જાહેરાતો અને ટેક્સ્ટ. આવી અન્ય સાઇટ દ્વારા સેટ કરવામાં આવતી કુકીને ત્રીજા પક્ષની કુકી તરીકે ઓળખવામાં આવે છે.</translation> <translation id="2411666601450687801">આ ડિવાઇસ પર કોઈ વર્ચ્યુઅલ મશીનને મંજૂરી નથી</translation> +<translation id="2412015533711271895">તમારા માતાપિતા અથવા વાલીએ કહેવાનું રહેશે કે તમે આ એક્સ્ટેન્શનનો ઉપયોગ કરો તે બરાબર છે</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">ઘાટું</translation> <translation id="2416435988630956212">કીબોર્ડની ફંકશન કી</translation> @@ -3014,6 +3017,7 @@ <translation id="3609277884604412258">ઝડપી શોધ</translation> <translation id="3610241585790874201">તમારા ડિવાઇસ પર ડેટા સાચવવાની મંજૂરી નથી</translation> <translation id="3610369246614755442">ડૉકના પંખાને સર્વિસની જરૂર છે</translation> +<translation id="3610961622607302617"><ph name="WEBSITE" /> માટેનો પાસવર્ડ બદલો</translation> <translation id="361106536627977100">ફ્લૅશ ડેટા</translation> <translation id="3611655097742243705">વધુ ઍપ શોધવા માટે, Play સ્ટોરની મુલાકાત લો</translation> <translation id="3611658447322220736">તાજેતરમાં બંધ કરેલી સાઇટ ડેટા મોકલવાનું અને મેળવવાનું પૂર્ણ કરી શકે છે</translation> @@ -3070,6 +3074,7 @@ <translation id="3651488188562686558">વાઇ-ફાઇથી ડિસ્કનેક્ટ કરો</translation> <translation id="3652817283076144888">પ્રારંભ થઈ રહ્યું છે</translation> <translation id="3653160965917900914">નેટવર્ક ફાઇલ શેર</translation> +<translation id="3653887973853407813">તમે આ એક્સ્ટેન્શનનો ઉપયોગ કરી શકતા નથી. તમારા માતા-પિતા અથવા વાલીએ Chrome માટે “સાઇટ, ઍપ અને એક્સ્ટેન્શન માટેની પરવાનગીઓ” બંધ કરી છે.</translation> <translation id="3653999333232393305"><ph name="HOST" /> ને તમારા માઇક્રોફોનને ઍક્સેસ કરવા દેવાનું ચાલુ રાખો</translation> <translation id="3654045516529121250">તમારા ઍક્સેસિબિલિટી સેટિંગ વાંચો</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{તેને એક ફાઇલ માટે કાયમી ઍક્સેસ છે.}one{તેને # ફાઇલ માટે કાયમી ઍક્સેસ છે.}other{તેને # ફાઇલ માટે કાયમી ઍક્સેસ છે.}}</translation> @@ -5141,6 +5146,7 @@ <translation id="5517304475148761050">આ ઍપ માટે Play સ્ટોરનો ઍક્સેસ આવશ્યક છે</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">જ્યારે સાઇટ ક્લિપબોર્ડ પર કૉપિ કરેલી ટેક્સ્ટ અને છબીઓને જોવા માંગે ત્યારે પૂછો</translation> +<translation id="5518949581554491184">Android ફોન વડે સેટઅપ કરો</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">શું આ તમારી અપેક્ષા મુજબનું હોમપેજ છે?</translation> <translation id="5522156646677899028">આ એક્સટેન્શનમાં ગંભીર સુરક્ષા ભેદ્યતા છે.</translation> @@ -6032,6 +6038,7 @@ <translation id="6318125393809743217">નીતિની ગોઠવણ ધરાવતી policies.json ફાઇલનો સમાવેશ કરો.</translation> <translation id="6318407754858604988">ડાઉનલોડ શરૂ થયું</translation> <translation id="6318944945640833942">પ્રિન્ટરની જાણકારી મેળવી ન શકાઈ. કૃપા કરીને પ્રિન્ટરનું ઍડ્રેસ ફરી દાખલ કરો.</translation> +<translation id="6320808462673705899">તમારી શોધ સાથે મેળ ખાતું કોઈ બુકમાર્ક નથી.</translation> <translation id="6322370287306604163">ફિંગરપ્રિન્ટ વડે વધુ ઝડપથી ખોલો</translation> <translation id="6322559670748154781">આ ફાઇલ સામાન્ય રીતે ડાઉનલોડ કરવામાં આવતી નથી અને તેને વિગતવાર સુરક્ષા દ્વારા બ્લૉક કરવામાં આવી છે</translation> <translation id="6324916366299863871">શૉર્ટકટમાંમાં ફેરફાર કરો</translation> @@ -6478,6 +6485,7 @@ <translation id="6725206449694821596">ઇન્ટરનેટ પ્રિંટિંગ પ્રોટોકોલ (IPP)</translation> <translation id="6725970970008349185">પેજ દીઠ ડિસ્પ્લે કરવાના ઉમેદવારોની સંખ્યા</translation> <translation id="672609503628871915">શું નવું છે તે જુઓ</translation> +<translation id="6726800386221816228">વિશિષ્ટ અક્ષરો</translation> <translation id="67269783048918309">વપરાશ અને નિદાનનો ડેટા મોકલો. આ ડિવાઇસ હાલમાં Googleને નિદાન, ડિવાઇસ અને ઍપ વપરાશનો ડેટા ઑટોમૅટિક રીતે મોકલી રહ્યું છે. આનો ઉપયોગ તમારા બાળકને ઓળખવા માટે થશે નહીં અને સિસ્ટમ અને ઍપની સ્થિરતા અને અન્ય સુધારણાઓમાં સહાય કરશે. એકત્રીકરણ કરેલો કેટલોક ડેટા Google ઍપ અને ભાગીદારોને પણ મદદ કરશે, જેમ કે Android ડેવલપર. આ <ph name="BEGIN_LINK1" />સેટિંગ<ph name="END_LINK1" /> માલિક દ્વારા લાગુ કરવામાં આવેલ છે. જો તમારા બાળક માટે વધારાની વેબ અને ઍપ પ્રવૃત્તિ સેટિંગ ચાલુ હોય, તો આ ડેટા તેમના Google એકાઉન્ટમાં સાચવવામાં આવી શકે છે. <ph name="BEGIN_LINK2" />વધુ જાણો<ph name="END_LINK2" /></translation> <translation id="6728528977475057549"><ph name="LAST_FOUR_DIGITS" />થી અંત થતા IBAN નંબર</translation> <translation id="6729192290958770680">તમારું વપરાશકર્તાનું નામ દાખલ કરો</translation> @@ -6880,6 +6888,7 @@ <translation id="7063129466199351735">શોર્ટકટ્સની પ્રક્રિયા કરી રહ્યું છે...</translation> <translation id="7063311912041006059">ક્વેરીના બદલે <ph name="SPECIAL_SYMBOL" /> વાળું URL</translation> <translation id="706342288220489463">સહાય માટે તમારા Assistantને તમારી સ્ક્રીન પરની માહિતીનો ઉપયોગ કરવાની મંજૂરી આપો</translation> +<translation id="70641621694466590">પાસવર્ડના પેજ પર જાઓ</translation> <translation id="7064734931812204395">Linux કંટેનરની ગોઠવણી કરી રહ્યાં છીએ. આમાં 30 મિનિટ સુધીનો સમય લાગી શકે છે.</translation> <translation id="7065223852455347715">આ ઉપકરણ એન્ટરપ્રાઇઝ નોંધણી અટકાવતા મોડ પર લોક કરવામાં આવેલ છે. જો તમે ઉપકરણની નોંધણી કરવા માંગતા હોય તો તમારે પહેલાં ઉપકરણ પુનઃપ્રાપ્તિ પર જવાની જરૂર છે.</translation> <translation id="7065534935986314333">સિસ્ટમ વિષે</translation> @@ -7381,6 +7390,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> ઍપ વડે <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">તમારા એકાઉન્ટ પરના અન્ય ડિવાઇસ સાથે સિંક કરેલું. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation> <translation id="7543104066686362383">આ <ph name="IDS_SHORT_PRODUCT_NAME" /> ડિવાઇસ પર ડિબગીંગ સુવિધાઓ ચાલુ કરો</translation> +<translation id="7544977292347272434">તમારા માતાપિતાને એક્સ્ટેન્શનની મંજૂરી આપવા કહો</translation> <translation id="7545466883021407599">સર્વર સાથે કનેક્ટ કરી શકાયું નથી. તમારું નેટવર્ક કનેક્શન ચેક કરો અને ફરી પ્રયાસ કરો. જો તમને હજી પણ મુશ્કેલી આવી રહી હોય, તો તમારી Chromebookને ફરી શરૂ કરવાનો પ્રયાસ કરો. ભૂલનો કોડ: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">ચેતવણી: <ph name="PRODUCT_NAME" /> સેટિંગ નેટવર્ક ડ્રાઇવ પર સ્ટોર કર્યું છે. આનું પરિણામ ધીમી ગતિ, ક્રૅશ અથવા ડેટાનું નુકસાન પણ હોઈ શકે છે.</translation> <translation id="7548856833046333824">લેમોનેડ</translation> @@ -7609,6 +7619,7 @@ <translation id="7728668285692163452">ચૅનલ ફેરફાર પછીથી લાગુ થશે</translation> <translation id="7730449930968088409">તમારી સ્ક્રીનની કન્ટેન્ટ કેપ્ચર કરો</translation> <translation id="7730683939467795481">પેજને "<ph name="EXTENSION_NAME" />" એક્સ્ટેન્શન દ્વારા બદલવામાં આવ્યું હતું</translation> +<translation id="773511996612364297">ઍક્સેન્ટ માટેના ચિહ્નો</translation> <translation id="7735165285389721951">Steamના સેટઅપની અન્ય પ્રક્રિયા ચાલી રહી છે. કૃપા કરીને ફરી પ્રયાસ કરતા પહેલાં, તેના પૂર્ણ થવાની રાહ જુઓ</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />"ની સાથે જોડી બનાવો…</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> સૂચના મેળવી</translation> @@ -7690,6 +7701,7 @@ <translation id="7792388396321542707">શેર કરવાનું રોકો</translation> <translation id="779308894558717334">આછો લીલો</translation> <translation id="7793098747275782155">ઘેરો વાદળી</translation> +<translation id="7796453472368605346">ડાયાક્રિટિક</translation> <translation id="7797571222998226653">બંધ</translation> <translation id="7798504574384119986">વેબની પરવાનગીઓ જુઓ</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> ઑટોમૅટિક રીતે બ્લૉક થઈ</translation> @@ -7774,6 +7786,7 @@ <translation id="7876027585589532670">શૉર્ટકટમાં ફેરફાર કરી શકાતો નથી</translation> <translation id="7877451762676714207">અજ્ઞાત સર્વર ભૂલ. કૃપા કરી ફરીથી પ્રયત્ન કરો અથવા સર્વર વ્યવસ્થાપકનો સંપર્ક કરો.</translation> <translation id="7878945852730162014">ફાઇલો ડાઉનલોડ થતી હોય, ત્યારે તેને મેનેજ કરો અને તે ડાઉનલોડ થઈ જાય, ત્યારે તેને ખોલો</translation> +<translation id="7879172417209159252">એક્સ્ટેન્શનનો ઉપયોગ કરી શકતા નથી</translation> <translation id="7879478708475862060">ઇનપુટ મોડને અનુસરો</translation> <translation id="7879631849810108578">શૉર્ટકટ સેટ થયો: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">તમે ફરી શરૂ કરશો ત્યારે સ્થાનિક ડેટા ડિલીટ કરવામાં આવશે</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index 910b334..7ff817b 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">Pemformatan...</translation> <translation id="159359590073980872">Cache Gambar</translation> <translation id="1593926297800505364">Simpan metode pembayaran</translation> +<translation id="1594703455918849716">Buka halaman Pemeriksaan</translation> <translation id="1595492813686795610">Linux sedang di-upgrade</translation> <translation id="1596286373007273895">Tersedia</translation> <translation id="1596709061955594992">Bluetooth dinonaktifkan. Untuk melihat perangkat yang tersedia, aktifkan Bluetooth.</translation> @@ -1694,6 +1695,7 @@ <translation id="2399699884460174994">Notifikasi diaktifkan</translation> <translation id="2399939490305346086">Data login kunci keamanan</translation> <translation id="2400664245143453337">Perlu update segera</translation> +<translation id="2402226831639195063">Nada</translation> <translation id="2406153734066939945">Hapus profil ini dan datanya?</translation> <translation id="2408018932941436077">Menyimpan kartu</translation> <translation id="2408955596600435184">Masukkan PIN</translation> @@ -1705,6 +1707,7 @@ <translation id="241082044617551207">Plugin tidak dikenal</translation> <translation id="2410940059315936967">Situs yang Anda buka dapat menyematkan konten dari situs lain, misalnya gambar, iklan, dan teks. Cookie yang disetel oleh situs lain ini disebut cookie pihak ketiga.</translation> <translation id="2411666601450687801">Tidak ada Mesin Virtual yang diizinkan di perangkat ini</translation> +<translation id="2412015533711271895">Harus ada izin orang tua atau wali untuk menggunakan ekstensi ini</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Gelap</translation> <translation id="2416435988630956212">Tombol fungsi keyboard</translation> @@ -3031,6 +3034,7 @@ <translation id="3609277884604412258">Penelusuran cepat</translation> <translation id="3610241585790874201">Tidak diizinkan menyimpan data di perangkat Anda</translation> <translation id="3610369246614755442">Kipas dok perlu diperbaiki</translation> +<translation id="3610961622607302617">Ubah sandi untuk <ph name="WEBSITE" /></translation> <translation id="361106536627977100">Data Flash</translation> <translation id="3611655097742243705">Buka Play Store untuk menemukan aplikasi lainnya</translation> <translation id="3611658447322220736">Situs yang baru saja ditutup dapat menyelesaikan pengiriman dan penerimaan data</translation> @@ -3087,6 +3091,7 @@ <translation id="3651488188562686558">Putuskan sambungan Wi-Fi</translation> <translation id="3652817283076144888">Memulai</translation> <translation id="3653160965917900914">Berbagi file dalam jaringan</translation> +<translation id="3653887973853407813">Kamu tidak bisa menggunakan ekstensi ini. Orang tua atau wali telah menonaktifkan “Izin untuk situs, aplikasi, dan ekstensi” untuk Chrome.</translation> <translation id="3653999333232393305">Terus izinkan <ph name="HOST" /> mengakses mikrofon Anda</translation> <translation id="3654045516529121250">Baca setelan aksesibilitas Anda</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Memiliki akses permanen ke satu file.}other{Memiliki akses permanen ke # file.}}</translation> @@ -5159,6 +5164,7 @@ <translation id="5517304475148761050">Aplikasi ini memerlukan akses ke Play Store</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Tanyakan saat situs ingin melihat teks dan gambar yang disalin ke papan klip</translation> +<translation id="5518949581554491184">Siapkan dengan ponsel Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Apakah ini beranda yang Anda harapkan?</translation> <translation id="5522156646677899028">Ekstensi ini berisi kerentanan keamanan serius.</translation> @@ -6048,6 +6054,7 @@ <translation id="6318125393809743217">Sertakan file policies.json dengan konfigurasi kebijakan.</translation> <translation id="6318407754858604988">Download dimulai</translation> <translation id="6318944945640833942">Tidak dapat mendeteksi printer. Harap masukkan alamat printer lagi.</translation> +<translation id="6320808462673705899">Tidak ada bookmark yang cocok dengan penelusuran Anda.</translation> <translation id="6322370287306604163">Buka kunci lebih cepat dengan sidik jari</translation> <translation id="6322559670748154781">File ini tidak biasa didownload dan telah diblokir oleh Perlindungan Lanjutan</translation> <translation id="6324916366299863871">Edit pintasan</translation> @@ -6492,6 +6499,7 @@ <translation id="6725206449694821596">Protokol Pencetakan Internet (IPP)</translation> <translation id="6725970970008349185">Jumlah calon yang akan ditampilkan per halaman</translation> <translation id="672609503628871915">Lihat apa saja yang baru</translation> +<translation id="6726800386221816228">Karakter khusus</translation> <translation id="67269783048918309">Kirim data penggunaan dan diagnostik. Perangkat ini saat ini otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda serta akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. <ph name="BEGIN_LINK1" />Setelan<ph name="END_LINK1" /> ini diterapkan oleh pemilik. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke akun Google miliknya. <ph name="BEGIN_LINK2" />Pelajari Lebih Lanjut<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN yang diakhiri dengan <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Masukkan nama pengguna Anda</translation> @@ -6894,6 +6902,7 @@ <translation id="7063129466199351735">Memproses pintasan...</translation> <translation id="7063311912041006059">URL dengan <ph name="SPECIAL_SYMBOL" /> sebagai ganti kueri</translation> <translation id="706342288220489463">Izinkan Asisten menggunakan info di layar untuk membantu Anda</translation> +<translation id="70641621694466590">Buka halaman Sandi</translation> <translation id="7064734931812204395">Mengonfigurasi penampung Linux. Proses ini mungkin memerlukan waktu hingga 30 menit.</translation> <translation id="7065223852455347715">Perangkat ini terkunci dalam mode yang mencegah pendaftaran perusahaan. Jika ingin mendaftarkan perangkat, Anda perlu memulihkan perangkat terlebih dahulu.</translation> <translation id="7065534935986314333">Tentang Sistem</translation> @@ -7394,6 +7403,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> dengan Aplikasi <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Disinkronkan dengan perangkat lain di akun Anda. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Aktifkan fitur debug pada perangkat <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="7544977292347272434">Minta orang tua untuk mengizinkan ekstensi</translation> <translation id="7545466883021407599">Tidak dapat terhubung dengan server. Periksa koneksi jaringan Anda, lalu coba lagi. Jika Anda masih mengalami masalah, coba mulai ulang Chromebook. Kode error: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Peringatan: setelan <ph name="PRODUCT_NAME" /> Anda disimpan di drive jaringan. Hal ini dapat mengakibatkan kelambatan, kerusakan, atau bahkan hilangnya data.</translation> <translation id="7548856833046333824">Minum</translation> @@ -7622,6 +7632,7 @@ <translation id="7728668285692163452">Perubahan saluran akan diterapkan nanti</translation> <translation id="7730449930968088409">Menangkap konten layar Anda</translation> <translation id="7730683939467795481">Halaman ini diubah oleh ekstensi "<ph name="EXTENSION_NAME" />"</translation> +<translation id="773511996612364297">Tanda aksen</translation> <translation id="7735165285389721951">Penyiapan Steam lain sedang berlangsung. Tunggu hingga proses selesai sebelum mencoba lagi</translation> <translation id="7737115349420013392">Menyambungkan dengan "<ph name="DEVICE_NAME" />" ...</translation> <translation id="7737203573077018777">Petunjuk <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> diterima</translation> @@ -7704,6 +7715,7 @@ <translation id="7792388396321542707">Hentikan berbagi</translation> <translation id="779308894558717334">Hijau muda</translation> <translation id="7793098747275782155">Biru tua</translation> +<translation id="7796453472368605346">Diakritik</translation> <translation id="7797571222998226653">Nonaktif</translation> <translation id="7798504574384119986">Lihat Izin Web</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> diblokir secara otomatis</translation> @@ -7788,6 +7800,7 @@ <translation id="7876027585589532670">Tidak dapat mengedit pintasan</translation> <translation id="7877451762676714207">Kesalahan server tidak diketahui. Coba lagi, atau hubungi administrator server.</translation> <translation id="7878945852730162014">Kelola file saat didownload, dan buka setelah selesai didownload</translation> +<translation id="7879172417209159252">Tidak bisa menggunakan ekstensi</translation> <translation id="7879478708475862060">Ikuti mode masukan</translation> <translation id="7879631849810108578">Pintasan yang disetel: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Data lokal akan dihapus saat Anda memulai ulang</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 7b4a84bf..ef646ab 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -3031,6 +3031,7 @@ <translation id="3609277884604412258">חיפוש מהיר</translation> <translation id="3610241585790874201">אין לאתרים האלה הרשאה לשמור נתונים במכשיר שלך</translation> <translation id="3610369246614755442">המאוורר של אביזר העגינה צריך תיקון</translation> +<translation id="3610961622607302617">שינוי סיסמה לאתר <ph name="WEBSITE" />.</translation> <translation id="361106536627977100">נתוני Flash</translation> <translation id="3611655097742243705">אפליקציות נוספות מחכות לך בחנות Play</translation> <translation id="3611658447322220736">אתרים שנסגרו לאחרונה יכולים לסיים שליחה וקבלה של נתונים</translation> @@ -4104,6 +4105,7 @@ <translation id="4545759655004063573">לא ניתן לשמור עקב הרשאות לא מספיקות. יש לשמור במיקום אחר.</translation> <translation id="4546308221697447294">גלישה מהירה עם Google Chrome</translation> <translation id="4546345569117159016">הלחצן הימני</translation> +<translation id="4546509872654834602"><ph name="SUPERVISED_USER_NAME" /> רוצה להשתמש בתוסף הזה:</translation> <translation id="4546692474302123343">קלט קולי ב-Google Assistant</translation> <translation id="4547659257713117923">אין כרטיסיות ממכשירים אחרים</translation> <translation id="4547672827276975204">הגדרה באופן אוטומטי</translation> @@ -6048,6 +6050,7 @@ <translation id="6318125393809743217">הכללה של קובץ policies.json עם הגדרות המדיניות.</translation> <translation id="6318407754858604988">ההורדה התחילה</translation> <translation id="6318944945640833942">לא אותרה מדפסת. יש להזין שוב את כתובת המדפסת.</translation> +<translation id="6320808462673705899">אין סימניות שתואמות לחיפוש שביצעת.</translation> <translation id="6322370287306604163">ביטול נעילה מהיר יותר באמצעות טביעת אצבע</translation> <translation id="6322559670748154781">בדרך כלל לא מורידים את הקובץ הזה ולכן הוא נחסם על ידי ההגנה המתקדמת</translation> <translation id="6324916366299863871">עריכת קיצור דרך</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index 088fd66..c80d5c9 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -696,6 +696,7 @@ <translation id="1593594475886691512">フォーマット中...</translation> <translation id="159359590073980872">画像キャッシュ</translation> <translation id="1593926297800505364">お支払い方法を保存</translation> +<translation id="1594703455918849716">チェックアップ ページに移動</translation> <translation id="1595492813686795610">Linux をアップグレードしています</translation> <translation id="1596286373007273895">使用可能</translation> <translation id="1596709061955594992">Bluetooth がオフになっています。使用可能なデバイスを表示するには、Bluetooth をオンにしてください。</translation> @@ -1233,7 +1234,7 @@ <translation id="2048554637254265991">コンテナ マネージャーの起動中にエラーが発生しました。もう一度お試しください。</translation> <translation id="2048653237708779538">操作できません</translation> <translation id="204914487372604757">ショートカットを作成</translation> -<translation id="2050339315714019657">縦向き</translation> +<translation id="2050339315714019657">ポートレート</translation> <translation id="2051555741181591333">アクセス ポイントを自動的に無効にする</translation> <translation id="2052572566310583903">他のデバイスにインストール済み</translation> <translation id="2053105195397337973">Google では、サイトが広告のスパムと不正行為を防止できるようにしながら、トラッキングを制限する方法を模索しています。</translation> @@ -1674,6 +1675,7 @@ <translation id="2399699884460174994">通知をオンにしました</translation> <translation id="2399939490305346086">セキュリティ キーのログインデータ</translation> <translation id="2400664245143453337">今すぐ更新が必要です</translation> +<translation id="2402226831639195063">通知音</translation> <translation id="2406153734066939945">このプロフィールとデータを削除しますか?</translation> <translation id="2408018932941436077">カードを保存しています</translation> <translation id="2408955596600435184">PIN を入力してください</translation> @@ -1685,6 +1687,7 @@ <translation id="241082044617551207">不明なプラグイン</translation> <translation id="2410940059315936967">アクセスしたサイトに他のサイトのコンテンツ(画像、広告、テキストなど)が埋め込まれている場合があります。こうした他のサイトによって設定された Cookie は「サードパーティ Cookie」と呼ばれます。</translation> <translation id="2411666601450687801">このデバイスでは仮想マシンは許可されていません</translation> +<translation id="2412015533711271895">この拡張機能を使用するは、保護者の同意が必要です</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">暗</translation> <translation id="2416435988630956212">キーボードのファンクション キー</translation> @@ -3009,6 +3012,7 @@ <translation id="3609277884604412258">すばやく検索</translation> <translation id="3610241585790874201">デバイスへのデータの保存を許可しない</translation> <translation id="3610369246614755442">ドックのファンに問題があります</translation> +<translation id="3610961622607302617"><ph name="WEBSITE" /> のパスワードを変更</translation> <translation id="361106536627977100">Flash データ</translation> <translation id="3611655097742243705">Play ストアでアプリを探しましょう</translation> <translation id="3611658447322220736">最近閉じたサイトがデータの送受信を完了できるようにする</translation> @@ -3065,6 +3069,7 @@ <translation id="3651488188562686558">Wi-Fi から切断します</translation> <translation id="3652817283076144888">初期化しています</translation> <translation id="3653160965917900914">ネットワーク ファイル共有</translation> +<translation id="3653887973853407813">この拡張機能は使用できません。保護者が Chrome の [サイト、アプリ、拡張機能の権限] をオフにしています。</translation> <translation id="3653999333232393305"><ph name="HOST" /> によるマイクへのアクセスを引き続き許可する</translation> <translation id="3654045516529121250">ユーザー補助設定の読み取り</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{1 個のファイルに永続的にアクセスできます。}other{# 個のファイルに永続的にアクセスできます。}}</translation> @@ -5133,6 +5138,7 @@ <translation id="5517304475148761050">このアプリは、Play ストアへのアクセスが必要です</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">クリップボードにコピーされているテキストや画像にサイトがアクセスする際に確認する</translation> +<translation id="5518949581554491184">Android スマートフォンで設定</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">このホーム ページでよろしいですか?</translation> <translation id="5522156646677899028">この拡張機能にはセキュリティ上の重大な問題があります。</translation> @@ -6022,6 +6028,7 @@ <translation id="6318125393809743217">ポリシー設定の policies.json ファイルを含める。</translation> <translation id="6318407754858604988">ダウンロードを開始しました</translation> <translation id="6318944945640833942">プリンタを検出できませんでした。プリンタのアドレスをもう一度入力してください。</translation> +<translation id="6320808462673705899">検索条件に一致するブックマークはありません。</translation> <translation id="6322370287306604163">指紋を使ってロックをすばやく解除できます</translation> <translation id="6322559670748154781">このファイルは一般的にダウンロードされているファイルではないため、高度な保護機能でブロックされました</translation> <translation id="6324916366299863871">ショートカットの編集</translation> @@ -6465,6 +6472,7 @@ <translation id="6725206449694821596">インターネット印刷プロトコル(IPP)</translation> <translation id="6725970970008349185">1 ページに表示する候補数</translation> <translation id="672609503628871915">新機能を確認する</translation> +<translation id="6726800386221816228">特殊文字</translation> <translation id="67269783048918309">使用状況データや診断データを送信します。このデバイスは現在、診断データやデバイスとアプリの使用状況データを Google に自動送信するように設定されています。この情報を使ってお子様個人が特定されることはありません。この情報は、システムとアプリの安定性の向上やその他の機能の改善に役立てられます。また、Google のアプリやパートナー(Android デベロッパーなど)も、集計データとしてこの情報を活用します。この<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />は所有者によって管理されています。お子様の [その他のウェブとアプリのアクティビティ] の設定がオンになっている場合、このデータはお子様の Google アカウントに保存されます。<ph name="BEGIN_LINK2" />詳細<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">末尾が <ph name="LAST_FOUR_DIGITS" /> の IBAN</translation> <translation id="6729192290958770680">ユーザー名を入力してください</translation> @@ -6866,6 +6874,7 @@ <translation id="7063129466199351735">ショートカットを処理しています...</translation> <translation id="7063311912041006059">URL(<ph name="SPECIAL_SYMBOL" />=検索語句)</translation> <translation id="706342288220489463">アシスタントに画面上の情報を使用したサポートを許可する</translation> +<translation id="70641621694466590">パスワード ページに移動</translation> <translation id="7064734931812204395">Linux コンテナを設定しています。最長で 30 分ほどかかります。</translation> <translation id="7065223852455347715">このデバイスは企業の登録を防止するモードでロックされています。このデバイスを登録するにはまずデバイスの復元を行ってください。</translation> <translation id="7065534935986314333">システムについて</translation> @@ -7366,6 +7375,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> アプリで <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">アカウントの他のデバイスと同期しています。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation> <translation id="7543104066686362383">この <ph name="IDS_SHORT_PRODUCT_NAME" /> デバイスでデバッグ機能を有効にします</translation> +<translation id="7544977292347272434">保護者に拡張機能の許可をリクエスト</translation> <translation id="7545466883021407599">サーバーに接続できませんでした。ネットワーク接続を確認して、もう一度お試しください。接続を確認しても問題が解決しない場合は、Chromebook を再起動してみてください。エラーコード: <ph name="ERROR_CODE" />。</translation> <translation id="7547317915858803630">警告: お使いの <ph name="PRODUCT_NAME" /> の設定はネットワーク ドライブに保存されています。遅延、クラッシュ、データ損失が生じる場合があります。</translation> <translation id="7548856833046333824">レモネード</translation> @@ -7594,6 +7604,7 @@ <translation id="7728668285692163452">チャンネルの変更は後で適用されます</translation> <translation id="7730449930968088409">画面のコンテンツをキャプチャする</translation> <translation id="7730683939467795481">このページは「<ph name="EXTENSION_NAME" />」拡張機能によって変更されました</translation> +<translation id="773511996612364297">アクセント記号</translation> <translation id="7735165285389721951">別の Steam セットアップが実行中です。完了してから、もう一度お試しください</translation> <translation id="7737115349420013392">「<ph name="DEVICE_NAME" />」とペア設定しています…</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> の指示を受信しました</translation> @@ -7675,6 +7686,7 @@ <translation id="7792388396321542707">共有を停止</translation> <translation id="779308894558717334">明るい緑</translation> <translation id="7793098747275782155">暗い青</translation> +<translation id="7796453472368605346">分音符号</translation> <translation id="7797571222998226653">オフ</translation> <translation id="7798504574384119986">ウェブ権限を表示</translation> <translation id="7798844538707273832"><ph name="PERMISSION" />を自動ブロック</translation> @@ -7759,6 +7771,7 @@ <translation id="7876027585589532670">ショートカットの編集はできません</translation> <translation id="7877451762676714207">不明なサーバー エラーが発生しました。もう一度お試しになるか、サーバー管理者にご連絡ください。</translation> <translation id="7878945852730162014">ダウンロードしたファイルを管理して、完了したら開きます</translation> +<translation id="7879172417209159252">拡張機能を使用できません</translation> <translation id="7879478708475862060">入力モードのとおり</translation> <translation id="7879631849810108578">ショートカットが設定されました: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">再起動すると、ローカルデータが削除されます</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 61d73efc..2b39473 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -696,6 +696,7 @@ <translation id="1593594475886691512">ფორმატირება…</translation> <translation id="159359590073980872">გამოსახულების ქეში</translation> <translation id="1593926297800505364">გადახდის მეთოდის შენახვა</translation> +<translation id="1594703455918849716">შემოწმების გვერდზე გადასვლა</translation> <translation id="1595492813686795610">მიმდინარეობს Linux-ის განახლება</translation> <translation id="1596286373007273895">ხელმისაწვდომია</translation> <translation id="1596709061955594992">Bluetooth გამორთულია. ხელმისაწვდომი მოწყობილობების სანახავად ჩართეთ Bluetooth.</translation> @@ -1679,6 +1680,7 @@ <translation id="2399699884460174994">შეტყობინებები ჩართულია</translation> <translation id="2399939490305346086">უსაფრთხოების გასაღების სისტემაში შესვლის მონაცემები</translation> <translation id="2400664245143453337">საჭიროა გადაუდებელი განახლება</translation> +<translation id="2402226831639195063">ხმები</translation> <translation id="2406153734066939945">გსურთ, წაშალოთ ეს პროფილი და მისი მონაცემები?</translation> <translation id="2408018932941436077">მიმდინარეობს ბარათის შენახვა</translation> <translation id="2408955596600435184">შეიყვანეთ თქვენი PIN-კოდი</translation> @@ -1690,6 +1692,7 @@ <translation id="241082044617551207">უცნობი დანამატი</translation> <translation id="2410940059315936967">საიტს, რომელსაც ეწვევით, შეუძლია სხვა საიტების კონტენტის (მაგალითად, სურათების, რეკლამისა და ტექსტის) ჩაშენება. სხვა საიტების მიერ განსაზღვრულ ქუქი-ჩანაწერებს მესამე მხარის ქუქი-ჩანაწერები ეწოდება.</translation> <translation id="2411666601450687801">ვირტუალური მოწყობილობების გამოყენება დაუშვებელია ამ მოწყობილობაზე</translation> +<translation id="2412015533711271895">ეს გაფართოება რომ გამოიყენოთ, საჭიროა თქვენი მშრობლის ან მეურვის თანხმობა</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">მუქი</translation> <translation id="2416435988630956212">კლავიატურის ფუნქციური კლავიშები</translation> @@ -3073,6 +3076,7 @@ <translation id="3651488188562686558">Wi-Fi-თან კავშირის გაწყვეტა</translation> <translation id="3652817283076144888">მიმდინარეობს ინიციალიზაცია</translation> <translation id="3653160965917900914">ქსელში გაზიარებული ფაილები</translation> +<translation id="3653887973853407813">ამ გაფართოებას ვერ გამოიყენებთ. თქვენმა მშობელმა ან მეურვემ Chrome-ისთვის გამორთო „ნებართვები საიტებისთვის, აპებისა და გაფართოებებისთვის“.</translation> <translation id="3653999333232393305">გაგრძელება <ph name="HOST" />-ისთვის მიკროფონზე წვდომის დაშვებით</translation> <translation id="3654045516529121250">თქვენი სპეციალური შესაძლებლობების პარამეტრების წაკითხვა</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{აქვს მუდმივი წვდომა ერთ ფაილზე.}other{აქვს მუდმივი წვდომა # ფაილზე.}}</translation> @@ -4946,6 +4950,7 @@ <translation id="5338503421962489998">ადგილობრივი მეხსიერება</translation> <translation id="5339031667684712858">თქვენ მიერ ამოშლილი საიტები</translation> <translation id="5340638867532133571">საიტებისთვის გადახდის დამმუშავებლების ინსტალაციის დაშვება (რეკომენდებული)</translation> +<translation id="5340787663756381836">&პოვნა და რედაქტირება</translation> <translation id="5341793073192892252">დაბლოკილია შემდეგი ქუქი-ჩანაწერები (მესამე მხარის ქუქი-ჩანაწერები იბლოკება გამონაკლისების გარეშე)</translation> <translation id="5342091991439452114">PIN-კოდი უნდა შედგებოდეს მინიმუმ <ph name="MINIMUM" /> ციფრისგან</translation> <translation id="5344036115151554031">მიმდინარეობს Linux-ის აღდგენა</translation> @@ -5144,6 +5149,7 @@ <translation id="5517304475148761050">ეს აპი საჭიროებს წვდომას Play Store-ზე</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> — <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">შეკითხვა, როცა საიტს სურს გაცვლის ბუფერში კოპირებული ტექსტისა და სურათების ნახვა</translation> +<translation id="5518949581554491184">Android ტელეფონის დაყენება</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">არის ეს ის საწყისი გვერდი, რომელსაც მოელოდით?</translation> <translation id="5522156646677899028">ეს გაფართოება შეიცავს უსაფრთხოების სერიოზულ ხარვეზს.</translation> @@ -6478,6 +6484,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">საჩვენებელი კანდიდატების რიცხვი ერთ გვერდზე</translation> <translation id="672609503628871915">ნახეთ სიახლეებირა სიახლეა</translation> +<translation id="6726800386221816228">საგანგებო სიმბოლოები</translation> <translation id="67269783048918309">გამოყენებისა და დიაგნოსტიკის მონაცემების გაგზავნა. ეს მოწყობილობა ამჟამად ავტომატურად უგზავნის Google-ს დიაგნოსტიკისა და მოწყობილობის/აპების გამოყენების მონაცემებს. აღნიშნული მონაცემები არ იქნება გამოყენებული თქვენი შვილის ვინაობის დასადგენად, არამედ დაგვეხმარება სისტემის/აპების სტაბილურობისა და სხვა ფუნქციების გაუმჯობესებაში. გარდა ამისა, გაერთიანებული მონაცემების ნაწილი ხელს შეუწყობს Google აპებსა და პარტნიორებს, მაგალითად, Android-ის დეველოპერებს. ეს <ph name="BEGIN_LINK1" />პარამეტრი<ph name="END_LINK1" /> არის იძულებით გააქტიურებული მფლობელის მიერ. თუ თქვენი შვილისთვის ჩართულია ვებსა და აპებში დამატებითი აქტივობის პარამეტრი, აღნიშნული მონაცემები შესაძლოა შეინახოს მის Google ანგარიშში. <ph name="BEGIN_LINK2" />შეიტყვეთ მეტი<ph name="END_LINK2" /></translation> <translation id="6728528977475057549"><ph name="LAST_FOUR_DIGITS" />-ით დაბოლოებული IBAN</translation> <translation id="6729192290958770680">შეიყვანეთ თქვენი მომხმარებლის სახელი</translation> @@ -6880,6 +6887,7 @@ <translation id="7063129466199351735">მალსახმობების დამუშავება…</translation> <translation id="7063311912041006059">URL <ph name="SPECIAL_SYMBOL" />-ით მოთხოვნის ადგილზე</translation> <translation id="706342288220489463">დართეთ ნება თქვენს ასისტენტს, დაგეხმაროთ თქვენს ეკრანზე არსებული ინფორმაციის მეშვეობით</translation> +<translation id="70641621694466590">პაროლების გვერდზე გადასვლა</translation> <translation id="7064734931812204395">მიმდინარეობს Linux-ის კონტეინერის კონფიგურაცია. ამას შეიძლება 30 წუთამდე დრო დასჭირდეს.</translation> <translation id="7065223852455347715">ეს მოწყობილობა იმგვარადაა ჩაკეტილი, რომ მისი ორგანიზაციაში რეგისტრაცია შეუძლებელია. თუ მოწყობილობის რეგისტრაცია გსურთ, ჯერ უნდა გაიაროთ მოწყობილობის აღდგენა.</translation> <translation id="7065534935986314333">სისტემის შესახებ</translation> @@ -7380,6 +7388,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> <ph name="APP_NAME" /> აპით</translation> <translation id="754207240458482646">სინქრონიზებულია თქვენს ანგარიშთან დაკავშირებულ სხვა მოწყობილობებს შორის. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation> <translation id="7543104066686362383">რთავს გამართვის თვისებებს ამ <ph name="IDS_SHORT_PRODUCT_NAME" /> მოწყობილობისათვის</translation> +<translation id="7544977292347272434">სთხოვეთ თქვენს მშობელს, დაუშვას გაფართოების გამოყენება</translation> <translation id="7545466883021407599">სერვერთან დაკავშირება ვერ მოხერხდა. შეამოწმეთ ქსელთან კავშირი და ხელახლა ცადეთ. თუ პრობლემა არ მოგვარდება, ცადეთ Chromebook-ის გადატვირთვა. შეცდომის კოდი: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">გაფრთხილება: თქვენი <ph name="PRODUCT_NAME" />-ის პარამეტრები ინახება ქსელის დისკწამყვანზე. ამან შეიძლება გამოიწვიოს შენელება, მწყობრიდან გამოსვლა და მონაცემთა დაკარგვაც კი.</translation> <translation id="7548856833046333824">ლიმონადი</translation> @@ -7608,6 +7617,7 @@ <translation id="7728668285692163452">არხის ცვლილების მისადაგება მოგვიანებით განხორციელდება</translation> <translation id="7730449930968088409">ეკრანის შიგთავსის ჩაწერა</translation> <translation id="7730683939467795481">ეს გვერდი შეიცვალა „<ph name="EXTENSION_NAME" />“ გაფართოების მიერ</translation> +<translation id="773511996612364297">მახვილის ნიშნები</translation> <translation id="7735165285389721951">გაშვებულია Steam-ის დაყენების სხვა პროცესი. ხელახლა ცდამდე დაელოდეთ მის დასრულებას.</translation> <translation id="7737115349420013392">მიმდინარეობს „<ph name="DEVICE_NAME" />“-თან დაწყვილება...</translation> <translation id="7737203573077018777">მიღებულია <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> ინსტრუქცია</translation> @@ -7690,6 +7700,7 @@ <translation id="7792388396321542707">შეწყვიტეთ გაზიარება</translation> <translation id="779308894558717334">ღია მწვანე</translation> <translation id="7793098747275782155">მუქი ლურჯი</translation> +<translation id="7796453472368605346">დიაკრიტიკული ნიშნები</translation> <translation id="7797571222998226653">გამორთული</translation> <translation id="7798504574384119986">ვებნებართვების ნახვა</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> დაბლოკილია ავტომატურად</translation> @@ -7774,6 +7785,7 @@ <translation id="7876027585589532670">მალსახმობის რედაქტირება ვერ ხერხდება</translation> <translation id="7877451762676714207">სერვერის უცნობი შეცდომა. გთხოვთ სცადოთ ისევ ან დაუკავშირდით სერვერის ადმინისტრატორს.</translation> <translation id="7878945852730162014">მართეთ ფაილები მათი ჩამოტვირთვის პროცესში და გახსენით ისინი, როცა მზად იქნება</translation> +<translation id="7879172417209159252">გაფართოების გამოყენება ვერ ხერხდება</translation> <translation id="7879478708475862060">მიყევით შეყვანის რეჟიმს</translation> <translation id="7879631849810108578">მალსახმობი დაყენებულია: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">ადგილობრივი მონაცემები წაიშლება გადატვირთვის შემდეგ</translation> @@ -9328,6 +9340,7 @@ <translation id="939401694733344652">ეს ანგარიშები ამჟამად არ გამოიყენება Android აპებში. თუ ამ Android აპში გამოსაყენებლად რომელიმე ანგარიშს აირჩევთ, აღნიშნული ანგარიშის გამოყენება შესაძლებელი იქნება სხვა Android აპებშიც. Android აპებთან დაკავშირებული წვდომის შეცვლა შეგიძლიათ აქ: <ph name="LINK_BEGIN" />პარამეტრები > ანგარიშები<ph name="LINK_END" />.</translation> <translation id="939598580284253335">შეიყვანეთ საიდუმლო ფრაზა</translation> <translation id="939736085109172342">ახალი საქაღალდე</translation> +<translation id="940212040923880623">&პოვნა და რედაქტირება</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> Chrome-ის ჩანართსა და აუდიოს აზიარებს.</translation> <translation id="944799160843436808">Steam on Chromebook-ის დაყენება ვერ მოხერხდა პრობლემის გამო</translation> <translation id="945522503751344254">შეფასების გაგზავნა</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index 11ed651..ec906bc 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -693,6 +693,7 @@ <translation id="1593594475886691512">Пішімделуде…</translation> <translation id="159359590073980872">Кескін кэші</translation> <translation id="1593926297800505364">Төлеу әдісін сақтау</translation> +<translation id="1594703455918849716">Тексеру бетіне өту</translation> <translation id="1595492813686795610">Linux жүйесінің жаңа нұсқасы орнатылуда</translation> <translation id="1596286373007273895">Қолжетімді</translation> <translation id="1596709061955594992">Bluetooth өшірулі. Қолжетімді құрылғыларды көру үшін Bluetooth қосыңыз.</translation> @@ -1676,6 +1677,7 @@ <translation id="2399699884460174994">Хабарландырулар қосылды</translation> <translation id="2399939490305346086">Қауіпсіздік кілтіне кіру деректері</translation> <translation id="2400664245143453337">Дереу жаңарту қажет</translation> +<translation id="2402226831639195063">Сигнал дыбыстары</translation> <translation id="2406153734066939945">Бұл профиль және оның деректері жойылсын ба?</translation> <translation id="2408018932941436077">Карта сақталуда</translation> <translation id="2408955596600435184">PIN кодын енгізіңіз</translation> @@ -1687,6 +1689,7 @@ <translation id="241082044617551207">Белгісіз плагин</translation> <translation id="2410940059315936967">Сіз кірген сайт басқа сайттардан алынған контентті (мысалы, суреттерді, жарнамаларды және мәтінді) ендіре алады. Осындай басқа сайттар орнатқан cookie файлдары үшінші тарап cookie файлдары деп аталады.</translation> <translation id="2411666601450687801">Бұл құрылғыда виртуалды машиналарға рұқсат етілмейді</translation> +<translation id="2412015533711271895">Ата-анаңыз немесе қамқоршыңыз бұл кеңейтімді пайдалануыңызға рұқсат беруі керек</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Күңгірт</translation> <translation id="2416435988630956212">Пернетақтаның функциялық пернелері</translation> @@ -3013,6 +3016,7 @@ <translation id="3609277884604412258">Жылдам іздеу</translation> <translation id="3610241585790874201">Құрылғыңызда деректерді сақтауға рұқсаты жоқ</translation> <translation id="3610369246614755442">Қондыру станциясының желдеткішін жөндеу керек</translation> +<translation id="3610961622607302617"><ph name="WEBSITE" /> құпия сөзін өзгерту</translation> <translation id="361106536627977100">Flash деректері</translation> <translation id="3611655097742243705">Басқа да қолданбаларды табу үшін Play Store-ға өтіңіз.</translation> <translation id="3611658447322220736">Соңғы кездері жабылған сайттар деректерді жіберу және қабылдау процесін аяқтай алады</translation> @@ -3069,6 +3073,7 @@ <translation id="3651488188562686558">Wi-Fi желісінен ажырату</translation> <translation id="3652817283076144888">Жұмысқа дайындалуда</translation> <translation id="3653160965917900914">Желінің ортақ каталогтері</translation> +<translation id="3653887973853407813">Бұл кеңейтімді пайдалана алмайсыз. Ата-анаңыз немесе қамқоршыңыз Chrome үшін "Сайттарға, қолданбаларға және кеңейтімдерге берілген рұқсаттарды" өшірді.</translation> <translation id="3653999333232393305"><ph name="HOST" /> хостына берілген микрофоныңызды пайдалану рұқсатын сақтау</translation> <translation id="3654045516529121250">Арнайы мүмкіндіктер параметрлерін оқу</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Оның бір файлға тұрақты кіру құқығы бар.}other{Оның # файлға тұрақты кіру құқығы бар.}}</translation> @@ -5140,6 +5145,7 @@ <translation id="5517304475148761050">Қолданбаға Play Store дүкеніне кіру рұқсаты қажет</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Сайт буферге көшірілген мәтінді және кескіндерді көргісі келген кезде сұралсын</translation> +<translation id="5518949581554491184">Android телефонымен реттеу</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Бұл сіз күткен бастапқы бет пе?</translation> <translation id="5522156646677899028">Бұл кеңейтім өте қауіпсіз.</translation> @@ -6026,6 +6032,7 @@ <translation id="6318125393809743217">Саясат конфигурациясында policies.json файлын қамту.</translation> <translation id="6318407754858604988">Жүктеп алына бастады</translation> <translation id="6318944945640833942">Принтер анықталмады. Принтер мекенжайын қайта енгізіңіз.</translation> +<translation id="6320808462673705899">Іздеуіңізге сәйкес келетін бетбелгілер жоқ.</translation> <translation id="6322370287306604163">Саусақ ізімен құлыпты жылдам ашу</translation> <translation id="6322559670748154781">Бұл файл әдетте жүктеп алынбайды, сол себепті "Күшейтілген қорғаныс" функциясы оны бөгеді.</translation> <translation id="6324916366299863871">Таңбашаны өзгерту</translation> @@ -6470,6 +6477,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Әр бетте көрсетілетін кандидаттар саны</translation> <translation id="672609503628871915">Жаңалықтарды қарау</translation> +<translation id="6726800386221816228">Арнайы таңбалар</translation> <translation id="67269783048918309">Пайдаланылуы және диагностикасы туралы деректерді жіберу. Бұл құрылғыдан Google-ға диагностика, құрылғы мен қолданбаны пайдалану деректері автоматты түрде жіберіліп тұрады. Бұл деректер баланың жеке басын анықтауға пайдаланылмайды. Олар жүйе мен қолданбаның тұрақты жұмыс істеуіне және басқа да жақсартулар енгізуге көмектеседі. Кейбір жиынтық деректер Google қолданбаларын жетілдіруге және Android әзірлеушілері сияқты серіктестердің жұмысына көмектеседі. Бұл <ph name="BEGIN_LINK1" />параметрді<ph name="END_LINK1" /> иесі орнатқан. Егер "Интернет пен қолданбаларды пайдаланудың қосымша тарихы" параметрі қосулы болса, бұл деректер балаңыздың Google аккаунтына сақталуы мүмкін. <ph name="BEGIN_LINK2" />Толығырақ<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN нөмірі <ph name="LAST_FOUR_DIGITS" /> болып аяқталады</translation> <translation id="6729192290958770680">Пайдаланушы атын енгізіңіз.</translation> @@ -6872,6 +6880,7 @@ <translation id="7063129466199351735">Таңбашалар өңделуде…</translation> <translation id="7063311912041006059">Сұрау орнындағы <ph name="SPECIAL_SYMBOL" /> таңбасы бар URL сілтемесі</translation> <translation id="706342288220489463">Assistant-тің экраныңыздағы ақпаратты пайдалануына рұқсат етіңіз</translation> +<translation id="70641621694466590">Құпия сөздер бетіне өту</translation> <translation id="7064734931812204395">Linux контейнері конфигурацияланып жатыр. Оған 30 минуттай уақыт кетуі мүмкін.</translation> <translation id="7065223852455347715">Бұл құрылғы кәсіпорын тіркеуіне жол бермейтін режимде бекітілген. Құрылғыны тіркегіңіз келсе, алдымен құрылғыны қалпына келтіру қажет.</translation> <translation id="7065534935986314333">Жүйе туралы</translation> @@ -7372,6 +7381,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> қолданбасымен <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">Аккаунтыңыздағы басқа құрылғылармен синхрондалды. <ph name="LINK_BEGIN" />Толығырақ<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Осы <ph name="IDS_SHORT_PRODUCT_NAME" /> құрылғысындағы түзету мүмкіндіктерін қосу</translation> +<translation id="7544977292347272434">Ата-анаңыздан кеңейтімге рұқсат беруін сұраңыз</translation> <translation id="7545466883021407599">Серверге қосылмады. Желі байланысын тексеріп, қайталап көріңіз. Егер мәселе шешілмесе, Chromebook-ті өшіріп қосыңыз. Қате коды: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Ескерту: <ph name="PRODUCT_NAME" /> параметрлері желілік дискіде сақталады. Бұл баяулауға, бұзылуға немесе деректердің жойылуына себеп болуы мүмкін.</translation> <translation id="7548856833046333824">Лимонад</translation> @@ -7600,6 +7610,7 @@ <translation id="7728668285692163452">Арна өзгерісі кейінірек қолданылады</translation> <translation id="7730449930968088409">Экранның контентін түсіру</translation> <translation id="7730683939467795481">Бұл бет "<ph name="EXTENSION_NAME" />" кеңейтімі арқылы өзгертілді.</translation> +<translation id="773511996612364297">Екпін белгілері</translation> <translation id="7735165285389721951">Басқа Steam-ді реттеу процесі орындалып жатыр. Әрекетті қайталамас бұрын, осы процестің аяқталуын күтіңіз.</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" құрылғысымен жұпталуда ...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> нұсқауы алынды</translation> @@ -7682,6 +7693,7 @@ <translation id="7792388396321542707">Бөлісуді тоқтату</translation> <translation id="779308894558717334">Ашық жасыл</translation> <translation id="7793098747275782155">Қою көк</translation> +<translation id="7796453472368605346">Диакритикалық таңбалар</translation> <translation id="7797571222998226653">Өшірулі</translation> <translation id="7798504574384119986">Веб-рұқсаттарды көру</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> автоматты түрде бөгелді.</translation> @@ -7766,6 +7778,7 @@ <translation id="7876027585589532670">Таңбашаны өзгерту мүмкін емес.</translation> <translation id="7877451762676714207">Белгісіз сервер қатесі. Әрекетті қайталап көріңіз немесе сервер әкімшісіне хабарласыңыз.</translation> <translation id="7878945852730162014">Жүктеп алу кезінде файлдарды басқару және аяқталған кезде ашу</translation> +<translation id="7879172417209159252">Кеңейтімді пайдалану мүмкін емес</translation> <translation id="7879478708475862060">Енгізу режимін қолдану</translation> <translation id="7879631849810108578">Пернелер тіркесімі орнатылды: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Іске қосылған кезде, жергілікті деректер жойылады</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index 4e5200a..55eae9f3 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -9246,7 +9246,7 @@ <translation id="9137916601698928395">ಲಿಂಕ್ ಅನ್ನು <ph name="USER" /> ರಂತೆ ತೆರೆಯಿರಿ</translation> <translation id="9138978632494473300">ಕೆಳಗೆ ಸ್ಥಳಗಳಿಗೆ ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ಸೇರಿಸಿ:</translation> <translation id="9139988741193276691">Linux ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> -<translation id="9140067245205650184">ನೀವು ಬೆಂಬಲಿತವಲ್ಲದ ವೈಶಿಷ್ಟ್ಯ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೀರಿ: <ph name="BAD_FLAG" />. ಸ್ಥಿರತೆ ಮತ್ತು ಸುರಕ್ಷತೆಯು ಹಾನಿಯಾಗುತ್ತದೆ.</translation> +<translation id="9140067245205650184">ನೀವು ಬೆಂಬಲಿತವಲ್ಲದ ಫೀಚರ್ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೀರಿ: <ph name="BAD_FLAG" />. ಸ್ಥಿರತೆ ಮತ್ತು ಸುರಕ್ಷತೆಯು ಹಾನಿಯಾಗುತ್ತದೆ.</translation> <translation id="9142637293078737510">ಚಿತ್ರ ಆಲಿಯಾಸ್</translation> <translation id="9143298529634201539">ಸಲಹೆಯನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?</translation> <translation id="9143922477019434797">ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ರಕ್ಷಿಸಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index 1f8c27f..7a5f332 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">포맷 중...</translation> <translation id="159359590073980872">이미지 캐시</translation> <translation id="1593926297800505364">결제 수단 저장</translation> +<translation id="1594703455918849716">진단 페이지로 이동합니다.</translation> <translation id="1595492813686795610">Linux 업그레이드 중</translation> <translation id="1596286373007273895">사용 가능</translation> <translation id="1596709061955594992">블루투스가 사용 중지되어 있습니다. 사용 가능한 기기를 보려면 블루투스를 사용 설정하세요</translation> @@ -1696,6 +1697,7 @@ <translation id="2399699884460174994">알림 사용 설정됨</translation> <translation id="2399939490305346086">보안 키 로그인 데이터</translation> <translation id="2400664245143453337">즉시 업데이트 필요</translation> +<translation id="2402226831639195063">신호음</translation> <translation id="2406153734066939945">프로필과 데이터를 삭제하시겠습니까?</translation> <translation id="2408018932941436077">카드 저장 중</translation> <translation id="2408955596600435184">PIN 입력</translation> @@ -1707,6 +1709,7 @@ <translation id="241082044617551207">알 수 없는 플러그인</translation> <translation id="2410940059315936967">내가 방문한 사이트에서 다른 사이트의 콘텐츠(예: 이미지, 광고, 텍스트)를 삽입할 수 있습니다. 다른 사이트에서 설정한 쿠키를 서드 파티 쿠키라고 합니다.</translation> <translation id="2411666601450687801">이 기기에서는 가상 머신이 허용되지 않습니다.</translation> +<translation id="2412015533711271895">이 확장 프로그램을 사용하려면 부모 또는 보호자의 동의가 필요합니다.</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">어둡게</translation> <translation id="2416435988630956212">키보드 기능 키</translation> @@ -3033,6 +3036,7 @@ <translation id="3609277884604412258">빠른 검색</translation> <translation id="3610241585790874201">기기에 데이터를 저장하도록 허용되지 않음</translation> <translation id="3610369246614755442">도크 팬 서비스 필요</translation> +<translation id="3610961622607302617"><ph name="WEBSITE" /> 비밀번호를 변경합니다.</translation> <translation id="361106536627977100">Flash 데이터</translation> <translation id="3611655097742243705">Play 스토어에 방문하여 더 많은 앱을 찾아보세요.</translation> <translation id="3611658447322220736">최근에 닫은 사이트에서 데이터 송수신을 완료할 수 있음</translation> @@ -3089,6 +3093,7 @@ <translation id="3651488188562686558">Wi-Fi 연결 해제</translation> <translation id="3652817283076144888">초기화 중</translation> <translation id="3653160965917900914">네트워크 파일 공유</translation> +<translation id="3653887973853407813">이 확장 프로그램을 사용할 수 없습니다. 부모 또는 보호자가 Chrome의 '사이트, 앱, 확장 프로그램에 대한 권한'을 사용 중지했습니다.</translation> <translation id="3653999333232393305"><ph name="HOST" />에서 마이크에 액세스하도록 계속 허용</translation> <translation id="3654045516529121250">접근성 설정 확인</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{파일 1개에 영구적으로 액세스할 수 있습니다.}other{파일 #개에 영구적으로 액세스할 수 있습니다.}}</translation> @@ -5159,6 +5164,7 @@ <translation id="5517304475148761050">Play 스토어 액세스가 필요한 앱입니다</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">사이트에서 클립보드에 복사된 텍스트 및 이미지를 보려는 경우 확인</translation> +<translation id="5518949581554491184">Android 휴대전화로 설정</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">설정한 홈페이지가 맞습니까?</translation> <translation id="5522156646677899028">이 확장 프로그램에는 보안이 심각하게 취약한 요소가 있습니다.</translation> @@ -6048,6 +6054,7 @@ <translation id="6318125393809743217">정책 구성이 있는 policies.json 파일을 포함합니다.</translation> <translation id="6318407754858604988">다운로드가 시작되었습니다</translation> <translation id="6318944945640833942">프린터를 찾을 수 없습니다. 프린터 주소를 다시 입력해 주세요.</translation> +<translation id="6320808462673705899">검색어와 일치하는 북마크가 없습니다.</translation> <translation id="6322370287306604163">지문으로 신속하게 잠금 해제</translation> <translation id="6322559670748154781">일반적으로 다운로드하지 않는 파일이며, 고급 보호 기능으로 차단되었습니다</translation> <translation id="6324916366299863871">바로가기 수정</translation> @@ -6492,6 +6499,7 @@ <translation id="6725206449694821596">인터넷 인쇄 프로토콜(IPP)</translation> <translation id="6725970970008349185">페이지당 표시할 후보자 수</translation> <translation id="672609503628871915">새로운 기능 알아보기</translation> +<translation id="6726800386221816228">특수문자</translation> <translation id="67269783048918309">사용 및 진단 데이터를 보냅니다. 이 기기는 현재 진단, 기기 및 앱 사용 데이터를 Google에 자동으로 보내고 있습니다. 이 데이터는 자녀를 식별하는 용도로 사용되지 않으며, 시스템 및 앱 안정성 등을 개선하는 데 활용됩니다. 일부 수집 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움을 줍니다. 이 <ph name="BEGIN_LINK1" />설정<ph name="END_LINK1" />은 소유자가 지정합니다. 자녀의 추가 웹 및 앱 활동이 사용 설정되어 있다면 이 데이터가 자녀의 Google 계정에 저장될 수 있습니다. <ph name="BEGIN_LINK2" />자세히 알아보기<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">끝자리가 <ph name="LAST_FOUR_DIGITS" />인 IBAN</translation> <translation id="6729192290958770680">사용자 이름을 입력하세요.</translation> @@ -6894,6 +6902,7 @@ <translation id="7063129466199351735">바로가기 처리 중...</translation> <translation id="7063311912041006059">URL(검색어 자리에 <ph name="SPECIAL_SYMBOL" /> 입력)</translation> <translation id="706342288220489463">어시스턴트가 화면에 표시된 정보를 사용하여 지원하도록 허용하기</translation> +<translation id="70641621694466590">비밀번호 페이지로 이동</translation> <translation id="7064734931812204395">Linux 컨테이너를 설정하는 중입니다. 여기에는 최대 30분이 걸릴 수 있습니다.</translation> <translation id="7065223852455347715">이 기기는 엔터프라이즈 등록을 방지하는 모드로 잠긴 상태입니다. 기기를 등록하려면 먼저 기기를 복구해야 합니다.</translation> <translation id="7065534935986314333">시스템 정보</translation> @@ -7394,6 +7403,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> 앱으로 <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">계정에 연결된 다른 기기와 동기화되어 있습니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation> <translation id="7543104066686362383">이 <ph name="IDS_SHORT_PRODUCT_NAME" /> 기기에서 디버깅 기능을 사용 설정하세요.</translation> +<translation id="7544977292347272434">부모님께 확장 프로그램을 허용해 달라고 요청하기</translation> <translation id="7545466883021407599">서버에 연결할 수 없습니다. 네트워크 연결을 확인한 후 다시 시도해 보세요. 문제가 해결되지 않는 경우 Chromebook을 다시 시작해 보세요. 오류 코드: <ph name="ERROR_CODE" /></translation> <translation id="7547317915858803630">경고: <ph name="PRODUCT_NAME" /> 설정이 네트워크 드라이브에 저장되었습니다. 이로 인해 속도 저하, 비정상 종료 그리고 데이터 손실까지 발생할 수 있습니다.</translation> <translation id="7548856833046333824">레모네이드</translation> @@ -7622,6 +7632,7 @@ <translation id="7728668285692163452">채널 변경 추후 적용</translation> <translation id="7730449930968088409">화면의 콘텐츠 캡쳐</translation> <translation id="7730683939467795481">'<ph name="EXTENSION_NAME" />' 확장 프로그램에서 이 페이지를 변경했습니다.</translation> +<translation id="773511996612364297">악센트 기호</translation> <translation id="7735165285389721951">다른 Steam 설정이 실행 중입니다. 완료될 때까지 기다린 후 다시 시도해 주세요.</translation> <translation id="7737115349420013392">‘<ph name="DEVICE_NAME" />’ 페어링 중...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> 안내 받음</translation> @@ -7704,6 +7715,7 @@ <translation id="7792388396321542707">공유 중지</translation> <translation id="779308894558717334">연한 녹색</translation> <translation id="7793098747275782155">진한 파란색</translation> +<translation id="7796453472368605346">발음 구별 부호</translation> <translation id="7797571222998226653">꺼짐</translation> <translation id="7798504574384119986">웹 권한 보기</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> 권한이 자동으로 차단됨</translation> @@ -7789,6 +7801,7 @@ <translation id="7876027585589532670">바로가기를 수정할 수 없음</translation> <translation id="7877451762676714207">알 수 없는 서버 오류입니다. 다시 시도하거나 서버 관리자에게 문의하시기 바랍니다.</translation> <translation id="7878945852730162014">다운로드하는 파일 관리 및 완료 시 열기</translation> +<translation id="7879172417209159252">확장 프로그램을 사용할 수 없음</translation> <translation id="7879478708475862060">입력 모드 따라하기</translation> <translation id="7879631849810108578">단축키 조합: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">다시 시작하면 로컬 데이터가 삭제됩니다</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index f8e9415a..0942f48 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">Форматталууда…</translation> <translation id="159359590073980872">Сүрөт кеши</translation> <translation id="1593926297800505364">Төлөм ыкмасын сактоо</translation> +<translation id="1594703455918849716">Текшерүү бетине өтүү</translation> <translation id="1595492813686795610">Linux жаңыртылууда</translation> <translation id="1596286373007273895">Жеткиликтүү</translation> <translation id="1596709061955594992">Bluetooth өчүк. Жеткиликтүү түзмөктөрдү көрүү үчүн Bluetooth'ду күйгүзүңүз.</translation> @@ -1694,6 +1695,7 @@ <translation id="2399699884460174994">Билдирмелер күйгүзүлдү</translation> <translation id="2399939490305346086">Коопсуздук ачкычынын кирүү дайындары</translation> <translation id="2400664245143453337">Дароо жаңыртуу талап кылынат</translation> +<translation id="2402226831639195063">Сигналдар</translation> <translation id="2406153734066939945">Бул профиль жана андагы маалымат жок кылынсынбы?</translation> <translation id="2408018932941436077">Карта сакталууда</translation> <translation id="2408955596600435184">PIN кодуңузду киргизиңиз</translation> @@ -1705,6 +1707,7 @@ <translation id="241082044617551207">Белгисиз плагин</translation> <translation id="2410940059315936967">Сиз кирген сайт башка сайттардан алынган материалдарды, мисалы, сүрөттөрдү, жарнамаларды жана текстти жалгаштыра алат. Мындай сайттар орноткон cookie файлдары үчүнчү тараптын cookie файлдары деп аталат.</translation> <translation id="2411666601450687801">Бул түзмөктө виртуалдуу шаймандарды иштетүүгө болбойт</translation> +<translation id="2412015533711271895">Бул кеңейтүүнү колдонуу үчүн ата-энең же камкорчу уруксат бериши керек</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Кочкул</translation> <translation id="2416435988630956212">Баскычтоптун функционалдык баскычтары</translation> @@ -3087,6 +3090,7 @@ <translation id="3651488188562686558">Wi-Fi тармагынан ажыратылат</translation> <translation id="3652817283076144888">Баштапкы мааниси берилүүдө</translation> <translation id="3653160965917900914">Тармактын жалпы файлдарды</translation> +<translation id="3653887973853407813">Бул кеңейтүүнү колдоно албайсың. Ата-энең же камкорчу Chrome'до “Сайттарга, колдонмолорго жана кеңейтүүлөргө уруксаттарды” өчүрүп койгон.</translation> <translation id="3653999333232393305"><ph name="HOST" /> микрофонуңузду колдоно берсин</translation> <translation id="3654045516529121250">Атайын мүмкүнчүлүктөр параметрлерин окуңуз</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Бир файлды туруктуу пайдалана алат.}other{# файлды туруктуу пайдалана алат.}}</translation> @@ -5009,7 +5013,7 @@ <translation id="5388885445722491159">Жупташты</translation> <translation id="5390112241331447203">Пикирлер тууралуу отчёттордо жөнөтүлгөн system_logs.txt файлын камтуу.</translation> <translation id="5390677308841849479">Күңүрт кызыл жана кызгылт сары</translation> -<translation id="5390743329570580756">Төмөнкүгө жөнөтүү</translation> +<translation id="5390743329570580756">Кимге</translation> <translation id="5392192690789334093">Билдирмелерди жөнөтө алат</translation> <translation id="5393761864111565424">{COUNT,plural, =1{Шилтеме}other{# шилтеме}}</translation> <translation id="5395498824851198390">Демейки арип</translation> @@ -5159,6 +5163,7 @@ <translation id="5517304475148761050">Бул колдонмого Play Store'го кирүү талап кылынат</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Сайт алмашуу буферине көчүрүлгөн текстти жана сүрөттөрдү көргүсү келгенде суралсын</translation> +<translation id="5518949581554491184">Android телефону менен тууралоо</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Бул сиз күтүп жаткан башкы бетпи?</translation> <translation id="5522156646677899028">Бул кеңейтүүдө коопсуздукту бузган олуттуу көйгөй бар.</translation> @@ -6492,6 +6497,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Баракчада чагылдырыла турган талапкерлердин саны</translation> <translation id="672609503628871915">Эмне жаңылык бар</translation> +<translation id="6726800386221816228">Атайын символдор</translation> <translation id="67269783048918309">Түзмөктүн иштеши тууралуу маалыматтарды жөнөтүү. Учурда бул түзмөк мүчүлүштүктөрдү аныктоо маалыматын, түзмөктүн жана колдонмонун иштетилиши жөнүндө дайындарды Google'га автоматтык түрдө жөнөтүп жатат. Бул маалымат балаңыздын өздүгүн аныктоо үчүн колдонулбайт жана тутум менен колдонмонун кыйла туруктуу иштешин камсыз кылууга жана башка нерселерди жакшыртууга көмөктөшөт. Айрым нерселердин Google'дун өнөктөштөрүнө, мисалы, Android'ди иштеп чыгуучуларга да кереги тийиши мүмкүн. Бул <ph name="BEGIN_LINK1" />жөндөөнү<ph name="END_LINK1" /> түзмөктүн ээси иштетет. Эгер кошумча Колдонмолор жана Интернеттеги аракеттер таржымалы балаңыз үчүн күйгүзүлгөн болсо, бул нерселер анын Google аккаунтуна сакталышы мүмкүн. <ph name="BEGIN_LINK2" />Кеңири маалымат<ph name="END_LINK2" /></translation> <translation id="6728528977475057549"><ph name="LAST_FOUR_DIGITS" /> менен аяктаган IBAN</translation> <translation id="6729192290958770680">Колдонуучу атыңызды киргизиңиз</translation> @@ -6894,6 +6900,7 @@ <translation id="7063129466199351735">Кыска жолдор иштетилүүдө…</translation> <translation id="7063311912041006059">Сурамдын ордуна <ph name="SPECIAL_SYMBOL" /> белгиси бар URL көрсүтүлүшү керек</translation> <translation id="706342288220489463">Жардам алуу үчүн Жардамчыңызга экрандагы маалыматты колдонууга уруксат бериңиз</translation> +<translation id="70641621694466590">Сырсөздөр бетине өтүү</translation> <translation id="7064734931812204395">Linux контейнери конфигурацияланууда. Бул 30 мүнөткө созулушу мүмкүн.</translation> <translation id="7065223852455347715">Бул түзмөк мекеме каттоосунан коргой турган режимде кулпуланган. Эгер түзмөктү каттагыңыз келсе, адегенде түзмөктү калыбына келтирип алышыңыз керек.</translation> <translation id="7065534935986314333">Тутум тууралуу</translation> @@ -7395,6 +7402,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> колдонмосунда <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">Аккаунтуңуздагы башка түзмөктөр менен шайкештирилди. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Бул <ph name="IDS_SHORT_PRODUCT_NAME" /> түзмөктө мүчүлүштүктөрдү оңдоо өзгөчөлүктөрүн иштетүү</translation> +<translation id="7544977292347272434">Ата-энеңден кеңейтүүгө уруксат берүүсүн суран</translation> <translation id="7545466883021407599">Серверге туташпай калды. Тармакка туташууңузду текшерип, дагы бир жолу аракет кылыңыз. Эгер маселе чечилбесе, Chromebook'ту өчүрүп күйгүзүп көрүңүз. Ката коду: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Сак болуңуз: <ph name="PRODUCT_NAME" /> параметрлериңиз тармактык дискке сакталган. Ушундан улам, түзмөгүңүз жайыраак иштеп, бузулуп, ал гана эмес, дайын-даректериңизди жоготуп алышыңыз мүмкүн.</translation> <translation id="7548856833046333824">Лимонад</translation> @@ -7623,6 +7631,7 @@ <translation id="7728668285692163452">Канал кийинчерээк өзгөртүлөт</translation> <translation id="7730449930968088409">Экраныңыздын мазмунун тартып алыңыз</translation> <translation id="7730683939467795481">Бул баракты "<ph name="EXTENSION_NAME" />" кеңейтүүсү өзгөрттү</translation> +<translation id="773511996612364297">Басым белгилери</translation> <translation id="7735165285389721951">Steam'де башка тууралоо аткарылууда. Ал аяктаганча күтө туруңуз</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" менен жупташтырылууда...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> нускамасы алынды</translation> @@ -7705,6 +7714,7 @@ <translation id="7792388396321542707">Бөлүшүүнү токтотуу</translation> <translation id="779308894558717334">Мала жашыл</translation> <translation id="7793098747275782155">Кочкул көк</translation> +<translation id="7796453472368605346">Диакритикалык белгилер</translation> <translation id="7797571222998226653">Өчүк</translation> <translation id="7798504574384119986">Тармактын уруксаттарын көрүү</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> – автоматтык түрдө бөгөттөлдү</translation> @@ -7789,6 +7799,7 @@ <translation id="7876027585589532670">Ыкчам баскыч түзөтүлбөй жатат</translation> <translation id="7877451762676714207">Белгисиз сервер катасы. Кайталап көрүңүз же сервер администраторуна кайрылыңыз.</translation> <translation id="7878945852730162014">Жүктөп алуу учурунда файлдарды тескеп, баары даяр болгондо ачыңыз</translation> +<translation id="7879172417209159252">Кеңейтүүнү колдонууга болбойт</translation> <translation id="7879478708475862060">Киргизүү режимин ээрчүү</translation> <translation id="7879631849810108578">Ыкчам баскыч коюлду: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Түзмөк өчүрүлүп күйгүзүлгөндө, түзмөктөгү маалыматтар өчүрүлөт</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index a342777..755b60f 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -4965,6 +4965,7 @@ <translation id="5338503421962489998">ບ່ອນເກັບມ້ຽນຂໍ້ມູນໃນເຄື່ອງ</translation> <translation id="5339031667684712858">ເວັບໄຊທີ່ທ່ານລຶບອອກແລ້ວ</translation> <translation id="5340638867532133571">ອະນຸຍາດໃຫ້ເວັບໄຊຕິດຕັ້ງຕົວຈັດການການຈ່າຍເງິນ (ແນະນຳ)</translation> +<translation id="5340787663756381836">&ຊອກຫາ ແລະ ແກ້ໄຂ</translation> <translation id="5341793073192892252">ບລັອກຄຸກກີ້ຕໍ່ໄປນີ້ໄວ້ແລ້ວ (ຄຸກກີ້ພາກສ່ວນທີສາມຖືກບລັອກໄວ້ໂດຍບໍ່ມີຂໍ້ຍົກເວັ້ນ)</translation> <translation id="5342091991439452114">PIN ຕ້ອງມີຢ່າງໜ້ອຍ <ph name="MINIMUM" /> ຕົວເລກ</translation> <translation id="5344036115151554031">ກຳລັງກູ້ຄືນ Linux</translation> @@ -9352,6 +9353,7 @@ <translation id="939401694733344652">ບັນຊີເຫຼົ່ານີ້ບໍ່ໄດ້ຖືກໃຊ້ກັບແອັບ Android ໃນຕອນນີ້ເທື່ອ. ຫາກທ່ານເລືອກບັນຊີໃດໜຶ່ງເພື່ອໃຊ້ກັບແອັບ Android ນີ້, ບັນຊີດັ່ງກ່າວສາມາດຖືກໃຊ້ກັບແອັບ Android ອື່ນໄດ້ນຳ. ທ່ານສາມາດປ່ຽນສິດເຂົ້າເຖິງແອັບ Android ໄດ້ໃນ <ph name="LINK_BEGIN" />ການຕັ້ງຄ່າ > ບັນຊີ<ph name="LINK_END" />.</translation> <translation id="939598580284253335">ປ້ອນວະລີຜ່ານໃສ່</translation> <translation id="939736085109172342">ໂຟລເດີໃຫມ່</translation> +<translation id="940212040923880623">&ຊອກຫາ ແລະ ແກ້ໄຂ</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> ກຳລັງແບ່ງປັນແຖບ Chrome ແລະ ສຽງ.</translation> <translation id="944799160843436808">ເກີດບັນຫາໃນການຕັ້ງຄ່າ Steam ຢູ່ Chromebook</translation> <translation id="945522503751344254">ສົ່ງຄໍາຄິດເຫັນ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index e031082ca..3f9b78b6 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -702,6 +702,7 @@ <translation id="1593594475886691512">Formatuojama...</translation> <translation id="159359590073980872">Vaizdų talpykla</translation> <translation id="1593926297800505364">Išsaugoti mokėjimo metodą</translation> +<translation id="1594703455918849716">Eiti į puslapį „Patikra“</translation> <translation id="1595492813686795610">„Linux“ naujovinama</translation> <translation id="1596286373007273895">Pasiekiama</translation> <translation id="1596709061955594992">„Bluetooth“ ryšys išjungtas. Jei norite peržiūrėti pasiekiamus įrenginius, įjunkite „Bluetooth“.</translation> @@ -1697,6 +1698,7 @@ <translation id="2399699884460174994">Pranešimai įjungti</translation> <translation id="2399939490305346086">Saugos rakto prisijungimo duomenys</translation> <translation id="2400664245143453337">Reikia nedelsiant atnaujinti</translation> +<translation id="2402226831639195063">Tonai</translation> <translation id="2406153734066939945">Ištrinti šį profilį ir jo duomenis?</translation> <translation id="2408018932941436077">Išsaugoma kortelė</translation> <translation id="2408955596600435184">Įveskite PIN kodą</translation> @@ -1708,6 +1710,7 @@ <translation id="241082044617551207">Nežinomas papildinys</translation> <translation id="2410940059315936967">Svetainėje, kurioje lankotės, gali būti įterpta turinio iš kitų svetainių, pvz., vaizdų, skelbimų ir teksto. Šių kitų svetainių nustatyti slapukai vadinami trečiųjų šalių slapukais.</translation> <translation id="2411666601450687801">Šiame įrenginyje negalima naudoti virtualiųjų įrenginių</translation> +<translation id="2412015533711271895">Vienas iš tėvų arba globėjų turi patvirtinti, kad galite naudoti šį plėtinį</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Tamsi</translation> <translation id="2416435988630956212">Klaviatūros funkcijų klavišai</translation> @@ -3091,6 +3094,7 @@ <translation id="3651488188562686558">Atsijungti nuo „Wi-Fi“</translation> <translation id="3652817283076144888">Inicijuojama</translation> <translation id="3653160965917900914">Tinklo failų bendrinimas</translation> +<translation id="3653887973853407813">Negalite naudoti šio plėtinio. Vienas iš tėvų ar globėjų išjungė „Chrome“ skirtus svetainių, programų ir plėtinių leidimus.</translation> <translation id="3653999333232393305">Toliau leisti <ph name="HOST" /> pasiekti mikrofoną</translation> <translation id="3654045516529121250">Skaitykite pasiekiamumo nustatymus</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Suteikta nuolatinė prieiga prie vieno failo.}one{Suteikta nuolatinė prieiga prie # failo.}few{Suteikta nuolatinė prieiga prie # failų.}many{Suteikta nuolatinė prieiga prie # failo.}other{Suteikta nuolatinė prieiga prie # failų.}}</translation> @@ -5163,6 +5167,7 @@ <translation id="5517304475148761050">Šiai programai būtina prieiga prie „Play“ parduotuvės</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – „<ph name="NETWORK_DISPLAY_NAME" />“</translation> <translation id="5518219166343146486">Paklausti, kai svetainė nori matyti tekstą ir vaizdus, nukopijuotus į iškarpinę</translation> +<translation id="5518949581554491184">Nustatyti naudojant „Android“ telefoną</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Ar tai pagrindinis puslapis, kurį tikėjotės išvysti?</translation> <translation id="5522156646677899028">Šiame plėtinyje aptiktas rimtas saugos pažeidžiamumas.</translation> @@ -6504,6 +6509,7 @@ <translation id="6725206449694821596">Spausdinimo internetu protokolas (IPP)</translation> <translation id="6725970970008349185">Kandidatų skaičius, rodomas puslapyje</translation> <translation id="672609503628871915">Sužinokite, kas naujo</translation> +<translation id="6726800386221816228">Specialieji ženklai</translation> <translation id="67269783048918309">Siųskite naudojimo ir diagnostikos duomenis. Šiuo metu šis įrenginys automatiškai siunčia „Google“ diagnostikos, įrenginio ir programų naudojimo duomenis. Tai nebus naudojama siekiant nustatyti jūsų vaiko tapatybę ir padės pagerinti sistemos bei programos stabilumą ir teikti kitus patobulinimus. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams. Šį <ph name="BEGIN_LINK1" />nustatymą<ph name="END_LINK1" /> taiko savininkas. Jei papildomas „Žiniatinklio ir programų veiklos“ nustatymas įjungtas vaiko įrenginyje, šie duomenys gali būti išsaugoti vaiko „Google“ paskyroje. <ph name="BEGIN_LINK2" />Sužinokite daugiau<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN, kuris baigiasi <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Įveskite naudotojo vardą</translation> @@ -6906,6 +6912,7 @@ <translation id="7063129466199351735">Apdorojami spartieji klavišai...</translation> <translation id="7063311912041006059">URL su <ph name="SPECIAL_SYMBOL" /> užklausos vietoje</translation> <translation id="706342288220489463">Leiskite Padėjėjui naudoti ekrane esančią informaciją, kad jis galėtų padėti</translation> +<translation id="70641621694466590">Eiti į puslapį „Slaptažodžiai“</translation> <translation id="7064734931812204395">Konfigūruojamas „Linux“ sudėtinis rodinys. Tai gali užtrukti iki 30 min.</translation> <translation id="7065223852455347715">Įrenginys užrakintas įjungus režimą, dėl kurio neleidžiama jo užregistruoti įmonėje. Jei norite užregistruoti įrenginį, pirmiausia turite atkurti nustatymus.</translation> <translation id="7065534935986314333">Apie sistemą</translation> @@ -7407,6 +7414,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> naudojant programą „<ph name="APP_NAME" />“</translation> <translation id="754207240458482646">Sinchronizuojama su kitais įrenginiais jūsų paskyroje. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Įgalinkite derinimo funkcijas šiame „<ph name="IDS_SHORT_PRODUCT_NAME" />“ įrenginyje</translation> +<translation id="7544977292347272434">Paprašykite vieno iš tėvų leisti įdiegti plėtinį</translation> <translation id="7545466883021407599">Nepavyko susisiekti su serveriu. Patikrinkite tinklo ryšį ir bandykite dar kartą. Jei vis tiek kyla problemų, pabandykite iš naujo paleisti „Chromebook“. Klaidos kodas: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Įspėjimas: „<ph name="PRODUCT_NAME" />“ nustatymai saugomi tinklo diske. Dėl to gali sulėtėti veikimas, atsirasti strigčių ar net būti prarasti duomenys.</translation> <translation id="7548856833046333824">Limonadas</translation> @@ -7635,6 +7643,7 @@ <translation id="7728668285692163452">Kanalo pakeitimas bus pritaikytas vėliau</translation> <translation id="7730449930968088409">Fiksuokite savo ekrano turinį</translation> <translation id="7730683939467795481">Šį puslapį pakeitė plėtinys „<ph name="EXTENSION_NAME" />“</translation> +<translation id="773511996612364297">Kirčio ženklai</translation> <translation id="7735165285389721951">Vykdoma kita „Steam“ sąranka. Palaukite, kol ji bus baigta, ir bandykite dar kartą</translation> <translation id="7737115349420013392">Susiejama su „<ph name="DEVICE_NAME" />“…</translation> <translation id="7737203573077018777">Instrukcija „<ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" />“ gauta</translation> @@ -7717,6 +7726,7 @@ <translation id="7792388396321542707">Nebebendrinti</translation> <translation id="779308894558717334">Šviesiai žalia</translation> <translation id="7793098747275782155">Tamsiai mėlyna</translation> +<translation id="7796453472368605346">Diakritiniai ženklai</translation> <translation id="7797571222998226653">Išjungta</translation> <translation id="7798504574384119986">Žr. žiniatinklio leidimus</translation> <translation id="7798844538707273832">Automatiškai užblokuota: <ph name="PERMISSION" /></translation> @@ -7801,6 +7811,7 @@ <translation id="7876027585589532670">Negalima redaguoti sparčiojo klavišo</translation> <translation id="7877451762676714207">Nežinoma serverio klaida. Bandykite dar kartą arba susisiekite su serverio administratoriumi.</translation> <translation id="7878945852730162014">Tvarkykite failus, kai jie atsisiunčiami, ir atidarykite baigus atsisiųsti</translation> +<translation id="7879172417209159252">Negalima naudoti plėtinio</translation> <translation id="7879478708475862060">Stebėti įvesties režimą</translation> <translation id="7879631849810108578">Spartusis klavišas nustatytas: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Vietiniai duomenys bus ištrinti paleidus iš naujo</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 9b707f4..4c733501 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">Memformatkan...</translation> <translation id="159359590073980872">Cache Imej</translation> <translation id="1593926297800505364">Simpan kaedah pembayaran</translation> +<translation id="1594703455918849716">Pergi ke halaman Semakan</translation> <translation id="1595492813686795610">Linux sedang ditingkatkan</translation> <translation id="1596286373007273895">Tersedia</translation> <translation id="1596709061955594992">Bluetooth dimatikan. Untuk melihat peranti yang tersedia, hidupkan Bluetooth.</translation> @@ -1694,6 +1695,7 @@ <translation id="2399699884460174994">Pemberitahuan dihidupkan</translation> <translation id="2399939490305346086">Data log masuk kunci keselamatan</translation> <translation id="2400664245143453337">Kemas kini segera diperlukan</translation> +<translation id="2402226831639195063">Nada</translation> <translation id="2406153734066939945">Padamkan profil dan data profil ini?</translation> <translation id="2408018932941436077">Menyimpan kad</translation> <translation id="2408955596600435184">Masukkan PIN anda</translation> @@ -1705,6 +1707,7 @@ <translation id="241082044617551207">Pemalam tidak diketahui</translation> <translation id="2410940059315936967">Laman yang anda lawati boleh membenamkan kandungan daripada laman lain, contohnya imej, iklan dan teks. Kuki yang ditetapkan oleh laman lain ini dipanggil kuki pihak ketiga.</translation> <translation id="2411666601450687801">Tiada Mesin Maya dibenarkan pada peranti ini</translation> +<translation id="2412015533711271895">Ibu/bapa atau penjaga anda perlu memberikan kebenaran untuk anda menggunakan sambungan ini</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Gelap</translation> <translation id="2416435988630956212">Kekunci fungsi papan kekunci</translation> @@ -3031,6 +3034,7 @@ <translation id="3609277884604412258">Carian pantas</translation> <translation id="3610241585790874201">Tidak dibenarkan menyimpan data pada peranti anda</translation> <translation id="3610369246614755442">Kipas dok perlu diselenggara</translation> +<translation id="3610961622607302617">Tukar kata laluan untuk <ph name="WEBSITE" /></translation> <translation id="361106536627977100">Data Flash</translation> <translation id="3611655097742243705">Lawati Gedung Play untuk mencari pelbagai lagi apl</translation> <translation id="3611658447322220736">Laman yang ditutup baru-baru ini boleh menyelesaikan penghantaran dan penerimaan data</translation> @@ -3087,6 +3091,7 @@ <translation id="3651488188562686558">Putuskan sambungan daripada Wi-Fi</translation> <translation id="3652817283076144888">Memulakan</translation> <translation id="3653160965917900914">Perkongsian fail rangkaian</translation> +<translation id="3653887973853407813">Anda tidak boleh menggunakan sambungan ini. Ibu/bapa atau penjaga anda telah mematikan “Kebenaran untuk laman web, apl dan sambungan” untuk Chrome.</translation> <translation id="3653999333232393305">Terus benarkan <ph name="HOST" /> mengakses mikrofon anda</translation> <translation id="3654045516529121250">Baca tetapan kebolehaksesan anda</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Apl mempunyai akses tetap kepada satu fail.}other{Apl mempunyai akses tetap kepada # fail.}}</translation> @@ -5159,6 +5164,7 @@ <translation id="5517304475148761050">Apl ini memerlukan akses kepada Gedung Play</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Tanya apabila tapak mahu melihat teks dan imej yang disalin ke papan keratan</translation> +<translation id="5518949581554491184">Sediakan dengan telefon Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Adakah ini halaman utama yang anda jangkakan?</translation> <translation id="5522156646677899028">Sambungan ini mengandungi kelemahan keselamatan yang serius.</translation> @@ -6048,6 +6054,7 @@ <translation id="6318125393809743217">Sertakan fail policies.json dengan konfigurasi dasar.</translation> <translation id="6318407754858604988">Muat turun dimulakan</translation> <translation id="6318944945640833942">Tidak dapat mengesan pencetak. Sila masukkan alamat pencetak sekali lagi.</translation> +<translation id="6320808462673705899">Tiada penanda halaman yang sepadan dengan carian anda.</translation> <translation id="6322370287306604163">Buka kunci dengan lebih cepat menggunakan cap jari</translation> <translation id="6322559670748154781">Fail ini tidak biasa dimuat turun dan telah disekat oleh Perlindungan Lanjutan</translation> <translation id="6324916366299863871">Edit pintasan</translation> @@ -6492,6 +6499,7 @@ <translation id="6725206449694821596">Protokol Cetakan Internet (IPP)</translation> <translation id="6725970970008349185">Bilangan calon untuk dipaparkan bagi setiap halaman</translation> <translation id="672609503628871915">Lihat apa yang baharu</translation> +<translation id="6726800386221816228">Aksara khas</translation> <translation id="67269783048918309">Hantar data penggunaan dan diagnostik. Pada masa ini, peranti ini menghantar data diagnostik dan penggunaan peranti serta apl kepada Google secara automatik. Data ini tidak akan digunakan untuk mengenal pasti anak anda dan akan membantu peningkatan kestabilan sistem dan apl serta pelbagai lagi. Sesetengah data agregat juga akan membantu apl dan rakan kongsi Google, seperti pembangun Android. <ph name="BEGIN_LINK1" />Tetapan<ph name="END_LINK1" /> ini dikuatkuasakan oleh pemilik. Jika tetapan Aktiviti Web & Apl tambahan dihidupkan untuk anak anda, data ini mungkin disimpan ke Google Account miliknya. <ph name="BEGIN_LINK2" />Ketahui Lebih Lanjut<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN berakhir dengan <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Masukkan nama pengguna anda</translation> @@ -6894,6 +6902,7 @@ <translation id="7063129466199351735">Memproses pintasan...</translation> <translation id="7063311912041006059">URL dengan <ph name="SPECIAL_SYMBOL" /> sebagai ganti pertanyaan</translation> <translation id="706342288220489463">Benarkan Assistant menggunakan maklumat pada skrin anda untuk memberikan bantuan</translation> +<translation id="70641621694466590">Pergi ke halaman Kata laluan</translation> <translation id="7064734931812204395">Mengkonfigurasi bekas Linux. Proses ini mungkin mengambil masa sehingga 30 minit.</translation> <translation id="7065223852455347715">Peranti ini dikunci dalam mod yang menghalang pendaftaran perusahaan. Jika anda ingin mendaftarkan peranti anda perlu melalui pemulihan peranti terlebih dahulu.</translation> <translation id="7065534935986314333">Mengenai Sistem</translation> @@ -7395,6 +7404,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> dengan Apl <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Disegerakkan dengan peranti lain dalam akaun anda. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Dayakan ciri penyahpepijatan pada peranti <ph name="IDS_SHORT_PRODUCT_NAME" /> ini</translation> +<translation id="7544977292347272434">Minta ibu/bapa anda membenarkan sambungan</translation> <translation id="7545466883021407599">Tidak dapat menyambung kepada pelayan. Semak sambungan rangkaian anda, kemudian cuba lagi. Jika anda masih menghadapi masalah, cuba mulakan semula Chromebook anda. Kod ralat: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Amaran: tetapan <ph name="PRODUCT_NAME" /> anda disimpan pada pemacu rangkaian. Perkara ini mungkin mengakibatkan keperlahanan, keranapan, malah kehilangan data.</translation> <translation id="7548856833046333824">Lemonad</translation> @@ -7623,6 +7633,7 @@ <translation id="7728668285692163452">Perubahan saluran akan dilaksanakan kemudian</translation> <translation id="7730449930968088409">Abadikan kandungan skrin anda</translation> <translation id="7730683939467795481">Halaman ini telah ditukar oleh sambungan "<ph name="EXTENSION_NAME" />"</translation> +<translation id="773511996612364297">Tanda aksen</translation> <translation id="7735165285389721951">Satu lagi persediaan Stim sedang berjalan. Sila tunggu sehingga selesai sebelum mencuba semula</translation> <translation id="7737115349420013392">Berpasangan dengan "<ph name="DEVICE_NAME" />" ...</translation> <translation id="7737203573077018777">Arahan <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> diterima</translation> @@ -7705,6 +7716,7 @@ <translation id="7792388396321542707">Berhenti berkongsi</translation> <translation id="779308894558717334">Hijau cerah</translation> <translation id="7793098747275782155">Biru gelap</translation> +<translation id="7796453472368605346">Diakritik</translation> <translation id="7797571222998226653">Mati</translation> <translation id="7798504574384119986">Lihat Kebenaran Web</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> disekat secara automatik</translation> @@ -7789,6 +7801,7 @@ <translation id="7876027585589532670">Tidak dapat mengedit pintasan</translation> <translation id="7877451762676714207">Ralat pelayan tidak diketahui. Sila cuba lagi atau hubungi pentadbir pelayan.</translation> <translation id="7878945852730162014">Urus fail ketika dimuat turun dan buka fail itu setelah proses muat turun selesai</translation> +<translation id="7879172417209159252">Tidak boleh menggunakan sambungan</translation> <translation id="7879478708475862060">Ikut mod input</translation> <translation id="7879631849810108578">Pintasan ditetapkan: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Data setempat akan dipadamkan apabila anda memulakan semula peranti</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index da78ea9b..7c69c0f 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -3017,6 +3017,7 @@ <translation id="3609277884604412258">द्रुत खोज</translation> <translation id="3610241585790874201">यो साइटलाई तपाईंको डिभाइसमा डेटा सेभ गर्ने अनुमति दिइएको छैन</translation> <translation id="3610369246614755442">डकको पङ्खा मर्मत गर्न आवश्यक छ</translation> +<translation id="3610961622607302617"><ph name="WEBSITE" /> को पासवर्ड बदल्नुहोस्</translation> <translation id="361106536627977100">फ्ल्यास डाटा</translation> <translation id="3611655097742243705">थप एपहरू डाउनलोड गर्न Play स्टोरमा जानुहोस्</translation> <translation id="3611658447322220736">हालसालै बन्द गरिएका साइटहरूले जानकारी पठाउने तथा प्राप्त गर्ने कार्य पूरा गर्न सक्छन्</translation> @@ -6033,6 +6034,7 @@ <translation id="6318125393809743217">पोलिसी कन्फिगुरेसनका साथमा policies.json फाइल समावेश गरियोस्।</translation> <translation id="6318407754858604988">डाउनलोड सुरु भयो</translation> <translation id="6318944945640833942">प्रिन्टर पत्ता लगाउन सकिएन। कृपया प्रिन्टरको ठेगाना फेरि प्रविष्टि गर्नुहोस्।</translation> +<translation id="6320808462673705899">तपाईंको खोजसँग मिल्ने कुनै पनि बुकमार्क भेटिएन।</translation> <translation id="6322370287306604163">फिंगरप्रिन्ट प्रयोग गरी अझ छिटो अनलक गर्नुहोस्</translation> <translation id="6322559670748154781">यो फाइल सामान्यतया डाउनलोड गरिँदैन। त्यसैले सुरक्षासम्बन्धी उन्नत सुविधाले यो फाइल ब्लक गरेको छ</translation> <translation id="6324916366299863871">सर्टकट सम्पादन गर्नुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index a7e4627..b8da042 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -1243,7 +1243,7 @@ <translation id="2048554637254265991">Feil ved oppstart av beholderbehandling. Prøv på nytt.</translation> <translation id="2048653237708779538">Handlingen er ikke tilgjengelig</translation> <translation id="204914487372604757">Opprett snarvei</translation> -<translation id="2050339315714019657">Stående</translation> +<translation id="2050339315714019657">Portrett</translation> <translation id="2051555741181591333">Deaktiver wifi-sone automatisk</translation> <translation id="2052572566310583903">Installert på de andre enhetene dine</translation> <translation id="2053105195397337973">Vi utforsker hvordan vi kan begrense sporing samtidig som vi gjør nettsteder i stand til å stanse søppelannonser og svindel.</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index 70c7e4b..21de75b5 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -3014,6 +3014,7 @@ <translation id="3609277884604412258">ଦ୍ରୁତ ସନ୍ଧାନ</translation> <translation id="3610241585790874201">ଆପଣଙ୍କ ଡିଭାଇସରେ ଡାଟା ସେଭ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation> <translation id="3610369246614755442">ଡକ୍ ଫ୍ୟାନ୍କୁ ସେବାର ଆବଶ୍ୟକତା ଅଛି</translation> +<translation id="3610961622607302617"><ph name="WEBSITE" /> ପାଇଁ ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ କରନ୍ତୁ</translation> <translation id="361106536627977100">ଫ୍ଲାସ୍ ଡାଟା</translation> <translation id="3611655097742243705">ଅଧିକ ଆପ୍ ଖୋଜିବା ପାଇଁ Play Storeକୁ ଭିଜିଟ୍ କରନ୍ତୁ</translation> <translation id="3611658447322220736">ଏବେ ବନ୍ଦ କରାଯାଇଥିବା ସାଇଟଗୁଡ଼ିକ ଡାଟା ପଠାଇବା କିମ୍ବା ଗ୍ରହଣ କରିବା ସମ୍ପୂର୍ଣ୍ଣ କରିପାରିବ</translation> @@ -6026,6 +6027,7 @@ <translation id="6318125393809743217">ନୀତି କନଫିଗରେସନଗୁଡ଼ିକ ସହିତ ଏକ policies.json ଫାଇଲ୍ ସାମିଲ କରନ୍ତୁ।</translation> <translation id="6318407754858604988">ଡାଉନ୍ଲୋଡ୍ ଆରମ୍ଭ ହୋଇଛି</translation> <translation id="6318944945640833942">କୌଣସି ପ୍ରିଣ୍ଟର୍ ଚିହ୍ନଟ କରାଯାଇ ପାରିଲା ନାହିଁ। ଦୟାକରି ପ୍ରିଣ୍ଟର୍ ଠିକଣା ପୁଣି ଲେଖନ୍ତୁ।</translation> +<translation id="6320808462673705899">ଆପଣଙ୍କ ସର୍ଚ୍ଚ ସହ ମେଳ ହେଉଥିବା କୌଣସି ବୁକମାର୍କ ଏଥିରେ ନାହିଁ।</translation> <translation id="6322370287306604163">ଟିପଚିହ୍ନ ମାଧ୍ୟମରେ ଶୀଘ୍ର ଅନଲକ୍ କରନ୍ତୁ</translation> <translation id="6322559670748154781">ଏହି ଫାଇଲକୁ ସାଧାରଣତଃ ଡାଉନଲୋଡ କରାଯାଏ ନାହିଁ ଏବଂ ଏହାକୁ ଆଡଭାନ୍ସଡ ପ୍ରୋଟେକସନ ଦ୍ୱାରା ବ୍ଲକ କରାଯାଇଛି</translation> <translation id="6324916366299863871">ସର୍ଟକଟ୍କୁ ଏଡିଟ୍ କରନ୍ତୁ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index 31b873c..d88baed 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -3031,6 +3031,7 @@ <translation id="3609277884604412258">ਤੁਰੰਤ ਖੋਜ</translation> <translation id="3610241585790874201">ਤੁਹਾਡੇ ਡੀਵਾਈਸ 'ਤੇ ਡਾਟਾ ਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ</translation> <translation id="3610369246614755442">ਡੌਕ ਦੇ ਪੱਖੇ ਦੀ ਮੁਰੰਮਤ ਕਰਵਾਉਣ ਦੀ ਲੋੜ ਹੈ</translation> +<translation id="3610961622607302617"><ph name="WEBSITE" /> ਦਾ ਪਾਸਵਰਡ ਬਦਲੋ</translation> <translation id="361106536627977100">Flash ਡਾਟਾ</translation> <translation id="3611655097742243705">ਹੋਰ ਐਪਾਂ ਲੱਭਣ ਲਈ Play Store 'ਤੇ ਜਾਓ</translation> <translation id="3611658447322220736">ਹਾਲ ਹੀ ਵਿੱਚ ਬੰਦ ਕੀਤੀਆਂ ਸਾਈਟਾਂ ਡਾਟਾ ਭੇਜਣ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਮੁਕੰਮਲ ਕਰ ਸਕਦੀਆਂ ਹਨ</translation> @@ -6048,6 +6049,7 @@ <translation id="6318125393809743217">ਨੀਤੀ ਸੰਰੂਪਣਾਂ ਵਾਲੀ policies.json ਫ਼ਾਈਲ ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ।</translation> <translation id="6318407754858604988">ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਹੋਇਆ</translation> <translation id="6318944945640833942">ਪ੍ਰਿੰਟਰ ਦਾ ਪਤਾ ਨਹੀਂ ਲਗਾਇਆ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਪ੍ਰਿੰਟਰ ਦਾ ਪਤਾ ਦੁਬਾਰਾ ਦਾਖਲ ਕਰੋ।</translation> +<translation id="6320808462673705899">ਤੁਹਾਡੀ ਖੋਜ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਕੋਈ ਬੁੱਕਮਾਰਕ ਨਹੀਂ ਹੈ।</translation> <translation id="6322370287306604163">ਫਿੰਗਰਪ੍ਰਿੰਟ ਰਾਹੀਂ ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਅਣਲਾਕ ਕਰੋ</translation> <translation id="6322559670748154781">ਇਹ ਫ਼ਾਈਲ ਆਮ ਤੌਰ 'ਤੇ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ ਅਤੇ ਅਡਵਾਂਸ ਸੁਰੱਖਿਆ ਵੱਲੋਂ ਇਸ ਨੂੰ ਬਲਾਕ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ</translation> <translation id="6324916366299863871">ਸ਼ਾਰਟਕੱਟ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 216aeb1..afdaceb 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -696,6 +696,7 @@ <translation id="1593594475886691512">A formatar...</translation> <translation id="159359590073980872">Cache de Imagem</translation> <translation id="1593926297800505364">Guardar método de pagamento</translation> +<translation id="1594703455918849716">Aceda à página Verificação</translation> <translation id="1595492813686795610">O Linux está a ser atualizado</translation> <translation id="1596286373007273895">Disponível</translation> <translation id="1596709061955594992">O Bluetooth está desativado. Para ver os dispositivos disponíveis, ative o Bluetooth.</translation> @@ -1679,6 +1680,7 @@ <translation id="2399699884460174994">Notificações ativadas</translation> <translation id="2399939490305346086">Dados de início de sessão da chave de segurança</translation> <translation id="2400664245143453337">É necessária uma atualização imediata</translation> +<translation id="2402226831639195063">Tons</translation> <translation id="2406153734066939945">Eliminar este perfil e os respetivos dados?</translation> <translation id="2408018932941436077">A guardar o cartão…</translation> <translation id="2408955596600435184">Introduza o PIN</translation> @@ -1690,6 +1692,7 @@ <translation id="241082044617551207">Plug-in desconhecido</translation> <translation id="2410940059315936967">Um site que visita pode incorporar conteúdo de outros sites, por exemplo, imagens, anúncios e texto. Os cookies definidos por estes sites são denominados cookies de terceiros.</translation> <translation id="2411666601450687801">Não são permitidas máquinas virtuais neste dispositivo</translation> +<translation id="2412015533711271895">Um dos teus pais ou o teu tutor tem de autorizar a utilização desta extensão</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Escuro</translation> <translation id="2416435988630956212">Teclas de função do teclado</translation> @@ -3073,6 +3076,7 @@ <translation id="3651488188562686558">Desligar-se da rede Wi-Fi</translation> <translation id="3652817283076144888">A inicializar</translation> <translation id="3653160965917900914">Partilhas de ficheiros na rede</translation> +<translation id="3653887973853407813">Não podes usar esta extensão. Um dos teus pais ou o teu tutor desativou as "Autorizações para sites, apps e extensões" do Chrome.</translation> <translation id="3653999333232393305">Continuar a permitir que <ph name="HOST" /> aceda ao seu microfone</translation> <translation id="3654045516529121250">Ler definições de acessibilidade</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Tem acesso permanente a um ficheiro.}other{Tem acesso permanente a # ficheiros.}}</translation> @@ -5144,6 +5148,7 @@ <translation id="5517304475148761050">Esta aplicação precisa de acesso à Play Store</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Perguntar quando um site pretender ver o texto e as imagens copiados para a área de transferência</translation> +<translation id="5518949581554491184">Configurar com telemóvel Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">É esta a página inicial de que estava à espera?</translation> <translation id="5522156646677899028">Esta extensão contém uma vulnerabilidade de segurança grave.</translation> @@ -6478,6 +6483,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Número de candidatos a apresentar por página</translation> <translation id="672609503628871915">Descobrir as novidades mais recentes</translation> +<translation id="6726800386221816228">Carateres especiais</translation> <translation id="67269783048918309">Envie dados de utilização e diagnóstico. Agora, este dispositivo está a enviar automaticamente dados de diagnóstico, de utilização de aplicações e do dispositivo para a Google. Estes dados não serão utilizados para identificar a criança e ajudarão a melhorar a estabilidade das aplicações e do sistema, entre outras melhorias. Alguns dados agregados também ajudarão as aplicações e os parceiros Google, como os programadores Android. Esta <ph name="BEGIN_LINK1" />definição<ph name="END_LINK1" /> é aplicada pelo proprietário. Se a definição Atividade da Web e de apps adicional estiver ativada para a criança, estes dados podem ser guardados na respetiva Conta Google. <ph name="BEGIN_LINK2" />Saiba mais<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN (Número Internacional de Conta Bancária) terminado em <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Introduza o nome de utilizador</translation> @@ -6880,6 +6886,7 @@ <translation id="7063129466199351735">A processar atalhos...</translation> <translation id="7063311912041006059">URL com <ph name="SPECIAL_SYMBOL" /> em vez da consulta</translation> <translation id="706342288220489463">Permita que o Assistente utilize informações no seu ecrã para ajudar</translation> +<translation id="70641621694466590">Aceda à página Palavras-passe</translation> <translation id="7064734931812204395">A configurar o contentor do Linux… Esta ação pode demorar até 30 minutos.</translation> <translation id="7065223852455347715">Este dispositivo está bloqueado num modo que impede a inscrição empresarial. Se pretende inscrever o dispositivo, tem primeiro de efetuar a recuperação do dispositivo.</translation> <translation id="7065534935986314333">Acerca do sistema</translation> @@ -7381,6 +7388,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> com a aplicação <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Sincronizada com outros dispositivos na sua conta. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Ativar as funcionalidades de depuração neste dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="7544977292347272434">Pede aos teus pais para permitirem uma extensão</translation> <translation id="7545466883021407599">Não foi possível estabelecer ligação ao servidor. Verifique a ligação de rede e tente novamente. Se continuar a ter problemas, experimente reiniciar o Chromebook. Código de erro: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Aviso: as definições do <ph name="PRODUCT_NAME" /> estão armazenadas numa unidade de rede. Isto pode resultar em lentidão, falhas ou mesmo perda de dados.</translation> <translation id="7548856833046333824">Limonada</translation> @@ -7609,6 +7617,7 @@ <translation id="7728668285692163452">A alteração do canal será aplicada mais tarde</translation> <translation id="7730449930968088409">Capturar o conteúdo do ecrã</translation> <translation id="7730683939467795481">Esta página foi alterada pela extensão "<ph name="EXTENSION_NAME" />".</translation> +<translation id="773511996612364297">Acentos</translation> <translation id="7735165285389721951">Está a ser executada outra configuração do Steam. Aguarde que seja concluída antes de tentar novamente</translation> <translation id="7737115349420013392">A sincronizar com o dispositivo "<ph name="DEVICE_NAME" />"…</translation> <translation id="7737203573077018777">Instrução <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> recebida</translation> @@ -7691,6 +7700,7 @@ <translation id="7792388396321542707">Parar partilha</translation> <translation id="779308894558717334">Verde claro</translation> <translation id="7793098747275782155">Azul escuro</translation> +<translation id="7796453472368605346">Diacríticos</translation> <translation id="7797571222998226653">Desativado</translation> <translation id="7798504574384119986">Ver autorizações da Web</translation> <translation id="7798844538707273832">Autorização <ph name="PERMISSION" /> bloqueada automaticamente</translation> @@ -7775,6 +7785,7 @@ <translation id="7876027585589532670">Não é possível editar o atalho.</translation> <translation id="7877451762676714207">Erro de servidor desconhecido. Tente novamente ou contacte o gestor do servidor.</translation> <translation id="7878945852730162014">Faça a gestão dos ficheiros durante a transferência e abra-os quando estiverem concluídos</translation> +<translation id="7879172417209159252">Não é possível usar a extensão</translation> <translation id="7879478708475862060">Seguir método de introdução</translation> <translation id="7879631849810108578">Atalho definido: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Os dados locais vão ser eliminados quando reiniciar o dispositivo</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 74ca793d5..cafb3abb 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -697,6 +697,7 @@ <translation id="1593594475886691512">Se formatează...</translation> <translation id="159359590073980872">Memorie cache de imagini</translation> <translation id="1593926297800505364">Salvează metoda de plată</translation> +<translation id="1594703455918849716">Accesează pagina Verificare</translation> <translation id="1595492813686795610">Linux trece la versiunea superioară</translation> <translation id="1596286373007273895">Disponibil</translation> <translation id="1596709061955594992">Bluetooth este dezactivat. Ca să vezi dispozitivele disponibile, activează Bluetooth.</translation> @@ -1680,6 +1681,7 @@ <translation id="2399699884460174994">Notificări activate</translation> <translation id="2399939490305346086">Datele de conectare ale cheii de securitate</translation> <translation id="2400664245143453337">Este necesară actualizarea imediată</translation> +<translation id="2402226831639195063">Tonuri</translation> <translation id="2406153734066939945">Ștergi profilul și datele asociate?</translation> <translation id="2408018932941436077">Se salvează cardul</translation> <translation id="2408955596600435184">Introdu codul PIN</translation> @@ -1691,6 +1693,7 @@ <translation id="241082044617551207">Plugin necunoscut</translation> <translation id="2410940059315936967">Un site pe care îl accesezi poate încorpora conținut de pe alte site-uri, de exemplu, imagini, anunțuri și text. Cookie-urile setate de aceste alte site-uri se numesc cookie-uri terță parte.</translation> <translation id="2411666601450687801">Nu sunt permise mașini virtuale pe acest dispozitiv</translation> +<translation id="2412015533711271895">Părintele sau tutorele trebuie să își dea acordul ca să poți folosi extensia</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Întunecat</translation> <translation id="2416435988630956212">Tastele pentru funcții de la tastatură</translation> @@ -3073,6 +3076,7 @@ <translation id="3651488188562686558">se va deconecta de la Wi-Fi.</translation> <translation id="3652817283076144888">Se inițializează</translation> <translation id="3653160965917900914">Spații comune de stocare fișiere în rețea</translation> +<translation id="3653887973853407813">Nu poți folosi extensia. Părintele sau tutorele tău a dezactivat opțiunea Permisiuni pentru site-uri, aplicații și extensii în Chrome.</translation> <translation id="3653999333232393305">Permiteți în continuare accesul <ph name="HOST" /> la microfonul dvs.</translation> <translation id="3654045516529121250">Citește setările de accesibilitate</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Aplicația are acces definitiv la un fișier.}few{Aplicația are acces definitiv la # fișiere.}other{Aplicația are acces definitiv la # de fișiere.}}</translation> @@ -4946,6 +4950,7 @@ <translation id="5338503421962489998">Stocare la nivel local</translation> <translation id="5339031667684712858">Site-uri pe care le-ai eliminat</translation> <translation id="5340638867532133571">Permite site-urilor să instaleze handlere pentru plăți (recomandat)</translation> +<translation id="5340787663756381836">&Găsește și modifică</translation> <translation id="5341793073192892252">Următoarele cookie-uri au fost blocate (cookie-urile terță parte sunt blocate fără excepții)</translation> <translation id="5342091991439452114">Codul PIN trebuie să conțină minimum <ph name="MINIMUM" /> cifre</translation> <translation id="5344036115151554031">Se restabilește Linux</translation> @@ -5144,6 +5149,7 @@ <translation id="5517304475148761050">Aplicația necesită acces la Magazinul Play</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Întreabă-mă când un site dorește să vadă textul și imaginile copiate în clipboard</translation> +<translation id="5518949581554491184">Configurează cu un telefon Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Aceasta este pagina de pornire la care vă așteptați?</translation> <translation id="5522156646677899028">Această extensie conține o vulnerabilitate gravă a securității.</translation> @@ -6479,6 +6485,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Numărul de sugestii de afișat pe pagină</translation> <translation id="672609503628871915">Vedeți noutățile</translation> +<translation id="6726800386221816228">Caractere speciale</translation> <translation id="67269783048918309">Trimite date de utilizare și diagnosticare. Momentan, dispozitivul trimite automat date de diagnosticare și de utilizare a dispozitivului și aplicațiilor la Google. Acestea nu vor fi folosite la identificarea copilului și vor ajuta la stabilitatea sistemului, a aplicațiilor și altele. Unele date cumulate vor ajuta aplicațiile și partenerii Google, cum ar fi dezvoltatorii Android. Această <ph name="BEGIN_LINK1" />setare<ph name="END_LINK1" /> este impusă de proprietar. Dacă ai activat setarea Activitatea suplimentară de pe web și din aplicații pentru copilul tău, aceste date pot fi salvate în Contul său Google. <ph name="BEGIN_LINK2" />Află mai multe<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">Codul IBAN care se termină în <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Introdu numele tău de utilizator</translation> @@ -6881,6 +6888,7 @@ <translation id="7063129466199351735">Se procesează comenzile rapide...</translation> <translation id="7063311912041006059">Adresă URL cu <ph name="SPECIAL_SYMBOL" /> în loc de interogare</translation> <translation id="706342288220489463">Permite Asistentului să folosească informații de pe ecran pentru a te ajuta</translation> +<translation id="70641621694466590">Accesează pagina Parole</translation> <translation id="7064734931812204395">Se configurează containerul Linux. Poate dura până la 30 de minute.</translation> <translation id="7065223852455347715">Acest dispozitiv este blocat într-un mod care împiedică înregistrarea în sistemul companiei. Dacă dorești să înregistrezi dispozitivul, trebuie să parcurgi mai întâi procesul de recuperare a dispozitivului.</translation> <translation id="7065534935986314333">Despre sistem</translation> @@ -7382,6 +7390,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> cu aplicația <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Sincronizată cu alte dispozitive din contul tău. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Activează funcțiile de remediere a erorilor pe acest dispozitiv <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="7544977292347272434">Cere-i părintelui să permită o extensie</translation> <translation id="7545466883021407599">Nu s-a putut conecta la server. Verifică starea conexiunii la rețea și încearcă din nou. Dacă ai în continuare probleme, repornește Chromebookul. Cod de eroare: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Avertisment: setările <ph name="PRODUCT_NAME" /> sunt stocate pe o unitate de rețea, ceea ce poate duce la încetiniri, blocări sau chiar la pierderi de date.</translation> <translation id="7548856833046333824">Limonadă</translation> @@ -7610,6 +7619,7 @@ <translation id="7728668285692163452">Modificarea canalului va fi aplicată mai târziu</translation> <translation id="7730449930968088409">Capturează conținutul ecranului</translation> <translation id="7730683939467795481">Această pagină a fost modificată de extensia „<ph name="EXTENSION_NAME" />”</translation> +<translation id="773511996612364297">Accente</translation> <translation id="7735165285389721951">Un alt proces de configurare pentru Steam este în desfășurare. Așteaptă să se finalizeze înainte de a încerca din nou</translation> <translation id="7737115349420013392">Se asociază cu „<ph name="DEVICE_NAME" />”...</translation> <translation id="7737203573077018777">S-a primit instrucțiunea <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /></translation> @@ -7692,6 +7702,7 @@ <translation id="7792388396321542707">Opriți accesul la ecran</translation> <translation id="779308894558717334">Verde deschis</translation> <translation id="7793098747275782155">Albastru închis</translation> +<translation id="7796453472368605346">Diacritice</translation> <translation id="7797571222998226653">Dezactivat</translation> <translation id="7798504574384119986">Vezi permisiunile web</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> a fost blocată automat</translation> @@ -7776,6 +7787,7 @@ <translation id="7876027585589532670">Nu se poate modifica această comandă rapidă</translation> <translation id="7877451762676714207">Eroare de server necunoscută. Încercați din nou sau contactați administratorul serverului.</translation> <translation id="7878945852730162014">Gestionează fișierele pe măsură ce se descarcă și deschide-le după ce descărcarea este finalizată</translation> +<translation id="7879172417209159252">Nu se poate folosi extensia</translation> <translation id="7879478708475862060">Urmați modul de introducere</translation> <translation id="7879631849810108578">Set de comenzi rapide: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Datele locale vor fi șterse când repornești</translation> @@ -9332,6 +9344,7 @@ <translation id="939401694733344652">Momentan, conturile nu sunt folosite cu aplicații pentru Android. Dacă selectezi un cont pentru a-l utiliza cu această aplicație pentru Android, contul poate fi folosit și cu alte aplicații pentru Android. Poți modifica accesul aplicațiilor pentru Android în <ph name="LINK_BEGIN" />Setări > Conturi<ph name="LINK_END" />.</translation> <translation id="939598580284253335">Introdu expresia de acces</translation> <translation id="939736085109172342">Dosar nou</translation> +<translation id="940212040923880623">&Găsește și modifică</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> trimite conținutul unei file Chrome și conținutul audio.</translation> <translation id="944799160843436808">A apărut o problemă la configurarea serviciului Steam pe Chromebook</translation> <translation id="945522503751344254">Trimite feedback</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 3852cee6c..2088cb0 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -702,6 +702,7 @@ <translation id="1593594475886691512">Formatiranje ...</translation> <translation id="159359590073980872">Predpomnilnik za slike</translation> <translation id="1593926297800505364">Shranjevanje plačilnega sredstva</translation> +<translation id="1594703455918849716">Na stran za pregled</translation> <translation id="1595492813686795610">Poteka nadgradnja Linuxa</translation> <translation id="1596286373007273895">Na voljo</translation> <translation id="1596709061955594992">Bluetooth je izklopljen. Če si želite ogledati razpoložljive naprave, vklopite Bluetooth.</translation> @@ -1697,6 +1698,7 @@ <translation id="2399699884460174994">Obvestila so vklopljena</translation> <translation id="2399939490305346086">Podatki za prijavo na varnostnem ključu</translation> <translation id="2400664245143453337">Potrebna je takojšnja posodobitev</translation> +<translation id="2402226831639195063">Toni</translation> <translation id="2406153734066939945">Želite izbrisati ta profil in podatke v njem?</translation> <translation id="2408018932941436077">Shranjevanje kartice</translation> <translation id="2408955596600435184">Vnos kode PIN</translation> @@ -1708,6 +1710,7 @@ <translation id="241082044617551207">Neznani vtičnik</translation> <translation id="2410940059315936967">Spletno mesto, ki ga obiščete, lahko vdela vsebino z drugih spletnih mest, na primer slike, oglase in besedilo. Piškotki, ki jih nastavijo ta druga spletna mesta, se imenujejo piškotki tretjih oseb.</translation> <translation id="2411666601450687801">V tej napravi ni dovoljen noben navidezni računalnik.</translation> +<translation id="2412015533711271895">Starš ali skrbnik mora potrditi, da lahko uporabljaš to razširitev</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Temno</translation> <translation id="2416435988630956212">Funkcijske tipke tipkovnice</translation> @@ -3091,6 +3094,7 @@ <translation id="3651488188562686558">Prekinitev povezave z omrežjem Wi-Fi</translation> <translation id="3652817283076144888">Inicializacija</translation> <translation id="3653160965917900914">Omrežna datotečna sredstva v skupni rabi</translation> +<translation id="3653887973853407813">Te razširitve ne smeš uporabljati. Starš ali skrbnik je izklopil »Dovoljenja za spletna mesta, aplikacije in razširitve« za Chrome.</translation> <translation id="3653999333232393305">Še naprej omogočaj gostitelju <ph name="HOST" /> dostop do mikrofona</translation> <translation id="3654045516529121250">Branje nastavitev za funkcije za ljudi s posebnimi potrebami</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Ima trajni dostop do ene datoteke.}one{Ima trajni dostop do # datoteke.}two{Ima trajni dostop do # datotek.}few{Ima trajni dostop do # datotek.}other{Ima trajni dostop do # datotek.}}</translation> @@ -5163,6 +5167,7 @@ <translation id="5517304475148761050">Ta aplikacija zahteva dostop do Trgovine Play</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Vprašaj, ko si želi spletno mesto ogledati besedilo in slike, kopirane v odložišče</translation> +<translation id="5518949581554491184">Nastavitev s telefonom Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Ali je to domača stran, ki ste jo pričakovali?</translation> <translation id="5522156646677899028">Ta razširitev vsebuje veliko varnostno ranljivost.</translation> @@ -6505,6 +6510,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6725970970008349185">Število kandidatov za prikaz na stran</translation> <translation id="672609503628871915">Oglejte si novosti</translation> +<translation id="6726800386221816228">Posebni znaki</translation> <translation id="67269783048918309">Pošiljanje podatkov o uporabi in diagnostičnih podatkov. Ta naprava trenutno Googlu samodejno pošilja diagnostične podatke ter podatke o uporabi naprave in aplikacij. Teh podatkov ne bomo uporabljali, da bi prepoznali vašega otroka, temveč za izboljšanje stabilnosti sistema in izvajanja aplikacij ter drugega. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android. To <ph name="BEGIN_LINK1" />nastavitev<ph name="END_LINK1" /> je uveljavil lastnik naprave. Če ste za otroka vklopili dodatno beleženje dejavnosti v spletu in aplikacijah, bodo ti podatki morda shranjeni v njegovem računu za Google. <ph name="BEGIN_LINK2" />Več o tem<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN, ki se konča s števkami <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Vnesite uporabniško ime</translation> @@ -6907,6 +6913,7 @@ <translation id="7063129466199351735">Obdelava bližnjic ...</translation> <translation id="7063311912041006059">URL s simbolom <ph name="SPECIAL_SYMBOL" /> na mestu poizvedbe</translation> <translation id="706342288220489463">Omogočanje Pomočniku, da za pomoč uporabi podatke na zaslonu</translation> +<translation id="70641621694466590">Na stran za gesla</translation> <translation id="7064734931812204395">Konfiguriranje vsebnika za Linux. Traja lahko največ 30 minut.</translation> <translation id="7065223852455347715">Ta naprava je zaklenjena v načinu, ki onemogoča včlanitev v podjetje. Če želite napravo včlaniti, jo morate najprej obnoviti.</translation> <translation id="7065534935986314333">O sistemu</translation> @@ -7408,6 +7415,7 @@ <translation id="7541773865713908457">Dejanje <ph name="ACTION_NAME" /> z aplikacijo <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Sinhronizirano z drugimi napravami v računu. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Omogočanje funkcij za odpravljanje napak v tej napravi: <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="7544977292347272434">Prosi starša, da odobri razširitev</translation> <translation id="7545466883021407599">Ni se bilo mogoče povezati s strežnikom. Preverite omrežno povezavo in poskusite znova. Če imate še vedno težave, poskusite znova zagnati Chromebook. Koda napake: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Opozorilo: Nastavitve za <ph name="PRODUCT_NAME" /> so shranjene v omrežnem pogonu, zaradi česa lahko pride do upočasnitev, zrušitev ali celo izgube podatkov.</translation> <translation id="7548856833046333824">Limonada</translation> @@ -7636,6 +7644,7 @@ <translation id="7728668285692163452">Sprememba kanala bo uveljavljena pozneje</translation> <translation id="7730449930968088409">Zajem vsebine zaslona</translation> <translation id="7730683939467795481">To stran je spremenila razširitev »<ph name="EXTENSION_NAME" />«</translation> +<translation id="773511996612364297">Naglasna znamenja</translation> <translation id="7735165285389721951">Poteka druga nastavitev aplikacije Steam. Počakajte, da se dokonča, preden poskusite znova.</translation> <translation id="7737115349420013392">Seznanjanje z napravo »<ph name="DEVICE_NAME" />« …</translation> <translation id="7737203573077018777">Prejeto je navodilo: <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" />.</translation> @@ -7718,6 +7727,7 @@ <translation id="7792388396321542707">Ustavi souporabo</translation> <translation id="779308894558717334">Svetlo zelena</translation> <translation id="7793098747275782155">Temno modra</translation> +<translation id="7796453472368605346">Diakritični znaki</translation> <translation id="7797571222998226653">Izklopljeno</translation> <translation id="7798504574384119986">Ogled spletnih dovoljenj</translation> <translation id="7798844538707273832">Samodejno je blokirano dovoljenje <ph name="PERMISSION" /></translation> @@ -7802,6 +7812,7 @@ <translation id="7876027585589532670">Bližnjice ni mogoče urediti.</translation> <translation id="7877451762676714207">Neznana napaka strežnika. Poskusite znova ali se obrnite na skrbnika strežnika.</translation> <translation id="7878945852730162014">Upravljajte datoteke med prenosom in jih odprite, ko se končajo</translation> +<translation id="7879172417209159252">Razširitve ni dovoljeno uporabiti</translation> <translation id="7879478708475862060">Upoštevaj način vnosa</translation> <translation id="7879631849810108578">Bližnjica je nastavljena: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Ob vnovičnem zagonu bodo izbrisani lokalni podatki</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index 186401c..01609d9 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -695,6 +695,7 @@ <translation id="1593594475886691512">Formatiranje...</translation> <translation id="159359590073980872">Keš slike</translation> <translation id="1593926297800505364">Sačuvajte način plaćanja</translation> +<translation id="1594703455918849716">Idite na stranicu za proveru</translation> <translation id="1595492813686795610">Linux se nadograđuje</translation> <translation id="1596286373007273895">Dostupno</translation> <translation id="1596709061955594992">Bluetooth je isključen. Da biste videli dostupne uređaje, uključite Bluetooth.</translation> @@ -1678,6 +1679,7 @@ <translation id="2399699884460174994">Obaveštenja su uključena</translation> <translation id="2399939490305346086">Podaci za prijavljivanje sa bezbednosnog ključa</translation> <translation id="2400664245143453337">Treba odmah da ažurirate</translation> +<translation id="2402226831639195063">Zvuci</translation> <translation id="2406153734066939945">Želite li da izbrišete ovaj profil i podatke na njemu?</translation> <translation id="2408018932941436077">Kartica se čuva</translation> <translation id="2408955596600435184">Unesite PIN</translation> @@ -1689,6 +1691,7 @@ <translation id="241082044617551207">Nepoznata dodatna komponenta</translation> <translation id="2410940059315936967">Sajt koji posećujete može da ugradi sadržaj sa drugih sajtova, na primer, slike, oglase i tekst. Kolačići koje postavljaju ovi drugi sajtovi nazivaju se kolačići treće strane.</translation> <translation id="2411666601450687801">Virtuelne mašine nisu dozvoljene na ovom uređaju</translation> +<translation id="2412015533711271895">Roditelj ili staratelj mora da kaže da je u redu da koristiš ovaj dodatak</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Tamna</translation> <translation id="2416435988630956212">Funkcijski tasteri na tastaturi</translation> @@ -3072,6 +3075,7 @@ <translation id="3651488188562686558">prekinuti vezu sa WiFi-em</translation> <translation id="3652817283076144888">Pokreće se</translation> <translation id="3653160965917900914">Deljenja datoteka na mreži</translation> +<translation id="3653887973853407813">Ne možeš da koristiš ovaj dodatak. Roditelj ili staratelj je isključio Dozvole za sajtove, aplikacije i dodatke za Chrome.</translation> <translation id="3653999333232393305">I dalje dozvoljavaj da <ph name="HOST" /> pristupa mikrofonu</translation> <translation id="3654045516529121250">Čitanje podešavanja pristupačnosti</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Ima stalan pristup jednoj datoteci.}one{Ima stalan pristup # datoteci.}few{Ima stalan pristup za # datoteke.}other{Ima stalan pristup za # datoteka.}}</translation> @@ -4945,6 +4949,7 @@ <translation id="5338503421962489998">Lokalni memorijski prostor</translation> <translation id="5339031667684712858">Sajtovi koje ste uklonili</translation> <translation id="5340638867532133571">Dozvoli sajtovima da instaliraju obrađivače plaćanja (preporučeno)</translation> +<translation id="5340787663756381836">&Pronađi i izmeni</translation> <translation id="5341793073192892252">Sledeći kolačići su blokirani (kolačići treće strane se blokiraju bez izuzetka)</translation> <translation id="5342091991439452114">PIN mora da ima najmanje <ph name="MINIMUM" /> cifre(ara)</translation> <translation id="5344036115151554031">Vraća se Linux</translation> @@ -5142,6 +5147,7 @@ <translation id="5517304475148761050">Ova aplikacija zahteva pristup Play prodavnici</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Pitaj kada sajt želi da vidi tekst i slike koji su kopirani u privremenu memoriju</translation> +<translation id="5518949581554491184">Podesite pomoću Android telefona</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Je li ovo početna stranica koju ste očekivali?</translation> <translation id="5522156646677899028">Ovaj dodatak sadrži ozbiljan bezbednosni propust.</translation> @@ -6481,6 +6487,7 @@ <translation id="6725206449694821596">Internet protokol za štampanje (IPP)</translation> <translation id="6725970970008349185">Broj kandidata za prikaz po stranici</translation> <translation id="672609503628871915">Prikaži šta je novo</translation> +<translation id="6726800386221816228">Specijalni znakovi</translation> <translation id="67269783048918309">Šaljite podatke o korišćenju i dijagnostičke podatke. Ovaj uređaj trenutno automatski šalje podatke o dijagnostici, uređaju i korišćenju aplikacija Google-u. Te informacije se neće koristiti za identifikaciju deteta i pomoći će u održavanju stabilnosti sistema i aplikacije i drugim podešavanjima. Neki objedinjeni podaci će takođe pomoći Google aplikacijama i partnerima, poput Android programera. To <ph name="BEGIN_LINK1" />podešavanje<ph name="END_LINK1" /> primenjuje vlasnik. Ako za dete uključite podešavanje dodatne aktivnosti na vebu i u aplikacijama, ti podaci će se možda čuvati na Google nalogu deteta. <ph name="BEGIN_LINK2" />Saznajte više<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN koji se završava na <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Unesite korisničko ime</translation> @@ -6883,6 +6890,7 @@ <translation id="7063129466199351735">Obrada prečica...</translation> <translation id="7063311912041006059">URL sa <ph name="SPECIAL_SYMBOL" /> umesto upita</translation> <translation id="706342288220489463">Dozvolite Pomoćniku da koristi informacije na ekranu da bi vam pomogao</translation> +<translation id="70641621694466590">Idite na stranicu Lozinke</translation> <translation id="7064734931812204395">Konfiguriše se Linux kontejner. Ovo može da potraje do 30 minuta.</translation> <translation id="7065223852455347715">Ovaj uređaj je zaključan i nalazi se u režimu koji sprečava registraciju za preduzeća. Ako želite da registrujete uređaj, prvo morate da obavite oporavak uređaja.</translation> <translation id="7065534935986314333">O sistemu</translation> @@ -7384,6 +7392,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> pomoću aplikacije <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Sinhronizovano je sa ostalim uređajima na nalogu. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Omogućavanje funkcija za otklanjanje grešaka na ovom <ph name="IDS_SHORT_PRODUCT_NAME" /> uređaju</translation> +<translation id="7544977292347272434">Zatraži od roditelja da dozvoli dodatak</translation> <translation id="7545466883021407599">Povezivanje sa serverom nije uspelo. Proverite mrežnu vezu i probajte ponovo. Ako i dalje imate problema, probajte ponovo da pokrenete Chromebook. Kôd greške: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Upozorenje: Podešavanja proizvoda <ph name="PRODUCT_NAME" /> su uskladištena na mrežnom disku. To može da dovede do usporavanja, otkazivanja pa čak i gubitka podataka.</translation> <translation id="7548856833046333824">Limunada</translation> @@ -7612,6 +7621,7 @@ <translation id="7728668285692163452">Promena kanala će biti primenjena kasnije</translation> <translation id="7730449930968088409">Snimanje sadržaja ekrana</translation> <translation id="7730683939467795481">Ovu stranicu je promenio dodatak „<ph name="EXTENSION_NAME" />“</translation> +<translation id="773511996612364297">Oznake akcenta</translation> <translation id="7735165285389721951">Još jedno podešavanje Steam-a je u toku. Sačekajte da se ono završi da biste probali ponovo</translation> <translation id="7737115349420013392">Uparuje se sa „<ph name="DEVICE_NAME" />“ ...</translation> <translation id="7737203573077018777">Primljeno je uputstvo <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /></translation> @@ -7694,6 +7704,7 @@ <translation id="7792388396321542707">Zaustavi deljenje</translation> <translation id="779308894558717334">Svetlozelena</translation> <translation id="7793098747275782155">Tamnoplava</translation> +<translation id="7796453472368605346">Dijakritički znakovi</translation> <translation id="7797571222998226653">Isključeno</translation> <translation id="7798504574384119986">Prikaži dozvole za veb</translation> <translation id="7798844538707273832">Funkcija <ph name="PERMISSION" /> je automatski blokirana</translation> @@ -7778,6 +7789,7 @@ <translation id="7876027585589532670">Menjanje prečice nije uspelo</translation> <translation id="7877451762676714207">Nepoznata greška servera. Probajte ponovo ili kontaktirajte administratora servera.</translation> <translation id="7878945852730162014">Upravljajte fajlovima dok se preuzimaju i otvorite ih ih kada se preuzimanje završi</translation> +<translation id="7879172417209159252">Ne možeš da koristiš dodatak</translation> <translation id="7879478708475862060">Prati režim unosa</translation> <translation id="7879631849810108578">Prečica je podešena: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Lokalni podaci će biti izbrisani kada restartujete uređaj</translation> @@ -9335,6 +9347,7 @@ <translation id="939401694733344652">Ovi nalozi se trenutno ne koriste sa Android aplikacijama. Ako izaberete nalog za korišćenje sa ovom Android aplikacijom, on može da se koristi i sa drugim Android aplikacijama. Možete da promenite pristup Android aplikacijama u odeljku <ph name="LINK_BEGIN" />Podešavanja > Nalozi<ph name="LINK_END" />.</translation> <translation id="939598580284253335">Unesite pristupnu frazu</translation> <translation id="939736085109172342">Novi folder</translation> +<translation id="940212040923880623">&Pronađi i izmeni</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> deli Chrome karticu i zvuk.</translation> <translation id="944799160843436808">Došlo je do problema pri podešavanju Steam-a na Chromebook-u</translation> <translation id="945522503751344254">Pošalji povratne informacije</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 6bdea7ed..3f345c0 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -695,6 +695,7 @@ <translation id="1593594475886691512">Форматирање...</translation> <translation id="159359590073980872">Кеш слике</translation> <translation id="1593926297800505364">Сачувајте начин плаћања</translation> +<translation id="1594703455918849716">Идите на страницу за проверу</translation> <translation id="1595492813686795610">Linux се надограђује</translation> <translation id="1596286373007273895">Доступно</translation> <translation id="1596709061955594992">Bluetooth је искључен. Да бисте видели доступне уређаје, укључите Bluetooth.</translation> @@ -1678,6 +1679,7 @@ <translation id="2399699884460174994">Обавештења су укључена</translation> <translation id="2399939490305346086">Подаци за пријављивање са безбедносног кључа</translation> <translation id="2400664245143453337">Треба одмах да ажурирате</translation> +<translation id="2402226831639195063">Звуци</translation> <translation id="2406153734066939945">Желите ли да избришете овај профил и податке на њему?</translation> <translation id="2408018932941436077">Картица се чува</translation> <translation id="2408955596600435184">Унесите PIN</translation> @@ -1689,6 +1691,7 @@ <translation id="241082044617551207">Непозната додатна компонента</translation> <translation id="2410940059315936967">Сајт који посећујете може да угради садржај са других сајтова, на пример, слике, огласе и текст. Колачићи које постављају ови други сајтови називају се колачићи треће стране.</translation> <translation id="2411666601450687801">Виртуелне машине нису дозвољене на овом уређају</translation> +<translation id="2412015533711271895">Родитељ или старатељ мора да каже да је у реду да користиш овај додатак</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Тамнa</translation> <translation id="2416435988630956212">Функцијски тастери на тастатури</translation> @@ -3072,6 +3075,7 @@ <translation id="3651488188562686558">прекинути везу са WiFi-ем</translation> <translation id="3652817283076144888">Покреће се</translation> <translation id="3653160965917900914">Дељења датотека на мрежи</translation> +<translation id="3653887973853407813">Не можеш да користиш овај додатак. Родитељ или старатељ је искључио Дозволе за сајтове, апликације и додатке за Chrome.</translation> <translation id="3653999333232393305">И даље дозвољавај да <ph name="HOST" /> приступа микрофону</translation> <translation id="3654045516529121250">Читање подешавања приступачности</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Има сталан приступ једној датотеци.}one{Има сталан приступ # датотеци.}few{Има сталан приступ за # датотеке.}other{Има сталан приступ за # датотека.}}</translation> @@ -4945,6 +4949,7 @@ <translation id="5338503421962489998">Локални меморијски простор</translation> <translation id="5339031667684712858">Сајтови које сте уклонили</translation> <translation id="5340638867532133571">Дозволи сајтовима да инсталирају обрађиваче плаћања (препоручено)</translation> +<translation id="5340787663756381836">&Пронађи и измени</translation> <translation id="5341793073192892252">Следећи колачићи су блокирани (колачићи треће стране се блокирају без изузетка)</translation> <translation id="5342091991439452114">PIN мора да има најмање <ph name="MINIMUM" /> цифре(ара)</translation> <translation id="5344036115151554031">Враћа се Linux</translation> @@ -5142,6 +5147,7 @@ <translation id="5517304475148761050">Ова апликација захтева приступ Play продавници</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> – <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Питај када сајт жели да види текст и слике који су копирани у привремену меморију</translation> +<translation id="5518949581554491184">Подесите помоћу Android телефона</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Је ли ово почетна страница коју сте очекивали?</translation> <translation id="5522156646677899028">Овај додатак садржи озбиљан безбедносни пропуст.</translation> @@ -6481,6 +6487,7 @@ <translation id="6725206449694821596">Интернет протокол за штампање (IPP)</translation> <translation id="6725970970008349185">Број кандидата за приказ по страници</translation> <translation id="672609503628871915">Прикажи шта је ново</translation> +<translation id="6726800386221816228">Специјални знакови</translation> <translation id="67269783048918309">Шаљите податке о коришћењу и дијагностичке податке. Овај уређај тренутно аутоматски шаље податке о дијагностици, уређају и коришћењу апликација Google-у. Те информације се неће користити за идентификацију детета и помоћи ће у одржавању стабилности система и апликације и другим подешавањима. Неки обједињени подаци ће такође помоћи Google апликацијама и партнерима, попут Android програмера. То <ph name="BEGIN_LINK1" />подешавање<ph name="END_LINK1" /> примењује власник. Ако за дете укључите подешавање додатне активности на вебу и у апликацијама, ти подаци ће се можда чувати на Google налогу детета. <ph name="BEGIN_LINK2" />Сазнајте више<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN који се завршава на <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Унесите корисничко име</translation> @@ -6883,6 +6890,7 @@ <translation id="7063129466199351735">Обрада пречица...</translation> <translation id="7063311912041006059">URL са <ph name="SPECIAL_SYMBOL" /> уместо упита</translation> <translation id="706342288220489463">Дозволите Помоћнику да користи информације на екрану да би вам помогао</translation> +<translation id="70641621694466590">Идите на страницу Лозинке</translation> <translation id="7064734931812204395">Конфигурише се Linux контејнер. Ово може да потраје до 30 минута.</translation> <translation id="7065223852455347715">Овај уређај је закључан и налази се у режиму који спречава регистрацију за предузећа. Ако желите да региструјете уређај, прво морате да обавите опоравак уређаја.</translation> <translation id="7065534935986314333">О систему</translation> @@ -7384,6 +7392,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> помоћу апликације <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Синхронизовано је са осталим уређајима на налогу. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Омогућавање функција за отклањање грешака на овом <ph name="IDS_SHORT_PRODUCT_NAME" /> уређају</translation> +<translation id="7544977292347272434">Затражи од родитеља да дозволи додатак</translation> <translation id="7545466883021407599">Повезивање са сервером није успело. Проверите мрежну везу и пробајте поново. Ако и даље имате проблема, пробајте поново да покренете Chromebook. Кôд грешке: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Упозорење: Подешавања производа <ph name="PRODUCT_NAME" /> су ускладиштена на мрежном диску. То може да доведе до успоравања, отказивања па чак и губитка података.</translation> <translation id="7548856833046333824">Лимунада</translation> @@ -7612,6 +7621,7 @@ <translation id="7728668285692163452">Промена канала ће бити примењена касније</translation> <translation id="7730449930968088409">Снимање садржаја екрана</translation> <translation id="7730683939467795481">Ову страницу је променио додатак „<ph name="EXTENSION_NAME" />“</translation> +<translation id="773511996612364297">Ознаке акцента</translation> <translation id="7735165285389721951">Још једно подешавање Steam-а је у току. Сачекајте да се оно заврши да бисте пробали поново</translation> <translation id="7737115349420013392">Упарује се са „<ph name="DEVICE_NAME" />“ ...</translation> <translation id="7737203573077018777">Примљено је упутство <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /></translation> @@ -7694,6 +7704,7 @@ <translation id="7792388396321542707">Заустави дељење</translation> <translation id="779308894558717334">Светлозелена</translation> <translation id="7793098747275782155">Тамноплава</translation> +<translation id="7796453472368605346">Дијакритички знакови</translation> <translation id="7797571222998226653">Искључено</translation> <translation id="7798504574384119986">Прикажи дозволе за веб</translation> <translation id="7798844538707273832">Функција <ph name="PERMISSION" /> је аутоматски блокирана</translation> @@ -7778,6 +7789,7 @@ <translation id="7876027585589532670">Мењање пречице није успело</translation> <translation id="7877451762676714207">Непозната грешка сервера. Пробајте поново или контактирајте администратора сервера.</translation> <translation id="7878945852730162014">Управљајте фајловима док се преузимају и отворите их их када се преузимање заврши</translation> +<translation id="7879172417209159252">Не можеш да користиш додатак</translation> <translation id="7879478708475862060">Прати режим уноса</translation> <translation id="7879631849810108578">Пречица је подешена: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Локални подаци ће бити избрисани када рестартујете уређај</translation> @@ -9335,6 +9347,7 @@ <translation id="939401694733344652">Ови налози се тренутно не користе са Android апликацијама. Ако изаберете налог за коришћење са овом Android апликацијом, он може да се користи и са другим Android апликацијама. Можете да промените приступ Android апликацијама у одељку <ph name="LINK_BEGIN" />Подешавања > Налози<ph name="LINK_END" />.</translation> <translation id="939598580284253335">Унесите приступну фразу</translation> <translation id="939736085109172342">Нови фолдер</translation> +<translation id="940212040923880623">&Пронађи и измени</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> дели Chrome картицу и звук.</translation> <translation id="944799160843436808">Дошло је до проблема при подешавању Steam-а на Chromebook-у</translation> <translation id="945522503751344254">Пошаљи повратне информације</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 5e2d925..f84e16f 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -3028,6 +3028,7 @@ <translation id="3609277884604412258">Utafutaji wa haraka</translation> <translation id="3610241585790874201">Zimezuiwa kuhifadhi data kwenye kifaa chako</translation> <translation id="3610369246614755442">Feni ya kituo inahitaji kurekebishwa</translation> +<translation id="3610961622607302617">Badilisha nenosiri la <ph name="WEBSITE" /></translation> <translation id="361106536627977100">Data ya Flash</translation> <translation id="3611655097742243705">Tembelea Duka la Google Play ili upate programu zingine</translation> <translation id="3611658447322220736">Tovuti ulizofunga hivi punde zinaweza kumaliza kutuma na kupokea data</translation> @@ -6043,6 +6044,7 @@ <translation id="6318125393809743217">Jumuisha faili ya policies.json na mipangilio ya sera.</translation> <translation id="6318407754858604988">Upakuaji umeanza</translation> <translation id="6318944945640833942">Imeshindwa kutambua printa. Tafadhali weka anwani ya printa tena.</translation> +<translation id="6320808462673705899">Hakuna alamisho zinazolingana na utafutaji wako.</translation> <translation id="6322370287306604163">Fungua kwa haraka zaidi ukitumia alama ya kidole</translation> <translation id="6322559670748154781">Faili hii haipakuliwi kwa kawaida na imezuiwa na Ulinzi wa Hali ya Juu</translation> <translation id="6324916366299863871">Badilisha njia ya mkato</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 51e5353..6865faa 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">வடிவமைக்கிறது...</translation> <translation id="159359590073980872">படத்தின் தற்காலிக சேமிப்பு</translation> <translation id="1593926297800505364">கட்டண முறையைச் சேமிக்கும்</translation> +<translation id="1594703455918849716">சரிபார்ப்புப் பக்கத்திற்குச் செல்லும்</translation> <translation id="1595492813686795610">Linux மேம்படுத்தப்படுகிறது</translation> <translation id="1596286373007273895">கிடைக்கிறது</translation> <translation id="1596709061955594992">புளூடூத் முடக்கப்பட்டுள்ளது. கிடைக்கக்கூடிய சாதனங்களைப் பார்க்க அதை இயக்கவும்.</translation> @@ -1694,6 +1695,7 @@ <translation id="2399699884460174994">அறிவிப்புகள் இயக்கப்பட்டுள்ளன</translation> <translation id="2399939490305346086">பாதுகாப்பு விசைக்கான உள்நுழைவுத் தகவல்கள்</translation> <translation id="2400664245143453337">உடனடியாகப் புதுப்பிக்கப்பட வேண்டும்</translation> +<translation id="2402226831639195063">டோன்கள்</translation> <translation id="2406153734066939945">இந்தச் சுயவிவரத்தையும் இதன் தரவையும் நீக்கவா?</translation> <translation id="2408018932941436077">கார்டு விவரங்களைச் சேமிக்கிறது</translation> <translation id="2408955596600435184">பின்னை உள்ளிடவும்</translation> @@ -1705,6 +1707,7 @@ <translation id="241082044617551207">அறியப்படாத செருகுநிரல்</translation> <translation id="2410940059315936967">நீங்கள் பார்வையிடும் தளம் பிற தளங்களில் உள்ள உள்ளடக்கத்தை (படங்கள், விளம்பரங்கள், வார்த்தைகள் போன்றவை) உட்பொதிக்கலாம். இதுபோல பிற தளங்கள் அமைக்கும் குக்கீகள் மூன்றாம் தரப்புக் குக்கீகள் என்று அழைக்கப்படுகின்றன.</translation> <translation id="2411666601450687801">இந்தச் சாதனத்தில் விர்ச்சுவல் மெஷின்களைப் பயன்படுத்த முடியாது</translation> +<translation id="2412015533711271895">இந்த நீட்டிப்பை நீங்கள் பயன்படுத்தலாம் என உங்கள் பெற்றோர் அல்லது காப்பாளர் அனுமதி வழங்க வேண்டும்</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">அடர்</translation> <translation id="2416435988630956212">கீபோர்டு செயல்பாட்டு விசைகள்</translation> @@ -3088,6 +3091,7 @@ <translation id="3651488188562686558">வைஃபை இணைப்பைத் துண்டி</translation> <translation id="3652817283076144888">துவக்குகிறது</translation> <translation id="3653160965917900914">நெட்வொர்க் ஃபைல் பகிர்வுகள்</translation> +<translation id="3653887973853407813">இந்த நீட்டிப்பைப் பயன்படுத்த முடியாது. Chromeமில் “தளங்கள், ஆப்ஸ், நீட்டிப்புகள் ஆகியவற்றுக்கான அனுமதிகளை” உங்கள் பெற்றோர் அல்லது காப்பாளர் முடக்கியுள்ளார்.</translation> <translation id="3653999333232393305">உங்கள் மைக்ரோஃபோனை அணுக <ph name="HOST" /> ஐத் தொடர்ந்து அனுமதிக்கவும்</translation> <translation id="3654045516529121250">உங்கள் அணுகல்தன்மை அமைப்புகளைப் படித்தல்</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{ஒரு ஃபைலுக்கு நிரந்தர அணுகலைக் கொண்டுள்ளது.}other{# ஃபைல்களுக்கு நிரந்தர அணுகலைக் கொண்டுள்ளது.}}</translation> @@ -5160,6 +5164,7 @@ <translation id="5517304475148761050">இந்த ஆப்ஸிற்கு Play Storeருக்கான அணுகல் வேண்டும்</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">கிளிப்போர்டுக்கு நகலெடுத்த உரையையும் படங்களையும் பார்ப்பதற்குத் தளம் விரும்பும் போது, கேள்</translation> +<translation id="5518949581554491184">Android மொபைல் மூலம் அமை</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">இந்த முகப்புப் பக்கம் நீங்கள் எதிர்பார்த்தது போன்று உள்ளதா?</translation> <translation id="5522156646677899028">இந்த நீட்டிப்பு தீவிர பாதுகாப்புப் பாதிப்பைக் கொண்டுள்ளது.</translation> @@ -6495,6 +6500,7 @@ <translation id="6725206449694821596">இன்டர்நெட் பிரிண்டிங் புரோட்டோகால் (IPP)</translation> <translation id="6725970970008349185">ஒவ்வொரு பக்கத்திலும் காண்பிப்பதற்கான பிரதிநிதிகளின் எண்ணிக்கை</translation> <translation id="672609503628871915">புதியதைப் பார்க்கவும்</translation> +<translation id="6726800386221816228">சிறப்பு எழுத்துக்குறிகள்</translation> <translation id="67269783048918309">உபயோகம் & கண்டறிதல் தரவை அனுப்புக. கண்டறிதல் தரவு, சாதனம் மற்றும் ஆப்ஸ் உபயோகத் தரவு போன்றவற்றை இந்தச் சாதனம் தற்போது Googleளுக்குத் தானாக அனுப்புகிறது. இது உங்கள் பிள்ளையை அடையாளம் கண்டறியப் பயன்படுத்தப்படாது, இது சிஸ்டம் மற்றும் ஆப்ஸின் நிலைத்தன்மையை மேம்படுத்தவும் பிற மேம்பாடுகளைச் செய்யவும் உதவும். ஒருங்கிணைக்கப்பட்ட சில தரவுகள், Google ஆப்ஸ் மற்றும் Android டெவெலப்பர்கள் போன்ற கூட்டாளர்களுக்கும் உதவும். உரிமையாளர் இந்த <ph name="BEGIN_LINK1" />அமைப்பைச்<ph name="END_LINK1" /> செயல்படுத்தியுள்ளார். உங்கள் பிள்ளையின் கணக்கில் கூடுதல் ’இணையம் & ஆப்ஸ் செயல்பாடு’ அமைப்பு இயக்கப்பட்டிருந்தால், இந்தத் தரவு அவரது Google கணக்கில் சேமிக்கப்படலாம். <ph name="BEGIN_LINK2" />மேலும் அறிக<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN <ph name="LAST_FOUR_DIGITS" /> இல் முடிவடைகிறது</translation> <translation id="6729192290958770680">பயனர்பெயரை டைப் செய்யவும்</translation> @@ -6897,6 +6903,7 @@ <translation id="7063129466199351735">குறுக்குவழிகளைச் செயல்படுத்துகிறது...</translation> <translation id="7063311912041006059">வினவலுக்கான இடத்தில் <ph name="SPECIAL_SYMBOL" />ஐக் கொண்ட URL</translation> <translation id="706342288220489463">உதவி பெற, உங்கள் திரையில் உள்ள தகவல்களைப் பயன்படுத்த Assistantடை அனுமதியுங்கள்</translation> +<translation id="70641621694466590">கடவுச்சொற்கள் பக்கத்திற்குச் செல்லும்</translation> <translation id="7064734931812204395">Linux கண்டெய்னரை உள்ளமைக்கிறது. இதற்கு 30 நிமிடங்கள் வரை ஆகலாம்.</translation> <translation id="7065223852455347715">நிறுவன பதிவைத் தடுக்கும் பயன்முறையில் இந்தச் சாதனம் பூட்டப்பட்டுள்ளது. சாதனத்தைப் பதிவுசெய்ய விரும்பினால், முதலில் சாதனத்தை மீட்டெடுக்கவும்.</translation> <translation id="7065534935986314333">முறைமையைப் பற்றி</translation> @@ -7398,6 +7405,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> ஆப்ஸில் <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">உங்கள் கணக்கிலுள்ள பிற சாதனங்களுடன் ஒத்திசைக்கப்பட்டுள்ளது. <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation> <translation id="7543104066686362383">இந்த <ph name="IDS_SHORT_PRODUCT_NAME" /> சாதனத்தில் பிழைத் திருத்த அம்சங்களை இயக்கும்</translation> +<translation id="7544977292347272434">நீட்டிப்பை அனுமதிக்குமாறு உங்கள் பெற்றோரிடம் கேட்கவும்</translation> <translation id="7545466883021407599">சேவையகத்துடன் இணைக்க முடியவில்லை. நெட்வொர்க் இணைப்பைச் சரிபார்த்து மீண்டும் முயலவும். இன்னமும் சிக்கல் இருந்தால் Chromebookகை மீண்டும் தொடங்கவும். பிழைக் குறியீடு: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">எச்சரிக்கை: உங்கள் <ph name="PRODUCT_NAME" /> அமைப்புகள் நெட்வொர்க் டிரைவில் சேமிக்கப்பட்டுள்ளன. இதனால் வேகம் குறைதல், சிதைவுகள் அல்லது தரவு இழப்பு கூட ஏற்படலாம்.</translation> <translation id="7548856833046333824">லெமனேட்</translation> @@ -7626,6 +7634,7 @@ <translation id="7728668285692163452">சேனல் மாற்றம் பின்னர் பயன்படுத்தப்படும்</translation> <translation id="7730449930968088409">உங்கள் திரையின் உள்ளடக்கத்தைப் பதிவுசெய்யலாம்</translation> <translation id="7730683939467795481">இந்தப் பக்கம் "<ph name="EXTENSION_NAME" />" நீட்டிப்பால் மாற்றப்பட்டது</translation> +<translation id="773511996612364297">ஆக்ஸண்ட் குறிகள்</translation> <translation id="7735165285389721951">வேறொரு Steam ஆப்ஸ் அமைவு இயக்கத்தில் உள்ளது. அது முடிவடைந்த பின்னர் மீண்டும் முயற்சிக்கவும்</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" உடன் இணைக்கிறது ...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> வழிமுறை பெறப்பட்டது</translation> @@ -7708,6 +7717,7 @@ <translation id="7792388396321542707">பகிர்தலை நிறுத்து</translation> <translation id="779308894558717334">வெளிர் பச்சை</translation> <translation id="7793098747275782155">அடர் நீலம்</translation> +<translation id="7796453472368605346">ஒலிப்புக்குறிகள்</translation> <translation id="7797571222998226653">முடக்கப்பட்டுள்ளது</translation> <translation id="7798504574384119986">இணைய அனுமதிகளைக் காட்டு</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> தானாகத் தடுக்கப்பட்டது</translation> @@ -7792,6 +7802,7 @@ <translation id="7876027585589532670">ஷார்ட்கட்டைத் திருத்த முடியவில்லை</translation> <translation id="7877451762676714207">அறியாத சேவையகப் பிழை. மீண்டும் முயலவும் அல்லது சேவையக நிர்வாகியை தொடர்பு கொள்ளவும்.</translation> <translation id="7878945852730162014">பதிவிறக்கப்படும்போதே ஃபைல்களை நிர்வகிக்கலாம், பதிவிறக்கப்பட்டதும் அவற்றைத் திறக்கலாம்</translation> +<translation id="7879172417209159252">நீட்டிப்பைப் பயன்படுத்த முடியாது</translation> <translation id="7879478708475862060">உள்ளீட்டு முறையைப் பின்தொடர்</translation> <translation id="7879631849810108578">ஷார்ட்கட் அமைக்கப்பட்டது: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">ரீஸ்டார்ட் செய்யும்போது அகத் தரவு நீக்கப்படும்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 08e51f8..bb16a75 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">ఆకృతీకరిస్తోంది...</translation> <translation id="159359590073980872">చిత్రం కాష్</translation> <translation id="1593926297800505364">చెల్లింపు పద్దతిని సేవ్ చేయండి</translation> +<translation id="1594703455918849716">చెకప్ పేజీకి వెళ్లండి</translation> <translation id="1595492813686795610">Linux అప్గ్రేడ్ అవుతోంది</translation> <translation id="1596286373007273895">అందుబాటులో ఉంది</translation> <translation id="1596709061955594992">బ్లూటూత్ ఆఫ్ చేయబడింది. అందుబాటులో ఉన్న పరికరాలను చూడటానికి, బ్లూటూత్ను ఆన్ చేయండి.</translation> @@ -1692,6 +1693,7 @@ <translation id="2399699884460174994">నోటిఫికేషన్లు ఆన్ చేయబడ్డాయి</translation> <translation id="2399939490305346086">'సెక్యూరిటీ కీ' సైన్-ఇన్ డేటా</translation> <translation id="2400664245143453337">వెంటనే అప్డేట్ చేయడం అవసరం</translation> +<translation id="2402226831639195063">టోన్లు</translation> <translation id="2406153734066939945">ఈ ప్రొఫైల్ను, దానిలోని డేటాను తొలగించాలా?</translation> <translation id="2408018932941436077">కార్డ్ సేవ్ అవుతోంది</translation> <translation id="2408955596600435184">మీ PINని నమోదు చేయండి</translation> @@ -1703,6 +1705,7 @@ <translation id="241082044617551207">తెలియని ప్లగ్ఇన్</translation> <translation id="2410940059315936967">మీరు చూసే సైట్ ఇతర సైట్ల నుండి కంటెంట్ను పొందుపరచవచ్చు, ఉదాహరణకు, ఇమేజ్లు, యాడ్లు, ఇంకా టెక్స్ట్. ఈ ఇతర సైట్లు సెట్ చేసిన కుక్కీలను థర్డ్-పార్టీ కుక్కీలు అంటారు.</translation> <translation id="2411666601450687801">ఈ పరికరంలో వర్చువల్ మెషీన్లు ఏవీ అనుమతించబడవు</translation> +<translation id="2412015533711271895">మీరు ఈ ఎక్స్టెన్షన్ను ఉపయోగించాలంటే మీ తల్లి/తండ్రి లేదా గార్డియన్ మీకు అనుమతి ఇవ్వాలి</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">ముదురు</translation> <translation id="2416435988630956212">కీబోర్డ్ ఫంక్షన్ కీలు</translation> @@ -3086,6 +3089,7 @@ <translation id="3651488188562686558">Wi-Fi నుండి డిస్కనెక్ట్ చేయి</translation> <translation id="3652817283076144888">ప్రారంభిస్తోంది</translation> <translation id="3653160965917900914">నెట్వర్క్ ఫైల్ షేర్లు</translation> +<translation id="3653887973853407813">మీరు ఈ ఎక్స్టెన్షన్ను ఉపయోగించలేరు. Chrome విషయంలో, మీ తల్లి/తండ్రి లేదా గార్డియన్ "సైట్లు, యాప్లు, ఎక్స్టెన్షన్లకు అనుమతుల"ను ఆఫ్ చేశారు.</translation> <translation id="3653999333232393305">మీ మైక్రోఫోన్ను యాక్సెస్ చేయడానికి <ph name="HOST" />కి అనుమతిని కొనసాగించండి</translation> <translation id="3654045516529121250">మీ యాక్సెస్ సెట్టింగ్లను చదవండి</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{ఇది ఒక ఫైల్కు శాశ్వత యాక్సెస్ను కలిగి ఉంది.}other{ఇది # ఫైళ్లకు శాశ్వత యాక్సెస్ను కలిగి ఉంది.}}</translation> @@ -5158,6 +5162,7 @@ <translation id="5517304475148761050">Play Storeను యాక్సెస్ చేయగలిగేలా ఈ యాప్ను అనుమతించాలి</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">క్లిప్బోర్డ్కు కాపీ చేసిన వచనం, చిత్రాలను సైట్ చూడాలన్నప్పుడు, అందుకు అనుమతి అడగాలి</translation> +<translation id="5518949581554491184">Android ఫోన్తో సెటప్ చేయండి</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">మీరు ఆశిస్తున్న హోమ్ పేజీ ఇదేనా?</translation> <translation id="5522156646677899028">ఈ ఎక్స్టెన్షన్ తీవ్రమైన భద్రతా భేద్యతలను కలిగి ఉంది.</translation> @@ -6492,6 +6497,7 @@ <translation id="6725206449694821596">ఇంటర్నెట్ ముద్రణ ప్రోటోకాల్ (IPP)</translation> <translation id="6725970970008349185">ప్రతి పేజీకి ప్రదర్శించడానికి అభ్యర్థుల సంఖ్య</translation> <translation id="672609503628871915">కొత్తగా ఏమి ఉన్నాయో చూడండి</translation> +<translation id="6726800386221816228">ప్రత్యేక అక్షరాలు</translation> <translation id="67269783048918309">వినియోగం & విశ్లేషణల డేటాను పంపండి. ఈ పరికరం ప్రస్తుతం సమస్య విశ్లేషణ, అలాగే పరికర, యాప్ వినియోగ డేటాను ఆటోమేటిక్గా Googleకు పంపుతుంది. ఇది మీ చిన్నారి గురించి గుర్తించడానికి ఉపయోగించబడదు, ఇది కేవలం సిస్టమ్, యాప్ స్థిరత్వానికి, ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత సముదాయ డేటా కూడా Google యాప్లకు, అలాగే Android డెవలపర్ల లాంటి భాగస్వాములకు సహాయపడుతుంది. ఈ <ph name="BEGIN_LINK1" />సెట్టింగ్<ph name="END_LINK1" />ని యజమాని అమలు చేశారు. మీ చిన్నారి కోసం అదనపు వెబ్ & యాప్ యాక్టివిటీ సెట్టింగ్ను ఆన్ చేసినట్లయితే, ఈ డేటా వారి Google ఖాతాలో సేవ్ చేయబడవచ్చు. <ph name="BEGIN_LINK2" />మరింత తెలుసుకోండి<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">చివర <ph name="LAST_FOUR_DIGITS" /> కలిగిన IBAN</translation> <translation id="6729192290958770680">మీ యూజర్నేమ్ను ఎంటర్ చేయండి</translation> @@ -6894,6 +6900,7 @@ <translation id="7063129466199351735">షార్ట్కట్లను ప్రాసెస్ చేస్తోంది...</translation> <translation id="7063311912041006059">ప్రశ్న యొక్క ప్రదేశంలో <ph name="SPECIAL_SYMBOL" />తో URL</translation> <translation id="706342288220489463">సహాయం చేయడానికి మీ Assistantను మీ స్క్రీన్పై సమాచారాన్ని ఉపయోగించనివ్వండి</translation> +<translation id="70641621694466590">పాస్వర్డ్ల పేజీకి వెళ్లండి</translation> <translation id="7064734931812204395">Linux కంటైనర్ కాన్ఫిగర్ అవుతోంది. దీనికి 30 నిమిషాల వరకు పట్టవచ్చు.</translation> <translation id="7065223852455347715">బిజినెస్ నమోదును నిరోధించే మోడ్లో ఈ పరికరం లాక్ చేయబడింది. మీరు పరికరాన్ని నమోదు చేయాలనుకుంటే ముందుగా పరికరాన్ని పునరుద్ధరించాలి.</translation> <translation id="7065534935986314333">సిస్టమ్ గురించి</translation> @@ -7395,6 +7402,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> యాప్తో <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">మీ ఖాతాలోని ఇతర పరికరాలతో సింక్ చేయబడింది. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation> <translation id="7543104066686362383">ఈ <ph name="IDS_SHORT_PRODUCT_NAME" /> పరికరంలో డీబగ్గింగ్ ఫీచర్లను ప్రారంభించండి</translation> +<translation id="7544977292347272434">ఎక్స్టెన్షన్ను అనుమతించమని మీ తల్లి/తండ్రిని అడగండి</translation> <translation id="7545466883021407599">సర్వర్తో కనెక్ట్ చేయడం సాధ్యపడలేదు. మీ నెట్వర్క్ కనెక్షన్ను చెక్ చేసి, మళ్లీ ట్రై చేయండి. మీకు ఇంకా సమస్య ఉంటే, మీ Chromebookను రీస్టార్ట్ చేయడానికి ట్రై చేయండి. ఎర్రర్ కోడ్: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">హెచ్చరిక: మీ <ph name="PRODUCT_NAME" /> సెట్టింగ్లు నెట్వర్క్ డిస్క్లో స్టోరేజ్ చేయబడ్డాయి. దీని ఫలితంగా స్లోడౌన్లు, క్రాష్లు జరగవచ్చు లేదా డేటాను కూడా నష్టపోవచ్చు.</translation> <translation id="7548856833046333824">నిమ్మరసం</translation> @@ -7623,6 +7631,7 @@ <translation id="7728668285692163452">ఛానెల్ మార్పు తర్వాత వర్తింపజేయబడుతుంది</translation> <translation id="7730449930968088409">మీ స్క్రీన్ కంటెంట్ని క్యాప్చర్ చేయండి</translation> <translation id="7730683939467795481">ఈ పేజీ "<ph name="EXTENSION_NAME" />" ఎక్స్టెన్షన్ ద్వారా మార్చబడింది</translation> +<translation id="773511996612364297">యాక్సెంట్ మార్క్లు</translation> <translation id="7735165285389721951">వేరొక Steam సెటప్ రన్ అవుతోంది. దయచేసి మళ్లీ ట్రై ముందు అది పూర్తయ్యే వరకు వేచి ఉండండి</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />"తో పెయిర్ చేస్తోంది ...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> సూచన అందింది</translation> @@ -7704,6 +7713,7 @@ <translation id="7792388396321542707">భాగస్వామ్యం చేయడాన్ని ఆపివేయి</translation> <translation id="779308894558717334">లేత ఆకుపచ్చ రంగు</translation> <translation id="7793098747275782155">ముదురు నీలం రంగు</translation> +<translation id="7796453472368605346">డయాక్రిటిక్స్</translation> <translation id="7797571222998226653">ఆఫ్ చేయబడ్డాయి</translation> <translation id="7798504574384119986">వెబ్ అనుమతులు చూడండి</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> ఆటోమేటిక్గా బ్లాక్ చేయబడింది</translation> @@ -7788,6 +7798,7 @@ <translation id="7876027585589532670">షార్ట్కట్ను ఎడిట్ చేయడం సాధ్యపడదు</translation> <translation id="7877451762676714207">తెలియని సర్వర్ ఎర్రర్. దయచేసి మళ్లీ ప్రయత్నించండి లేదా సర్వర్ నిర్వాహకుడిని సంప్రదించండి.</translation> <translation id="7878945852730162014">ఫైల్స్ డౌన్లోడ్ అవుతున్నప్పుడు వాటిని మేనేజ్ చేయండి, ఆపై అవి డౌన్లోడ్ అయ్యాక వాటిని తెరవండి</translation> +<translation id="7879172417209159252">ఎక్స్టెన్షన్ను ఉపయోగించడం సాధ్యపడదు</translation> <translation id="7879478708475862060">ఇన్పుట్ మోడ్ను అనుసరించండి</translation> <translation id="7879631849810108578">షార్ట్కట్ సెట్ చేయబడింది: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">మీరు పునఃప్రారంభించినప్పుడు స్థానిక డేటా తొలగించబడుతుంది</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index 06ec3bb..9ab9914 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -4093,6 +4093,7 @@ <translation id="4545759655004063573">ไม่สามารถบันทึกเนื่องจากสิทธิ์ไม่เพียงพอ โปรดบันทึกลงในตำแหน่งอื่น</translation> <translation id="4546308221697447294">ท่องเว็บอย่างรวดเร็วด้วย Google Chrome</translation> <translation id="4546345569117159016">ปุ่มขวา</translation> +<translation id="4546509872654834602"><ph name="SUPERVISED_USER_NAME" /> ต้องการใช้ส่วนขยายนี้</translation> <translation id="4546692474302123343">การป้อนข้อมูลด้วยเสียงของ Google Assistant</translation> <translation id="4547659257713117923">ไม่มีแท็บจากอุปกรณ์อื่น</translation> <translation id="4547672827276975204">ตั้งค่าโดยอัตโนมัติ</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index a06cb9b..284a314 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -696,6 +696,7 @@ <translation id="1593594475886691512">فارمیٹ کیا جا رہا ہے…</translation> <translation id="159359590073980872">تصویر کیش</translation> <translation id="1593926297800505364">ادائیگی کا طریقہ محفوظ کریں</translation> +<translation id="1594703455918849716">چیک اپ کے صفحے پر جائیں</translation> <translation id="1595492813686795610">Linux اپ گریڈ ہو رہا ہے</translation> <translation id="1596286373007273895">دستیاب</translation> <translation id="1596709061955594992">بلوٹوتھ آف ہے۔ دستیاب آلات دیکھنے کے لیے بلوٹوتھ آن کریں۔</translation> @@ -1681,6 +1682,7 @@ <translation id="2399699884460174994">اطلاعات آن کر دی گئیں</translation> <translation id="2399939490305346086">سیکیورٹی کلید کا سائن ان ڈیٹا</translation> <translation id="2400664245143453337">فوری طور پر اپ ڈیٹ درکار ہے</translation> +<translation id="2402226831639195063">ٹونز</translation> <translation id="2406153734066939945">اس پروفائل اور اس کے ڈیٹا کو حذف کریں؟</translation> <translation id="2408018932941436077">کارڈ محفوظ ہو رہا ہے</translation> <translation id="2408955596600435184">اپنا PIN درج کریں</translation> @@ -1692,6 +1694,7 @@ <translation id="241082044617551207">نامعلوم پلگ ان</translation> <translation id="2410940059315936967">آپ کی ملاحظہ کی جانے والی سائٹ دوسری سائٹس سے مواد کو سرایت کر سکتی ہے، مثال کے طور پر تصاویر، اشتہارات اور ٹیکسٹ۔ ان دیگر سائٹس کے ذریعے سیٹ کردہ کوکیز کو فریق ثالث کوکیز کہا جاتا ہے۔</translation> <translation id="2411666601450687801">اس آلے پر کسی بھی ورچوئل مشین کی اجازت نہیں ہے</translation> +<translation id="2412015533711271895">آپ کے والدین یا سرپرست کو یہ کہنا ہوگا کہ آپ کے لیے اس ایکسٹینشن کا استعمال ٹھیک ہے</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">گہری</translation> <translation id="2416435988630956212">کی بورڈ کی فنکشن کلیدیں</translation> @@ -3074,6 +3077,7 @@ <translation id="3651488188562686558">Wi-Fi سے منقطع کریں</translation> <translation id="3652817283076144888">شروع کیا جا رہا ہے</translation> <translation id="3653160965917900914">نیٹ ورک فائل کے اشتراکات</translation> +<translation id="3653887973853407813">آپ اس ایکسٹینشن کو استعمال نہیں کر سکتے۔ آپ کے والدین یا سرپرست نے Chrome کے لیے "سائٹس، ایپس اور ایکسٹینشنز کی اجازتوں" کو آف کر دیا ہے۔</translation> <translation id="3653999333232393305"><ph name="HOST" /> کو اپنے مائیکروفون تک رسائی حاصل کرنے کی اجازت دینا جاری رکھیں</translation> <translation id="3654045516529121250">اپنی ایکسیسبیلٹی ترتیبات پڑھیں</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{اسے ایک فائل تک مستقل رسائی ہے۔}other{اسے # فائلوں تک مستقل رسائی ہے۔}}</translation> @@ -5144,6 +5148,7 @@ <translation id="5517304475148761050">اس ایپ کو Play اسٹور تک رسائی درکار ہے</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">جب کوئی سائٹ کلپ بورڈ میں کاپی کیے گئے متن اور تصاویر دیکھنا چاہے تو پوچھیں</translation> +<translation id="5518949581554491184">Android فون کے ساتھ سیٹ اپ کریں</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">کیا یہی وہ ہوم صفحہ ہے جس کی آپ توقع کر رہے تھے؟</translation> <translation id="5522156646677899028">اس ایکسٹینشن میں ایک سنگین سیکیورٹی خطرہ شامل ہے۔</translation> @@ -6477,6 +6482,7 @@ <translation id="6725206449694821596">انٹرنیٹ پرنٹنگ پروٹوکول (IPP)</translation> <translation id="6725970970008349185">فی صفحہ ڈسپلے کرنے کیلئے امیدواروں کی تعداد</translation> <translation id="672609503628871915">دیکھیں کہ نیا کیا ہے</translation> +<translation id="6726800386221816228">مخصوص حروف</translation> <translation id="67269783048918309">استعمال اور ڈائیگناسٹک کا ڈیٹا بھیجیں۔ فی الوقت یہ آلہ خود کار طور پر ڈائیگناسٹک، آلے اور ایپ کے استعمال کا ڈیٹا Google کو بھیج رہا ہے۔ اس کا استعمال آپ کے بچے کی شناخت کیلئے نہیں کیا جائے گا اور اس سے سسٹم اور ایپ کے استحکام اور دیگر بہتریوں میں مدد ملے گی۔ کچھ مجموعی ڈیٹا Google ایپس اور پارٹنرز، جیسے Android ڈیولپرز، کی مدد بھی کرے گا۔ اس <ph name="BEGIN_LINK1" />ترتیب<ph name="END_LINK1" /> کو مالک نافذ کرتا ہے۔ اگر آپ کے بچے کیلئے ویب اور ایپ کی اضافی سرگرمی کی ترتیب آن ہے تو اس ڈیٹا کو اس کے Google اکاؤنٹ میں محفوظ کیا جا سکتا ہے۔ <ph name="BEGIN_LINK2" />مزید جانیں<ph name="END_LINK2" /></translation> <translation id="6728528977475057549"><ph name="LAST_FOUR_DIGITS" /> پر ختم ہونے والا IBAN</translation> <translation id="6729192290958770680">اپنا صارف نام درج کریں</translation> @@ -6879,6 +6885,7 @@ <translation id="7063129466199351735">شارٹ کٹس پر کارروائی کی جا رہی ہے…</translation> <translation id="7063311912041006059">استفسار کی جگہ <ph name="SPECIAL_SYMBOL" /> کے ساتھ URL</translation> <translation id="706342288220489463">مدد کرنے کیلئے اپنی اسسٹنٹ کو اپنی اسکرین پر معلومات استعمال کرنے کی اجازت دیں</translation> +<translation id="70641621694466590">پاس ورڈز کے صفحے پر جائیں</translation> <translation id="7064734931812204395">Linux کنٹینر کو کنفیگر کیا جا رہا ہے۔ اس میں 30 منٹس تک کا وقت لگ سکتا ہے۔</translation> <translation id="7065223852455347715">یہ آلہ ایسی وضع میں مقفل ہوا ہے جو انٹرپرائز اندراج کو روکتا ہے۔ اگر آپ آلہ کا اندراج کرنا چاہتے ہیں تو آپ کو سب سے پہلے آلہ کی بازیابی سے گزرنے کی ضرورت ہے۔</translation> <translation id="7065534935986314333">سسٹم کے بارے میں</translation> @@ -7380,6 +7387,7 @@ <translation id="7541773865713908457"><ph name="APP_NAME" /> ایپ کے ساتھ <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">آپ کے اکاؤنٹ پر موجود دیگر آلات کے ساتھ مطابقت پذیر۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation> <translation id="7543104066686362383">اس <ph name="IDS_SHORT_PRODUCT_NAME" /> آلہ پر ڈیبگ کرنے کی خصوصیات فعال کریں</translation> +<translation id="7544977292347272434">اپنے والدین سے ایکسٹینشن کی اجازت دینے کو کہیں</translation> <translation id="7545466883021407599">سرور سے منسلک نہیں ہو سکا۔ اپنا نیٹ ورک کنکشن چیک کریں اور دوبارہ کوشش کریں۔ اگر آپ کو اب بھی مشکل درپیش ہے تو اپنا Chromebook ری سٹارٹ کرنے کی کوشش کریں۔ خرابی کا کوڈ: <ph name="ERROR_CODE" />۔</translation> <translation id="7547317915858803630">وارننگ: آپ کی <ph name="PRODUCT_NAME" /> ترتیبات ایک نیٹ ورک ڈرائیو پر محفوظ ہیں۔ اس کا نتیجہ رفتار میں کمی، کریشز یا ڈیٹا سے محرومی ہو سکتا ہے۔</translation> <translation id="7548856833046333824">لیمونیڈ</translation> @@ -7608,6 +7616,7 @@ <translation id="7728668285692163452">چینل میں تبدیلی بعد میں لاگو کی جائے گی</translation> <translation id="7730449930968088409">اپنی سکرین کا مواد کیپچر کریں</translation> <translation id="7730683939467795481">یہ صفحہ "<ph name="EXTENSION_NAME" />" ایکسٹینشن کے ذریعے تبدیل کیا گیا</translation> +<translation id="773511996612364297">تلفظ کے نشانات</translation> <translation id="7735165285389721951">دوسرا Steam سیٹ اپ چل رہا ہے۔ دوبارہ کوشش کرنے سے پہلے براہ کرم اس کے مکمل ہونے کا انتظار کریں</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" کے ساتھ جوڑا بنایا جا رہا ہے ...</translation> <translation id="7737203573077018777"><ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /> کی ہدایت موصول ہو گئی</translation> @@ -7690,6 +7699,7 @@ <translation id="7792388396321542707">اشتراک روکیں</translation> <translation id="779308894558717334">ہلکا سبز</translation> <translation id="7793098747275782155">گہرا نیلا</translation> +<translation id="7796453472368605346">تفریقی نشانات</translation> <translation id="7797571222998226653">آف</translation> <translation id="7798504574384119986">ویب کی اجازتیں دیکھیں</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> خود کار طور پر مسدود کر دی گئی</translation> @@ -7774,6 +7784,7 @@ <translation id="7876027585589532670">شارٹ کٹ میں ترمیم نہیں ہو سکتی</translation> <translation id="7877451762676714207">سرور کی نامعلوم خرابی۔ براہ کرم دوبارہ کوشش کریں یا سرور کے منتظم سے رابطہ کریں۔</translation> <translation id="7878945852730162014">ڈاؤن لوڈ ہوتے وقت فائلز کا نظم کریں اور ڈاؤن لوڈ مکمل ہونے پر انہیں کھولیں</translation> +<translation id="7879172417209159252">ایکسٹینشن استعمال نہیں کر سکتے</translation> <translation id="7879478708475862060">اندراج کی وضع کی پیروی کریں</translation> <translation id="7879631849810108578">شارٹ کٹ کا سیٹ: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">جب آپ دوبارہ شروع کریں گے تو مقامی ڈیٹا حذف ہو جائے گا</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index 5e5357b..a148e0b 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">Đang định dạng...</translation> <translation id="159359590073980872">Bộ nhớ đệm hình ảnh</translation> <translation id="1593926297800505364">Lưu phương thức thanh toán</translation> +<translation id="1594703455918849716">Chuyển đến trang Kiểm tra</translation> <translation id="1595492813686795610">Linux đang nâng cấp</translation> <translation id="1596286373007273895">Có sẵn</translation> <translation id="1596709061955594992">Bluetooth đang tắt. Để xem các thiết bị có thể ghép đôi, hãy bật Bluetooth.</translation> @@ -1694,6 +1695,7 @@ <translation id="2399699884460174994">Đã bật thông báo</translation> <translation id="2399939490305346086">Dữ liệu đăng nhập trên khóa bảo mật</translation> <translation id="2400664245143453337">Bạn cần cập nhật ngay</translation> +<translation id="2402226831639195063">Âm</translation> <translation id="2406153734066939945">Xóa hồ sơ này và dữ liệu của hồ sơ?</translation> <translation id="2408018932941436077">Đang lưu thẻ</translation> <translation id="2408955596600435184">Nhập mã PIN của bạn</translation> @@ -1705,6 +1707,7 @@ <translation id="241082044617551207">Plugin không rõ</translation> <translation id="2410940059315936967">Trang web bạn truy cập có thể nhúng nội dung từ các trang web khác, chẳng hạn như hình ảnh, quảng cáo và văn bản. Cookie do các trang web khác đặt được gọi là cookie của bên thứ ba.</translation> <translation id="2411666601450687801">Không Máy ảo nào được phép chạy trên thiết bị này</translation> +<translation id="2412015533711271895">Cha mẹ hoặc người giám hộ phải cho phép bạn dùng tiện ích này</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">Tối</translation> <translation id="2416435988630956212">Phím chức năng trên bàn phím</translation> @@ -3088,6 +3091,7 @@ <translation id="3651488188562686558">Ngắt kết nối khỏi Wi-Fi</translation> <translation id="3652817283076144888">Đang khởi chạy</translation> <translation id="3653160965917900914">Chia sẻ tệp trong mạng</translation> +<translation id="3653887973853407813">Bạn không thể sử dụng tiện ích này. Cha mẹ hoặc người giám hộ của bạn đã tắt chế độ "Quyền của các trang web, ứng dụng và tiện ích" đối với Chrome.</translation> <translation id="3653999333232393305">Tiếp tục cho phép <ph name="HOST" /> truy cập micrô của bạn</translation> <translation id="3654045516529121250">Đọc cài đặt trợ năng của bạn</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Ứng dụng có quyền truy cập vĩnh viễn vào một tệp.}other{Ứng dụng có quyền truy cập vĩnh viễn vào # tệp.}}</translation> @@ -5160,6 +5164,7 @@ <translation id="5517304475148761050">Ứng dụng này cần có quyền truy cập vào Cửa hàng Play</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> — <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">Hỏi khi một trang web muốn xem văn bản và hình ảnh đã sao chép sang bảng nhớ tạm</translation> +<translation id="5518949581554491184">Thiết lập bằng điện thoại Android</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">Đây có phải là trang chủ bạn muốn không?</translation> <translation id="5522156646677899028">Tiện ích này chứa lỗ hổng bảo mật nghiêm trọng.</translation> @@ -6494,6 +6499,7 @@ <translation id="6725206449694821596">Giao thức in qua Internet (IPP)</translation> <translation id="6725970970008349185">Số lượng ứng viên để hiển thị trên mỗi trang</translation> <translation id="672609503628871915">Xem tính năng mới</translation> +<translation id="6726800386221816228">Ký tự đặc biệt</translation> <translation id="67269783048918309">Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng. Thiết bị này hiện tự động gửi dữ liệu chẩn đoán, dữ liệu về mức sử dụng ứng dụng và thiết bị cho Google. Những thông tin này sẽ không dùng để nhận dạng con bạn mà giúp tăng độ ổn định của hệ thống và ứng dụng cũng như cải thiện các mặt khác. Một số dữ liệu tổng hợp cũng sẽ hữu ích cho các ứng dụng và đối tác của Google, chẳng hạn như những nhà phát triển Android. Mục <ph name="BEGIN_LINK1" />cài đặt<ph name="END_LINK1" /> này do chủ sở hữu thực thi. Nếu bạn bật chế độ cài đặt bổ sung Hoạt động trên web và ứng dụng cho con mình thì dữ liệu này có thể được lưu vào Tài khoản Google của trẻ. <ph name="BEGIN_LINK2" />Tìm hiểu thêm<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN có số đuôi là <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">Nhập tên người dùng của bạn</translation> @@ -6896,6 +6902,7 @@ <translation id="7063129466199351735">Đang xử lý lối tắt...</translation> <translation id="7063311912041006059">URL có <ph name="SPECIAL_SYMBOL" /> thay thế truy vấn</translation> <translation id="706342288220489463">Cho phép Trợ lý sử dụng thông tin trên màn hình để trợ giúp</translation> +<translation id="70641621694466590">Chuyển đến trang Mật khẩu</translation> <translation id="7064734931812204395">Đang định cấu hình vùng chứa Linux. Quá trình này có thể mất tối đa 30 phút.</translation> <translation id="7065223852455347715">Thiết bị này bị khóa trong chế độ ngăn đăng ký doanh nghiệp. Nếu bạn muốn đăng ký thiết bị, trước tiên bạn cần khôi phục thiết bị.</translation> <translation id="7065534935986314333">Giới thiệu về Hệ thống</translation> @@ -7397,6 +7404,7 @@ <translation id="7541773865713908457"><ph name="ACTION_NAME" /> bằng ứng dụng <ph name="APP_NAME" /></translation> <translation id="754207240458482646">Đã đồng bộ hóa với các thiết bị khác trên tài khoản của bạn. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation> <translation id="7543104066686362383">Bật tính năng gỡ lỗi trên thiết bị <ph name="IDS_SHORT_PRODUCT_NAME" /> này</translation> +<translation id="7544977292347272434">Yêu cầu cha mẹ cho phép cài đặt tiện ích</translation> <translation id="7545466883021407599">Không thể kết nối với máy chủ. Hãy kiểm tra kết nối mạng rồi thử lại. Nếu bạn vẫn gặp sự cố, hãy thử khởi động lại Chromebook. Mã lỗi: <ph name="ERROR_CODE" />.</translation> <translation id="7547317915858803630">Cảnh báo: cài đặt <ph name="PRODUCT_NAME" /> của bạn được lưu trữ trên ổ đĩa mạng. Điều này có thể dẫn đến giảm tốc độ, trục trặc hoặc thậm chí là mất dữ liệu.</translation> <translation id="7548856833046333824">Nước chanh</translation> @@ -7625,6 +7633,7 @@ <translation id="7728668285692163452">Thay đổi kênh sẽ được áp dụng sau</translation> <translation id="7730449930968088409">Chụp nội dung trên màn hình của bạn</translation> <translation id="7730683939467795481">Tiện ích "<ph name="EXTENSION_NAME" />" đã thay đổi trang này</translation> +<translation id="773511996612364297">Dấu nhấn trọng âm</translation> <translation id="7735165285389721951">Có một quy trình thiết lập Steam khác đang chạy. Vui lòng đợi quy trình đó hoàn tất rồi thử lại</translation> <translation id="7737115349420013392">Đang ghép nối với "<ph name="DEVICE_NAME" />"...</translation> <translation id="7737203573077018777">Đã nhận được hướng dẫn <ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" /></translation> @@ -7707,6 +7716,7 @@ <translation id="7792388396321542707">Dừng chia sẻ</translation> <translation id="779308894558717334">Xanh lục nhạt</translation> <translation id="7793098747275782155">Xanh lam đậm</translation> +<translation id="7796453472368605346">Dấu phụ</translation> <translation id="7797571222998226653">Đang tắt</translation> <translation id="7798504574384119986">Xem các quyền trên web</translation> <translation id="7798844538707273832">Đã tự động chặn <ph name="PERMISSION" /></translation> @@ -7791,6 +7801,7 @@ <translation id="7876027585589532670">Không thể chỉnh sửa lối tắt</translation> <translation id="7877451762676714207">Lỗi máy chủ không xác định. Vui lòng thử lại hoặc liên hệ với quản trị viên máy chủ.</translation> <translation id="7878945852730162014">Quản lý tệp khi tải xuống và mở tệp khi tải xong</translation> +<translation id="7879172417209159252">Không thể sử dụng tiện ích</translation> <translation id="7879478708475862060">Theo dõi chế độ nhập</translation> <translation id="7879631849810108578">Đã đặt phím tắt: <ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">Dữ liệu trên thiết bị sẽ bị xóa khi bạn khởi động lại</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index 0fbbe4b21..b7b6d30 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -699,6 +699,7 @@ <translation id="1593594475886691512">正在格式化…</translation> <translation id="159359590073980872">圖片快取</translation> <translation id="1593926297800505364">儲存付款方法</translation> +<translation id="1594703455918849716">去檢查頁面</translation> <translation id="1595492813686795610">正在升級 Linux</translation> <translation id="1596286373007273895">可用</translation> <translation id="1596709061955594992">藍牙已關閉。如要查看可用的裝置,請開啟藍牙。</translation> @@ -1694,6 +1695,7 @@ <translation id="2399699884460174994">已開啟通知</translation> <translation id="2399939490305346086">安全密鑰登入資料</translation> <translation id="2400664245143453337">必須立即更新</translation> +<translation id="2402226831639195063">音調</translation> <translation id="2406153734066939945">要刪除此設定檔和相關資料嗎?</translation> <translation id="2408018932941436077">正在儲存信用卡</translation> <translation id="2408955596600435184">請輸入您的 PIN</translation> @@ -1705,6 +1707,7 @@ <translation id="241082044617551207">不明的外掛程式</translation> <translation id="2410940059315936967">您瀏覽的網站可以嵌入其他網站的內容,例如圖片、廣告和文字。其他網站設定的 Cookie 就稱為第三方 Cookie。</translation> <translation id="2411666601450687801">此裝置不允許「虛擬機器」</translation> +<translation id="2412015533711271895">您需要家長或監護人同意才能使用此擴充程式</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">灰暗</translation> <translation id="2416435988630956212">鍵盤功能鍵</translation> @@ -3031,6 +3034,7 @@ <translation id="3609277884604412258">快速搜尋</translation> <translation id="3610241585790874201">無法將資料儲存至裝置</translation> <translation id="3610369246614755442">插座風扇需要維修</translation> +<translation id="3610961622607302617">改 <ph name="WEBSITE" /> 嘅密碼</translation> <translation id="361106536627977100">Flash 數據</translation> <translation id="3611655097742243705">請前往「Play 商店」尋找更多應用程式</translation> <translation id="3611658447322220736">最近關閉的網站可完成傳送和接受資料</translation> @@ -3087,6 +3091,7 @@ <translation id="3651488188562686558">中斷 Wi-Fi 連線</translation> <translation id="3652817283076144888">正在初始化</translation> <translation id="3653160965917900914">網絡檔案共用</translation> +<translation id="3653887973853407813">您無法使用此擴充程式,因為您的家長或監護人已關閉 Chrome 的「網站、應用程式和擴充程式權限」。</translation> <translation id="3653999333232393305">繼續允許 <ph name="HOST" /> 存取您的麥克風</translation> <translation id="3654045516529121250">讀取您的協助工具設定</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{應用程式可永久存取 1 個檔案。}other{應用程式可永久存取 # 個檔案。}}</translation> @@ -4962,6 +4967,7 @@ <translation id="5338503421962489998">本機儲存空間</translation> <translation id="5339031667684712858">您已移除的網站</translation> <translation id="5340638867532133571">允許網站安裝付款處理常式 (建議)</translation> +<translation id="5340787663756381836">尋找並編輯(&F)</translation> <translation id="5341793073192892252">已封鎖下列 Cookie (所有第三方 Cookie 都會被封鎖)</translation> <translation id="5342091991439452114">PIN 必須至少有 <ph name="MINIMUM" /> 位數字</translation> <translation id="5344036115151554031">正在還原 Linux</translation> @@ -5160,6 +5166,7 @@ <translation id="5517304475148761050">此應用程式需要存取「Play 商店」才能執行</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">在網站要求查看複製到剪貼簿的文字和圖片時詢問您</translation> +<translation id="5518949581554491184">透過 Android 手機設定</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">這是您想要的首頁嗎?</translation> <translation id="5522156646677899028">這個擴充功能內含嚴重安全性漏洞。</translation> @@ -6047,6 +6054,7 @@ <translation id="6318125393809743217">包括具有政策設定的 policies.json 檔案。</translation> <translation id="6318407754858604988">已開始下載</translation> <translation id="6318944945640833942">偵測不到打印機,請再次輸入打印機位址。</translation> +<translation id="6320808462673705899">沒有與搜尋相符的書籤。</translation> <translation id="6322370287306604163">指紋加快解鎖速度</translation> <translation id="6322559670748154781">此檔案不常下載,因此已被進階保護功能封鎖</translation> <translation id="6324916366299863871">編輯捷徑</translation> @@ -6491,6 +6499,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPPS)</translation> <translation id="6725970970008349185">每頁顯示的候選字個數</translation> <translation id="672609503628871915">查看最新內容</translation> +<translation id="6726800386221816228">特殊字元</translation> <translation id="67269783048918309">傳送使用情況和診斷資料。此裝置目前會自動將診斷、裝置及應用程式的使用情況資料傳送至 Google。這些資料不會用來識別您子女的身分,而是用於改善系統和應用程式的穩定性和其他效能。部分彙整資料也會用於協助 Google 應用程式與合作夥伴 (例如 Android 開發人員)。擁有者可強制執行此<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />。如果已為子女開啟其他「網絡及應用程式活動記錄」設定,系統可能會將此資料儲存至其 Google 帳戶。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">IBAN 最後嘅數字係 <ph name="LAST_FOUR_DIGITS" /></translation> <translation id="6729192290958770680">請輸入您的使用者名稱</translation> @@ -6893,6 +6902,7 @@ <translation id="7063129466199351735">正在處理捷徑…</translation> <translation id="7063311912041006059">以 <ph name="SPECIAL_SYMBOL" /> 取代查詢的網址</translation> <translation id="706342288220489463">讓「Google 助理」使用畫面上的資料提供協助</translation> +<translation id="70641621694466590">去密碼頁面</translation> <translation id="7064734931812204395">正在設定 Linux 容器。過程可能需時 30 分鐘。</translation> <translation id="7065223852455347715">這部裝置已鎖定為防止企業註冊的模式。如果您要使用該裝置註冊,必須先完成裝置復原操作。</translation> <translation id="7065534935986314333">關於系統</translation> @@ -7393,6 +7403,7 @@ <translation id="7541773865713908457">使用「<ph name="APP_NAME" />」應用程式<ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">已與您帳戶上的其他裝置同步。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> <translation id="7543104066686362383">在這部 <ph name="IDS_SHORT_PRODUCT_NAME" /> 裝置上啟用偵錯功能</translation> +<translation id="7544977292347272434">徵求家長同意啟用擴充程式</translation> <translation id="7545466883021407599">無法連線至伺服器。請檢查您的網絡連線,然後再試一次。如果問題仍未解決,請嘗試重新啟動 Chromebook。錯誤代碼:<ph name="ERROR_CODE" />。</translation> <translation id="7547317915858803630">警告:您的 <ph name="PRODUCT_NAME" /> 設定均儲存在網絡硬碟中。這樣可能導致速度變慢、當機,甚至數據遺失。</translation> <translation id="7548856833046333824">檸檬水</translation> @@ -7621,6 +7632,7 @@ <translation id="7728668285692163452">系統會在稍後套用版本變更</translation> <translation id="7730449930968088409">擷取您的螢幕內容</translation> <translation id="7730683939467795481">「<ph name="EXTENSION_NAME" />」擴充程式已變更此頁面</translation> +<translation id="773511996612364297">重音符號</translation> <translation id="7735165285389721951">正在執行另一項 Steam 設定,請等到該設定完成後再試</translation> <translation id="7737115349420013392">正在與「<ph name="DEVICE_NAME" />」配對…</translation> <translation id="7737203573077018777">已接收「<ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" />」指示</translation> @@ -7703,6 +7715,7 @@ <translation id="7792388396321542707">停止共用</translation> <translation id="779308894558717334">淺綠色</translation> <translation id="7793098747275782155">深藍色</translation> +<translation id="7796453472368605346">變音符號</translation> <translation id="7797571222998226653">關閉</translation> <translation id="7798504574384119986">查看網絡權限</translation> <translation id="7798844538707273832">已自動封鎖<ph name="PERMISSION" /></translation> @@ -7787,6 +7800,7 @@ <translation id="7876027585589532670">無法編輯捷徑</translation> <translation id="7877451762676714207">不明的伺服器錯誤。請再試一次,或與伺服器管理員聯絡。</translation> <translation id="7878945852730162014">管理下載中的檔案,並在下載完成後開啟</translation> +<translation id="7879172417209159252">無法使用擴充程式</translation> <translation id="7879478708475862060">按照輸入模式</translation> <translation id="7879631849810108578">快速鍵組合:<ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">系統會在您重新啟動時刪除本機資料</translation> @@ -9342,6 +9356,7 @@ <translation id="939401694733344652">這些帳戶目前並未使用 Android 應用程式。如果您選取帳戶以使用此 Android 應用程式,該帳戶亦可使用其他 Android 應用程式。如要變更 Android 應用程式存取權,請前往 <ph name="LINK_BEGIN" />[設定] > [帳戶]<ph name="LINK_END" /></translation> <translation id="939598580284253335">請輸入複雜密碼</translation> <translation id="939736085109172342">新增資料夾</translation> +<translation id="940212040923880623">尋找並編輯(&F)</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> 正在共用 Chrome 分頁和音效。</translation> <translation id="944799160843436808">在 Chromebook 上設定 Steam 時發生問題</translation> <translation id="945522503751344254">提供意見反映</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index 6f84235..df3cee7a 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -696,6 +696,7 @@ <translation id="1593594475886691512">正在格式化...</translation> <translation id="159359590073980872">圖片快取</translation> <translation id="1593926297800505364">儲存付款方式</translation> +<translation id="1594703455918849716">前往「檢查」頁面</translation> <translation id="1595492813686795610">正在升級 Linux</translation> <translation id="1596286373007273895">可用</translation> <translation id="1596709061955594992">藍牙功能已關閉。如要查看可用裝置,請開啟藍牙功能。</translation> @@ -1679,6 +1680,7 @@ <translation id="2399699884460174994">已開啟通知功能</translation> <translation id="2399939490305346086">安全金鑰登入資料</translation> <translation id="2400664245143453337">必須立即更新</translation> +<translation id="2402226831639195063">音調</translation> <translation id="2406153734066939945">要刪除這個設定檔和相關資料嗎?</translation> <translation id="2408018932941436077">正在儲存信用卡</translation> <translation id="2408955596600435184">請輸入你的 PIN 碼</translation> @@ -1690,6 +1692,7 @@ <translation id="241082044617551207">不明的外掛程式</translation> <translation id="2410940059315936967">你造訪的網站可以嵌入其他網站的內容,例如圖片、廣告和文字。其他網站設定的 Cookie 稱為第三方 Cookie。</translation> <translation id="2411666601450687801">這部裝置不允許使用任何虛擬機器</translation> +<translation id="2412015533711271895">你必須取得家長或監護人允許,才能使用這個擴充功能</translation> <translation id="2412753904894530585">Kerberos</translation> <translation id="2414886740292270097">深色</translation> <translation id="2416435988630956212">鍵盤功能鍵</translation> @@ -3016,6 +3019,7 @@ <translation id="3609277884604412258">快速搜尋</translation> <translation id="3610241585790874201">無法將資料儲存到裝置</translation> <translation id="3610369246614755442">座架風扇需要維修</translation> +<translation id="3610961622607302617">變更 <ph name="WEBSITE" /> 的密碼</translation> <translation id="361106536627977100">Flash 資料</translation> <translation id="3611655097742243705">請前往 Play 商店尋找更多應用程式</translation> <translation id="3611658447322220736">最近關閉的網站可以完成資料收發作業</translation> @@ -3072,6 +3076,7 @@ <translation id="3651488188562686558">中斷 Wi-Fi 連線</translation> <translation id="3652817283076144888">正在初始化</translation> <translation id="3653160965917900914">網路檔案共用</translation> +<translation id="3653887973853407813">你的家長或監護人已關閉 Chrome 的「網站、應用程式和擴充功能的權限」,因此你無法使用這個擴充功能。</translation> <translation id="3653999333232393305">繼續允許 <ph name="HOST" /> 存取你的麥克風</translation> <translation id="3654045516529121250">讀取你的無障礙設定</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{應用程式可永久存取 1 個檔案。}other{應用程式可永久存取 # 個檔案。}}</translation> @@ -4087,6 +4092,7 @@ <translation id="4545759655004063573">由於權限不足,因此無法儲存內容。請選擇其他儲存位置。</translation> <translation id="4546308221697447294">使用 Google Chrome 快速瀏覽網路</translation> <translation id="4546345569117159016">右鍵</translation> +<translation id="4546509872654834602"><ph name="SUPERVISED_USER_NAME" />想要使用這個擴充功能:</translation> <translation id="4546692474302123343">Google 助理語音輸入</translation> <translation id="4547659257713117923">沒有在其他裝置上開啟的分頁</translation> <translation id="4547672827276975204">自動設定</translation> @@ -4944,6 +4950,7 @@ <translation id="5338503421962489998">本機儲存空間</translation> <translation id="5339031667684712858">已移除的網站</translation> <translation id="5340638867532133571">允許網站安裝付款處理常式 (建議)</translation> +<translation id="5340787663756381836">尋找並編輯(&F)</translation> <translation id="5341793073192892252">已封鎖下列 Cookie (所有第三方 Cookie 都會遭到封鎖)</translation> <translation id="5342091991439452114">PIN 碼至少需有 <ph name="MINIMUM" /> 碼</translation> <translation id="5344036115151554031">正在還原 Linux</translation> @@ -5142,6 +5149,7 @@ <translation id="5517304475148761050">這個應用程式需要存取 Play 商店才能執行</translation> <translation id="5517412723934627386"><ph name="NETWORK_TYPE" /> - <ph name="NETWORK_DISPLAY_NAME" /></translation> <translation id="5518219166343146486">當網站要讀取已複製到剪貼簿的文字和圖片時,必須先詢問你</translation> +<translation id="5518949581554491184">使用 Android 手機設定</translation> <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">這是你想要的首頁嗎?</translation> <translation id="5522156646677899028">這個擴充功能內含嚴重安全性漏洞。</translation> @@ -6028,6 +6036,7 @@ <translation id="6318125393809743217">納入包含政策設定的 policies.json 檔案。</translation> <translation id="6318407754858604988">已開始下載</translation> <translation id="6318944945640833942">偵測不到印表機,請再次輸入印表機位址。</translation> +<translation id="6320808462673705899">找不到與搜尋字詞相符的書籤。</translation> <translation id="6322370287306604163">使用指紋快速解鎖</translation> <translation id="6322559670748154781">這個檔案不是常見的下載項目,因此遭到進階保護功能封鎖</translation> <translation id="6324916366299863871">編輯捷徑</translation> @@ -6472,6 +6481,7 @@ <translation id="6725206449694821596">網際網路列印通訊協定 (IPP)</translation> <translation id="6725970970008349185">每頁顯示的候選字個數</translation> <translation id="672609503628871915">查看新功能</translation> +<translation id="6726800386221816228">特殊字元</translation> <translation id="67269783048918309">傳送使用狀況與診斷資料。這個裝置目前會自動將診斷資料以及裝置和應用程式的使用狀況資料傳送給 Google。這些資料將有助於系統和應用程式提高穩定性及做出其他改善,並不會用於識別貴子女的身分。部分匯總資料還能夠為 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提供幫助。這項<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />是由裝置擁有者執行。如果貴子女的「其他網路和應用程式活動」設定為開啟,系統可能會將這些資料儲存到他們的 Google 帳戶。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation> <translation id="6728528977475057549">末四碼為 <ph name="LAST_FOUR_DIGITS" /> 的 IBAN</translation> <translation id="6729192290958770680">請輸入你的使用者名稱</translation> @@ -6874,6 +6884,7 @@ <translation id="7063129466199351735">正在處理捷徑...</translation> <translation id="7063311912041006059">以 <ph name="SPECIAL_SYMBOL" /> 取代查詢的網址</translation> <translation id="706342288220489463">讓 Google 助理使用畫面上的資訊提供協助</translation> +<translation id="70641621694466590">前往「密碼」頁面</translation> <translation id="7064734931812204395">正在設定 Linux 容器。最多可能需要 30 分鐘才能完成。</translation> <translation id="7065223852455347715">這個裝置已鎖定,目前處於禁止企業註冊模式。您必須先完成裝置還原程序,才能註冊這個裝置。</translation> <translation id="7065534935986314333">關於系統</translation> @@ -7375,6 +7386,7 @@ <translation id="7541773865713908457">使用「<ph name="APP_NAME" />」應用程式<ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">已與你帳戶中的其他裝置同步。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> <translation id="7543104066686362383">在這個 <ph name="IDS_SHORT_PRODUCT_NAME" /> 裝置上啟用偵錯功能</translation> +<translation id="7544977292347272434">詢問家長是否允許使用擴充功能</translation> <translation id="7545466883021407599">無法連上伺服器。請檢查網路連線,然後再試一次。如果問題仍然無法解決,請嘗試重新啟動 Chromebook。錯誤代碼:<ph name="ERROR_CODE" />。</translation> <translation id="7547317915858803630">警告:你的 <ph name="PRODUCT_NAME" /> 設定均儲存在網路硬碟中。這麼做可能導致速度變慢、當機,甚至資料遺失。</translation> <translation id="7548856833046333824">檸檬汁</translation> @@ -7603,6 +7615,7 @@ <translation id="7728668285692163452">系統會在稍後套用版本變更</translation> <translation id="7730449930968088409">擷取你的畫面內容</translation> <translation id="7730683939467795481">「<ph name="EXTENSION_NAME" />」擴充功能已變更這個頁面</translation> +<translation id="773511996612364297">重音符號</translation> <translation id="7735165285389721951">正在執行另一項 Steam 設定,請等到該設定完成後再試</translation> <translation id="7737115349420013392">正在與「<ph name="DEVICE_NAME" />」配對…</translation> <translation id="7737203573077018777">已收到<ph name="PROOF_OF_POSSESSION_INSTRUCTION_NAME" />的操作說明</translation> @@ -7685,6 +7698,7 @@ <translation id="7792388396321542707">停止共用</translation> <translation id="779308894558717334">淺綠色</translation> <translation id="7793098747275782155">深藍色</translation> +<translation id="7796453472368605346">變音符號</translation> <translation id="7797571222998226653">關閉</translation> <translation id="7798504574384119986">查看網站權限</translation> <translation id="7798844538707273832">已自動封鎖<ph name="PERMISSION" /></translation> @@ -7769,6 +7783,7 @@ <translation id="7876027585589532670">無法編輯捷徑</translation> <translation id="7877451762676714207">不明的伺服器錯誤。請再試一次,或與伺服器管理員聯絡。</translation> <translation id="7878945852730162014">管理下載中的檔案,並在下載完成後開啟</translation> +<translation id="7879172417209159252">無法使用擴充功能</translation> <translation id="7879478708475862060">按照輸入模式</translation> <translation id="7879631849810108578">已設定快速鍵:<ph name="IDS_SHORT_SET_COMMAND" /></translation> <translation id="7880823633812189969">系統會在你重新啟動時刪除本機資料</translation> @@ -9324,6 +9339,7 @@ <translation id="939401694733344652">目前這些帳戶並未用於 Android 應用程式。如果你選擇將某個帳戶用於此 Android 應用程式,該帳戶也將能用於其他 Android 應用程式。如要變更 Android 應用程式存取權,請依序前往<ph name="LINK_BEGIN" />「設定」>「帳戶」<ph name="LINK_END" />。</translation> <translation id="939598580284253335">請輸入通關密語</translation> <translation id="939736085109172342">新增資料夾</translation> +<translation id="940212040923880623">尋找並編輯(&F)</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> 正在共用 Chrome 分頁和音訊。</translation> <translation id="944799160843436808">設定 Steam Chromebook 版時發生問題</translation> <translation id="945522503751344254">提供意見</translation>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 0e464d49..7efc0db0 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -33,6 +33,7 @@ #include "chrome/browser/browser_features.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/companion/core/features.h" +#include "chrome/browser/dips/dips_features.h" #include "chrome/browser/fast_checkout/fast_checkout_features.h" #include "chrome/browser/feature_guide/notifications/feature_notification_guide_service.h" #include "chrome/browser/flag_descriptions.h" @@ -3250,33 +3251,6 @@ }; #endif // BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_ANDROID) -const FeatureEntry::FeatureParam kTabSelectionEditorV2_share_enabled[] = { - {"enable_share", "true"}}; -const FeatureEntry::FeatureParam kTabSelectionEditorV2_bookmarks_enabled[] = { - {"enable_bookmarks", "true"}}; -const FeatureEntry::FeatureParam kTabSelectionEditorV2_longpress_enabled[] = { - {"enable_longpress_entrypoint", "true"}}; -const FeatureEntry::FeatureParam - kTabSelectionEditorV2_share_bookmarks_and_longpress_enabled[] = { - {"enable_share", "true"}, - {"enable_bookmarks", "true"}, - {"enable_longpress_entrypoint", "true"}, -}; -const FeatureEntry::FeatureVariation kTabSelectionEditorV2Variations[] = { - {"- with share", kTabSelectionEditorV2_share_enabled, - std::size(kTabSelectionEditorV2_share_enabled), nullptr}, - {"- with bookmarks", kTabSelectionEditorV2_bookmarks_enabled, - std::size(kTabSelectionEditorV2_bookmarks_enabled), nullptr}, - {"- with longpress", kTabSelectionEditorV2_longpress_enabled, - std::size(kTabSelectionEditorV2_longpress_enabled), nullptr}, - {"- with share, bookmarks and longpress", - kTabSelectionEditorV2_share_bookmarks_and_longpress_enabled, - std::size(kTabSelectionEditorV2_share_bookmarks_and_longpress_enabled), - nullptr}, -}; -#endif // BUILDFLAG(IS_ANDROID) - const FeatureEntry::FeatureParam kPasswordNotesAuthValidity1m[] = { {"authentication_validity_duration", "1m"}}; const FeatureEntry::FeatureParam kPasswordNotesAuthValidity5m[] = { @@ -3429,6 +3403,15 @@ }; #endif // BUILDFLAG(ENABLE_EXTENSIONS) +const FeatureEntry::FeatureParam kDIPSWithDeletion[] = { + {"persist_database", "true"}, + {"delete", "true"}, + {"triggering_action", "stateful_bounce"}}; + +const FeatureEntry::FeatureVariation kDIPSVariations[] = { + {"With Deletion", kDIPSWithDeletion, std::size(kDIPSWithDeletion), + nullptr}}; + #if BUILDFLAG(IS_CHROMEOS_ASH) const FeatureEntry::FeatureParam kVcSegmentationModelHighResolution[] = { {"segmentation_model", "high_resolution"}, @@ -4034,6 +4017,9 @@ {"passpoint-arc-support", flag_descriptions::kPasspointARCSupportName, flag_descriptions::kPasspointARCSupportDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kPasspointARCSupport)}, + {"passpoint-settings", flag_descriptions::kPasspointSettingsName, + flag_descriptions::kPasspointSettingsDescription, kOsCrOS, + FEATURE_VALUE_TYPE(ash::features::kPasspointSettings)}, {"policy-provided-trust-anchors-allowed-at-lock-screen", flag_descriptions::kPolicyProvidedTrustAnchorsAllowedAtLockScreenName, flag_descriptions:: @@ -8587,6 +8573,10 @@ flag_descriptions::kThirdPartyStoragePartitioningDescription, kOsAll, FEATURE_VALUE_TYPE(net::features::kThirdPartyStoragePartitioning)}, + {"bounce-tracking-mitigations", flag_descriptions::kDIPSName, + flag_descriptions::kDIPSDescription, kOsAll, + FEATURE_WITH_PARAMS_VALUE_TYPE(dips::kFeature, kDIPSVariations, "DIPS")}, + #if BUILDFLAG(IS_CHROMEOS_ASH) {kBorealisBigGlInternalName, flag_descriptions::kBorealisBigGlName, flag_descriptions::kBorealisBigGlDescription, kOsCrOS, @@ -9489,12 +9479,6 @@ FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableCardArtImage)}, #if BUILDFLAG(IS_ANDROID) - {"tab-selection-editor-v2", flag_descriptions::kTabSelectionEditorV2Name, - flag_descriptions::kTabSelectionEditorV2Description, kOsAndroid, - FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabSelectionEditorV2, - kTabSelectionEditorV2Variations, - "TabSelectionEditorV2")}, - {"context-menu-popup-for-all-screen-sizes", flag_descriptions::kContextMenuPopupForAllScreenSizesName, flag_descriptions::kContextMenuPopupForAllScreenSizesDescription,
diff --git a/chrome/browser/ash/crosapi/browser_manager.cc b/chrome/browser/ash/crosapi/browser_manager.cc index 8ebca46..01f2fc9 100644 --- a/chrome/browser/ash/crosapi/browser_manager.cc +++ b/chrome/browser/ash/crosapi/browser_manager.cc
@@ -95,6 +95,7 @@ #include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "components/version_info/version_info.h" +#include "content/public/common/content_switches.h" #include "media/capture/capture_switches.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/platform/platform_channel.h" @@ -1094,13 +1095,19 @@ // DetermineLoggingDestination in logging_chrome.cc. argv.push_back("--enable-logging=stderr"); + auto* command_line = base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kLoggingLevel)) { + argv.push_back(base::StringPrintf( + "--%s=%s", switches::kLoggingLevel, + command_line->GetSwitchValueASCII(switches::kLoggingLevel).c_str())); + } + // TODO(crbug.com/1423163): Remove after root causing the issue. argv.push_back( "--vmodule=command_storage_backend=1,session_service_commands=1"); if (launch_at_login_screen_ && - !base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableLoggingRedirect)) { + !command_line->HasSwitch(switches::kDisableLoggingRedirect)) { // Redirect logs to cryptohome after login on non-test images. argv.push_back(base::StringPrintf( "--%s=%s", chromeos::switches::kCrosPostLoginLogFile,
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl_unittest.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl_unittest.cc index e0bf295d..d9312307 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl_unittest.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl_unittest.cc
@@ -15,6 +15,8 @@ #include "ash/public/cpp/wallpaper/wallpaper_info.h" #include "ash/wallpaper/wallpaper_pref_manager.h" #include "ash/webui/personalization_app/mojom/personalization_app.mojom-forward.h" +#include "ash/webui/personalization_app/mojom/personalization_app.mojom-shared.h" +#include "ash/webui/personalization_app/mojom/personalization_app.mojom-test-utils.h" #include "ash/webui/personalization_app/mojom/personalization_app.mojom.h" #include "base/functional/callback_helpers.h" #include "base/memory/ref_counted_memory.h" @@ -48,6 +50,7 @@ #include "content/public/test/test_web_ui.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" +#include "mojo/public/cpp/test_support/test_utils.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -173,6 +176,10 @@ wallpaper_provider_->BindInterface( wallpaper_provider_remote_.BindNewPipeAndPassReceiver()); + + wallpaper_provider_async_waiter_ = + std::make_unique<mojom::WallpaperProviderAsyncWaiter>( + wallpaper_provider_remote_.get()); } PersonalizationAppWallpaperProviderImpl::ImageInfo GetDefaultImageInfo() { @@ -202,6 +209,10 @@ return &wallpaper_provider_remote_; } + mojom::WallpaperProviderAsyncWaiter* wallpaper_provider_async_waiter() { + return wallpaper_provider_async_waiter_.get(); + } + PersonalizationAppWallpaperProviderImpl* delegate() { return wallpaper_provider_.get(); } @@ -252,6 +263,8 @@ wallpaper_provider_remote_; TestWallpaperObserver test_wallpaper_observer_; std::unique_ptr<PersonalizationAppWallpaperProviderImpl> wallpaper_provider_; + std::unique_ptr<mojom::WallpaperProviderAsyncWaiter> + wallpaper_provider_async_waiter_; }; TEST_F(PersonalizationAppWallpaperProviderImplTest, SelectWallpaper) { @@ -264,10 +277,10 @@ AddWallpaperImage(image_info); - wallpaper_provider_remote()->get()->SelectWallpaper( - image_info.asset_id, /*preview_mode=*/false, - base::BindLambdaForTesting([](bool success) { EXPECT_TRUE(success); })); - wallpaper_provider_remote()->FlushForTesting(); + bool success = false; + wallpaper_provider_async_waiter()->SelectWallpaper( + image_info.asset_id, /*preview_mode=*/false, &success); + EXPECT_TRUE(success); EXPECT_EQ(1, test_wallpaper_controller()->set_online_wallpaper_count()); EXPECT_TRUE( @@ -290,15 +303,14 @@ AddWallpaperImage(image_info); - EXPECT_TRUE(wallpaper_provider_remote()->is_connected()); + mojo::test::BadMessageObserver bad_message_observer; wallpaper_provider_remote()->get()->SelectWallpaper( image_info.asset_id, /*preview_mode=*/false, base::BindLambdaForTesting([](bool success) { NOTREACHED(); })); - wallpaper_provider_remote()->FlushForTesting(); - // Disconnected upon receiving `ReportBadMessage`. - EXPECT_FALSE(wallpaper_provider_remote()->is_connected()); + EXPECT_EQ("Invalid request to set wallpaper", + bad_message_observer.WaitForBadMessage()); } TEST_F(PersonalizationAppWallpaperProviderImplTest, PreviewWallpaper) { @@ -311,10 +323,10 @@ AddWallpaperImage(image_info); - wallpaper_provider_remote()->get()->SelectWallpaper( - image_info.asset_id, /*preview_mode=*/true, - base::BindLambdaForTesting([](bool success) { EXPECT_TRUE(success); })); - wallpaper_provider_remote()->FlushForTesting(); + bool success = false; + wallpaper_provider_async_waiter()->SelectWallpaper( + image_info.asset_id, /*preview_mode=*/true, &success); + EXPECT_TRUE(success); EXPECT_EQ(1, test_wallpaper_controller()->set_online_wallpaper_count()); EXPECT_TRUE( @@ -419,30 +431,16 @@ EXPECT_TRUE(expected_jpeg_bytes->Equals(jpeg_bytes)); } -TEST_F(PersonalizationAppWallpaperProviderImplTest, - SetDailyRefreshCollectionId) { - const std::string collection_id = "collection_id"; - - // Test setting a daily refresh collection id. - wallpaper_provider_remote()->get()->SetDailyRefreshCollectionId( - collection_id, base::BindLambdaForTesting( - [](mojom::SetDailyRefreshResponsePtr response) { - EXPECT_TRUE(response->success); - EXPECT_TRUE(response->force_refresh); - })); - wallpaper_provider_remote()->FlushForTesting(); -} - TEST_F(PersonalizationAppWallpaperProviderImplTest, SetDailyRefreshBanned) { const std::string collection_id = "collection_id"; test_wallpaper_controller()->set_can_set_user_wallpaper(false); - EXPECT_TRUE(wallpaper_provider_remote()->is_connected()); + mojo::test::BadMessageObserver bad_message_observer; wallpaper_provider_remote()->get()->SetDailyRefreshCollectionId( collection_id, base::BindLambdaForTesting( [](mojom::SetDailyRefreshResponsePtr response) { NOTREACHED(); })); - wallpaper_provider_remote()->FlushForTesting(); - EXPECT_FALSE(wallpaper_provider_remote()->is_connected()); + EXPECT_EQ("Invalid request to set wallpaper", + bad_message_observer.WaitForBadMessage()); } class PersonalizationAppWallpaperProviderImplGooglePhotosTest @@ -464,12 +462,10 @@ .Times(num_fetches); for (size_t i = 0; i < num_fetches; ++i) { - wallpaper_provider_remote()->get()->FetchGooglePhotosEnabled( - base::BindLambdaForTesting([](GooglePhotosEnablementState state) { - EXPECT_EQ(state, GooglePhotosEnablementState::kEnabled); - })); + auto state = GooglePhotosEnablementState::kError; + wallpaper_provider_async_waiter()->FetchGooglePhotosEnabled(&state); + EXPECT_EQ(GooglePhotosEnablementState::kEnabled, state); } - wallpaper_provider_remote()->FlushForTesting(); } void AddToAlbumIdMap(const std::string& album_id, @@ -513,20 +509,18 @@ // integration is enabled. FetchGooglePhotosEnabled(); for (size_t i = 0; i < kNumFetches; ++i) { - wallpaper_provider_remote()->get()->FetchGooglePhotosAlbums( - kResumeToken, base::BindLambdaForTesting( - [](ash::personalization_app::mojom:: - FetchGooglePhotosAlbumsResponsePtr response) { - EXPECT_TRUE(response->albums.has_value()); - })); - wallpaper_provider_remote()->get()->FetchGooglePhotosSharedAlbums( - kResumeToken, base::BindLambdaForTesting( - [](ash::personalization_app::mojom:: - FetchGooglePhotosAlbumsResponsePtr response) { - EXPECT_TRUE(response->albums.has_value()); - })); + ash::personalization_app::mojom::FetchGooglePhotosAlbumsResponsePtr + albums_response; + wallpaper_provider_async_waiter()->FetchGooglePhotosAlbums( + kResumeToken, &albums_response); + EXPECT_TRUE(albums_response->albums.has_value()); + + ash::personalization_app::mojom::FetchGooglePhotosAlbumsResponsePtr + shared_albums_response; + wallpaper_provider_async_waiter()->FetchGooglePhotosSharedAlbums( + kResumeToken, &shared_albums_response); + EXPECT_TRUE(shared_albums_response->albums.has_value()); } - wallpaper_provider_remote()->FlushForTesting(); } TEST_F(PersonalizationAppWallpaperProviderImplGooglePhotosTest, @@ -540,14 +534,18 @@ EXPECT_CALL(*google_photos_albums_fetcher, AddRequestAndStartIfNecessary) .Times(0); + mojo::test::BadMessageObserver bad_message_observer; // Test fetching Google Photos albums before fetching the enterprise enabled // setting. No requests should be made. wallpaper_provider_remote()->get()->FetchGooglePhotosAlbums( - kResumeToken, - base::BindLambdaForTesting( - [](ash::personalization_app::mojom::FetchGooglePhotosAlbumsResponsePtr - response) { EXPECT_FALSE(response->albums.has_value()); })); - wallpaper_provider_remote()->FlushForTesting(); + kResumeToken, base::BindLambdaForTesting( + [](mojom::FetchGooglePhotosAlbumsResponsePtr response) { + NOTREACHED(); + })); + EXPECT_EQ( + "Cannot call `FetchGooglePhotosAlbums()` without confirming that the " + "Google Photos enterprise setting is enabled.", + bad_message_observer.WaitForBadMessage()); } TEST_F(PersonalizationAppWallpaperProviderImplGooglePhotosTest, FetchEnabled) { @@ -577,15 +575,12 @@ // integration is enabled. FetchGooglePhotosEnabled(); for (size_t i = 0; i < kNumFetches; ++i) { - wallpaper_provider_remote()->get()->FetchGooglePhotosPhotos( - item_id, album_id, kResumeToken, - base::BindLambdaForTesting( - [](ash::personalization_app::mojom:: - FetchGooglePhotosPhotosResponsePtr response) { - EXPECT_TRUE(response->photos.has_value()); - })); + ash::personalization_app::mojom::FetchGooglePhotosPhotosResponsePtr + response; + wallpaper_provider_async_waiter()->FetchGooglePhotosPhotos( + item_id, album_id, kResumeToken, &response); + EXPECT_TRUE(response->photos.has_value()); } - wallpaper_provider_remote()->FlushForTesting(); } TEST_F(PersonalizationAppWallpaperProviderImplGooglePhotosTest, @@ -599,14 +594,20 @@ EXPECT_CALL(*google_photos_photos_fetcher, AddRequestAndStartIfNecessary) .Times(0); + + mojo::test::BadMessageObserver bad_message_observer; // Test fetching Google Photos photos before fetching the enterprise setting. // No requests should be made. wallpaper_provider_remote()->get()->FetchGooglePhotosPhotos( item_id, album_id, kResumeToken, base::BindLambdaForTesting( - [](ash::personalization_app::mojom::FetchGooglePhotosPhotosResponsePtr - response) { EXPECT_FALSE(response->photos.has_value()); })); - wallpaper_provider_remote()->FlushForTesting(); + [](mojom::FetchGooglePhotosPhotosResponsePtr response) { + NOTREACHED(); + })); + EXPECT_EQ( + "Cannot call `FetchGooglePhotosPhotos()` without confirming that the " + "Google Photos enterprise setting is enabled.", + bad_message_observer.WaitForBadMessage()); } TEST_F(PersonalizationAppWallpaperProviderImplGooglePhotosTest, @@ -616,11 +617,11 @@ // Test selecting a wallpaper after fetching the enterprise setting. FetchGooglePhotosEnabled(); - wallpaper_provider_remote()->get()->SelectGooglePhotosPhoto( + bool success = false; + wallpaper_provider_async_waiter()->SelectGooglePhotosPhoto( photo_id, ash::WallpaperLayout::WALLPAPER_LAYOUT_CENTER_CROPPED, - /*preview_mode=*/false, - base::BindLambdaForTesting([](bool success) { EXPECT_TRUE(success); })); - wallpaper_provider_remote()->FlushForTesting(); + /*preview_mode=*/false, &success); + EXPECT_TRUE(success); EXPECT_EQ(1, test_wallpaper_controller()->set_google_photos_wallpaper_count()); @@ -638,12 +639,17 @@ TEST_F(PersonalizationAppWallpaperProviderImplGooglePhotosTest, SelectGooglePhotosPhotoBeforeEnabled) { ASSERT_FALSE(test_wallpaper_controller()->wallpaper_info().has_value()); + + mojo::test::BadMessageObserver bad_message_observer; // Test selecting a wallpaper before fetching the enterprise setting. wallpaper_provider_remote()->get()->SelectGooglePhotosPhoto( "OmnisVirLupus", ash::WallpaperLayout::WALLPAPER_LAYOUT_CENTER_CROPPED, /*preview_mode=*/false, - base::BindLambdaForTesting([](bool success) { EXPECT_FALSE(success); })); - wallpaper_provider_remote()->FlushForTesting(); + base::BindLambdaForTesting([](bool success) { NOTREACHED(); })); + EXPECT_EQ( + "Cannot call `SelectGooglePhotosPhoto()` without confirming that the " + "Google Photos enterprise setting is enabled.", + bad_message_observer.WaitForBadMessage()); EXPECT_EQ(0, test_wallpaper_controller()->set_google_photos_wallpaper_count()); @@ -653,26 +659,28 @@ TEST_F(PersonalizationAppWallpaperProviderImplGooglePhotosTest, SelectGooglePhotosPhotoBanned) { test_wallpaper_controller()->set_can_set_user_wallpaper(false); - EXPECT_TRUE(wallpaper_provider_remote()->is_connected()); + mojo::test::BadMessageObserver bad_message_observer; wallpaper_provider_remote()->get()->SelectGooglePhotosPhoto( "OmnisVirLupus", ash::WallpaperLayout::WALLPAPER_LAYOUT_CENTER_CROPPED, /*preview_mode=*/false, base::BindLambdaForTesting([](bool success) { NOTREACHED(); })); - wallpaper_provider_remote()->FlushForTesting(); - EXPECT_FALSE(wallpaper_provider_remote()->is_connected()); + EXPECT_EQ( + "Cannot call `SelectGooglePhotosPhoto()` without confirming that the " + "Google Photos enterprise setting is enabled.", + bad_message_observer.WaitForBadMessage()); } TEST_F(PersonalizationAppWallpaperProviderImplGooglePhotosTest, SelectGooglePhotosAlbumBanned) { test_wallpaper_controller()->set_can_set_user_wallpaper(false); - EXPECT_TRUE(wallpaper_provider_remote()->is_connected()); FetchGooglePhotosEnabled(); + mojo::test::BadMessageObserver bad_message_observer; wallpaper_provider_remote()->get()->SelectGooglePhotosAlbum( "OmnisVirLupus", base::BindLambdaForTesting( [](mojom::SetDailyRefreshResponsePtr response) { NOTREACHED(); })); - wallpaper_provider_remote()->FlushForTesting(); - EXPECT_FALSE(wallpaper_provider_remote()->is_connected()); + EXPECT_EQ("Invalid request to set wallpaper", + bad_message_observer.WaitForBadMessage()); } TEST_F(PersonalizationAppWallpaperProviderImplGooglePhotosTest, @@ -684,24 +692,21 @@ // Test selecting an album after fetching the enterprise setting. FetchGooglePhotosEnabled(); - wallpaper_provider_remote()->get()->SelectGooglePhotosPhoto( + bool success = false; + wallpaper_provider_async_waiter()->SelectGooglePhotosPhoto( photo_id, ash::WallpaperLayout::WALLPAPER_LAYOUT_CENTER_CROPPED, - /*preview_mode=*/false, - base::BindLambdaForTesting([](bool success) { EXPECT_TRUE(success); })); - wallpaper_provider_remote()->FlushForTesting(); + /*preview_mode=*/false, &success); + EXPECT_TRUE(success); AddToAlbumIdMap(album_id, photo_id); test_wallpaper_controller()->add_dedup_key_to_wallpaper_info(photo_id); - base::RunLoop loop; - wallpaper_provider_remote()->get()->SelectGooglePhotosAlbum( - album_id, base::BindLambdaForTesting( - [&loop](mojom::SetDailyRefreshResponsePtr response) { - EXPECT_TRUE(response->success); - EXPECT_FALSE(response->force_refresh); - loop.Quit(); - })); - loop.Run(); + mojom::SetDailyRefreshResponsePtr response; + wallpaper_provider_async_waiter()->SelectGooglePhotosAlbum(album_id, + &response); + + EXPECT_TRUE(response->success); + EXPECT_FALSE(response->force_refresh); } } // namespace ash::personalization_app
diff --git a/chrome/browser/dips/dips_features.cc b/chrome/browser/dips/dips_features.cc index 2cfc104..07b1d891 100644 --- a/chrome/browser/dips/dips_features.cc +++ b/chrome/browser/dips/dips_features.cc
@@ -40,15 +40,19 @@ const base::FeatureParam<base::TimeDelta> kInteractionTtl{ &kFeature, "interaction_ttl", base::Days(45)}; -// Sets the actions which will trigger DIPS clearing for a site. The default is -// to set to kBounce, but can be overridden by Finch experiment groups or by -// command-line flags. constexpr base::FeatureParam<DIPSTriggeringAction>::Option kTriggeringActionOptions[] = { {DIPSTriggeringAction::kNone, "none"}, {DIPSTriggeringAction::kStorage, "storage"}, {DIPSTriggeringAction::kBounce, "bounce"}, {DIPSTriggeringAction::kStatefulBounce, "stateful_bounce"}}; + +// Sets the actions which will trigger DIPS clearing for a site. The default is +// to set to kBounce, but can be overridden by Finch experiment groups, +// command-line flags, or chrome flags. +// +// Note: Maintain a matching nomenclature of the options with the feature flag +// entries at about_flags.cc. const base::FeatureParam<DIPSTriggeringAction> kTriggeringAction{ &kFeature, "triggering_action", DIPSTriggeringAction::kNone, &kTriggeringActionOptions};
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 5c167f9..956b1e5 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -875,6 +875,14 @@ "expiry_milestone": 122 }, { + "name": "bounce-tracking-mitigations", + "owners": [ + "wanderview@chromium.org", + "njeunje@chromium.org", + "//chrome/browser/dips/OWNERS"], + "expiry_milestone": 119 + }, + { "name": "bring-your-own-tabs-ios", "owners": [ "ginnyhuang@chromium.org", "hiramahmood@google.com", "bling-get-set-up@google.com" ], "expiry_milestone": 120 @@ -5938,6 +5946,11 @@ "expiry_milestone": 121 }, { + "name": "passpoint-settings", + "owners": [ "cros-networking@google.com" ], + "expiry_milestone": 121 + }, + { "name": "passthrough-yuv-rgb-conversion", "owners": [ "hitawala", "vasilyt" ], "expiry_milestone": 120 @@ -7090,11 +7103,6 @@ "expiry_milestone": 110 }, { - "name": "tab-selection-editor-v2", - "owners": [ "ckitagawa", "fredmello" ], - "expiry_milestone": 114 - }, - { "name": "tangible-sync", "owners": [ "aliceywang", "chrome-signin-team" ], "expiry_milestone":120
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 42a10cb..0d38b741 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -180,6 +180,13 @@ "is able to work around the history intervention which is not the expected " "behavior"; +const char kDIPSName[] = "Bounce Tracking Mitigations"; +const char kDIPSDescription[] = + "This flag controls bounce tracking mitigations. Setting the flag to " + "\"Enabled With Deletion\" will cause the browser to delete state for " + "sites that appear to be performing cross-site tracking using the bounce " + "tracking technique."; + const char kDocumentPictureInPictureApiName[] = "Document Picture-in-Picture API"; const char kDocumentPictureInPictureApiDescription[] = @@ -5404,6 +5411,11 @@ "Feature to allow Android apps (running on ARC) to provision WiFi networks " "through Passpoint."; +const char kPasspointSettingsName[] = "Enable Passpoint settings"; +const char kPasspointSettingsDescription[] = + "Enables displaying Passpoint subscription information in network " + "settings."; + const char kEnableEdidBasedDisplayIdsName[] = "Enable EDID-based display IDs"; const char kEnableEdidBasedDisplayIdsDescription[] = "When enabled, a display's ID will be produced by hashing certain values "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index a46d951..453760d8 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -119,6 +119,9 @@ extern const char kDebugHistoryInterventionNoUserActivationName[]; extern const char kDebugHistoryInterventionNoUserActivationDescription[]; +extern const char kDIPSName[]; +extern const char kDIPSDescription[]; + extern const char kDocumentPictureInPictureApiName[]; extern const char kDocumentPictureInPictureApiDescription[]; @@ -143,6 +146,9 @@ extern const char kPasspointARCSupportName[]; extern const char kPasspointARCSupportDescription[]; +extern const char kPasspointSettingsName[]; +extern const char kPasspointSettingsDescription[]; + extern const char kPasswordNotesWithBackupName[]; extern const char kPasswordNotesWithBackupDescription[];
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc index 94b67411..4f377b27 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -306,7 +306,6 @@ &kDiscoverFeedMultiColumn, &kTabStripRedesign, &kTabGridLayoutAndroid, - &kTabSelectionEditorV2, &kTabStateV1Optimizations, &kTabToGTSAnimation, &kTestDefaultDisabled, @@ -1004,10 +1003,6 @@ "TabGridLayoutAndroid", base::FEATURE_ENABLED_BY_DEFAULT); -BASE_FEATURE(kTabSelectionEditorV2, - "TabSelectionEditorV2", - base::FEATURE_ENABLED_BY_DEFAULT); - BASE_FEATURE(kTabStateV1Optimizations, "TabStateV1Optimizations", 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 c39dfe5c..fda9db1 100644 --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -168,7 +168,6 @@ BASE_DECLARE_FEATURE(kTabGroupsUiImprovementsAndroid); BASE_DECLARE_FEATURE(kTabGroupsForTablets); BASE_DECLARE_FEATURE(kTabGridLayoutAndroid); -BASE_DECLARE_FEATURE(kTabSelectionEditorV2); BASE_DECLARE_FEATURE(kTabStateV1Optimizations); BASE_DECLARE_FEATURE(kDiscoverFeedMultiColumn); BASE_DECLARE_FEATURE(kTabStripRedesign);
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 4958621..4a1eb58 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
@@ -494,7 +494,6 @@ public static final String TAB_GROUPS_ANDROID = "TabGroupsAndroid"; public static final String TAB_GROUPS_CONTINUATION_ANDROID = "TabGroupsContinuationAndroid"; public static final String TAB_GROUPS_FOR_TABLETS = "TabGroupsForTablets"; - public static final String TAB_SELECTION_EDITOR_V2 = "TabSelectionEditorV2"; public static final String TAB_STATE_V1_OPTIMIZATIONS = "TabStateV1Optimizations"; public static final String TAB_STRIP_REDESIGN = "TabStripRedesign"; public static final String TAB_TO_GTS_ANIMATION = "TabToGTSAnimation"; @@ -649,8 +648,6 @@ new CachedFlag(TAB_GROUPS_CONTINUATION_ANDROID, false); public static final CachedFlag sTabGroupsForTablets = new CachedFlag(TAB_GROUPS_FOR_TABLETS, true); - public static final CachedFlag sTabSelectionEditorV2 = - new CachedFlag(TAB_SELECTION_EDITOR_V2, false); public static final CachedFlag sTabStripRedesign = new CachedFlag(TAB_STRIP_REDESIGN, false); public static final CachedFlag sTabToGTSAnimation = new CachedFlag(TAB_TO_GTS_ANIMATION, true); public static final CachedFlag sTestDefaultDisabled =
diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc b/chrome/browser/offline_pages/android/request_coordinator_factory.cc index 07b8c5e2..3e24187e 100644 --- a/chrome/browser/offline_pages/android/request_coordinator_factory.cc +++ b/chrome/browser/offline_pages/android/request_coordinator_factory.cc
@@ -34,6 +34,8 @@ namespace offline_pages { +namespace { + class ActiveTabInfo : public RequestCoordinator::ActiveTabInfo { public: explicit ActiveTabInfo(Profile* profile) : profile_(profile) {} @@ -60,6 +62,8 @@ raw_ptr<Profile> profile_; }; +} // namespace + RequestCoordinatorFactory::RequestCoordinatorFactory() : ProfileKeyedServiceFactory( "OfflineRequestCoordinator",
diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_preload_unified_browsertest.cc b/chrome/browser/preloading/prefetch/search_prefetch/search_preload_unified_browsertest.cc index d090ebe..0706ff2 100644 --- a/chrome/browser/preloading/prefetch/search_prefetch/search_preload_unified_browsertest.cc +++ b/chrome/browser/preloading/prefetch/search_prefetch/search_preload_unified_browsertest.cc
@@ -103,7 +103,10 @@ scoped_feature_list_.InitWithFeaturesAndParameters( { {features::kSupportSearchSuggestionForPrerender2, - {{"implementation_type", "use_prefetch"}}}, + { + {"implementation_type", "use_prefetch"}, + {"shareable_cache", "disabled"}, + }}, {kSearchPrefetchServicePrefetching, {{"max_attempts_per_caching_duration", "3"}, {"cache_size", "1"}, @@ -1532,7 +1535,8 @@ scoped_feature_list_.InitWithFeaturesAndParameters( { {features::kSupportSearchSuggestionForPrerender2, - {{"implementation_type", "use_prefetch"}}}, + {{"implementation_type", "use_prefetch"}, + {"shareable_cache", "disabled"}}}, {kSearchPrefetchSkipsCancel, {}}, {kSearchPrefetchServicePrefetching, {{"max_attempts_per_caching_duration", "3"},
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd index 37f998ac..23463f18 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3702,9 +3702,6 @@ <message name="IDS_MENU_CLOSE_ALL_INCOGNITO_TABS" desc="Menu item for closing all open Incognito tabs. [CHAR_LIMIT=27]"> Close Incognito tabs </message> - <message name="IDS_MENU_GROUP_TABS" desc="Menu item for grouping tabs. [CHAR_LIMIT=27]"> - Group tabs - </message> <message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]"> Select tabs </message>
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_MENU_GROUP_TABS.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_MENU_GROUP_TABS.png.sha1 deleted file mode 100644 index c0bc050..0000000 --- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_MENU_GROUP_TABS.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -b5e5e378a463ef3101e64f04a0709e1ea6763848 \ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_GRID_DIALOG_SELECTION_MODE_REMOVE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_GRID_DIALOG_SELECTION_MODE_REMOVE.png.sha1 deleted file mode 100644 index ebabd8d..0000000 --- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_GRID_DIALOG_SELECTION_MODE_REMOVE.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -35f614824a9d4977ae0e1c2b422cd0e4d41d9662 \ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_GRID_DIALOG_TOOLBAR_REMOVE_FROM_GROUP.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_GRID_DIALOG_TOOLBAR_REMOVE_FROM_GROUP.png.sha1 deleted file mode 100644 index d7da67b..0000000 --- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_GRID_DIALOG_TOOLBAR_REMOVE_FROM_GROUP.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -f25b9d18c4e9ca11f38b9c7c3372e6af57e62fa9 \ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_SELECTION_EDITOR_GROUP.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_SELECTION_EDITOR_GROUP.png.sha1 deleted file mode 100644 index bc57093..0000000 --- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TAB_SELECTION_EDITOR_GROUP.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -9c874ea2b179181e6ffb3e291e69d77646c4b702 \ No newline at end of file
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 28e7508..c40b5c9 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
@@ -543,6 +543,7 @@ <translation id="3999683152997576765">يمكنك الاطّلاع على المواضيع التي تهمّك وتستخدمها المواقع الإلكترونية لعرض الإعلانات لك، وبإمكانك كذلك إزالة ما تشاء من هذه المواضيع. ويعمل Chrome على تقديم تقديرات حول اهتماماتك بناءً على سجل التصفّح الأخير.</translation> <translation id="4000212216660919741">الصفحة الرئيسية بلا اتصال بالإنترنت</translation> <translation id="4016425174436051808">تتعذّر متابعة الخلاصة. حدث خطأ.</translation> +<translation id="4024768890073681126">يتولّى أحد والدَيك إدارة متصفِّحك.</translation> <translation id="4034817413553209278">{HOURS,plural, =1{ساعة واحدة (#)}zero{# ساعة}two{ساعتان (#)}few{# ساعات}many{# ساعةً}other{# ساعة}}</translation> <translation id="4035877632587724847">عدم السماح</translation> <translation id="4036177530563778041">يمكنك بسهولة المتابعة من حيث توقفت.</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 2b53922..ef17461 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">Saytların sizə reklam göstərmək üçün istifadə etdiyi maraqlı mövzuları görə və silə bilərsiniz. Chrome son baxış tarixçənizə əsasən maraqlarınızı təxmin edir.</translation> <translation id="4000212216660919741">Ev oflayndır</translation> <translation id="4016425174436051808">İzləmək olmur. Xəta baş verdi.</translation> +<translation id="4024768890073681126">Brauzeri valideyn idarə edir</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# saat}other{# saat}}</translation> <translation id="4035877632587724847">İcazə verməyin</translation> <translation id="4036177530563778041">Qaldığınız yerdən asanlıqla davam edin</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 7d11b1ad..d7c6f6d 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
@@ -162,6 +162,7 @@ <translation id="1910950723001426294">Списъкът с опции за споделяне е затворен.</translation> <translation id="1919130412786645364">Разрешаване на влизането в Chrome</translation> <translation id="1922362554271624559">Предложени езици</translation> +<translation id="1924255092154549435">Разделът е разгънат</translation> <translation id="1925021887439448749">Въведете персонализиран уеб адрес</translation> <translation id="1928696683969751773">Актуализации</translation> <translation id="19288952978244135">Отворете отново Chrome.</translation> @@ -542,6 +543,7 @@ <translation id="3999683152997576765">Можете да виждате и премахвате темите, към които имате интерес и които сайтовете използват, за да ви показват реклами. Chrome прогнозира интересите ви въз основа на скорошната ви история на сърфиране.</translation> <translation id="4000212216660919741">Начална страница в офлайн режим</translation> <translation id="4016425174436051808">Следенето не е възможно. Нещо се обърка.</translation> +<translation id="4024768890073681126">Браузърът се управлява от родител</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# ч}other{# ч}}</translation> <translation id="4035877632587724847">Забраняване</translation> <translation id="4036177530563778041">Лесно продължавайте оттам, откъдето сте прекъснали</translation> @@ -769,6 +771,7 @@ <translation id="5161254044473106830">Изисква се заглавие</translation> <translation id="5170568018924773124">Показване в папката</translation> <translation id="5171045022955879922">Търсете или въведете URL адрес</translation> +<translation id="5174700554036517242">Разделът е върнат към първоначалната височина</translation> <translation id="5184329579814168207">Отваряне в Chrome</translation> <translation id="5191251636205085390">Научете повече за новите технологии, които имат за цел да заменят „бисквитките“ на трети страни, и как да ги контролирате</translation> <translation id="5193988420012215838">Копирано в буферната памет</translation> @@ -1251,6 +1254,7 @@ <translation id="7686086654630106285">Повече за предлаганите от сайтовете реклами</translation> <translation id="768618399695552958">Някои от страниците, които посещавате, са заредени предварително. Страниците може да се зареждат предварително чрез сървърите ни, когато връзките, които водят към съответните страници, са на сайт в Google.</translation> <translation id="7691043218961417207">Разгледайте съдържание, което да следите</translation> +<translation id="7697383401610880082">Манипулатор за преместване с плъзгане</translation> <translation id="7698359219371678927">Създайте имейл в <ph name="APP_NAME" /></translation> <translation id="7707922173985738739">Използване на мобилни данни</translation> <translation id="7709094866268987903">Премахнатите от вас интереси ще се показват тук</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 8444f13..5542e3a 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">Můžete zobrazovat a odstraňovat zájmy, které weby používají k zobrazování reklam. Chromium zájmy odhaduje na základě vaší nedávné historie prohlížení.</translation> <translation id="4000212216660919741">Offline domovská stránka</translation> <translation id="4016425174436051808">Sledování nelze zapnout. Něco se pokazilo.</translation> +<translation id="4024768890073681126">Tvůj prohlížeč spravují rodiče</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# h}few{# h}many{# h}other{# h}}</translation> <translation id="4035877632587724847">Nepovolovat</translation> <translation id="4036177530563778041">Jednoduše pokračujte tam, kde jste přestali</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 0aa3f0b..33e0bd85 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">Du kan se og fjerne interesseområder, som websites bruger til at vise annoncer. Chrome estimerer dine interesser på baggrund af din seneste browserhistorik.</translation> <translation id="4000212216660919741">Hjemmet er offline</translation> <translation id="4016425174436051808">Indholdet kan ikke følges. Der opstod en fejl.</translation> +<translation id="4024768890073681126">Din browser administreres af din forælder</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# t.}one{# t.}other{# t.}}</translation> <translation id="4035877632587724847">Tillad ikke</translation> <translation id="4036177530563778041">Det er nemt at fortsætte, hvor du slap</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 b226e330..3fa7bbc 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">میتوانید موضوعات موردعلاقه را که سایتها برای ارائه آگهی به شما استفاده میکنند ببینید یا حذف کنید. Chrome علایق شما را براساس سابقه مرور اخیرتان تخمین میزند.</translation> <translation id="4000212216660919741">صفحه اصلیِ آفلاین</translation> <translation id="4016425174436051808">دنبال کردن ممکن نیست. مشکلی پیش آمد.</translation> +<translation id="4024768890073681126">ولیتان مرورگر را مدیریت میکند</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# ساعت}one{# ساعت}other{# ساعت}}</translation> <translation id="4035877632587724847">مجاز نیست</translation> <translation id="4036177530563778041">بهراحتی از جایی که ترک کردید ادامه دهید</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 5c156e0..67b8d2b5 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">તમે રુચિના એ વિષયોને જોઈ અને કાઢી નાખી શકો છો કે જેનો ઉપયોગ સાઇટ તમને જાહેરાતો બતાવવા માટે કરે છે. Chrome તમારા તાજેતરના બ્રાઉઝિંગ ઇતિહાસના આધારે તમારી રુચિઓનું અનુમાન લગાવે છે.</translation> <translation id="4000212216660919741">ઑફલાઇન હોમ</translation> <translation id="4016425174436051808">ફૉલો કરી શકતા નથી. કંઈક ખોટું થયું.</translation> +<translation id="4024768890073681126">તમારા માતાપિતા દ્વારા તમારું બ્રાઉઝર મેનેજ કરવામાં આવે છે</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# કલાક}one{# કલાક}other{# કલાક}}</translation> <translation id="4035877632587724847">મંજૂરી આપશો નહીં</translation> <translation id="4036177530563778041">તમે જ્યાંથી છોડ્યું હોય, ત્યાંથી સરળતાથી શરુ કરી શકો છો</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 c5b4a66c..b305064b 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">Anda dapat melihat dan menghapus topik terkait minat yang digunakan situs untuk menampilkan iklan kepada Anda. Chrome memperkirakan minat Anda berdasarkan histori penjelajahan terbaru Anda.</translation> <translation id="4000212216660919741">Beranda Offline</translation> <translation id="4016425174436051808">Tidak dapat mengikuti. Terjadi error.</translation> +<translation id="4024768890073681126">Browser dikelola oleh orang tuamu</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# jam}other{# jam}}</translation> <translation id="4035877632587724847">Jangan izinkan</translation> <translation id="4036177530563778041">Lanjutkan dengan mudah dari halaman terakhir yang dibuka</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 ff37a00..0c696676 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
@@ -162,6 +162,7 @@ <translation id="1910950723001426294">רשימת אפשרויות השיתוף סגורה.</translation> <translation id="1919130412786645364">התרת כניסה אל Chrome</translation> <translation id="1922362554271624559">שפות מוצעות</translation> +<translation id="1924255092154549435">הכרטיסייה מורחבת</translation> <translation id="1925021887439448749">יש להזין כתובת אינטרנט מותאמת אישית</translation> <translation id="1928696683969751773">עדכונים</translation> <translation id="19288952978244135">יש לפתוח מחדש את Chrome.</translation> @@ -542,6 +543,7 @@ <translation id="3999683152997576765">יש לך אפשרות לראות ולהסיר את תחומי העניין שלפיהם האתרים מציגים לך את המודעות. ההערכה של תחומי העניין ב-Chrome מתבססת על היסטוריית הגלישה שלך מהזמן האחרון.</translation> <translation id="4000212216660919741">דף הבית במצב אופליין</translation> <translation id="4016425174436051808">לא ניתן לעקוב. משהו השתבש.</translation> +<translation id="4024768890073681126">הדפדפן מנוהל על ידי ההורה שלך</translation> <translation id="4034817413553209278">{HOURS,plural, =1{שעה אחת}one{# שעות}two{שעתיים}other{# שעות}}</translation> <translation id="4035877632587724847">אין אישור</translation> <translation id="4036177530563778041">קל להמשיך מהמקום שבו הפסקת</translation> @@ -769,6 +771,7 @@ <translation id="5161254044473106830">יש להזין כותרת</translation> <translation id="5170568018924773124">הצגה בתיקייה</translation> <translation id="5171045022955879922">טקסט או כתובת אתר לחיפוש</translation> +<translation id="5174700554036517242">הכרטיסייה חזרה לגובה ההתחלתי</translation> <translation id="5184329579814168207">פתיחה ב-Chrome</translation> <translation id="5191251636205085390">מידע על טכנולוגיות חדשות שמיועדות להחליף קובצי cookie של צד שלישי והוראות לשליטה בהן.</translation> <translation id="5193988420012215838">הועתק אל הלוח</translation> @@ -1251,6 +1254,7 @@ <translation id="7686086654630106285">מידע נוסף על הצעות למודעות באתרים</translation> <translation id="768618399695552958">חלק מהדפים שאליהם עוברים נטענים מראש. דפים יכולים להיטען מראש באמצעות שרתי Google כשיש אליהם קישורים מאתר שנוצר באמצעות Google Sites.</translation> <translation id="7691043218961417207">אפשרויות לתוכן למעקב</translation> +<translation id="7697383401610880082">נקודת אחיזה לגרירה</translation> <translation id="7698359219371678927">יצירת הודעת אימייל ב-<ph name="APP_NAME" /></translation> <translation id="7707922173985738739">שימוש בחבילת הגלישה</translation> <translation id="7709094866268987903">תחומי עניין שהסרת יופיעו כאן</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 5d0e35b..9de3669 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">サイトでの広告表示に使用される興味 / 関心のトピックを表示、削除できます。Chrome では最近の閲覧履歴に基づいてユーザーの興味 / 関心を推定します。</translation> <translation id="4000212216660919741">オフライン ホーム</translation> <translation id="4016425174436051808">フォローできません。エラーが発生しました。</translation> +<translation id="4024768890073681126">お使いのブラウザは保護者によって管理されています</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# 時間}other{# 時間}}</translation> <translation id="4035877632587724847">許可しない</translation> <translation id="4036177530563778041">中断したところから続きの作業を簡単に行うことができます</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 383d28a7..253d5fb6a 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
@@ -108,6 +108,7 @@ <translation id="1493287004536771723">თქვენ თვალს ადევნებთ <ph name="SITE_NAME" />-ს</translation> <translation id="1502010315804028179">თქვენი პაროლები რომ მართოთ, განაახლეთ Google Play services</translation> <translation id="1506061864768559482">საძიებო სისტემა</translation> +<translation id="1508960385613684700">კონფიდენციალურობის სახელმძღვანელო <ph name="BEGIN_NEW" />სიახლე<ph name="END_NEW" /></translation> <translation id="1513352483775369820">სანიშნეები და ვებ-ისტორია</translation> <translation id="1513814250881909472">შეასრულეთ სინქრონიზაცია, თქვენი სხვა მოწყობილობებიდან ჩანართები რომ მიიღოთ</translation> <translation id="1513858653616922153">პაროლის წაშლა</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 7af1aa3..14b6ea2 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">Сайттардың жарнама көрсетуге пайдаланған қызық тақырыптарын көре және өшіре аласыз. Chrome браузерді қолданудың соңғы тарихына сүйене отырып, сізге қызық болар деген тақырыптарды болжайды.</translation> <translation id="4000212216660919741">Негізгі экран офлайн режимде</translation> <translation id="4016425174436051808">Жазылу мүмкін емес. Бірдеңе дұрыс болмады.</translation> +<translation id="4024768890073681126">Браузеріңізді ата-анаңыз басқарады</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# сағ}other{# сағ}}</translation> <translation id="4035877632587724847">Рұқсат бермеу</translation> <translation id="4036177530563778041">Тоқтаған жерден оңай жалғастыру</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 7b302fae..7a154a9 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
@@ -74,7 +74,7 @@ <translation id="1332100670807501334">ತಮ್ಮ ಜಾಹೀರಾತುಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮಾಪನ ಮಾಡಲು ನೆರವಾಗುವಂತಹ ಮಾಹಿತಿಯನ್ನು Chrome ನಿಂದ ವಿನಂತಿಸಿಕೊಳ್ಳಲು ಜಾಹೀರಾತು ಮಾಪನವು ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಸೈಟ್ಗಳ ನಡುವೆ ಸಾಧ್ಯವಾದಷ್ಟು ಕಡಿಮೆ ಮಾಹಿತಿಯನ್ನು ವರ್ಗಾಯಿಸುವ ಮೂಲಕ ಕ್ರಾಸ್-ಸೈಟ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಅನ್ನು ಜಾಹೀರಾತು ಮಾಪನ ನಿರ್ಬಂಧಿಸುತ್ತದೆ. ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ನೀವು ಅಳಿಸಿದಾಗ — ಪೂರ್ತಿ ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಸೈಟ್ಗೆ ಸಂಬಂಧಿಸಿದ ಇತಿಹಾಸ — ನೀವು ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಮಾಪನದ ಮಾಹಿತಿಯನ್ನೂ ಅಳಿಸುತ್ತೀರಿ. <ph name="BEGIN_LINK" />ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು<ph name="END_LINK" /> ನೋಡಿ.</translation> -<translation id="1332501820983677155">Google Chrome ವೈಶಿಷ್ಟ್ಯ ಶಾರ್ಟ್ಕಟ್ಗಳು</translation> +<translation id="1332501820983677155">Google Chrome ಫೀಚರ್ ಶಾರ್ಟ್ಕಟ್ಗಳು</translation> <translation id="1344653310988386453">ಹೈಲೈಟ್ ಮಾಡಲು ಲಿಂಕ್ ಅನ್ನು ಸೇರಿಸಿ</translation> <translation id="1347468774581902829">ಚಟುವಟಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಿ</translation> <translation id="1360432990279830238">ಸೈನ್ ಔಟ್ ಮಾಡಿ, ಸಿಂಕ್ ಆಫ್ ಮಾಡುವುದೇ?</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 4101ca6..c7b6065 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">사이트에서 광고 표시를 위해 사용하는 관심분야의 주제를 내가 확인하고 삭제할 수 있습니다. Chrome에서는 사용자의 최근 방문 기록을 기반으로 관심분야를 추정합니다.</translation> <translation id="4000212216660919741">오프라인 홈</translation> <translation id="4016425174436051808">팔로우할 수 없습니다. 문제가 발생했습니다.</translation> +<translation id="4024768890073681126">내 브라우저는 부모님이 관리합니다.</translation> <translation id="4034817413553209278">{HOURS,plural, =1{#시간}other{#시간}}</translation> <translation id="4035877632587724847">허용 안함</translation> <translation id="4036177530563778041">중단한 위치에서 계속하기</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 291185a..c6dcab4 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
@@ -776,7 +776,7 @@ <translation id="5246093389635966745">Куралдар тилкесинин ыкчам баскычын түзөтүү</translation> <translation id="5271967389191913893">Жүктөлүп алына турган мазмунду түзмөк ача албайт.</translation> <translation id="5274286919938458946"><ph name="CARD_DETAIL" /> менен байланышкан</translation> -<translation id="5292796745632149097">Төмөнкүгө жөнөтүү</translation> +<translation id="5292796745632149097">Кимге</translation> <translation id="5300426565656326054">Жарнамаларды серепчинин негизинде жекелештирүү</translation> <translation id="5304593522240415983">Бул талаа бош болбошу керек</translation> <translation id="5308380583665731573">Туташуу</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 3e089a3c..3702fcf 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
@@ -108,6 +108,7 @@ <translation id="1493287004536771723">ທ່ານກຳລັງຕິດຕາມ <ph name="SITE_NAME" /> ຢູ່</translation> <translation id="1502010315804028179">ເພື່ອຈັດການລະຫັດຜ່ານຂອງທ່ານ, ໃຫ້ອັບເດດບໍລິການ Google Play</translation> <translation id="1506061864768559482">ເຄື່ອງຈັກຄົ້ນຫາ</translation> +<translation id="1508960385613684700">ຂໍ້ແນະນຳຄວາມເປັນສ່ວນຕົວ <ph name="BEGIN_NEW" />ໃໝ່<ph name="END_NEW" /></translation> <translation id="1513352483775369820">ບຸກມາກສ໌ ແລະປະຫວັດເວັບ</translation> <translation id="1513814250881909472">ຊິ້ງຂໍ້ມູນເພື່ອໃຊ້ແຖບຂອງທ່ານຈາກອຸປະກອນອື່ນຂອງທ່ານ</translation> <translation id="1513858653616922153">ລຶບລະຫັດຜ່ານ</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 299aabb..412b695 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">Anda boleh melihat dan mengalih keluar topik minat yang digunakan oleh laman untuk memaparkan iklan kepada anda. Chrome menganggarkan minat anda berdasarkan sejarah penyemakan imbas anda baru-baru ini.</translation> <translation id="4000212216660919741">Rumah Luar Talian</translation> <translation id="4016425174436051808">Tidak dapat mengikuti. Kesilapan telah berlaku.</translation> +<translation id="4024768890073681126">Penyemak imbas anda diurus oleh ibu/bapa anda</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# jam}other{# jam}}</translation> <translation id="4035877632587724847">Jangan benarkan</translation> <translation id="4036177530563778041">Teruskan dari tempat anda berhenti dengan mudah</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 2478249f..898a617 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">तपाईं वेबसाइटहरूले तपाईंलाई विज्ञापन देखाउन प्रयोग गर्ने रुचिका विषयहरू हेर्न तथा हटाउन सक्नुहुन्छ। Chrome ले तपाईंको हालसालैको ब्राउजिङ इतिहासका आधारमा तपाईंलाई रुचि लाग्न सक्ने विषयहरू पत्ता लगाउँछ।</translation> <translation id="4000212216660919741">अफलाइन गृहपृष्ठ</translation> <translation id="4016425174436051808">फलो गर्न सकिएन। केही चिज गडबड भयो।</translation> +<translation id="4024768890073681126">तपाईंका अभिभावक तपाईंको ब्राउजर व्यवस्थापन गर्नुहुन्छ</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# घन्टा}other{# घन्टा}}</translation> <translation id="4035877632587724847">अनुमति नदिनुहोस्</translation> <translation id="4036177530563778041">आफूले छाडेकै ठाउँबाट सजिलैसँग जारी राख्नुहोस्</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 67b71ed0..a01ef0f 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">ଆପଣଙ୍କୁ ବିଜ୍ଞାପନଗୁଡ଼ିକ ଦେଖାଇବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ ବ୍ୟବହାର କରୁଥିବା ରୁଚିପୂର୍ଣ୍ଣ ବିଷୟଗୁଡ଼ିକୁ ଆପଣ ଦେଖିପାରିବେ ଏବଂ କାଢ଼ି ଦେଇପାରିବେ। Chrome ଆପଣଙ୍କ ବର୍ତ୍ତମାନର ବ୍ରାଉଜିଂ ଇତିହାସ ଆଧାରରେ ଆପଣଙ୍କ ରୁଚିଗୁଡ଼ିକର ଆକଳନ କରିବ।</translation> <translation id="4000212216660919741">ଅଫ୍ଲାଇନ୍ ହୋମ୍</translation> <translation id="4016425174436051808">ଅନୁସରଣ କରାଯାଇପାରିବ ନାହିଁ। କିଛି ତ୍ରୁଟି ହୋଇଛି।</translation> +<translation id="4024768890073681126">ତୁମ ବ୍ରାଉଜର ତୁମର ବାପାମାଙ୍କ ଦ୍ୱାରା ପରିଚାଳିତ ହୁଏ</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# ଘଣ୍ଟା}other{# ଘଣ୍ଟା}}</translation> <translation id="4035877632587724847">ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ</translation> <translation id="4036177530563778041">ଆପଣ ଯେଉଁଠି ଛାଡ଼ିଥିଲେ ସେଠାରୁ ସହଜରେ ଜାରି ରଖନ୍ତୁ</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 1e2eb539..a2b3b25 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">ਤੁਸੀਂ ਦਿਲਚਸਪੀ ਵਾਲੇ ਉਨ੍ਹਾਂ ਵਿਸ਼ਿਆਂ ਨੂੰ ਦੇਖ ਅਤੇ ਹਟਾ ਸਕਦੇ ਹੋ ਜਿਨ੍ਹਾਂ ਨੂੰ ਸਾਈਟਾਂ ਵੱਲੋਂ ਤੁਹਾਨੂੰ ਵਿਗਿਆਪਨ ਦਿਖਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। Chrome ਤੁਹਾਡੇ ਹਾਲੀਆ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਦੇ ਆਧਾਰ 'ਤੇ ਤੁਹਾਡੀਆਂ ਦਿਲਚਸਪੀਆਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦਾ ਹੈ।</translation> <translation id="4000212216660919741">ਆਫ਼ਲਾਈਨ ਹੋਮ</translation> <translation id="4016425174436051808">ਅਨੁਸਰਣ ਕਰਨਾ ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ।</translation> +<translation id="4024768890073681126">ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਪ੍ਰਬੰਧਨ ਤੁਹਾਡੇ ਮਾਂ-ਪਿਓ ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# ਘੰਟਾ}one{# ਘੰਟਾ}other{# ਘੰਟੇ}}</translation> <translation id="4035877632587724847">ਆਗਿਆ ਨਾ ਦਿਓ</translation> <translation id="4036177530563778041">ਜਿੱਥੇ ਤੁਸੀਂ ਛੱਡਿਆ ਸੀ ਉੱਥੋਂ ਹੀ ਆਸਾਨੀ ਨਾਲ ਜਾਰੀ ਰੱਖੋ</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 8595a2e..f8a6432 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
@@ -108,6 +108,7 @@ <translation id="1493287004536771723">Urmărești <ph name="SITE_NAME" /></translation> <translation id="1502010315804028179">Pentru a gestiona parolele, actualizează serviciile Google Play</translation> <translation id="1506061864768559482">Motor de căutare</translation> +<translation id="1508960385613684700">Ghid privind confidențialitatea <ph name="BEGIN_NEW" />Nou<ph name="END_NEW" /></translation> <translation id="1513352483775369820">Marcaje și istoric web</translation> <translation id="1513814250881909472">Sincronizează pentru a accesa filele de pe celelalte dispozitive</translation> <translation id="1513858653616922153">Șterge parola</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 5da4f94..10d395c 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
@@ -108,6 +108,7 @@ <translation id="1493287004536771723">Pratite <ph name="SITE_NAME" /></translation> <translation id="1502010315804028179">Da biste upravljali lozinkama, ažurirajte Google Play usluge</translation> <translation id="1506061864768559482">Pretraživač</translation> +<translation id="1508960385613684700">Vodič za privatnost <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation> <translation id="1513352483775369820">Obeleživači i veb-istorija</translation> <translation id="1513814250881909472">Sinhronizujte podatke da bi vam bile dostupne kartice sa drugih uređaja</translation> <translation id="1513858653616922153">Izbriši lozinku</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 57232dc..223b861 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
@@ -108,6 +108,7 @@ <translation id="1493287004536771723">Пратите <ph name="SITE_NAME" /></translation> <translation id="1502010315804028179">Да бисте управљали лозинкама, ажурирајте Google Play услуге</translation> <translation id="1506061864768559482">Претраживач</translation> +<translation id="1508960385613684700">Водич за приватност <ph name="BEGIN_NEW" />Ново<ph name="END_NEW" /></translation> <translation id="1513352483775369820">Обележивачи и веб-историја</translation> <translation id="1513814250881909472">Синхронизујте податке да би вам биле доступне картице са других уређаја</translation> <translation id="1513858653616922153">Избриши лозинку</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 eab5437..2295c08 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
@@ -542,6 +542,7 @@ <translation id="3999683152997576765">Unaweza kuona na kuondoa mada zinazokuvutia zinazotumiwa na tovuti kukuonyesha matangazo. Chrome hukadiria mambo yanayokuvutia kulingana na historia yako ya kuvinjari ya hivi karibuni.</translation> <translation id="4000212216660919741">Skrini ya Kwanza, Nje ya Mtandao</translation> <translation id="4016425174436051808">Imeshindwa kufuatilia. Hitilafu fulani imetokea.</translation> +<translation id="4024768890073681126">Kivinjari chako kinadhibitiwa na mzazi wako</translation> <translation id="4034817413553209278">{HOURS,plural, =1{Saa #}other{Saa #}}</translation> <translation id="4035877632587724847">Usiruhusu</translation> <translation id="4036177530563778041">Endelea kwa urahisi pale ulipoachia</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 070cd331..64a2ab2 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
@@ -162,6 +162,7 @@ <translation id="1910950723001426294">ปิดรายการตัวเลือกการแชร์แล้ว</translation> <translation id="1919130412786645364">อนุญาตให้ลงชื่อเข้าใช้ Chrome</translation> <translation id="1922362554271624559">ภาษาที่แนะนำ</translation> +<translation id="1924255092154549435">แท็บขยายอยู่</translation> <translation id="1925021887439448749">ป้อนที่อยู่เว็บที่กำหนดเอง</translation> <translation id="1928696683969751773">อัปเดต</translation> <translation id="19288952978244135">เปิด Chrome อีกครั้ง</translation> @@ -770,6 +771,7 @@ <translation id="5161254044473106830">ต้องระบุชื่อ</translation> <translation id="5170568018924773124">แสดงในโฟลเดอร์</translation> <translation id="5171045022955879922">ค้นหาหรือพิมพ์ URL</translation> +<translation id="5174700554036517242">แท็บกลับไปเป็นความสูงเริ่มต้น</translation> <translation id="5184329579814168207">เปิดใน Chrome</translation> <translation id="5191251636205085390">ดูข้อมูลและควบคุมเทคโนโลยีใหม่ๆ ที่มีจุดประสงค์เพื่อมาแทนที่คุกกี้ของบุคคลที่สาม</translation> <translation id="5193988420012215838">คัดลอกไปยังคลิปบอร์ดแล้ว</translation> @@ -1252,6 +1254,7 @@ <translation id="7686086654630106285">ข้อมูลเพิ่มเติมเกี่ยวกับโฆษณาที่เว็บไซต์แนะนำ</translation> <translation id="768618399695552958">ระบบจะโหลดหน้าเว็บบางหน้าที่คุณเข้าชมไว้ล่วงหน้า ระบบอาจโหลดหน้าเว็บล่วงหน้าผ่านเซิร์ฟเวอร์ของ Google เมื่อลิงก์จากเว็บไซต์ Google</translation> <translation id="7691043218961417207">สำรวจเนื้อหาที่น่าติดตาม</translation> +<translation id="7697383401610880082">แฮนเดิลการลาก</translation> <translation id="7698359219371678927">สร้างอีเมลใน <ph name="APP_NAME" /></translation> <translation id="7707922173985738739">ใช้เน็ตมือถือ</translation> <translation id="7709094866268987903">ความสนใจที่คุณลบออกจะปรากฏที่นี่</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 bba9084..21d60b2 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
@@ -108,6 +108,7 @@ <translation id="1493287004536771723">您正在追蹤「<ph name="SITE_NAME" />」</translation> <translation id="1502010315804028179">如要管理密碼,請更新 Google Play 服務</translation> <translation id="1506061864768559482">搜尋引擎</translation> +<translation id="1508960385613684700">隱私權指南 <ph name="BEGIN_NEW" />新功能<ph name="END_NEW" /></translation> <translation id="1513352483775369820">書籤和網頁記錄</translation> <translation id="1513814250881909472">進行同步處理,取得您在其他裝置上的分頁</translation> <translation id="1513858653616922153">刪除密碼</translation> @@ -543,6 +544,7 @@ <translation id="3999683152997576765">您可以查看及移除網站用來向您顯示廣告的感興趣主題。Chrome 會根據您最近的瀏覽記錄,推測您感興趣的主題。</translation> <translation id="4000212216660919741">離線首頁</translation> <translation id="4016425174436051808">無法追蹤,發生錯誤。</translation> +<translation id="4024768890073681126">瀏覽器由家長管理</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# 小時}other{# 小時}}</translation> <translation id="4035877632587724847">不允許</translation> <translation id="4036177530563778041">輕鬆繼續未完成的操作</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 a392c0f..f6e34e1 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
@@ -108,6 +108,7 @@ <translation id="1493287004536771723">你正在追蹤「<ph name="SITE_NAME" />」</translation> <translation id="1502010315804028179">如要管理密碼,請更新 Google Play 服務</translation> <translation id="1506061864768559482">搜尋引擎</translation> +<translation id="1508960385613684700">隱私權指南 <ph name="BEGIN_NEW" />新功能<ph name="END_NEW" /></translation> <translation id="1513352483775369820">書籤與網頁記錄</translation> <translation id="1513814250881909472">進行同步處理,取得你在其他裝置上的分頁</translation> <translation id="1513858653616922153">刪除密碼</translation> @@ -163,6 +164,7 @@ <translation id="1910950723001426294">分享選項清單已關閉。</translation> <translation id="1919130412786645364">允許登入 Chrome</translation> <translation id="1922362554271624559">建議的語言</translation> +<translation id="1924255092154549435">已展開分頁</translation> <translation id="1925021887439448749">輸入自訂網址</translation> <translation id="1928696683969751773">更新</translation> <translation id="19288952978244135">重新開啟 Chrome。</translation> @@ -543,6 +545,7 @@ <translation id="3999683152997576765">你可以查看網站用於顯示廣告的興趣主題,並且視需要移除。Chrome 會根據近期瀏覽記錄推測你可能感興趣的主題。</translation> <translation id="4000212216660919741">離線首頁</translation> <translation id="4016425174436051808">無法追蹤,發生錯誤。</translation> +<translation id="4024768890073681126">瀏覽器由家長管理</translation> <translation id="4034817413553209278">{HOURS,plural, =1{# 小時}other{# 小時}}</translation> <translation id="4035877632587724847">不允許</translation> <translation id="4036177530563778041">輕鬆繼續未完成的操作</translation> @@ -768,6 +771,7 @@ <translation id="5161254044473106830">請輸入標題</translation> <translation id="5170568018924773124">在資料夾中顯示</translation> <translation id="5171045022955879922">搜尋或輸入網址</translation> +<translation id="5174700554036517242">分頁已恢復初始高度</translation> <translation id="5184329579814168207">在 Chrome 中開啟</translation> <translation id="5191251636205085390">進一步瞭解用於取代第三方 Cookie 的全新技術並進行控管</translation> <translation id="5193988420012215838">已複製到剪貼簿</translation> @@ -1250,6 +1254,7 @@ <translation id="7686086654630106285">進一步瞭解網站建議廣告</translation> <translation id="768618399695552958">系統會預先載入你要造訪的部分網頁。當你從 Google 網站連到這些網頁時,系統可能會透過 Google 伺服器預先載入網頁內容。</translation> <translation id="7691043218961417207">探索值得追蹤的內容</translation> +<translation id="7697383401610880082">拖曳控點</translation> <translation id="7698359219371678927">在「<ph name="APP_NAME" />」中建立電子郵件</translation> <translation id="7707922173985738739">使用行動數據</translation> <translation id="7709094866268987903">你移除的興趣喜好會顯示在這裡</translation>
diff --git a/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.cc b/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.cc index b5ffbde8..f050b92 100644 --- a/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.cc +++ b/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.h" #include <algorithm> +#include <iterator> #include <memory> #include <string> #include <vector> @@ -133,13 +134,8 @@ std::move(callback).Run(task_lists_.get()); return; } - task_lists_ = std::make_unique<ui::ListModel<GlanceablesTaskList>>(); - GetRequestSender()->StartRequestWithAuthRetry( - std::make_unique<ListTaskListsRequest>( - request_sender_.get(), - base::BindOnce(&GlanceablesTasksClientImpl::OnTaskListsFetched, - weak_factory_.GetWeakPtr(), std::move(callback)))); + FetchTaskListsPage(/*page_token=*/"", std::move(callback)); } void GlanceablesTasksClientImpl::GetTasks( @@ -152,39 +148,82 @@ std::move(callback).Run(iter->second.get()); return; } + FetchTasksPage(task_list_id, /*page_token=*/"", /*accumulated_raw_tasks=*/{}, + std::move(callback)); +} +void GlanceablesTasksClientImpl::FetchTaskListsPage( + const std::string& page_token, + GlanceablesTasksClient::GetTaskListsCallback callback) { + GetRequestSender()->StartRequestWithAuthRetry( + std::make_unique<ListTaskListsRequest>( + request_sender_.get(), + base::BindOnce(&GlanceablesTasksClientImpl::OnTaskListsPageFetched, + weak_factory_.GetWeakPtr(), std::move(callback)), + page_token)); +} + +void GlanceablesTasksClientImpl::OnTaskListsPageFetched( + GlanceablesTasksClient::GetTaskListsCallback callback, + base::expected<std::unique_ptr<TaskLists>, ApiErrorCode> result) { + if (!result.has_value()) { + task_lists_->DeleteAll(); + std::move(callback).Run(task_lists_.get()); + return; + } + + for (const auto& raw_item : result.value()->items()) { + task_lists_->Add(std::make_unique<GlanceablesTaskList>( + raw_item->id(), raw_item->title(), raw_item->updated())); + } + + if (result.value()->next_page_token().empty()) { + std::move(callback).Run(task_lists_.get()); + } else { + FetchTaskListsPage(result.value()->next_page_token(), std::move(callback)); + } +} + +void GlanceablesTasksClientImpl::FetchTasksPage( + const std::string& task_list_id, + const std::string& page_token, + std::vector<std::unique_ptr<Task>> accumulated_raw_tasks, + GlanceablesTasksClient::GetTasksCallback callback) { GetRequestSender()->StartRequestWithAuthRetry( std::make_unique<ListTasksRequest>( request_sender_.get(), - base::BindOnce(&GlanceablesTasksClientImpl::OnTasksFetched, + base::BindOnce(&GlanceablesTasksClientImpl::OnTasksPageFetched, weak_factory_.GetWeakPtr(), task_list_id, - std::move(callback)), - task_list_id)); + std::move(accumulated_raw_tasks), std::move(callback)), + task_list_id, page_token)); } -void GlanceablesTasksClientImpl::OnTaskListsFetched( - GlanceablesTasksClient::GetTaskListsCallback callback, - base::expected<std::unique_ptr<TaskLists>, ApiErrorCode> result) const { - if (result.has_value()) { - for (const auto& raw_item : result.value()->items()) { - task_lists_->Add(std::make_unique<GlanceablesTaskList>( - raw_item->id(), raw_item->title(), raw_item->updated())); - } - } - std::move(callback).Run(task_lists_.get()); -} - -void GlanceablesTasksClientImpl::OnTasksFetched( +void GlanceablesTasksClientImpl::OnTasksPageFetched( const std::string& task_list_id, + std::vector<std::unique_ptr<Task>> accumulated_raw_tasks, GlanceablesTasksClient::GetTasksCallback callback, base::expected<std::unique_ptr<Tasks>, ApiErrorCode> result) { const auto iter = tasks_in_task_lists_.find(task_list_id); - if (result.has_value()) { - for (auto& item : ConvertTasks(result.value()->items())) { + + if (!result.has_value()) { + std::move(callback).Run(iter->second.get()); + return; + } + + accumulated_raw_tasks.insert( + accumulated_raw_tasks.end(), + std::make_move_iterator(result.value()->mutable_items()->begin()), + std::make_move_iterator(result.value()->mutable_items()->end())); + + if (result.value()->next_page_token().empty()) { + for (auto& item : ConvertTasks(accumulated_raw_tasks)) { iter->second->Add(std::move(item)); } + std::move(callback).Run(iter->second.get()); + } else { + FetchTasksPage(task_list_id, result.value()->next_page_token(), + std::move(accumulated_raw_tasks), std::move(callback)); } - std::move(callback).Run(iter->second.get()); } google_apis::RequestSender* GlanceablesTasksClientImpl::GetRequestSender() {
diff --git a/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.h b/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.h index 3b07305..e61c660 100644 --- a/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.h +++ b/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl.h
@@ -58,18 +58,54 @@ GlanceablesTasksClient::GetTasksCallback callback) override; private: - // Callback for `GetTaskLists()`. Transforms fetched items to ash-friendly - // types. - void OnTaskListsFetched( + // Fetches one page of task lists data. + // `page_token` - token specifying the result page to return, comes from the + // previous fetch request. Use an empty string to fetch the + // first page. + // `callback` - done callback passed from `GetTaskLists()` to + // `OnTaskListsPageFetched()`. + void FetchTaskListsPage( + const std::string& page_token, + GlanceablesTasksClient::GetTaskListsCallback callback); + + // Callback for `FetchTaskListsPage()`. Transforms fetched items to + // ash-friendly types. If `next_page_token()` in the `result` is not empty - + // calls another `FetchTaskListsPage()`, otherwise runs `callback`. + void OnTaskListsPageFetched( GlanceablesTasksClient::GetTaskListsCallback callback, base::expected<std::unique_ptr<google_apis::tasks::TaskLists>, - google_apis::ApiErrorCode> result) const; + google_apis::ApiErrorCode> result); - // Callback for `GetTasks()`. Transforms fetched items to ash-friendly types. - void OnTasksFetched(const std::string& task_list_id, - GlanceablesTasksClient::GetTasksCallback callback, - base::expected<std::unique_ptr<google_apis::tasks::Tasks>, - google_apis::ApiErrorCode> result); + // Fetches one page of tasks data. + // `task_list_id` - task list identifier. + // `page_token` - token specifying the result page to return, comes + // from the previous fetch request. Use an empty + // string to fetch the first page. + // `accumulated_raw_tasks` - in contrast to the task lists conversion logic, + // tasks can't be converted independently on every + // single page response (subtasks could go first, + // but their parent tasks will be on the next page). + // This parameter helps to accumulate all of them + // first and then do the conversion once the last + // page is fetched. + // `callback` - done callback passed from `GetTasks()` to + // `OnTasksPageFetched()`. + void FetchTasksPage(const std::string& task_list_id, + const std::string& page_token, + std::vector<std::unique_ptr<google_apis::tasks::Task>> + accumulated_raw_tasks, + GlanceablesTasksClient::GetTasksCallback callback); + + // Callback for `FetchTasksPage()`. Transforms fetched items to ash-friendly + // types. If `next_page_token()` in the `result` is not empty - calls another + // `FetchTasksPage()`, otherwise runs `callback`. + void OnTasksPageFetched( + const std::string& task_list_id, + std::vector<std::unique_ptr<google_apis::tasks::Task>> + accumulated_raw_tasks, + GlanceablesTasksClient::GetTasksCallback callback, + base::expected<std::unique_ptr<google_apis::tasks::Tasks>, + google_apis::ApiErrorCode> result); // Returns lazily initialized `request_sender_`. google_apis::RequestSender* GetRequestSender();
diff --git a/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl_unittest.cc b/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl_unittest.cc index 59ca1f6d..70b92e3 100644 --- a/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl_unittest.cc +++ b/chrome/browser/ui/ash/glanceables/glanceables_tasks_client_impl_unittest.cc
@@ -12,7 +12,6 @@ #include "ash/constants/ash_features.h" #include "ash/glanceables/tasks/glanceables_tasks_types.h" #include "base/functional/bind.h" -#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/test/bind.h" #include "base/test/repeating_test_future.h" @@ -33,6 +32,7 @@ #include "net/test/embedded_test_server/http_response.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" #include "services/network/test/test_shared_url_loader_factory.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/models/list_model.h" @@ -43,8 +43,15 @@ using ::base::test::TestFuture; using ::google_apis::ApiErrorCode; using ::google_apis::util::FormatTimeAsString; +using ::net::test_server::BasicHttpResponse; using ::net::test_server::HttpRequest; using ::net::test_server::HttpResponse; +using ::testing::_; +using ::testing::ByMove; +using ::testing::Field; +using ::testing::HasSubstr; +using ::testing::Not; +using ::testing::Return; constexpr char kDefaultTaskListsResponseContent[] = R"( { @@ -99,29 +106,34 @@ GaiaUrls test_gaia_urls_; }; -std::unique_ptr<net::test_server::HttpResponse> CreateSuccessfulResponse( - const std::string& content) { - auto response = std::make_unique<net::test_server::BasicHttpResponse>(); - response->set_code(net::HTTP_OK); - response->set_content(content); - response->set_content_type("application/json"); - return response; -} +// Helper class to simplify mocking `net::EmbeddedTestServer` responses, +// especially useful for subsequent responses when testing pagination logic. +class TestRequestHandler { + public: + static std::unique_ptr<HttpResponse> CreateSuccessfulResponse( + const std::string& content) { + auto response = std::make_unique<BasicHttpResponse>(); + response->set_code(net::HTTP_OK); + response->set_content(content); + response->set_content_type("application/json"); + return response; + } -std::unique_ptr<net::test_server::HttpResponse> CreateFailedResponse() { - auto response = std::make_unique<net::test_server::BasicHttpResponse>(); - response->set_code(net::HTTP_INTERNAL_SERVER_ERROR); - return response; -} + static std::unique_ptr<HttpResponse> CreateFailedResponse() { + auto response = std::make_unique<BasicHttpResponse>(); + response->set_code(net::HTTP_INTERNAL_SERVER_ERROR); + return response; + } + + MOCK_METHOD(std::unique_ptr<HttpResponse>, + HandleRequest, + (const HttpRequest&)); +}; } // namespace class GlanceablesTasksClientImplTest : public testing::Test { public: - using GenerateResponseCallback = - base::RepeatingCallback<std::unique_ptr<HttpResponse>( - const HttpRequest& request)>; - void SetUp() override { auto create_request_sender_callback = base::BindLambdaForTesting( [&](const std::vector<std::string>& scopes, @@ -134,9 +146,9 @@ client_ = std::make_unique<GlanceablesTasksClientImpl>( create_request_sender_callback); - test_server_.RegisterRequestHandler(base::BindRepeating( - &GlanceablesTasksClientImplTest::HandleDataFileRequest, - base::Unretained(this))); + test_server_.RegisterRequestHandler( + base::BindRepeating(&TestRequestHandler::HandleRequest, + base::Unretained(&request_handler_))); ASSERT_TRUE(test_server_.Start()); command_line_.GetProcessCommandLine()->AppendSwitchASCII( switches::kGoogleApisUrl, test_server_.base_url().spec()); @@ -145,20 +157,10 @@ test_server_.base_url().spec()); } - void set_generate_response_callback(const GenerateResponseCallback& cb) { - generate_response_callback_ = cb; - } - GlanceablesTasksClientImpl* client() { return client_.get(); } - int requests_count() { return requests_count_; } + TestRequestHandler& request_handler() { return request_handler_; } private: - std::unique_ptr<net::test_server::HttpResponse> HandleDataFileRequest( - const net::test_server::HttpRequest& request) { - ++requests_count_; - return std::move(generate_response_callback_).Run(request); - } - content::BrowserTaskEnvironment task_environment_{ base::test::TaskEnvironment::MainThreadType::IO}; base::test::ScopedCommandLine command_line_; @@ -169,16 +171,14 @@ /*network_service=*/nullptr, /*is_trusted=*/true); std::unique_ptr<GaiaUrlsOverrider> gaia_urls_overrider_; - GenerateResponseCallback generate_response_callback_; - int requests_count_ = 0; + testing::StrictMock<TestRequestHandler> request_handler_; std::unique_ptr<GlanceablesTasksClientImpl> client_; }; TEST_F(GlanceablesTasksClientImplTest, GetTaskLists) { - set_generate_response_callback( - base::BindLambdaForTesting([](const HttpRequest& request) { - return CreateSuccessfulResponse(kDefaultTaskListsResponseContent); - })); + EXPECT_CALL(request_handler(), HandleRequest(_)) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse( + kDefaultTaskListsResponseContent)))); TestFuture<ui::ListModel<GlanceablesTaskList>*> future; client()->GetTaskLists(future.GetCallback()); @@ -199,30 +199,27 @@ } TEST_F(GlanceablesTasksClientImplTest, GetTaskListsOnSubsequentCalls) { - set_generate_response_callback( - base::BindLambdaForTesting([](const HttpRequest& request) { - return CreateSuccessfulResponse(kDefaultTaskListsResponseContent); - })); + EXPECT_CALL(request_handler(), HandleRequest(_)) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse( + kDefaultTaskListsResponseContent)))); RepeatingTestFuture<ui::ListModel<GlanceablesTaskList>*> future; client()->GetTaskLists(future.GetCallback()); ASSERT_TRUE(future.Wait()); - EXPECT_EQ(requests_count(), 1); const auto* const task_lists = future.Take(); // Subsequent request doesn't trigger another network call and returns a // pointer to the same `ui::ListModel`. client()->GetTaskLists(future.GetCallback()); ASSERT_TRUE(future.Wait()); - EXPECT_EQ(requests_count(), 1); EXPECT_EQ(future.Take(), task_lists); } TEST_F(GlanceablesTasksClientImplTest, GetTaskListsReturnsEmptyVectorOnHttpError) { - set_generate_response_callback(base::BindLambdaForTesting( - [](const HttpRequest& request) { return CreateFailedResponse(); })); + EXPECT_CALL(request_handler(), HandleRequest(_)) + .WillOnce(Return(ByMove(TestRequestHandler::CreateFailedResponse()))); TestFuture<ui::ListModel<GlanceablesTaskList>*> future; client()->GetTaskLists(future.GetCallback()); @@ -232,11 +229,52 @@ EXPECT_EQ(task_lists->item_count(), 0u); } +TEST_F(GlanceablesTasksClientImplTest, GetTaskListsFetchesAllPages) { + EXPECT_CALL(request_handler(), + HandleRequest(Field(&HttpRequest::relative_url, + Not(HasSubstr("pageToken"))))) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse(R"( + { + "kind": "tasks#taskLists", + "items": [{"id": "task-list-from-page-1"}], + "nextPageToken": "qwe" + } + )")))); + EXPECT_CALL(request_handler(), + HandleRequest(Field(&HttpRequest::relative_url, + HasSubstr("pageToken=qwe")))) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse(R"( + { + "kind": "tasks#taskLists", + "items": [{"id": "task-list-from-page-2"}], + "nextPageToken": "asd" + } + )")))); + EXPECT_CALL(request_handler(), + HandleRequest(Field(&HttpRequest::relative_url, + HasSubstr("pageToken=asd")))) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse(R"( + { + "kind": "tasks#taskLists", + "items": [{"id": "task-list-from-page-3"}] + } + )")))); + + TestFuture<ui::ListModel<GlanceablesTaskList>*> future; + client()->GetTaskLists(future.GetCallback()); + ASSERT_TRUE(future.Wait()); + + const auto* const task_lists = future.Get(); + EXPECT_EQ(task_lists->item_count(), 3u); + EXPECT_EQ(task_lists->GetItemAt(0)->id, "task-list-from-page-1"); + EXPECT_EQ(task_lists->GetItemAt(1)->id, "task-list-from-page-2"); + EXPECT_EQ(task_lists->GetItemAt(2)->id, "task-list-from-page-3"); +} + TEST_F(GlanceablesTasksClientImplTest, GetTasks) { - set_generate_response_callback( - base::BindLambdaForTesting([](const HttpRequest& request) { - return CreateSuccessfulResponse(kDefaultTasksResponseContent); - })); + EXPECT_CALL(request_handler(), HandleRequest(_)) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse( + kDefaultTasksResponseContent)))); TestFuture<ui::ListModel<GlanceablesTask>*> future; client()->GetTasks("test-task-list-id", future.GetCallback()); @@ -262,29 +300,26 @@ } TEST_F(GlanceablesTasksClientImplTest, GetTasksOnSubsequentCalls) { - set_generate_response_callback( - base::BindLambdaForTesting([](const HttpRequest& request) { - return CreateSuccessfulResponse(kDefaultTasksResponseContent); - })); + EXPECT_CALL(request_handler(), HandleRequest(_)) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse( + kDefaultTasksResponseContent)))); RepeatingTestFuture<ui::ListModel<GlanceablesTask>*> future; client()->GetTasks("test-task-list-id", future.GetCallback()); ASSERT_TRUE(future.Wait()); - EXPECT_EQ(requests_count(), 1); const auto* const root_tasks = future.Take(); // Subsequent request doesn't trigger another network call and returns a // pointer to the same `ui::ListModel`. client()->GetTasks("test-task-list-id", future.GetCallback()); ASSERT_TRUE(future.Wait()); - EXPECT_EQ(requests_count(), 1); EXPECT_EQ(future.Take(), root_tasks); } TEST_F(GlanceablesTasksClientImplTest, GetTasksReturnsEmptyVectorOnHttpError) { - set_generate_response_callback(base::BindLambdaForTesting( - [](const HttpRequest& request) { return CreateFailedResponse(); })); + EXPECT_CALL(request_handler(), HandleRequest(_)) + .WillOnce(Return(ByMove(TestRequestHandler::CreateFailedResponse()))); TestFuture<ui::ListModel<GlanceablesTask>*> future; client()->GetTasks("test-task-list-id", future.GetCallback()); @@ -296,9 +331,8 @@ TEST_F(GlanceablesTasksClientImplTest, GetTasksReturnsEmptyVectorOnConversionError) { - set_generate_response_callback( - base::BindLambdaForTesting([](const HttpRequest& request) { - return CreateSuccessfulResponse(R"( + EXPECT_CALL(request_handler(), HandleRequest(_)) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse(R"( { "kind": "tasks#tasks", "items": [ @@ -315,8 +349,7 @@ } ] } - )"); - })); + )")))); TestFuture<ui::ListModel<GlanceablesTask>*> future; client()->GetTasks("test-task-list-id", future.GetCallback()); @@ -326,4 +359,52 @@ EXPECT_EQ(root_tasks->item_count(), 0u); } +TEST_F(GlanceablesTasksClientImplTest, GetTasksFetchesAllPages) { + EXPECT_CALL(request_handler(), + HandleRequest(Field(&HttpRequest::relative_url, + Not(HasSubstr("pageToken"))))) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse(R"( + { + "kind": "tasks#tasks", + "items": [ + { + "id": "child-task-from-page-1", + "parent": "parent-task-from-page-2" + } + ], + "nextPageToken": "qwe" + } + )")))); + EXPECT_CALL(request_handler(), + HandleRequest(Field(&HttpRequest::relative_url, + HasSubstr("pageToken=qwe")))) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse(R"( + { + "kind": "tasks#tasks", + "items": [{"id": "parent-task-from-page-2"}], + "nextPageToken": "asd" + } + )")))); + EXPECT_CALL(request_handler(), + HandleRequest(Field(&HttpRequest::relative_url, + HasSubstr("pageToken=asd")))) + .WillOnce(Return(ByMove(TestRequestHandler::CreateSuccessfulResponse(R"( + { + "kind": "tasks#tasks", + "items": [{"id": "parent-task-from-page-3"}] + } + )")))); + + TestFuture<ui::ListModel<GlanceablesTask>*> future; + client()->GetTasks("test-task-list-id", future.GetCallback()); + ASSERT_TRUE(future.Wait()); + + const auto* const root_tasks = future.Get(); + EXPECT_EQ(root_tasks->item_count(), 2u); + EXPECT_EQ(root_tasks->GetItemAt(0)->id, "parent-task-from-page-2"); + EXPECT_EQ(root_tasks->GetItemAt(0)->subtasks.at(0)->id, + "child-task-from-page-1"); + EXPECT_EQ(root_tasks->GetItemAt(1)->id, "parent-task-from-page-3"); +} + } // namespace ash
diff --git a/chrome/browser/ui/side_panel/side_panel_prefs.cc b/chrome/browser/ui/side_panel/side_panel_prefs.cc index 5e0d5b0..645200f 100644 --- a/chrome/browser/ui/side_panel/side_panel_prefs.cc +++ b/chrome/browser/ui/side_panel/side_panel_prefs.cc
@@ -6,6 +6,7 @@ #include "base/feature_list.h" #include "base/i18n/rtl.h" #include "chrome/browser/companion/core/features.h" +#include "chrome/browser/ui/ui_features.h" #include "chrome/common/pref_names.h" #include "components/pref_registry/pref_registry_syncable.h" #include "components/prefs/pref_registry_simple.h" @@ -21,7 +22,9 @@ base::i18n::IsRTL() ? false : true); if (base::FeatureList::IsEnabled(companion::features::kSidePanelCompanion)) { registry->RegisterBooleanPref( - prefs::kSidePanelCompanionEntryPinnedToToolbar, true, + prefs::kSidePanelCompanionEntryPinnedToToolbar, + base::FeatureList::IsEnabled( + features::kSidePanelCompanionDefaultPinned), user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); } }
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc index 59cc52b..8c4ad25 100644 --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc
@@ -127,6 +127,12 @@ "SidePanelJourneysQueryless", base::FEATURE_DISABLED_BY_DEFAULT); +#if !defined(ANDROID) +BASE_FEATURE(kSidePanelCompanionDefaultPinned, + "SidePanelCompanionDefaultPinned", + base::FEATURE_DISABLED_BY_DEFAULT); +#endif + // Enables tabs to scroll in the tabstrip. https://crbug.com/951078 BASE_FEATURE(kScrollableTabStrip, "ScrollableTabStrip",
diff --git a/chrome/browser/ui/ui_features.h b/chrome/browser/ui/ui_features.h index c59f4b1..3d65b6f 100644 --- a/chrome/browser/ui/ui_features.h +++ b/chrome/browser/ui/ui_features.h
@@ -77,6 +77,10 @@ BASE_DECLARE_FEATURE(kSidePanelWebView); +#if !defined(ANDROID) +BASE_DECLARE_FEATURE(kSidePanelCompanionDefaultPinned); +#endif + BASE_DECLARE_FEATURE(kSidePanelJourneysQueryless); BASE_DECLARE_FEATURE(kSidePanelSearchCompanion);
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc index 59b0279..e37ec03 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
@@ -627,7 +627,6 @@ header_combobox_->SetProperty(views::kElementIdentifierKey, kSidePanelComboboxElementId); - // TODO(corising): Update icon and tooltip once provided by UX. header_pin_button_ = header->AddChildView(CreatePinToggleButton(base::BindRepeating( &SidePanelCoordinator::UpdatePinState, base::Unretained(this))));
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 6a0daab..58fce089 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
@@ -11,6 +11,7 @@ #include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/side_panel/search_companion/search_companion_side_panel_coordinator.h" #include "chrome/browser/ui/views/side_panel/side_panel.h" @@ -115,6 +116,19 @@ side_panel_button_->SetProperty(views::kFlexBehaviorKey, views::FlexSpecification()); AddMainItem(side_panel_button_); + // Before creating the pinned buttons, verify that the pref value is correct + // and update it if not. If the user has been moved into a different default + // pin state group (i.e. from the default being false to the default being + // true) we want to make sure their pin state changes if they have not + // explicitly changed it themselves. + PrefService* pref_service = browser_view_->GetProfile()->GetPrefs(); + if (pref_service) { + bool companion_should_be_default_pinned = base::FeatureList::IsEnabled( + features::kSidePanelCompanionDefaultPinned); + pref_service->SetDefaultPrefValue( + prefs::kSidePanelCompanionEntryPinnedToToolbar, + base::Value(companion_should_be_default_pinned)); + } CreatePinnedEntryButtons(); } @@ -180,6 +194,7 @@ } auto button = std::make_unique<PinnedSidePanelToolbarButton>(browser_view_, id, name, icon); + button->SetVisible(false); ObserveButton(button.get()); pinned_entry_buttons_.push_back(AddChildView(std::move(button))); @@ -224,6 +239,9 @@ } void SidePanelToolbarContainer::UpdatePinnedButtonsVisibility() { + if (pinned_entry_buttons_.empty()) { + return; + } PrefService* pref_service = browser_view_->GetProfile()->GetPrefs(); if (pref_service) { bool should_be_pinned = pref_service->GetBoolean(
diff --git a/chrome/browser/ui/views/side_panel/side_panel_toolbar_container_unittest.cc b/chrome/browser/ui/views/side_panel/side_panel_toolbar_container_unittest.cc index 6bf6ce37..9ffb83a 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_toolbar_container_unittest.cc +++ b/chrome/browser/ui/views/side_panel/side_panel_toolbar_container_unittest.cc
@@ -8,6 +8,7 @@ #include "chrome/browser/companion/core/features.h" #include "chrome/browser/search_engines/template_url_service_factory.h" +#include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/test_with_browser_view.h" #include "chrome/browser/ui/views/side_panel/search_companion/search_companion_side_panel_coordinator.h" @@ -26,8 +27,10 @@ class SidePanelToolbarContainerTest : public TestWithBrowserView { public: void SetUp() override { - scoped_feature_list_.InitAndEnableFeature( - companion::features::kSidePanelCompanion); + scoped_feature_list_.InitWithFeatures( + {companion::features::kSidePanelCompanion, + features::kSidePanelCompanionDefaultPinned}, + {}); TestWithBrowserView::SetUp(); AddTab(browser_view()->browser(), GURL("http://foo1.com")); browser_view()->browser()->tab_strip_model()->ActivateTabAt(0);
diff --git a/chrome/browser/ui/webui/settings/ash/internet_section.cc b/chrome/browser/ui/webui/settings/ash/internet_section.cc index 7f4d41d..5ecaa33 100644 --- a/chrome/browser/ui/webui/settings/ash/internet_section.cc +++ b/chrome/browser/ui/webui/settings/ash/internet_section.cc
@@ -1023,6 +1023,9 @@ ash::features::IsHotspotEnabled()); html_source->AddBoolean("isPasspointEnabled", ash::features::IsPasspointARCSupportEnabled()); + html_source->AddBoolean("isPasspointSettingsEnabled", + ash::features::IsPasspointSettingsEnabled() && + ash::features::IsPasspointARCSupportEnabled()); html_source->AddString("networkGoogleNameserversLearnMoreUrl", chrome::kGoogleNameserversLearnMoreURL);
diff --git a/chrome/build/lacros64.pgo.txt b/chrome/build/lacros64.pgo.txt index 2528842..adc7bb7 100644 --- a/chrome/build/lacros64.pgo.txt +++ b/chrome/build/lacros64.pgo.txt
@@ -1 +1 @@ -chrome-chromeos-amd64-generic-main-1681069956-0abf848e8c61c3392cfbff2eb0694ea8165a71e6.profdata +chrome-chromeos-amd64-generic-main-1681127858-e54c2281dd7ff28372e53b44da6362c9b1464f53.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 2dbdd55..6d9e0e80 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1681062451-b7951496e8f51c3a6c4dc315a99b91bf0a85c9c0.profdata +chrome-linux-main-1681127858-984cec31240e41148f53d52a96553ce6178e33e8.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 2ee778f..ea26f1d9 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1681076339-b758e8e47a4901cd9bcb5ec83e79c4bfd573116f.profdata +chrome-mac-arm-main-1681134549-cd38fcc9009e131ba26db70e79f49b384c59adb0.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 3469d98..9623cc3 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1681062451-cdbbb57c7dda4371358c406002bcd492e9f862fb.profdata +chrome-mac-main-1681127858-96af4d3369fb730a93914738c1987de87d380d8e.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index f875788..143f46fd 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1681062451-5f682821c01e55042daf04ce431d05e1e67d27e2.profdata +chrome-win32-main-1681127858-5a08b62503a21cfeeb665ad9dc67224661d4c5e8.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index e6c2fd3..a80b7a2 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1681062451-0876a1424c22ddd1774091735afb4b3841cd37a1.profdata +chrome-win64-main-1681127858-08660bfb9b7079f17ca39843ac32049c618b3768.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index d4038870..91b1e98 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -1531,7 +1531,7 @@ const base::FeatureParam<SearchPreloadShareableCacheType> kSearchPreloadShareableCacheTypeParam{ &kSupportSearchSuggestionForPrerender2, "shareable_cache", - SearchPreloadShareableCacheType::kDisabled, + SearchPreloadShareableCacheType::kEnabled, &search_preload_shareable_cache_types}; BASE_FEATURE(kAutocompleteActionPredictorConfidenceCutoff,
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index 5e8168f34..ec65873 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -891,11 +891,8 @@ bool IsParentAccessCodeForOnlineLoginEnabled(); #endif // BUILDFLAG(IS_CHROMEOS_ASH) -// This flag is used for enabling Omnibox triggered prerendering and -// blink::WebRuntimeFeatures::Prerender2RelatedFeatures that enables Prerender2 -// related web exposed features. This flag takes effect only when -// blink::features::Prerender2 is enabled. See crbug.com/1166085 for more -// details of Omnibox triggered prerendering. +// This flag is used for enabling Omnibox triggered prerendering. See +// crbug.com/1166085 for more details of Omnibox triggered prerendering. COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kOmniboxTriggerForPrerender2);
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc index 3b58632..c5c1deb 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -1629,17 +1629,6 @@ if (base::FeatureList::IsEnabled(subresource_filter::kAdTagging)) blink::WebRuntimeFeatures::EnableAdTagging(true); - // Prerender2 should be enabled for supporting the basic infrastructure on the - // browser side. - // One of the features of kOmniboxTriggerForPrerender2 and - // kSupportSearchSuggestionForPrerender2 should be enabled before telling the - // blink side that chrome is enrolling the experinment. - if (base::FeatureList::IsEnabled(features::kOmniboxTriggerForPrerender2) || - base::FeatureList::IsEnabled( - features::kSupportSearchSuggestionForPrerender2)) { - blink::WebRuntimeFeatures::EnablePrerender2RelatedFeatures(true); - } - #if BUILDFLAG(ENABLE_EXTENSIONS) // WebHID and WebUSB on service workers is only available in extensions. if (IsStandaloneContentExtensionProcess()) {
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt index 7f9ec018..f31420f 100644 --- a/chromeos/profiles/orderfile.newest.txt +++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@ -chromeos-chrome-orderfile-field-113-5599.0-1677494335-benchmark-113.0.5624.0-r2.orderfile.xz +chromeos-chrome-orderfile-field-114-5672.6-1680517341-benchmark-114.0.5697.0-r1.orderfile.xz
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb index 6163d093..f237c1f 100644 --- a/chromeos/strings/chromeos_strings_ar.xtb +++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">مزيد من الإعدادات</translation> <translation id="2085089206770112532">تقليل سطوع الشاشة</translation> +<translation id="209751264101900360">منظر السُحب من الفجر إلى الليل</translation> <translation id="2102231663024125441">تعديل النص</translation> <translation id="2105810540595158374">الجهاز هو ذراع تحكّم في الألعاب.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />، الإصدار <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">الوسائط</translation> <translation id="4289540628985791613">نظرة عامة</translation> <translation id="4289849978083912975">عرض الشرائح</translation> +<translation id="4293621540182258188">منظر انسيابي للأرض من الفجر إلى الليل</translation> <translation id="4297501883039923494">توقّفت الطابعة - خطأ غير معروف</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> صورة</translation> <translation id="4311195029067684288">كامل</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">زيادة سطوع الشاشة</translation> <translation id="57838592816432529">كتم الصوت</translation> <translation id="5784136236926853061">وقت استجابة بروتوكول HTTP طويل.</translation> +<translation id="5809090008577139505">الشفق</translation> <translation id="5826644637650799838">لمحة عن العمل الفني</translation> <translation id="5832805196449965646">إضافة شخص</translation> <translation id="583281660410589416">غير معروف</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">لون المفتاح</translation> <translation id="5916084858004523819">محظورة</translation> <translation id="5916664084637901428">مفعّل</translation> +<translation id="5918201491776799918">يمكنك اختيار عمل فني حصري لعرضه على Chromebook Plus.</translation> <translation id="5921506667911082617">{COUNT,plural, =1{تم بنجاح مسح الملف ضوئيًا وحفظه في <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}zero{تم بنجاح مسح الملفات ضوئيًا وحفظها في <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}two{تم بنجاح مسح الملفين ضوئيًا وحفظهما في <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}few{تم بنجاح مسح الملفات ضوئيًا وحفظها في <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}many{تم بنجاح مسح الملفات ضوئيًا وحفظها في <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}other{تم بنجاح مسح الملفات ضوئيًا وحفظها في <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}}</translation> <translation id="5931523347251946569">لم يتم العثور على الملف.</translation> <translation id="5939518447894949180">إعادة الضبط</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">اختيار <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">أدوات مطوري البرامج</translation> +<translation id="8153923300383192510">حصريًا على Chromebook Plus</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">إرفاق</translation> <translation id="8206859287963243715">خلوي</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb index 99f0216..56a42ec 100644 --- a/chromeos/strings/chromeos_strings_az.xtb +++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">Digər ayarlar</translation> <translation id="2085089206770112532">Displey parlaqlığını azaldın</translation> +<translation id="209751264101900360">Sübhdən axşama - Bulud axını</translation> <translation id="2102231663024125441">Mətn redaktəsi</translation> <translation id="2105810540595158374">Cihaz oyun nizamlayıcısıdır.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, versiya <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">Media</translation> <translation id="4289540628985791613">Baxış</translation> <translation id="4289849978083912975">Slayd şou</translation> +<translation id="4293621540182258188">Sübhdən axşama - Torpaq axını</translation> <translation id="4297501883039923494">Dayanıb - Naməlum xəta</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> şəkil</translation> <translation id="4311195029067684288">Tam</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">Displey parlaqlığını artırın</translation> <translation id="57838592816432529">Səssiz</translation> <translation id="5784136236926853061">Yüksək HTTP gecikməsi</translation> +<translation id="5809090008577139505">Avrora</translation> <translation id="5826644637650799838">Rəsm haqqında</translation> <translation id="5832805196449965646">Şəxs əlavə edin</translation> <translation id="583281660410589416">Naməlum</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">açar rəngi</translation> <translation id="5916084858004523819">Qadağan olunub</translation> <translation id="5916664084637901428">Aktiv</translation> +<translation id="5918201491776799918">Chromebook Plus-a özəl sənət əsəri seçin</translation> <translation id="5921506667911082617">{COUNT,plural, =1{Faylınız uğurla skanlandı və <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> qovluğunda saxlanıldı.}other{Fayllarınız uğurla skanlandı və <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> qovluğunda saxlanıldı.}}</translation> <translation id="5931523347251946569">Fayl tapılmadı</translation> <translation id="5939518447894949180">Sıfırlayın</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> seçin</translation> <translation id="8151185429379586178">Developer alətləri</translation> +<translation id="8153923300383192510">Chromebook Plus-a özəl</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">Əlavə edin</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb index 1e8e04c..e10662b 100644 --- a/chromeos/strings/chromeos_strings_bg.xtb +++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">Още настройки</translation> <translation id="2085089206770112532">Намаляване на яркостта на дисплея</translation> +<translation id="209751264101900360">От зазоряване до здрачаване – облаци</translation> <translation id="2102231663024125441">Редактиране на текст</translation> <translation id="2105810540595158374">Устройството е контролер за игри.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, версия <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">Медия</translation> <translation id="4289540628985791613">Общ преглед</translation> <translation id="4289849978083912975">Слайдшоу</translation> +<translation id="4293621540182258188">От зазоряване до здрачаване – Земята</translation> <translation id="4297501883039923494">Спряло – неизвестна грешка</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> изображения</translation> <translation id="4311195029067684288">Пълно</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">Увеличаване на яркостта на дисплея</translation> <translation id="57838592816432529">Заглушаване</translation> <translation id="5784136236926853061">Голямо забавяне на HTTP</translation> +<translation id="5809090008577139505">Северно сияние</translation> <translation id="5826644637650799838">Всичко за произведението</translation> <translation id="5832805196449965646">Добавяне на човек</translation> <translation id="583281660410589416">Неизвестно</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">цвят на клавишите</translation> <translation id="5916084858004523819">Забранено</translation> <translation id="5916664084637901428">Включено</translation> +<translation id="5918201491776799918">Изберете специални илюстрации за Chromebook Plus</translation> <translation id="5921506667911082617">{COUNT,plural, =1{Файлът ви бе сканиран успешно и запазен в папката <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}other{Файловете ви бяха сканирани успешно и запазени в папката <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}}</translation> <translation id="5931523347251946569">Файлът не бе намерен</translation> <translation id="5939518447894949180">Нулиране</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">Избиране на <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">Инстр. за програмисти</translation> +<translation id="8153923300383192510">Специално за Chromebook Plus</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">Първоначално свързване</translation> <translation id="8206859287963243715">Клетъчно</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb index 58414de..3018328 100644 --- a/chromeos/strings/chromeos_strings_cs.xtb +++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">Další nastavení</translation> <translation id="2085089206770112532">Snížit jas displeje</translation> +<translation id="209751264101900360">Od úsvitu do setmění – plynoucí oblaka</translation> <translation id="2102231663024125441">Úprava textu</translation> <translation id="2105810540595158374">Zařízení je herní ovladač.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, verze <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">Média</translation> <translation id="4289540628985791613">Přehled</translation> <translation id="4289849978083912975">Prezentace</translation> +<translation id="4293621540182258188">Od úsvitu do setmění – plynoucí Země</translation> <translation id="4297501883039923494">Zastaveno – neznámá chyba</translation> <translation id="4300073214558989">Počet obrázků: <ph name="IMAGE_COUNT" /></translation> <translation id="4311195029067684288">Plné</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">Zvýšit jas displeje</translation> <translation id="57838592816432529">Ztlumit</translation> <translation id="5784136236926853061">Vysoká latence požadavků HTTP</translation> +<translation id="5809090008577139505">Polární záře</translation> <translation id="5826644637650799838">O tomto uměleckém dílu</translation> <translation id="5832805196449965646">Přidat uživatele</translation> <translation id="583281660410589416">Neznámé</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">barva klíče</translation> <translation id="5916084858004523819">Zakázáno</translation> <translation id="5916664084637901428">Zapnuto</translation> +<translation id="5918201491776799918">Vybrat umělecké dílo dostupné pouze na Chromeboocích Plus</translation> <translation id="5921506667911082617">{COUNT,plural, =1{Soubor byl úspěšně naskenován a uložen do složky <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}few{Soubory byly úspěšně naskenovány a uloženy do složky <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}many{Soubory byly úspěšně naskenovány a uloženy do složky <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}other{Soubory byly úspěšně naskenovány a uloženy do složky <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}}</translation> <translation id="5931523347251946569">Soubor nebyl nalezen</translation> <translation id="5939518447894949180">Resetovat</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">Vybrat možnost <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">Nástroje pro vývojáře</translation> +<translation id="8153923300383192510">Exkluzivně na Chromeboocích Plus</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">Připojit</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb index 694f7ce..d61ade9 100644 --- a/chromeos/strings/chromeos_strings_da.xtb +++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">Flere indstillinger</translation> <translation id="2085089206770112532">Reducer skærmens lysstyrke</translation> +<translation id="209751264101900360">Daggry til mørkets frembrud – Skyernes bevægelse</translation> <translation id="2102231663024125441">Tekstredigering</translation> <translation id="2105810540595158374">Enheden er en spilcontroller.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, version <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">Medier</translation> <translation id="4289540628985791613">Oversigt</translation> <translation id="4289849978083912975">Slide show</translation> +<translation id="4293621540182258188">Daggry til mørkets frembrud – Jordens bevægelse</translation> <translation id="4297501883039923494">Stoppet – Ukendt fejl</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> billeder</translation> <translation id="4311195029067684288">Fuld</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">Øg skærmens lysstyrke</translation> <translation id="57838592816432529">Slå lyden fra</translation> <translation id="5784136236926853061">Stor HTTP-forsinkelse</translation> +<translation id="5809090008577139505">Nordlys</translation> <translation id="5826644637650799838">Om baggrunden</translation> <translation id="5832805196449965646">Tilføj person</translation> <translation id="583281660410589416">Ukendt</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">farve på taster</translation> <translation id="5916084858004523819">Forbudt</translation> <translation id="5916664084637901428">Til</translation> +<translation id="5918201491776799918">Vælg kunst, der kun fås til Chromebook Plus</translation> <translation id="5921506667911082617">{COUNT,plural, =1{Din fil blev scannet og er gemt i <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}one{Din fil blev scannet og er gemt i <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}other{Dine filer blev scannet og er gemt i <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}}</translation> <translation id="5931523347251946569">Filen blev ikke fundet</translation> <translation id="5939518447894949180">Nulstil</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">Vælg <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">Udviklerværktøjer</translation> +<translation id="8153923300383192510">Kun på Chromebook Plus</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">Vedhæft</translation> <translation id="8206859287963243715">Mobil</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb index 62936241..d94deea 100644 --- a/chromeos/strings/chromeos_strings_fa.xtb +++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">تنظیمات بیشتر</translation> <translation id="2085089206770112532">کاهش روشنایی نمایشگر</translation> +<translation id="209751264101900360">از بامداد تا شامگاه - گردش ابرها</translation> <translation id="2102231663024125441">ویرایش نوشتار</translation> <translation id="2105810540595158374">دستگاه کنترل بازی است.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />، نسخه <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">رسانه</translation> <translation id="4289540628985791613">نمای کلی</translation> <translation id="4289849978083912975">نمایش اسلاید</translation> +<translation id="4293621540182258188">از بامداد تا شامگاه - گردش زمین</translation> <translation id="4297501883039923494">متوقف شد - خطای نامشخص</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> تصویر</translation> <translation id="4311195029067684288">پر</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">افزایش روشنایی نمایشگر</translation> <translation id="57838592816432529">بیصدا کردن</translation> <translation id="5784136236926853061">تأخیر زیاد HTTP</translation> +<translation id="5809090008577139505">شفق قطبی</translation> <translation id="5826644637650799838">درباره اثر هنری</translation> <translation id="5832805196449965646">افزودن شخص</translation> <translation id="583281660410589416">ناشناس</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">رنگ کلید</translation> <translation id="5916084858004523819">ممنوع</translation> <translation id="5916664084637901428">روشن</translation> +<translation id="5918201491776799918">انتخاب کار هنری Chromebook Plus اختصاصی</translation> <translation id="5921506667911082617">{COUNT,plural, =1{فایل شما باموفقیت اسکن شد و در <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> ذخیره شد.}one{فایل شما باموفقیت اسکن شد و در <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> ذخیره شد.}other{فایلهای شما باموفقیت اسکن شد و در <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> ذخیره شد.}}</translation> <translation id="5931523347251946569">فایل پیدا نشد</translation> <translation id="5939518447894949180">بازنشانی</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">انتخاب <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">ابزارهای برنامهنویس</translation> +<translation id="8153923300383192510">Chromebook Plus اختصاصی</translation> <translation id="8179976553408161302">ورود</translation> <translation id="8183974620058026102">پیوست</translation> <translation id="8206859287963243715">سلولی</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb index 9ef689f..f69f84d 100644 --- a/chromeos/strings/chromeos_strings_gu.xtb +++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">વધુ સેટિંગ</translation> <translation id="2085089206770112532">ડિસ્પ્લેનું બ્રાઇટનેસ ઘટાડવાની કી</translation> +<translation id="209751264101900360">સૂર્યોદયથી સૂર્યાસ્ત સુધી- ક્લાઉડ ફ્લો</translation> <translation id="2102231663024125441">ટેક્સ્ટ એડિટિંગ</translation> <translation id="2105810540595158374">ડિવાઇસ એક ગેમ કન્ટ્રોલર છે.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, વર્ઝન <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">મીડિયા</translation> <translation id="4289540628985791613">ઓવરવ્યૂ</translation> <translation id="4289849978083912975">સ્લાઇડ શો</translation> +<translation id="4293621540182258188">સૂર્યોદયથી સૂર્યાસ્ત સુધી - અર્થ ફ્લો</translation> <translation id="4297501883039923494">બંધ - અજાણી ભૂલ</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> છબી</translation> <translation id="4311195029067684288">પૂર્ણ</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">ડિસ્પ્લેનું બ્રાઇટનેસ વધારવાની કી</translation> <translation id="57838592816432529">અવાજ બંધ કરો</translation> <translation id="5784136236926853061">HTTPની ઉચ્ચ વિલંબતા</translation> +<translation id="5809090008577139505">ધ્રુવીય પ્રકાશ</translation> <translation id="5826644637650799838">આર્ટ વિશે</translation> <translation id="5832805196449965646">વ્યક્તિ ઉમેરો</translation> <translation id="583281660410589416">અજ્ઞાત</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">કીનો રંગ</translation> <translation id="5916084858004523819">નિષિદ્ધ</translation> <translation id="5916664084637901428">ચાલુ</translation> +<translation id="5918201491776799918">Chromebook Plusનું એક્સક્લુઝિવ આર્ટવર્ક પસંદ કરો</translation> <translation id="5921506667911082617">{COUNT,plural, =1{તમારી ફાઇલ સફળતાપૂર્વક સ્કૅન કરવામાં આવી અને <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />માં સાચવવામાં આવી.}one{તમારી ફાઇલ સફળતાપૂર્વક સ્કૅન કરવામાં આવી અને <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />માં સાચવવામાં આવી.}other{તમારી ફાઇલો સફળતાપૂર્વક સ્કૅન કરવામાં આવી અને <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />માં સાચવવામાં આવી.}}</translation> <translation id="5931523347251946569">ફાઇલ મળી નથી</translation> <translation id="5939518447894949180">રીસેટ કરો</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> પસંદ કરો</translation> <translation id="8151185429379586178">વિકાસકર્તા સાધનો</translation> +<translation id="8153923300383192510">Chromebook Plus એક્સક્લુઝિવ</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">જોડો</translation> <translation id="8206859287963243715">સેલ્યુલર</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb index 8deb5b9..8ec2f002 100644 --- a/chromeos/strings/chromeos_strings_id.xtb +++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">Setelan lain</translation> <translation id="2085089206770112532">Kurangi kecerahan layar</translation> +<translation id="209751264101900360">Fajar ke petang - Aliran Awan</translation> <translation id="2102231663024125441">Pengeditan teks</translation> <translation id="2105810540595158374">Perangkat adalah pengontrol game.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, versi <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">Media</translation> <translation id="4289540628985791613">Ringkasan</translation> <translation id="4289849978083912975">Slideshow</translation> +<translation id="4293621540182258188">Fajar ke petang - Aliran Bumi</translation> <translation id="4297501883039923494">Dihentikan - Error tidak diketahui</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> Gambar</translation> <translation id="4311195029067684288">Penuh</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">Tingkatkan kecerahan layar</translation> <translation id="57838592816432529">Bisukan</translation> <translation id="5784136236926853061">Latensi HTTP tinggi</translation> +<translation id="5809090008577139505">Aurora</translation> <translation id="5826644637650799838">Tentang karya seni</translation> <translation id="5832805196449965646">Tambahkan Pengguna</translation> <translation id="583281660410589416">Tidak dikenal</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">warna tombol</translation> <translation id="5916084858004523819">Terlarang</translation> <translation id="5916664084637901428">Aktif</translation> +<translation id="5918201491776799918">Pilih karya seni khusus Chromebook Plus</translation> <translation id="5921506667911082617">{COUNT,plural, =1{File Anda berhasil dipindai dan disimpan ke <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}other{File Anda berhasil dipindai dan disimpan ke <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}}</translation> <translation id="5931523347251946569">File tidak ditemukan</translation> <translation id="5939518447894949180">Reset</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">Pilih <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">Developer Tools</translation> +<translation id="8153923300383192510">Khusus Chromebook Plus</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">Lampirkan</translation> <translation id="8206859287963243715">Seluler</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb index 9a887322..eaa49dc0 100644 --- a/chromeos/strings/chromeos_strings_iw.xtb +++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">הגדרות נוספות</translation> <translation id="2085089206770112532">הפחתת הבהירות של התצוגה</translation> +<translation id="209751264101900360">מעלות השחר עד לרדת החושך – תנועת העננים</translation> <translation id="2102231663024125441">עריכת טקסט</translation> <translation id="2105810540595158374">המכשיר הוא שלט לגיימינג.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, גרסה <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">מדיה</translation> <translation id="4289540628985791613">סקירה כללית</translation> <translation id="4289849978083912975">מצגת</translation> +<translation id="4293621540182258188">מעלות השחר עד לרדת החושך – תנועת כדור הארץ</translation> <translation id="4297501883039923494">הפסיקה – שגיאה לא ידועה</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> תמונות</translation> <translation id="4311195029067684288">מלא</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">הגברה של בהירות התצוגה</translation> <translation id="57838592816432529">השתקה</translation> <translation id="5784136236926853061">משך זמן ההמתנה ל-HTTP ארוך</translation> +<translation id="5809090008577139505">הזוהר הצפוני</translation> <translation id="5826644637650799838">מידע על יצירת האומנות</translation> <translation id="5832805196449965646">הוספת משתמש</translation> <translation id="583281660410589416">לא ידוע</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">הצבע העיקרי</translation> <translation id="5916084858004523819">אסור</translation> <translation id="5916664084637901428">פועל</translation> +<translation id="5918201491776799918">בחירת יצירות אומנות בלעדיות ב-Chromebook Plus</translation> <translation id="5921506667911082617">{COUNT,plural, =1{הקובץ נסרק בהצלחה ונשמר בתיקייה <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}one{הקבצים נסרקו בהצלחה ונשמרו בתיקייה <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}two{הקבצים נסרקו בהצלחה ונשמרו בתיקייה <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}other{הקבצים נסרקו בהצלחה ונשמרו בתיקייה <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}}</translation> <translation id="5931523347251946569">הקובץ לא נמצא</translation> <translation id="5939518447894949180">איפוס</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">בחירת <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">כלים למפתחים</translation> +<translation id="8153923300383192510">בלעדי ב-Chromebook Plus</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">צירוף</translation> <translation id="8206859287963243715">סלולארי</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb index c14aae9d..c458e9a 100644 --- a/chromeos/strings/chromeos_strings_ja.xtb +++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4 / IPv6</translation> <translation id="2080070583977670716">詳細設定</translation> <translation id="2085089206770112532">ディスプレイの明るさを下げる</translation> +<translation id="209751264101900360">夜明けから夜更けまで - 雲の流れ</translation> <translation id="2102231663024125441">テキスト編集</translation> <translation id="2105810540595158374">デバイスの種類はゲーム コントローラです。</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />、バージョン <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">メディア</translation> <translation id="4289540628985791613">概要</translation> <translation id="4289849978083912975">スライドショー</translation> +<translation id="4293621540182258188">夜明けから夜更けまで - 地球の動き</translation> <translation id="4297501883039923494">停止 - 不明なエラー</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> 件の画像</translation> <translation id="4311195029067684288">100%</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">ディスプレイの明るさを上げる</translation> <translation id="57838592816432529">ミュート</translation> <translation id="5784136236926853061">HTTP レイテンシが高くなっています</translation> +<translation id="5809090008577139505">オーロラ</translation> <translation id="5826644637650799838">アートについて</translation> <translation id="5832805196449965646">ユーザーを追加</translation> <translation id="583281660410589416">不明</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">キーの色</translation> <translation id="5916084858004523819">禁止</translation> <translation id="5916664084637901428">オン</translation> +<translation id="5918201491776799918">Chromebook Plus 限定のアートワークを選択する</translation> <translation id="5921506667911082617">{COUNT,plural, =1{ファイルは正常にスキャンされ、<ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> に保存されました。}other{ファイルは正常にスキャンされ、<ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> に保存されました。}}</translation> <translation id="5931523347251946569">ファイルが見つかりません</translation> <translation id="5939518447894949180">リセット</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> を選択</translation> <translation id="8151185429379586178">デベロッパー ツール</translation> +<translation id="8153923300383192510">Chromebook Plus 限定</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">添付</translation> <translation id="8206859287963243715">携帯電話</translation>
diff --git a/chromeos/strings/chromeos_strings_kk.xtb b/chromeos/strings/chromeos_strings_kk.xtb index 1831068..b227ea67 100644 --- a/chromeos/strings/chromeos_strings_kk.xtb +++ b/chromeos/strings/chromeos_strings_kk.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">Қосымша параметрлер</translation> <translation id="2085089206770112532">Дисплей жарықтығын азайту</translation> +<translation id="209751264101900360">Таң атқаннан қараңғыға дейін – бұлт ағыны</translation> <translation id="2102231663024125441">Мәтінді өзгерту</translation> <translation id="2105810540595158374">Бұл — ойын контроллері.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, <ph name="MILESTONE_VERSION" />-нұсқа</translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">Мультимедиа</translation> <translation id="4289540628985791613">Шолу</translation> <translation id="4289849978083912975">Слайдшоу</translation> +<translation id="4293621540182258188">Таң атқаннан қараңғыға дейін – жер ағыны</translation> <translation id="4297501883039923494">Тоқтатылды: белгісіз қате</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> сурет</translation> <translation id="4311195029067684288">Толық</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">Дисплей жарықтығын арттыру</translation> <translation id="57838592816432529">Дыбысын өшіру</translation> <translation id="5784136236926853061">HTTP кідірісі жоғары.</translation> +<translation id="5809090008577139505">Шұғыла</translation> <translation id="5826644637650799838">Өнер туралы</translation> <translation id="5832805196449965646">Адам қосу</translation> <translation id="583281660410589416">Белгісіз</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">перне түсі</translation> <translation id="5916084858004523819">Тыйым салынды</translation> <translation id="5916664084637901428">Қосулы</translation> +<translation id="5918201491776799918">Chromebook Plus эксклюзивті афишасын таңдау</translation> <translation id="5921506667911082617">{COUNT,plural, =1{Файлыңыз сканерленді және <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> қалтасына сақталды.}other{Файлдарыңыз сканерленді және <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> қалтасына сақталды.}}</translation> <translation id="5931523347251946569">Файл табылмады.</translation> <translation id="5939518447894949180">Қалпына келтіру</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> таңдау</translation> <translation id="8151185429379586178">Әзірлеуші құралдары</translation> +<translation id="8153923300383192510">Тек Chromebook Plus үшін</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">Тіркеу</translation> <translation id="8206859287963243715">Ұялы</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb index 131aebd..c085fa55 100644 --- a/chromeos/strings/chromeos_strings_ko.xtb +++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">설정 더보기</translation> <translation id="2085089206770112532">디스플레이 밝기 낮추기</translation> +<translation id="209751264101900360">동이 틀 무렵부터 어두워지는 하늘 - 구름 흐름</translation> <translation id="2102231663024125441">텍스트 수정</translation> <translation id="2105810540595158374">게임 컨트롤러 기기입니다.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, 버전 <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">미디어</translation> <translation id="4289540628985791613">개요</translation> <translation id="4289849978083912975">슬라이드쇼</translation> +<translation id="4293621540182258188">동이 틀 무렵부터 어두워지는 하늘 - 지구 흐름</translation> <translation id="4297501883039923494">중지됨 - 알 수 없는 오류</translation> <translation id="4300073214558989">이미지 <ph name="IMAGE_COUNT" />개</translation> <translation id="4311195029067684288">전체화면</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">디스플레이 밝기 높이기</translation> <translation id="57838592816432529">음소거</translation> <translation id="5784136236926853061">HTTP 지연 시간 높음</translation> +<translation id="5809090008577139505">오로라</translation> <translation id="5826644637650799838">작품 정보</translation> <translation id="5832805196449965646">사용자 추가</translation> <translation id="583281660410589416">알 수 없음</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">키 색상</translation> <translation id="5916084858004523819">금지됨</translation> <translation id="5916664084637901428">사용</translation> +<translation id="5918201491776799918">Chromebook Plus 전용 예술작품을 선택합니다.</translation> <translation id="5921506667911082617">{COUNT,plural, =1{파일 스캔이 완료되어 <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />에 저장되었습니다.}other{파일 스캔이 완료되어 <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />에 저장되었습니다.}}</translation> <translation id="5931523347251946569">파일을 찾을 수 없음</translation> <translation id="5939518447894949180">초기화</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> 선택</translation> <translation id="8151185429379586178">개발자 도구</translation> +<translation id="8153923300383192510">Chromebook Plus 전용입니다.</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">접속</translation> <translation id="8206859287963243715">휴대전화</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb index cc2106e..1b861f60 100644 --- a/chromeos/strings/chromeos_strings_ms.xtb +++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">Lagi tetapan</translation> <translation id="2085089206770112532">Kurangkan kecerahan paparan</translation> +<translation id="209751264101900360">Subuh sehingga gelap - Aliran Awan</translation> <translation id="2102231663024125441">Pengeditan teks</translation> <translation id="2105810540595158374">Peranti ialah pengawal permainan.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, versi <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">Media</translation> <translation id="4289540628985791613">Gambaran keseluruhan</translation> <translation id="4289849978083912975">Tayangan slaid</translation> +<translation id="4293621540182258188">Subuh sehingga gelap - Aliran Bumi</translation> <translation id="4297501883039923494">Dihentikan - Ralat tidak diketahui</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> Imej</translation> <translation id="4311195029067684288">Penuh</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">Tingkatkan kecerahan paparan</translation> <translation id="57838592816432529">Redam</translation> <translation id="5784136236926853061">Kependaman HTTP tinggi</translation> +<translation id="5809090008577139505">Aurora</translation> <translation id="5826644637650799838">Perihal seni</translation> <translation id="5832805196449965646">Tambah Orang</translation> <translation id="583281660410589416">Tidak diketahui</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">warna utama</translation> <translation id="5916084858004523819">Dilarang</translation> <translation id="5916664084637901428">Hidupkan</translation> +<translation id="5918201491776799918">Pilih kerja seni eksklusif Chromebook Plus</translation> <translation id="5921506667911082617">{COUNT,plural, =1{Fail anda telah berjaya diimbas dan disimpan pada <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}other{Fail anda telah berjaya diimbas dan disimpan pada <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}}</translation> <translation id="5931523347251946569">Fail tidak dijumpai</translation> <translation id="5939518447894949180">Tetapkan semula</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">Pilih <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">Alat pembangun</translation> +<translation id="8153923300383192510">Chromebook Plus eksklusif</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">Lampir</translation> <translation id="8206859287963243715">Selular</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb index ec461a8..63bc171 100644 --- a/chromeos/strings/chromeos_strings_ne.xtb +++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">थप सेटिङहरू</translation> <translation id="2085089206770112532">डिस्प्लेको चमक घटाउने की</translation> +<translation id="209751264101900360">झिसमिसेदेखि अँध्यारोसम्म - Cloud Flow</translation> <translation id="2102231663024125441">टेक्स्ट एडिटिङ</translation> <translation id="2105810540595158374">यो डिभाइस गेम कन्ट्रोलर हो।</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, संस्करण <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">मिडिया</translation> <translation id="4289540628985791613">समीक्षा</translation> <translation id="4289849978083912975">Slide show</translation> +<translation id="4293621540182258188">झिसमिसेदेखि अँध्यारोसम्म - Earth Flow</translation> <translation id="4297501883039923494">रोकियो - अज्ञात त्रुटि भयो</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> वटा फोटो</translation> <translation id="4311195029067684288">फुल स्क्रिन खोल्नुहोस्</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">डिस्प्लेको चमक बढाउने की</translation> <translation id="57838592816432529">म्यूट गर्नुहोस्</translation> <translation id="5784136236926853061">HTTP को विलम्बता धेरै छ</translation> +<translation id="5809090008577139505">अरोरा</translation> <translation id="5826644637650799838">यस कलाकृतिसम्बन्धी जानकारी</translation> <translation id="5832805196449965646">व्यक्ति थप्नुहोस्</translation> <translation id="583281660410589416">अज्ञात</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">कीको रङ</translation> <translation id="5916084858004523819">प्रतिबन्धित</translation> <translation id="5916664084637901428">अन</translation> +<translation id="5918201491776799918">Chromebook Plus को खास कलाकृति चयन गर्नुहोस्</translation> <translation id="5921506667911082617">{COUNT,plural, =1{तपाईंको फाइल स्क्यान गर्ने काम पूरा भएको छ र उक्त फाइल <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> मा सुरक्षित गरिएको छ।}other{तपाईंका फाइलहरू स्क्यान गर्ने काम पूरा भएको छ र ती फाइलहरू <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> मा सुरक्षित गरिएका छन्।}}</translation> <translation id="5931523347251946569">फाइल भेट्टिएन</translation> <translation id="5939518447894949180">रिसेट गर्नुहोस्</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> चयन गर्नुहोस्</translation> <translation id="8151185429379586178">विकासकर्ता उपकरणहरू</translation> +<translation id="8153923300383192510">Chromebook Plus विशेष</translation> <translation id="8179976553408161302">प्रविष्टि गर्नुहोस्</translation> <translation id="8183974620058026102">एट्याच गर्नुहोस्</translation> <translation id="8206859287963243715">सेल्युलर</translation>
diff --git a/chromeos/strings/chromeos_strings_or.xtb b/chromeos/strings/chromeos_strings_or.xtb index 516678f7..d6db4fa6 100644 --- a/chromeos/strings/chromeos_strings_or.xtb +++ b/chromeos/strings/chromeos_strings_or.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">ଅଧିକ ସେଟିଂ</translation> <translation id="2085089206770112532">ଡିସପ୍ଲେର ଉଜ୍ଜ୍ୱଳତା କମ୍ କରନ୍ତୁ</translation> +<translation id="209751264101900360">ଡନ ଟୁ ଡାର୍କ - କ୍ଲାଉଡ ଫ୍ଲୋ</translation> <translation id="2102231663024125441">ଟେକ୍ସଟ ଏଡିଟିଂ</translation> <translation id="2105810540595158374">ଡିଭାଇସଟି ଏକ ଗେମ କଣ୍ଟ୍ରୋଲର ଅଟେ।</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, ସଂସ୍କରଣ <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">ମିଡିଆ</translation> <translation id="4289540628985791613">ଅବଲୋକନ</translation> <translation id="4289849978083912975">ସ୍ଲାଇଡ ଶୋ</translation> +<translation id="4293621540182258188">ଡନ ଟୁ ଡାର୍କ - ଅର୍ଥ ଫ୍ଲୋ</translation> <translation id="4297501883039923494">ବନ୍ଦ ହୋଇଯାଇଛି - ଅଜଣା ତ୍ରୁଟି</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" />ଟି ଛବି</translation> <translation id="4311195029067684288">ସମ୍ପୂର୍ଣ୍ଣ</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">ଡିସପ୍ଲେର ଉଜ୍ଜ୍ୱଳତା ବଢ଼ାନ୍ତୁ</translation> <translation id="57838592816432529">ମ୍ୟୁଟ୍</translation> <translation id="5784136236926853061">HTTPର ଅଧିକ ଲାଟେନ୍ସି</translation> +<translation id="5809090008577139505">ଅରୋରା</translation> <translation id="5826644637650799838">ଆର୍ଟ ବିଷୟରେ</translation> <translation id="5832805196449965646">ଲୋକଙ୍କୁ ଯୋଗ କରନ୍ତୁ</translation> <translation id="583281660410589416">ଅଜ୍ଞାତ</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">କୀ'ର ରଙ୍ଗ</translation> <translation id="5916084858004523819">ନିଷିଦ୍ଧ</translation> <translation id="5916664084637901428">ଚାଲୁ</translation> +<translation id="5918201491776799918">Chromebook Plusର ଏକ୍ସକ୍ଲୁସିଭ କଳାକୃତି ଚୟନ କରନ୍ତୁ</translation> <translation id="5921506667911082617">{COUNT,plural, =1{ଆପଣଙ୍କ ଫାଇଲକୁ ସଫଳତାପୂର୍ବକ ସ୍କାନ୍ କରାଯାଇ <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />ରେ ସେଭ୍ କରାଯାଇଛି।}other{ଆପଣଙ୍କ ଫାଇଲଗୁଡ଼ିକୁ ସଫଳତାପୂର୍ବକ ସ୍କାନ୍ କରାଯାଇ <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />ରେ ସେଭ୍ କରାଯାଇଛି।}}</translation> <translation id="5931523347251946569">ଫାଇଲ୍ ମିଳିଲା ନାହିଁ</translation> <translation id="5939518447894949180">ପୁନଃସେଟ୍</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> ଚୟନ କରନ୍ତୁ</translation> <translation id="8151185429379586178">ଡେଭେଲପର ଟୁଲଗୁଡ଼ିକ</translation> +<translation id="8153923300383192510">Chromebook Plus ଏକ୍ସକ୍ଲୁସିଭ</translation> <translation id="8179976553408161302">ପ୍ରବେଶ</translation> <translation id="8183974620058026102">ଆଟାଚ କରନ୍ତୁ</translation> <translation id="8206859287963243715">ସେଲ୍ୟୁଲାର୍</translation>
diff --git a/chromeos/strings/chromeos_strings_pa.xtb b/chromeos/strings/chromeos_strings_pa.xtb index 8a90f69..bfe6863c 100644 --- a/chromeos/strings/chromeos_strings_pa.xtb +++ b/chromeos/strings/chromeos_strings_pa.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">ਹੋਰ ਸੈਟਿੰਗਾਂ</translation> <translation id="2085089206770112532">ਡਿਸਪਲੇ ਦੀ ਚਮਕ ਘਟਾਉਣ ਵਾਲੀ ਕੁੰਜੀ</translation> +<translation id="209751264101900360">ਸਵੇਰ ਤੋਂ ਰਾਤ - ਬੱਦਲ ਪ੍ਰਵਾਹ</translation> <translation id="2102231663024125441">ਲਿਖਤ ਸੰਪਾਦਨ</translation> <translation id="2105810540595158374">ਡੀਵਾਈਸ ਇੱਕ ਗੇਮ ਕੰਟਰੋਲਰ ਹੈ।</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, ਵਰਜਨ <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">ਮੀਡੀਆ</translation> <translation id="4289540628985791613">ਓਵਰਵਿਊ</translation> <translation id="4289849978083912975">ਸਲਾਈਡ ਸ਼ੋਅ</translation> +<translation id="4293621540182258188">ਸਵੇਰ ਤੋਂ ਰਾਤ - ਧਰਤੀ ਪ੍ਰਵਾਹ</translation> <translation id="4297501883039923494">ਬੰਦ ਹੋ ਗਿਆ - ਅਗਿਆਤ ਗੜਬੜ</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> ਚਿੱਤਰ</translation> <translation id="4311195029067684288">ਪੂਰੀ ਸਕ੍ਰੀਨ</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">ਡਿਸਪਲੇ ਦੀ ਚਮਕ ਵਧਾਉਣ ਵਾਲੀ ਕੁੰਜੀ</translation> <translation id="57838592816432529">ਮਿਊਟ ਕਰੋ</translation> <translation id="5784136236926853061">ਜ਼ਿਆਦਾ HTTP ਵਿਲੰਬਤਾ</translation> +<translation id="5809090008577139505">ਪਹੁ-ਫੁਟਾਲਾ</translation> <translation id="5826644637650799838">ਕਲਾ ਬਾਰੇ</translation> <translation id="5832805196449965646">ਵਿਅਕਤੀ ਜੋੜੋ</translation> <translation id="583281660410589416">ਅਗਿਆਤ</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">ਕੁੰਜੀ ਦਾ ਰੰਗ</translation> <translation id="5916084858004523819">ਪਾਬੰਦੀ ਲਗਾਈ ਗਈ</translation> <translation id="5916664084637901428">ਚਾਲੂ</translation> +<translation id="5918201491776799918">Chromebook Plus ਲਈ ਖਾਸ ਆਰਟਵਰਕ ਚੁਣੋ</translation> <translation id="5921506667911082617">{COUNT,plural, =1{ਤੁਹਾਡੀ ਫ਼ਾਈਲ ਸਫਲਤਾਪੂਰਕ ਸਕੈਨ ਕੀਤੀ ਗਈ ਅਤੇ <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੀ ਗਈ।}one{ਤੁਹਾਡੀ ਫ਼ਾਈਲ ਸਫਲਤਾਪੂਰਕ ਸਕੈਨ ਕੀਤੀ ਗਈ ਅਤੇ <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੀ ਗਈ।}other{ਤੁਹਾਡੀਆਂ ਫ਼ਾਈਲਾਂ ਸਫਲਤਾਪੂਰਕ ਸਕੈਨ ਕੀਤੀਆਂ ਗਈਆਂ ਅਤੇ <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੀਆਂ ਗਈਆਂ।}}</translation> <translation id="5931523347251946569">ਫ਼ਾਈਲ ਨਹੀਂ ਮਿਲੀ</translation> <translation id="5939518447894949180">ਰੀਸੈਟ ਕਰੋ</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> ਚੁਣੋ</translation> <translation id="8151185429379586178">ਵਿਕਾਸਕਾਰ ਟੂਲਾਂ</translation> +<translation id="8153923300383192510">Chromebook Plus ਲਈ ਖਾਸ</translation> <translation id="8179976553408161302">ਦਰਜ ਕਰੋ</translation> <translation id="8183974620058026102">ਨੱਥੀ ਕਰੋ</translation> <translation id="8206859287963243715">Cellular</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb index 86757348..038089f 100644 --- a/chromeos/strings/chromeos_strings_sw.xtb +++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">Mipangilio zaidi</translation> <translation id="2085089206770112532">Punguza mwangaza wa skrini</translation> +<translation id="209751264101900360">Asubuhi mpaka usiku - Kulingana na Mawingu</translation> <translation id="2102231663024125441">Kubadilisha maandishi</translation> <translation id="2105810540595158374">Kifaa hiki ni kidhibiti cha mchezo.</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />, toleo la <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">Vyombo vya Habari</translation> <translation id="4289540628985791613">Muhtasari</translation> <translation id="4289849978083912975">Onyesho la slaidi</translation> +<translation id="4293621540182258188">Asubuhi mpaka usiku - Kulingana na Dunia</translation> <translation id="4297501883039923494">Imesimama - Hitilafu isiyojulikana</translation> <translation id="4300073214558989">Picha <ph name="IMAGE_COUNT" /></translation> <translation id="4311195029067684288">Imejaa</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">Ongeza mwangaza wa skrini</translation> <translation id="57838592816432529">Zima sauti</translation> <translation id="5784136236926853061">Muda mwingi wa kusubiri maombi ya HTTP</translation> +<translation id="5809090008577139505">Aurora</translation> <translation id="5826644637650799838">Kuhusu sanaa hii</translation> <translation id="5832805196449965646">Ongeza Mtumiaji Mwingine</translation> <translation id="583281660410589416">Haijulikani</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">rangi ya kitufe</translation> <translation id="5916084858004523819">Marufuku</translation> <translation id="5916664084637901428">Imewashwa</translation> +<translation id="5918201491776799918">Chagua kazi za sanaa za kipekee za Chromebook Plus</translation> <translation id="5921506667911082617">{COUNT,plural, =1{Faili yako imechanganuliwa na imehifadhiwa kwenye <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}other{Faili zako zimechanganuliwa na zimehifadhiwa kwenye <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />.}}</translation> <translation id="5931523347251946569">Faili haijapatikana</translation> <translation id="5939518447894949180">Weka upya</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">Chagua <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> <translation id="8151185429379586178">Zana za wasanidi programu</translation> +<translation id="8153923300383192510">Chromebook Plus pekee</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">Ambatisha</translation> <translation id="8206859287963243715">Simu ya Mkononi</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb index fc4ab4720..e5fcc7ca 100644 --- a/chromeos/strings/chromeos_strings_zh-HK.xtb +++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">顯示更多設定</translation> <translation id="2085089206770112532">顯示屏校暗亮度</translation> +<translation id="209751264101900360">黎明到黃昏 - 雲朵動態</translation> <translation id="2102231663024125441">文字編輯</translation> <translation id="2105810540595158374">裝置類型係遊戲控制器。</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />,版本 <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">媒體</translation> <translation id="4289540628985791613">概覽</translation> <translation id="4289849978083912975">投影片</translation> +<translation id="4293621540182258188">黎明到黃昏 - 地球動態</translation> <translation id="4297501883039923494">已停止 - 不明錯誤</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> 張圖片</translation> <translation id="4311195029067684288">完整</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">顯示屏校光亮度</translation> <translation id="57838592816432529">静音</translation> <translation id="5784136236926853061">HTTP 延遲時間過長</translation> +<translation id="5809090008577139505">極光</translation> <translation id="5826644637650799838">關於此桌布</translation> <translation id="5832805196449965646">新增使用者</translation> <translation id="583281660410589416">不明</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">按鍵顏色</translation> <translation id="5916084858004523819">禁止</translation> <translation id="5916664084637901428">開啟</translation> +<translation id="5918201491776799918">選取 Chromebook Plus 獨家藝術圖片</translation> <translation id="5921506667911082617">{COUNT,plural, =1{您的檔案已成功掃瞄,並儲存至「<ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />」資料夾。}other{您的檔案已成功掃瞄,並儲存至「<ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />」資料夾。}}</translation> <translation id="5931523347251946569">找不到檔案</translation> <translation id="5939518447894949180">重設</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">揀「<ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />」</translation> <translation id="8151185429379586178">開發人員工具</translation> +<translation id="8153923300383192510">Chromebook Plus 獨家內容</translation> <translation id="8179976553408161302">Enter 鍵</translation> <translation id="8183974620058026102">附加</translation> <translation id="8206859287963243715">蜂窩</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb index 6e99482d4..721f522 100644 --- a/chromeos/strings/chromeos_strings_zh-TW.xtb +++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -140,6 +140,7 @@ <translation id="2056550196601855911">IPv4/IPv6</translation> <translation id="2080070583977670716">顯示更多設定</translation> <translation id="2085089206770112532">顯示亮度調低</translation> +<translation id="209751264101900360">黎明到黃昏 - 雲朵動態</translation> <translation id="2102231663024125441">文字編輯</translation> <translation id="2105810540595158374">裝置類型為遊戲控制器。</translation> <translation id="2119172414412204879"><ph name="BOARD_NAME" />,版本 <ph name="MILESTONE_VERSION" /></translation> @@ -370,6 +371,7 @@ <translation id="4275663329226226506">媒體</translation> <translation id="4289540628985791613">總覽</translation> <translation id="4289849978083912975">播放投影片</translation> +<translation id="4293621540182258188">黎明到黃昏 - 地球動態</translation> <translation id="4297501883039923494">已停止 - 不明的錯誤</translation> <translation id="4300073214558989"><ph name="IMAGE_COUNT" /> 張圖片</translation> <translation id="4311195029067684288">完整</translation> @@ -544,6 +546,7 @@ <translation id="576835345334454681">顯示亮度調高</translation> <translation id="57838592816432529">靜音</translation> <translation id="5784136236926853061">HTTP 延遲時間過長</translation> +<translation id="5809090008577139505">極光</translation> <translation id="5826644637650799838">關於這張桌布</translation> <translation id="5832805196449965646">新增使用者</translation> <translation id="583281660410589416">未知</translation> @@ -562,6 +565,7 @@ <translation id="5907649332524363701">按鍵顏色</translation> <translation id="5916084858004523819">禁止</translation> <translation id="5916664084637901428">開啟</translation> +<translation id="5918201491776799918">選取 Chromebook Plus 獨家藝術圖片</translation> <translation id="5921506667911082617">{COUNT,plural, =1{檔案掃描完成,現已存放在「<ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />」資料夾。}other{檔案掃描完成,現已存放在「<ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" />」資料夾。}}</translation> <translation id="5931523347251946569">找不到檔案</translation> <translation id="5939518447894949180">重設</translation> @@ -818,6 +822,7 @@ <translation id="8138405288920084977">LTEAdvanced</translation> <translation id="8143951647992294073">選取「<ph name="TOPIC_SOURCE" /><ph name="TOPIC_SOURCE_DESC" />」</translation> <translation id="8151185429379586178">開發人員工具</translation> +<translation id="8153923300383192510">Chromebook Plus 獨家內容</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8183974620058026102">連接</translation> <translation id="8206859287963243715">手機</translation>
diff --git a/components/arc_strings.grdp b/components/arc_strings.grdp index f39b8d0..d893436 100644 --- a/components/arc_strings.grdp +++ b/components/arc_strings.grdp
@@ -91,10 +91,16 @@ <!-- ARC Passpoint approval dialog --> <message name="IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_TITLE" desc="Dialog title that asks user to allow an app to set up WiFi networks through Passpoint"> - Allow the <ph name="APP_NAME">$1<ex>OpenRoaming</ex></ph> app to set up WiFi networks? + Allow the <ph name="APP_NAME">$1<ex>OpenRoaming</ex></ph> app to set up Wi-Fi networks? </message> <message name="IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY" desc="Dialog body that asks user to allow an app to set up WiFi networks through Passpoint."> - This app is requesting permission to set up new WiFi networks. After setup, your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> will automatically connect to participating WiFi networks. <ph name="LEARN_MORE">$2<ex>Learn more</ex></ph> + This app is requesting permission to install Wi-Fi credentials. After setup, your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> will automatically connect to participating Wi-Fi networks. To remove these credentials, uninstall the app. + </message> + <message name="IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY_WITH_LEARN_MORE" desc="Dialog body that asks user to allow an app to set up WiFi networks through Passpoint."> + This app is requesting permission to install Wi-Fi credentials. After setup, your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> will automatically connect to participating Wi-Fi networks. To remove these credentials, uninstall the app. <ph name="LEARN_MORE">$2<ex>Learn more</ex></ph> + </message> + <message name="IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_SUBSCRIPTION_BODY_WITH_LEARN_MORE" desc="Dialog body that asks user to allow an app to set up WiFi networks through Passpoint. This dialog only exists if the Passpoint subscription is near its expiration date."> + Removing a Passpoint subscription from your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> will remove the associated networks. Contact "<ph name="FRIENDLY_NAME">$2<ex>OpenRoaming</ex></ph>" to make changes to your subscription plan. <ph name="LEARN_MORE">$3<ex>Learn more</ex></ph> </message> <message name="IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_LEARN_MORE_LABEL" desc="The label for the link that leads to a help support article to learn more about Passpoint."> Learn more
diff --git a/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY.png.sha1 b/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY.png.sha1 index 052af961..62eaffb5 100644 --- a/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY.png.sha1 +++ b/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY.png.sha1
@@ -1 +1 @@ -3d8b72edc6cac349f4f447e7780045b79b95cfc7 \ No newline at end of file +a1e688bd6e729e4d1a491d8c14b7f056e23f55f6 \ No newline at end of file
diff --git a/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY_WITH_LEARN_MORE.png.sha1 b/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY_WITH_LEARN_MORE.png.sha1 new file mode 100644 index 0000000..62eaffb5 --- /dev/null +++ b/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_BODY_WITH_LEARN_MORE.png.sha1
@@ -0,0 +1 @@ +a1e688bd6e729e4d1a491d8c14b7f056e23f55f6 \ No newline at end of file
diff --git a/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_SUBSCRIPTION_BODY_WITH_LEARN_MORE.png.sha1 b/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_SUBSCRIPTION_BODY_WITH_LEARN_MORE.png.sha1 new file mode 100644 index 0000000..62eaffb5 --- /dev/null +++ b/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_SUBSCRIPTION_BODY_WITH_LEARN_MORE.png.sha1
@@ -0,0 +1 @@ +a1e688bd6e729e4d1a491d8c14b7f056e23f55f6 \ No newline at end of file
diff --git a/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_TITLE.png.sha1 b/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_TITLE.png.sha1 index 052af961..62eaffb5 100644 --- a/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_TITLE.png.sha1 +++ b/components/arc_strings_grdp/IDS_ASH_ARC_PASSPOINT_APP_APPROVAL_TITLE.png.sha1
@@ -1 +1 @@ -3d8b72edc6cac349f4f447e7780045b79b95cfc7 \ No newline at end of file +a1e688bd6e729e4d1a491d8c14b7f056e23f55f6 \ No newline at end of file
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index 66b5c175..ea565c9 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "20.34", - "log_list_timestamp": "2023-04-09T12:54:55Z", + "version": "20.35", + "log_list_timestamp": "2023-04-10T12:55:02Z", "operators": [ { "name": "Google",
diff --git a/components/content_capture/OWNERS b/components/content_capture/OWNERS index 45bd69b..877f13a 100644 --- a/components/content_capture/OWNERS +++ b/components/content_capture/OWNERS
@@ -1,2 +1 @@ -michaelbai@chromium.org wangxianzhu@chromium.org
diff --git a/components/exo/client_controlled_shell_surface.cc b/components/exo/client_controlled_shell_surface.cc index d745593..c9554890 100644 --- a/components/exo/client_controlled_shell_surface.cc +++ b/components/exo/client_controlled_shell_surface.cc
@@ -800,6 +800,13 @@ //////////////////////////////////////////////////////////////////////////////// // aura::WindowObserver overrides: +void ClientControlledShellSurface::OnWindowDestroying(aura::Window* window) { + if (client_controlled_state_) { + client_controlled_state_->ResetDelegate(); + client_controlled_state_ = nullptr; + } + ShellSurfaceBase::OnWindowDestroying(window); +} void ClientControlledShellSurface::OnWindowAddedToRootWindow( aura::Window* window) { @@ -1299,8 +1306,10 @@ } void ClientControlledShellSurface::OnSurfaceDestroying(Surface* surface) { - if (client_controlled_state_) + if (client_controlled_state_) { client_controlled_state_->ResetDelegate(); + client_controlled_state_ = nullptr; + } ShellSurfaceBase::OnSurfaceDestroying(surface); }
diff --git a/components/exo/client_controlled_shell_surface.h b/components/exo/client_controlled_shell_surface.h index 81c5f604..e0af90d 100644 --- a/components/exo/client_controlled_shell_surface.h +++ b/components/exo/client_controlled_shell_surface.h
@@ -204,6 +204,7 @@ void OnDeviceScaleFactorChanged(float old_dsf, float new_dsf) override; // Overridden from aura::WindowObserver: + void OnWindowDestroying(aura::Window* window) override; void OnWindowAddedToRootWindow(aura::Window* window) override; // Overridden from display::DisplayObserver:
diff --git a/components/exo/shell_surface_base.cc b/components/exo/shell_surface_base.cc index 709642a..f084c7d 100644 --- a/components/exo/shell_surface_base.cc +++ b/components/exo/shell_surface_base.cc
@@ -1241,6 +1241,7 @@ // problematic with X11 as all of xwayland shares the same client. // - Transitively kill all the wl_resources rooted at this window's // wl_surface, which is not really supported in wayland. + surface_destroyed_callback_.Reset(); OnSurfaceDestroying(root_surface()); } @@ -1285,11 +1286,14 @@ // aura::WindowObserver overrides: void ShellSurfaceBase::OnWindowDestroying(aura::Window* window) { + surface_destroyed_callback_.Reset(); + if (window == parent_) SetParentInternal(nullptr); window->RemoveObserver(this); - if (widget_ && window == widget_->GetNativeWindow() && root_surface()) + if (widget_ && window == widget_->GetNativeWindow() && root_surface()) { root_surface()->ThrottleFrameRate(false); + } } void ShellSurfaceBase::OnWindowPropertyChanged(aura::Window* window,
diff --git a/components/exo/shell_surface_unittest.cc b/components/exo/shell_surface_unittest.cc index 0f8f0d56..c1b309dd 100644 --- a/components/exo/shell_surface_unittest.cc +++ b/components/exo/shell_surface_unittest.cc
@@ -959,36 +959,6 @@ EXPECT_FALSE(shell_surface.get()); } -void DestroyedCallbackCounter(int* count) { - *count += 1; -} - -TEST_F(ShellSurfaceTest, ForceClose) { - gfx::Size buffer_size(64, 64); - std::unique_ptr<Buffer> buffer( - new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size))); - std::unique_ptr<Surface> surface(new Surface); - std::unique_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); - surface->Attach(buffer.get()); - surface->Commit(); - ASSERT_TRUE(shell_surface->GetWidget()); - - int surface_destroyed_ctr = 0; - shell_surface->set_surface_destroyed_callback(base::BindOnce( - &DestroyedCallbackCounter, base::Unretained(&surface_destroyed_ctr))); - - // Since we did not set the close callback, closing this widget will have no - // effect. - shell_surface->GetWidget()->Close(); - EXPECT_TRUE(shell_surface->GetWidget()); - EXPECT_EQ(surface_destroyed_ctr, 0); - - // CloseNow() will always destroy the widget. - shell_surface->GetWidget()->CloseNow(); - EXPECT_FALSE(shell_surface->GetWidget()); - EXPECT_EQ(surface_destroyed_ctr, 1); -} - TEST_F(ShellSurfaceTest, ConfigureCallback) { // Must be before shell_surface so it outlives it, for shell_surface's // destructor calls Configure() referencing these 4 variables.
diff --git a/components/exo/surface_tree_host.cc b/components/exo/surface_tree_host.cc index a391bb1..c15c6dea2 100644 --- a/components/exo/surface_tree_host.cc +++ b/components/exo/surface_tree_host.cc
@@ -125,7 +125,6 @@ SetRootSurface(nullptr); LayerTreeFrameSinkHolder::DeleteWhenLastResourceHasBeenReclaimed( std::move(layer_tree_frame_sink_holder_)); - CleanUpCallbacks(); }
diff --git a/components/exo/wayland/BUILD.gn b/components/exo/wayland/BUILD.gn index c1ad58c..8e876a7 100644 --- a/components/exo/wayland/BUILD.gn +++ b/components/exo/wayland/BUILD.gn
@@ -301,6 +301,7 @@ "clients/security_delegate_binding_test.cc", "output_metrics_unittest.cc", "server_unittest.cc", + "shell_unittest.cc", "surface_augmenter_unittest.cc", "surface_unittest.cc", "wayland_aura_shell_server_test.cc",
diff --git a/components/exo/wayland/shell_unittest.cc b/components/exo/wayland/shell_unittest.cc new file mode 100644 index 0000000..6778091 --- /dev/null +++ b/components/exo/wayland/shell_unittest.cc
@@ -0,0 +1,238 @@ +// 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/exo/wayland/wayland_display_output.h" + +#include <xdg-shell-client-protocol.h> +#include <cstdint> + +#include "base/test/bind.h" +#include "base/test/task_environment.h" +#include "components/exo/shell_surface_util.h" +#include "components/exo/wayland/test/client_util.h" +#include "components/exo/wayland/test/server_util.h" +#include "components/exo/wayland/test/wayland_server_test.h" + +namespace exo::wayland { + +namespace { + +// A custom shell object which can act as xdg toplevel or remote surface. +// TODO(oshima): Implement more key events complete and move to a separate file. +class ShellClientData : public test::TestClient::CustomData { + public: + explicit ShellClientData(test::TestClient* client) + : client_(client), + surface_(wl_compositor_create_surface(client->compositor())) {} + ~ShellClientData() override { Close(); } + + // Xdg Shell related methods. + static void OnXdgToplevelClose(void* data, struct xdg_toplevel* toplevel) { + static_cast<ShellClientData*>(data)->Close(); + } + + void CreateXdgToplevel() { + constexpr xdg_toplevel_listener xdg_toplevel_listener = { + [](void*, xdg_toplevel*, int32_t, int32_t, wl_array*) {}, + &OnXdgToplevelClose, + [](void*, xdg_toplevel*, int32_t, int32_t) {}, + [](void*, xdg_toplevel*, wl_array*) {}, + }; + + xdg_surface_.reset( + xdg_wm_base_get_xdg_surface(client_->xdg_wm_base(), surface_.get())); + xdg_toplevel_.reset(xdg_surface_get_toplevel(xdg_surface_.get())); + xdg_toplevel_add_listener(xdg_toplevel_.get(), &xdg_toplevel_listener, + this); + } + + // Remote Shell related methods. + static void OnRemoteSurfaceClose(void* data, zcr_remote_surface_v2*) { + static_cast<ShellClientData*>(data)->Close(); + } + + void CreateRemoteSurface() { + static constexpr zcr_remote_surface_v2_listener remote_surface_v2_listener = + { + &OnRemoteSurfaceClose, + [](void*, zcr_remote_surface_v2*, uint32_t) {}, + [](void*, zcr_remote_surface_v2*, int, int, int, int) {}, + [](void*, zcr_remote_surface_v2*, uint32_t, uint32_t, int32_t, + int32_t, int32_t, int32_t, uint32_t) {}, + [](void*, zcr_remote_surface_v2*, uint32_t) {}, + [](void*, zcr_remote_surface_v2*, int32_t, int32_t, int32_t) {}, + [](void*, zcr_remote_surface_v2*, int32_t) {}, + [](void*, zcr_remote_surface_v2*, wl_output*, int32_t, int32_t, + int32_t, int32_t, uint32_t) {}, + }; + + remote_surface_.reset(zcr_remote_shell_v2_get_remote_surface( + client_->cr_remote_shell_v2(), surface_.get(), + ZCR_REMOTE_SHELL_V2_CONTAINER_DEFAULT)); + zcr_remote_surface_v2_add_listener(remote_surface_.get(), + &remote_surface_v2_listener, this); + } + + void Pin() { + zcr_remote_surface_v2_pin(remote_surface_.get(), /*trusted=*/true); + } + + // Common to both xdg toplevel and remote surface. + void CreateAndAttachBuffer(const gfx::Size& size) { + buffer_ = client_->shm_buffer_factory()->CreateBuffer(0, size.width(), + size.height()); + wl_surface_attach(surface_.get(), buffer_->resource(), 0, 0); + } + + void Commit() { wl_surface_commit(surface_.get()); } + + void DestroySurface() { wl_surface_destroy(surface_.release()); } + + void Close() { + close_called_ = true; + if (surface_) { + wl_surface_attach(surface_.get(), nullptr, 0, 0); + } + if (buffer_) { + wl_buffer_destroy(buffer_->resource()); + } + buffer_.release(); + if (xdg_toplevel_) { + xdg_toplevel_destroy(xdg_toplevel_.release()); + xdg_surface_destroy(xdg_surface_.release()); + } + if (remote_surface_) { + zcr_remote_surface_v2_destroy(remote_surface_.release()); + } + if (surface_) { + wl_surface_destroy(surface_.release()); + } + } + + test::ResourceKey GetSurfaceResourceKey() const { + return test::client_util::GetResourceKey(surface_.get()); + } + + bool close_called() const { return close_called_; } + + private: + bool close_called_ = false; + test::TestClient* const client_; + std::unique_ptr<wl_surface> surface_; + std::unique_ptr<xdg_surface> xdg_surface_; + std::unique_ptr<xdg_toplevel> xdg_toplevel_; + std::unique_ptr<zcr_remote_surface_v2> remote_surface_; + std::unique_ptr<test::TestBuffer> buffer_; +}; + +enum TestCases { + XdgWidgetClose, + XdgWidgetCloseNow, + XdgWindowDelete, + RemoteWidgetClose, + RemoteWidgetCloseNow, + RemoteWindowDelete, +}; + +class ShellTest : public test::WaylandServerTest, + public testing::WithParamInterface<TestCases> { + public: + ShellTest() = default; + ShellTest(const ShellTest&) = delete; + ShellTest& operator=(const ShellTest&) = delete; + ~ShellTest() override = default; + + bool IsXdgShell() { + return GetParam() == XdgWidgetCloseNow || GetParam() == XdgWindowDelete; + } + + bool IsWidgetCloseNow() { + return GetParam() == XdgWidgetCloseNow || + GetParam() == RemoteWidgetCloseNow; + } + bool IsWidgetClose() { + return GetParam() == XdgWidgetClose || GetParam() == RemoteWidgetClose; + } +}; + +} // namespace + +INSTANTIATE_TEST_SUITE_P(Xdg, + ShellTest, + testing::Values(XdgWidgetClose, + XdgWidgetCloseNow, + XdgWindowDelete)); +INSTANTIATE_TEST_SUITE_P(Remote, + ShellTest, + testing::Values(RemoteWidgetClose, + RemoteWidgetCloseNow, + RemoteWindowDelete)); + +// Make sure that xdg topevel/remote surfaces can be +// destroyed via Widget::CloseNow and window deletion. +// (b/276351837) +TEST_P(ShellTest, ShellDestruction) { + test::ResourceKey surface_key; + + PostToClientAndWait([&](test::TestClient* client) { + ASSERT_TRUE(client->InitShmBufferFactory(256 * 256 * 4)); + + auto data = std::make_unique<ShellClientData>(client); + auto* data_ptr = data.get(); + client->set_data(std::move(data)); + if (IsXdgShell()) { + data_ptr->CreateXdgToplevel(); + } else { + data_ptr->CreateRemoteSurface(); + } + data_ptr->CreateAndAttachBuffer({256, 256}); + data_ptr->Commit(); + surface_key = data_ptr->GetSurfaceResourceKey(); + }); + + Surface* surface = test::server_util::GetUserDataForResource<Surface>( + server_.get(), surface_key); + auto* shell_surface = + GetShellSurfaceBaseForWindow(surface->window()->GetToplevelWindow()); + ASSERT_TRUE(shell_surface); + ASSERT_TRUE(shell_surface->GetWidget()->IsVisible()); + if (IsWidgetClose()) { + shell_surface->GetWidget()->Close(); + base::RunLoop().RunUntilIdle(); + } else if (IsWidgetCloseNow()) { + shell_surface->GetWidget()->CloseNow(); + } else { + delete shell_surface->GetWidget()->GetNativeWindow(); + } +} + +using RemoteShellTest = test::WaylandServerTest; + +// Calling SetPined w/o commit should not crash (crbug.com/979128). +TEST_F(RemoteShellTest, DestroyRootSurfaceBeforeCommit) { + test::ResourceKey surface_key; + + PostToClientAndWait([&](test::TestClient* client) { + ASSERT_TRUE(client->InitShmBufferFactory(256 * 256 * 4)); + + auto data = std::make_unique<ShellClientData>(client); + auto* data_ptr = data.get(); + client->set_data(std::move(data)); + data_ptr->CreateRemoteSurface(); + data_ptr->CreateAndAttachBuffer({256, 256}); + surface_key = data_ptr->GetSurfaceResourceKey(); + }); + EXPECT_TRUE(test::server_util::GetUserDataForResource<Surface>(server_.get(), + surface_key)); + PostToClientAndWait([&](test::TestClient* client) { + auto* data_ptr = client->GetDataAs<ShellClientData>(); + data_ptr->DestroySurface(); + data_ptr->Pin(); + }); + + EXPECT_FALSE(test::server_util::GetUserDataForResource<Surface>(server_.get(), + surface_key)); +} + +} // namespace exo::wayland
diff --git a/components/offline_pages/core/background/request_coordinator_stub_taco.cc b/components/offline_pages/core/background/request_coordinator_stub_taco.cc index 80c6b09..271ef8f 100644 --- a/components/offline_pages/core/background/request_coordinator_stub_taco.cc +++ b/components/offline_pages/core/background/request_coordinator_stub_taco.cc
@@ -18,12 +18,16 @@ namespace offline_pages { +namespace { + class ActiveTabInfo : public RequestCoordinator::ActiveTabInfo { public: ~ActiveTabInfo() override {} bool DoesActiveTabMatch(const GURL&) override { return false; } }; +} // namespace + RequestCoordinatorStubTaco::RequestCoordinatorStubTaco() { policy_ = std::make_unique<OfflinerPolicy>(); queue_ =
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index 3812599..1dd08c0a 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -5387,6 +5387,7 @@ <translation id="6049117606554031363">Habilitar los informes sobre el estado de la placa del dispositivo</translation> <translation id="6050796253724099706">Habilitar los mensajes de voz en la pantalla de inicio de sesión</translation> <translation id="605132676434455096">No permitir que se añadan nuevos perfiles</translation> +<translation id="6053260874233331700">No permitir el acceso a la geolocalización en la pantalla de inicio de sesión.</translation> <translation id="6053681087509103368">Permitir que WebRTC use versiones obsoletas del protocolo TLD/DTLS</translation> <translation id="6056517174496942473">Habilitar el flujo de atestación de <ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" /> para una lista de URLs</translation> <translation id="6058879286588763839">A menos que se especifique <ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_POLICY_NAME" /> (lo que anula <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" />), si se asigna un valor a <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" />, se especificará la política de gestión de energía del modo de carga de la batería (si el dispositivo lo admite). Para ampliar la duración de la batería, esta política controla dinámicamente la carga de la batería reduciendo el desgaste y el estrés de la misma. @@ -7130,6 +7131,29 @@ <translation id="759957074386651883">Configuración de Navegación segura</translation> <translation id="7602621823177962064">Inhabilitar los informes sobre la memoria del dispositivo</translation> <translation id="7604169113182304895">Las aplicaciones para Android pueden aceptar esta lista voluntariamente. No se les puede forzar a que lo hagan.</translation> +<translation id="7605203688694672897">Configura el nivel de acceso a la geolocalización a nivel de dispositivo para +el sistema <ph name="PRODUCT_OS_NAME" />, que se +aplica antes de que un usuario inicie sesión. Después de iniciar sesión, los usuarios pueden controlar el +nivel de acceso a la geolocalización a través de la configuración del usuario. + +Si no se establece ningún valor o se asigna el valor <ph name="ALLOW" /> a esta política, se permitirá +el acceso a la geolocalización en la pantalla de inicio de sesión de los dispositivos gestionados. Si se asigna un valor no válido a la política, +el acceso volverá a +<ph name="DISALLOW" />. En los dispositivos no gestionados, siempre es +<ph name="DISALLOW" />. + +ADVERTENCIA: Ten cuidado al cambiar este ajuste, ya que podría interferir en otras políticas +relacionadas con la geolocalización +(por ejemplo, <ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" />). +En concreto, si a esta política se le asigna el valor <ph name="DISALLOW" />, +las opciones +<ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" /> +y +<ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" /> +de la política +<ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" /> +no funcionarán correctamente y solo usarán la resolución de ubicación basada en <ph name="IP" /> +en la pantalla <ph name="LOG_IN" />.</translation> <translation id="7608186022704392724">La función de enviar PINs automáticamente cambia la forma en la que se introducen los PINs en <ph name="PRODUCT_OS_NAME" />. En lugar de mostrar el mismo campo de texto que se utiliza para introducir contraseñas, esta función muestra una interfaz donde el usuario puede ver claramente cuántos @@ -7930,6 +7954,7 @@ Si esta política se inhabilita, no se mostrará un cuadro de diálogo de advertencia cuando el usuario intente salir.</translation> <translation id="830440838848984847">Permitir que los usuarios inicien sesión en <ph name="PRODUCT_NAME" /></translation> <translation id="8306117673860983372">Configuración de inicio de sesión</translation> +<translation id="8307340233340602723">Permitir o denegar el acceso a la geolocalización del dispositivo.</translation> <translation id="830819203330820450">Si se habilita o no se configura (opción predeterminada), una página web puede usar APIs de pantalla compartida (como getDisplayMedia() o la API de extensión de captura de pantalla en ordenadores) para pedir al usuario que elija de qué pestaña, ventana o escritorio quiere hacer una captura de pantalla. @@ -8932,6 +8957,7 @@ <translation id="9213751049772256263">Inhabilitar todas las variaciones</translation> <translation id="9217154963008402249">Frecuencia de los paquetes de red de monitorización</translation> <translation id="9220314833408124365">Usar una política de referente predeterminada de no-referrer-when-downgrade</translation> +<translation id="9221827710437832530">Permitir el acceso a la geolocalización en la pantalla de inicio de sesión.</translation> <translation id="922540222991413931">Configurar fuentes de instalación de secuencias de comandos de usuario, aplicaciones y extensiones</translation> <translation id="924557436754151212">Importar las contraseñas guardadas desde el navegador predeterminado en la primera ejecución</translation> <translation id="926104720905645793">Esta política controla los informes en la nube de <ph name="PRODUCT_NAME" />, que sube información sobre el funcionamiento del navegador a la <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index f2e2fa1..fdfa66e 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -5463,6 +5463,7 @@ <translation id="6049117606554031363">Aktifkan pelaporan status board perangkat</translation> <translation id="6050796253724099706">Aktifkan respons lisan di layar login</translation> <translation id="605132676434455096">Larang penambahan profil baru</translation> +<translation id="6053260874233331700">Larang akses geolokasi di layar login.</translation> <translation id="6053681087509103368">Izinkan WebRTC menggunakan versi protokol TLS/DTLS yang usang</translation> <translation id="6056517174496942473">Mengaktifkan alur pengesahan <ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" /> untuk daftar URL</translation> <translation id="6058879286588763839">Menyetel <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" /> akan menentukan kebijakan pengelolaan daya mode pengisian daya baterai (jika didukung di perangkat), kecuali <ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_POLICY_NAME" /> yang menggantikan <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" /> ditentukan. Untuk memperpanjang masa pakai baterai, kebijakan secara dinamis mengontrol pengisian daya baterai dengan meminimalkan ketegangan dan keausan. @@ -7230,6 +7231,29 @@ <translation id="759957074386651883">Setelan Safe Browsing</translation> <translation id="7602621823177962064">Nonaktifkan pelaporan info memori perangkat</translation> <translation id="7604169113182304895">Aplikasi Android dapat memilih untuk menerima daftar ini secara sukarela. Anda tidak dapat memaksa aplikasi untuk menerimanya.</translation> +<translation id="7605203688694672897">Menyetel tingkat akses geolokasi tingkat perangkat untuk +sistem <ph name="PRODUCT_OS_NAME" />, yang +berlaku sebelum pengguna login. Setelah login, pengguna dapat mengontrol +tingkat akses geolokasi melalui setelan masing-masing pengguna. + +Jika tidak disetel atau disetel ke <ph name="ALLOW" />, akses geolokasi layar login +akan diizinkan untuk perangkat terkelola. Jika nilai kebijakan yang tidak valid dikirim, +akses akan disetel ke +<ph name="DISALLOW" />. Untuk perangkat tidak terkelola, akses selalu +disetel ke <ph name="DISALLOW" />. + +PERINGATAN: Hati-hati saat mengubah setelan ini karena dapat melanggar kebijakan lain +yang melibatkan geolokasi +(mis. <ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" />)! +Khususnya, jika kebijakan ini disetel ke <ph name="DISALLOW" />, +opsi +<ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" /> +dan +<ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" /> +kebijakan +<ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" /> +akan gagal berfungsi dan hanya menggunakan resolusi lokasi berbasis <ph name="IP" /> +di layar <ph name="LOG_IN" />.</translation> <translation id="7608186022704392724">Fitur kirim otomatis PIN akan mengubah cara memasukkan PIN di <ph name="PRODUCT_OS_NAME" />. Fitur ini akan menampilkan UI khusus yang dengan jelas memperlihatkan kepada pengguna berapa digit yang diperlukan untuk PIN mereka, @@ -8041,6 +8065,7 @@ Jika kebijakan ini disetel ke Nonaktif, dialog peringatan tidak akan ditampilkan saat pengguna mencoba menutup browser.</translation> <translation id="830440838848984847">Izinkan pengguna login ke <ph name="PRODUCT_NAME" /></translation> <translation id="8306117673860983372">Setelan login</translation> +<translation id="8307340233340602723">Mengizinkan atau menolak akses geolokasi perangkat</translation> <translation id="830819203330820450">Jika diaktifkan atau tidak dikonfigurasi (default), suatu Halaman web dapat menggunakan API berbagi layar (misalnya, getDisplayMedia() atau API ekstensi Desktop Capture) untuk meminta pengguna memilih tab, jendela, atau desktop yang akan direkam. @@ -9054,6 +9079,7 @@ <translation id="9213751049772256263">Nonaktifkan semua variasi</translation> <translation id="9217154963008402249">Frekuensi paket jaringan pemantauan</translation> <translation id="9220314833408124365">Gunakan kebijakan perujuk default untuk no-referrer-when-downgrade</translation> +<translation id="9221827710437832530">Izinkan akses geolokasi di layar login.</translation> <translation id="922540222991413931">Konfigurasi sumber pemasangan skrip pengguna, aplikasi, dan ekstensi</translation> <translation id="924557436754151212">Impor sandi yang disimpan dari browser default saat pertama kali dijalankan</translation> <translation id="926104720905645793">Kebijakan ini mengontrol pelaporan cloud <ph name="PRODUCT_NAME" /> yang mengupload informasi tentang operasi browser ke <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 6fded45..891b7b9 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -5111,6 +5111,7 @@ <translation id="6049117606554031363">デバイスのボード ステータス レポートを有効にする</translation> <translation id="6050796253724099706">ログイン画面で音声フィードバックを有効にする</translation> <translation id="605132676434455096">新しいプロフィールの追加を許可しない</translation> +<translation id="6053260874233331700">ログイン画面で位置情報へのアクセスを許可しない。</translation> <translation id="6053681087509103368">WebRTC に TLD / DTLS プロトコルの廃止されたバージョンの使用を許可する</translation> <translation id="6056517174496942473"><ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" /> の認証フローを有効にする URL のリストを指定する</translation> <translation id="6058879286588763839"><ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_POLICY_NAME" /> が指定されていない場合に(指定されていれば <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" /> はオーバーライドされます)、<ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" /> ではバッテリー充電モードの電力管理ポリシーを指定できます(デバイスが対応している場合)。このポリシーでは、バッテリー充電を動的に制御して負荷と消耗を最小限に抑えることで、電池を長持ちさせます。 @@ -6746,6 +6747,12 @@ <translation id="759957074386651883">セーフ ブラウジングの設定</translation> <translation id="7602621823177962064">デバイスのメモリ情報レポートを無効にする</translation> <translation id="7604169113182304895">このリストを使用するかどうかは Android アプリ側の選択となります。Android アプリにリストの使用を強制することはできません。</translation> +<translation id="7605203688694672897">デバイスレベルの位置情報への <ph name="PRODUCT_OS_NAME" /> システムのアクセスレベルを設定します。この設定は、ユーザーがログインする前に有効になります。ログイン後は個々のユーザーの設定で位置情報へのアクセスレベルを制御できます。 + +このポリシーを設定しないか <ph name="ALLOW" /> に設定した場合、管理対象デバイスのログイン画面で位置情報へのアクセスが許可されます。無効なポリシーの値が送信されると、アクセスは <ph name="DISALLOW" /> にフォールバックされます。管理対象外デバイスの場合は、常に <ph name="DISALLOW" /> になります。 + +警告: この設定を変更すると、位置情報に関する他のポリシー(<ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" /> など)の動作に影響が生じる可能性があります。 +特に、このポリシーを <ph name="DISALLOW" /> に設定した場合、<ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" /> ポリシーの <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" /> や <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" /> オプションが適切に動作せず、<ph name="LOG_IN" /> 画面で <ph name="IP" /> ベースの位置情報のみが使用されます。</translation> <translation id="7608186022704392724">PIN の自動送信機能を使用すると、<ph name="PRODUCT_OS_NAME" /> での PIN の入力方法を変更できます。 パスワード入力に使用するのと同じテキスト欄を表示する代わりに、この機能では特別な UI を表示して、PIN に必要な桁数をユーザーに明示します。その結果、ユーザーの PIN の桁数は暗号化されたユーザーデータとは別に保存されます。6 桁~12 桁の PIN のみがサポートされます。このポリシーを true に設定した場合、ユーザーはロック画面とログイン画面で PIN を自動送信できます。 このポリシーを false に設定するか未設定のままにした場合、ユーザーはロック画面とログイン画面で PIN を自動送信できません。 @@ -7476,6 +7483,7 @@ このポリシーを無効に設定した場合、ユーザーが終了しようとしたときに警告ダイアログは表示されません。</translation> <translation id="830440838848984847">ユーザーに <ph name="PRODUCT_NAME" /> へのログインを許可する</translation> <translation id="8306117673860983372">ログイン設定</translation> +<translation id="8307340233340602723">デバイスの位置情報へのアクセスを許可またはブロックする</translation> <translation id="830819203330820450">有効にするか、未設定のままにした場合(デフォルト)、 ウェブページでは、画面共有 API(getDisplayMedia() や Desktop Capture extension API など)を使用して、 キャプチャ対象(タブ、ウィンドウ、デスクトップ)の選択を促すメッセージを表示できます。 @@ -8416,6 +8424,7 @@ <translation id="9213751049772256263">すべてのバリエーションを無効にします</translation> <translation id="9217154963008402249">監視ネットワーク パケットの送信間隔</translation> <translation id="9220314833408124365">デフォルトのリファラー ポリシー「no-referrer-when-downgrade」を使用する</translation> +<translation id="9221827710437832530">ログイン画面で位置情報へのアクセスを許可する。</translation> <translation id="922540222991413931">拡張機能、アプリ、ユーザー スクリプトのインストール ソースを設定する</translation> <translation id="924557436754151212">初回実行時にデフォルトのブラウザから保存したパスワードをインポートする</translation> <translation id="926104720905645793">このポリシーでは、<ph name="PRODUCT_NAME" /> のクラウド レポートを管理します。クラウド レポートでは、ブラウザの操作に関する情報が <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" /> にアップロードされます。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index b4265d45..281a10ae 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -5378,6 +5378,7 @@ <translation id="6049117606554031363">기기 보드 상태 보고 사용 설정</translation> <translation id="6050796253724099706">로그인 화면에서 음성 피드백 사용 설정</translation> <translation id="605132676434455096">새 프로필 추가 허용 안함</translation> +<translation id="6053260874233331700">로그인 화면에서 위치정보 액세스를 허용하지 않습니다.</translation> <translation id="6053681087509103368">WebRTC에서 지원 중단된 버전의 TLD/DTLS 프로토콜을 사용하도록 허용</translation> <translation id="6056517174496942473">URL 목록에 <ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" /> 증명 흐름 사용 설정</translation> <translation id="6058879286588763839"><ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" />보다 우선 적용되는 <ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_POLICY_NAME" />를 지정하지 않는 한 <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" />에서 배터리 충전 모드 전원 관리 정책을 지정합니다(기기에서 지원되는 경우). 배터리 수명을 연장하기 위해 정책에서 스트레스와 소모를 최소화하여 동적으로 배터리 충전을 제어합니다. @@ -7107,6 +7108,11 @@ <translation id="759957074386651883">세이프 브라우징 설정</translation> <translation id="7602621823177962064">기기 메모리 정보 보고 사용 중지</translation> <translation id="7604169113182304895">Android 앱이 자발적으로 이 목록을 사용하도록 선택할 수 있습니다. 강제로 Android 앱에서 이 목록을 사용하도록 할 수 없습니다.</translation> +<translation id="7605203688694672897"><ph name="PRODUCT_OS_NAME" /> 시스템에 대한 기기 수준의 위치정보 액세스 수준을 설정합니다. 이는 사용자가 로그인하기 전에 적용됩니다. 로그인한 후 사용자는 사용자별 설정을 통해 위치정보 액세스 수준을 제어할 수 있습니다. + +설정하지 않거나 <ph name="ALLOW" />로 설정하면 관리 기기의 로그인 화면 위치정보 액세스가 허용됩니다. 잘못된 정책 값이 전송되면 액세스 권한은 <ph name="DISALLOW" />로 대체됩니다. 관리되지 않는 기기의 경우 항상 <ph name="DISALLOW" />입니다. + +경고: 이 설정을 변경할 때 위치정보와 관련된 다른 정책(예: <ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" />)이 손상될 수 있으니 주의하세요. 특히 이 정책이 <ph name="DISALLOW" />(으)로 설정된 경우 그러면 <ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" /> 정책의 <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" /> 및 <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" /> 옵션이 오작동하고 <ph name="LOG_IN" /> 화면에 <ph name="IP" /> 기반 위치 확인만 사용합니다.</translation> <translation id="7608186022704392724">PIN 자동 제출 기능은 <ph name="PRODUCT_OS_NAME" />에서 PIN이 입력되는 방식을 변경합니다. 이 기능은 비밀번호 입력에 사용되는 텍스트 입력란을 표시하는 대신 사용자에게 PIN에 필요한 자릿수를 명확히 보여주는 @@ -7903,6 +7909,7 @@ 정책을 사용 안함으로 설정하면 사용자가 종료하려고 할 때 대화상자가 표시되지 않습니다.</translation> <translation id="830440838848984847">사용자가 <ph name="PRODUCT_NAME" />에 로그인하도록 허용</translation> <translation id="8306117673860983372">로그인 설정</translation> +<translation id="8307340233340602723">기기 위치정보 액세스 허용 또는 거부</translation> <translation id="830819203330820450">사용 설정되거나 구성되지 않은 경우(기본값), 웹페이지에서 화면 공유 API(예: getDisplayMedia() 또는 Desktop Capture extension API)를 사용해 사용자에게 캡처할 탭, 창, 바탕화면을 선택하라는 메시지를 표시할 수 있습니다. @@ -8903,6 +8910,7 @@ <translation id="9213751049772256263">모든 변형 사용 안함</translation> <translation id="9217154963008402249">네트워크 패킷 모니터링 빈도</translation> <translation id="9220314833408124365">no-referrer-when-downgrade의 기본 리퍼러 정책 사용</translation> +<translation id="9221827710437832530">로그인 화면에서 위치정보 액세스를 허용합니다.</translation> <translation id="922540222991413931">확장 프로그램, 앱, 사용자 스크립트 설치 소스 등 설정</translation> <translation id="924557436754151212">처음 실행 시 기본 브라우저에서 저장된 비밀번호 가져오기</translation> <translation id="926104720905645793">이 정책은 <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />에 브라우저 작동 정보를 업로드하는 <ph name="PRODUCT_NAME" /> 클라우드 보고 기능을 제어합니다.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index 0183551..d19bdc71 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -5418,6 +5418,7 @@ <translation id="6049117606554031363">Bật tính năng báo cáo trạng thái bảng thiết bị</translation> <translation id="6050796253724099706">Bật tính năng phản hồi bằng giọng nói trên màn hình đăng nhập</translation> <translation id="605132676434455096">Không cho phép thêm hồ sơ mới</translation> +<translation id="6053260874233331700">Không cho phép truy cập vào thông tin định vị vị trí trên màn hình đăng nhập.</translation> <translation id="6053681087509103368">Cho phép WebRTC sử dụng các phiên bản cũ của giao thức TLD/DTLS</translation> <translation id="6056517174496942473">Bật quy trình chứng thực <ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" /> cho một danh sách URL</translation> <translation id="6058879286588763839">Trừ khi bạn chỉ định <ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_POLICY_NAME" /> để ghi đè <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" />, tùy chọn cài đặt <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" /> sẽ chỉ định chính sách quản lý nguồn điện của chế độ sạc pin (nếu được hỗ trợ trên thiết bị). Để kéo dài thời lượng pin, chính sách này tự động kiểm soát hoạt động sạc pin bằng cách giảm thiểu ứng suất và mức độ hao mòn pin. @@ -7155,6 +7156,28 @@ <translation id="759957074386651883">Cài đặt Duyệt web an toàn</translation> <translation id="7602621823177962064">Tắt tính năng báo cáo thông tin về bộ nhớ của thiết bị</translation> <translation id="7604169113182304895">Các ứng dụng Android có thể chọn sử dụng danh sách này một cách tự nguyện. Bạn không thể buộc các ứng dụng đó sử dụng danh sách.</translation> +<translation id="7605203688694672897">Đặt cấp truy cập vào thông tin định vị vị trí cấp thiết bị cho +hệ thống <ph name="PRODUCT_OS_NAME" />. Điều này sẽ có hiệu lực +trước khi người dùng đăng nhập. Sau khi đăng nhập, người dùng có thể kiểm soát cấp truy cập vào +thông tin định vị vị trí thông qua chế độ cài đặt theo từng người dùng. + +Nếu bạn không đặt hoặc đặt thành <ph name="ALLOW" />, các thiết bị được quản lý +sẽ có thể truy cập vào thông tin định vị vị trí trên màn hình đăng nhập. Nếu bạn gửi một giá trị chính sách không hợp lệ, +quyền truy cập sẽ chuyển lại thành +<ph name="DISALLOW" />. Đối với các thiết bị không được quản lý, chế độ cài đặt luôn là +<ph name="DISALLOW" />. + +CẢNH BÁO: Hãy cẩn thận khi thay đổi chế độ cài đặt này. Điều này có thể vi phạm các chính sách khác +liên quan đến thông tin định vị vị trí +(ví dụ: <ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" />)! +Cụ thể là nếu chính sách này được đặt thành <ph name="DISALLOW" /> +thì các lựa chọn +<ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" /> +và +<ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" /> +của chính sách +<ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" /> +sẽ gặp sự cố và chỉ sử dụng độ phân giải vị trí dựa trên <ph name="IP" /> trên màn hình <ph name="LOG_IN" />.</translation> <translation id="7608186022704392724">Tính năng tự động gửi mã PIN thay đổi cách nhập mã PIN trên <ph name="PRODUCT_OS_NAME" />. Thay vì cho thấy cùng một trường văn bản dùng để nhập mật khẩu, tính năng này cho thấy một giao diện người dùng đặc biệt để cho người dùng biết rõ cần bao nhiêu @@ -7958,6 +7981,7 @@ Nếu bạn đặt chính sách này thành Tắt, hộp thoại nhắc nhở sẽ không xuất hiện khi người dùng định thoát.</translation> <translation id="830440838848984847">Cho phép người dùng đăng nhập vào <ph name="PRODUCT_NAME" /></translation> <translation id="8306117673860983372">Cài đặt đăng nhập</translation> +<translation id="8307340233340602723">Cho phép hoặc từ chối truy cập vào thông tin định vị vị trí của thiết bị</translation> <translation id="830819203330820450">Nếu bạn bật hoặc không định cấu hình (mặc định), thì trang web có thể dùng các API chia sẻ màn hình (ví dụ: getDisplayMedia() hoặc API tiện ích Chụp màn hình) để nhắc người dùng chọn thẻ, cửa sổ hoặc màn hình cần chụp. @@ -8979,6 +9003,7 @@ <translation id="9213751049772256263">Không cho phép tất cả các biến</translation> <translation id="9217154963008402249">Tần suất theo dõi gói mạng</translation> <translation id="9220314833408124365">Sử dụng chính sách liên kết giới thiệu mặc định no-referrer-when-downgrade</translation> +<translation id="9221827710437832530">Cho phép truy cập vào thông tin định vị vị trí trên màn hình đăng nhập.</translation> <translation id="922540222991413931">Định cấu hình nguồn cài đặt tiện ích, ứng dụng và tập lệnh người dùng</translation> <translation id="924557436754151212">Nhập mật khẩu đã lưu từ trình duyệt mặc định trong lần chạy đầu tiên</translation> <translation id="926104720905645793">Chính sách này kiểm soát hoạt động báo cáo của <ph name="PRODUCT_NAME" /> trên đám mây, cho phép tải thông tin về hoạt động của trình duyệt lên <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index 9ba0909..e035114 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -1160,6 +1160,13 @@ 如果將這項政策設為啟用或不設定,系統會啟用快速解答的定義功能。 如果停用這項政策,系統會停用快速解答的定義功能。</translation> +<translation id="2095778449451007308">這項政策可控管使用者能否在「設定」中啟用僅限 HTTPS 模式 (一律使用安全連線)。此模式會禁止瀏覽僅支援 HTTP 的網站。 + 如果將這項政策設為允許或不設定,使用者將可啟用僅限 HTTPS 模式。 + 如果將這項政策設為禁止,使用者無法啟用僅限 HTTPS 模式。 + 如果將這項政策設為 force_enabled,系統會啟用僅限 HTTPS 模式,而且使用者無法停用。 + 自 M112 版起,系統將支援強制啟用僅限 HTTPS 模式。 + +獨立的 <ph name="HTTP_ALLOWLIST_POLICY_NAME" /> 政策可用於排除特定主機名稱或主機名稱模式,避免這項功能將其升級為 HTTPS。</translation> <translation id="209586405398070749">穩定版</translation> <translation id="2096932573113293941">要求使用授予權限以執行需要授權的外掛程式</translation> <translation id="2098658257603918882">啟用使用量和當機相關資料的報告功能</translation> @@ -5279,6 +5286,7 @@ <translation id="6049117606554031363">啟用裝置主機板狀態回報功能</translation> <translation id="6050796253724099706">在登入畫面上啟用互動朗讀功能</translation> <translation id="605132676434455096">不允許新增設定檔</translation> +<translation id="6053260874233331700">不允許在登入畫面上存取地理位置。</translation> <translation id="6053681087509103368">允許 WebRTC 使用過時的 TLD/DTLS 通訊協定版本</translation> <translation id="6056517174496942473">針對清單中的網址啟用「<ph name="CHROME_ENTERPRISE_DEVICE_TRUST_CONNECTOR" />」認證流程</translation> <translation id="6058879286588763839">除非已指定會覆寫 <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" /> 的 <ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_POLICY_NAME" />,否則你可以透過設定 <ph name="DEVICE_BATTERY_CHARGE_MODE_POLICY_NAME" />,在支援的裝置上指定充電模式電源管理政策。為了延長電池壽命,這項政策會透過盡可能避免過度使用及損耗電池,以動態方式控制充電狀態。 @@ -6985,6 +6993,11 @@ <translation id="759957074386651883">安全瀏覽設定</translation> <translation id="7602621823177962064">停用裝置記憶體資訊回報功能</translation> <translation id="7604169113182304895">Android 應用程式可以選擇是否使用這份清單,你無法強制套用。</translation> +<translation id="7605203688694672897">設定 <ph name="PRODUCT_OS_NAME" /> 系統的裝置層級地理位置存取層級 (在使用者登入前生效)。使用者登入後,可以透過使用者層級設定控管地理位置存取層級。 + +如未設定或設為「<ph name="ALLOW" />」,使用者就能在受管理的裝置登入畫面上存取地理位置。如果輸入無效的政策值,存取權就會變回「<ph name="DISALLOW" />」。在不受管理的裝置上,這項權限一律為「<ph name="DISALLOW" />」。 + +警告:變更這項設定時請小心,以免破壞與地理位置相關的其他政策 (例如 <ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" />)!具體來說,如果將這項政策設為「<ph name="DISALLOW" />」,<ph name="SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_POLICY" /> 政策的 <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDWIFIACCESSPOINTS" /> 和 <ph name="POLICY_ENUM_SYSTEMTIMEZONEAUTOMATICDETECTION_TIMEZONEAUTOMATICDETECTIONSENDALLLOCATIONINFO" /> 選項就會失去作用,屆時只能在 <ph name="LOG_IN" /> 畫面上根據 <ph name="IP" /> 判斷位置。</translation> <translation id="7608186022704392724">PIN 碼自動提交功能可變更在 <ph name="PRODUCT_OS_NAME" /> 中輸入 PIN 碼的方式。 這項功能會顯示特別的 UI,向使用者清楚呈現其 PIN 碼所需的位數,而不會顯示用於輸入密碼的相同文字欄位。因此,系統會將使用者的 PIN 碼長度儲存在其加密資料以外的位置。系統只支援 6 到 12 位數的 PIN 碼。 @@ -7755,6 +7768,7 @@ 如果將這項政策設為停用,則使用者嘗試關閉瀏覽器時,系統不會顯示警告對話方塊。</translation> <translation id="830440838848984847">允許使用者登入 <ph name="PRODUCT_NAME" /></translation> <translation id="8306117673860983372">登入設定</translation> +<translation id="8307340233340602723">允許或拒絕裝置地理位置存取權</translation> <translation id="830819203330820450">如果啟用或不設定這項政策 (預設值),網頁就可以使用螢幕畫面分享 API (例如 getDisplayMedia() 或螢幕畫面擷取擴充功能 API),提示使用者選取要擷取的分頁、視窗或螢幕畫面。 如果停用這項政策,對於螢幕畫面分享 API 的任何呼叫就會失敗並傳回錯誤訊息;不過,如果網站與下列任何政策中的來源模式相符,系統就不會考量這項政策 (網站將可以使用螢幕畫面分享 API):<ph name="SCREEN_CAPTURE_ALLOWED_BY_ORIGINS_POLICY_NAME" />、<ph name="WINDOW_CAPTURE_ALLOWED_BY_ORIGINS_POLICY_NAME" />、<ph name="TAB_CAPTURE_ALLOWED_BY_ORIGINS_POLICY_NAME" />、<ph name="SAME_ORIGIN_TAB_CAPTURE_ALLOWED_BY_ORIGINS_POLICY_NAME" />。 @@ -8710,6 +8724,7 @@ <translation id="9213751049772256263">停用所有變化版本</translation> <translation id="9217154963008402249">監控網路封包的傳送頻率</translation> <translation id="9220314833408124365">使用預設的 no-referrer-when-downgrade 參照網址政策</translation> +<translation id="9221827710437832530">允許在登入畫面上存取地理位置。</translation> <translation id="922540222991413931">設定擴充功能、應用程式和使用者指令碼安裝來源</translation> <translation id="924557436754151212">第一次執行時從預設瀏覽器匯入已儲存的密碼</translation> <translation id="926104720905645793">這項政策可控管 <ph name="PRODUCT_NAME" /> 雲端報告功能,該功能會將瀏覽器運作資訊上傳至 <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />。
diff --git a/components/segmentation_platform/internal/selection/request_dispatcher.cc b/components/segmentation_platform/internal/selection/request_dispatcher.cc index 0ee71a4..9738bb57 100644 --- a/components/segmentation_platform/internal/selection/request_dispatcher.cc +++ b/components/segmentation_platform/internal/selection/request_dispatcher.cc
@@ -8,11 +8,32 @@ #include "base/task/single_thread_task_runner.h" #include "components/segmentation_platform/internal/selection/request_handler.h" #include "components/segmentation_platform/internal/selection/segment_result_provider.h" +#include "components/segmentation_platform/internal/stats.h" #include "components/segmentation_platform/public/config.h" #include "components/segmentation_platform/public/prediction_options.h" namespace segmentation_platform { +namespace { + +// Wrap callback to record metrics. +ClassificationResultCallback GetWrappedCallback( + const std::string& segmentation_key, + ClassificationResultCallback callback) { + auto wrapped_callback = base::BindOnce( + [](const std::string& segmentation_key, base::Time start_time, + ClassificationResultCallback callback, + const ClassificationResult& result) -> void { + stats::RecordClassificationRequestTotalDuration( + segmentation_key, base::Time::Now() - start_time); + std::move(callback).Run(result); + }, + segmentation_key, base::Time::Now(), std::move(callback)); + + return wrapped_callback; +} +} // namespace + RequestDispatcher::RequestDispatcher( const std::vector<std::unique_ptr<Config>>& configs, CachedResultProvider* cached_result_provider) @@ -51,11 +72,14 @@ scoped_refptr<InputContext> input_context, ClassificationResultCallback callback) { if (!options.on_demand_execution) { + auto wrapped_callback = + GetWrappedCallback(segmentation_key, std::move(callback)); + // Returns result directly from prefs for non-ondemand models. auto result = cached_result_provider_->GetCachedResultForClient(segmentation_key); base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( - FROM_HERE, base::BindOnce(std::move(callback), result)); + FROM_HERE, base::BindOnce(std::move(wrapped_callback), result)); return; } @@ -82,10 +106,13 @@ return; } + auto wrapped_callback = + GetWrappedCallback(segmentation_key, std::move(callback)); + auto iter = request_handlers_.find(segmentation_key); CHECK(iter != request_handlers_.end()); iter->second->GetClassificationResult(options, input_context, - std::move(callback)); + std::move(wrapped_callback)); } } // namespace segmentation_platform
diff --git a/components/segmentation_platform/internal/selection/request_dispatcher_unittest.cc b/components/segmentation_platform/internal/selection/request_dispatcher_unittest.cc index 8dd3149f..5b2d1fee 100644 --- a/components/segmentation_platform/internal/selection/request_dispatcher_unittest.cc +++ b/components/segmentation_platform/internal/selection/request_dispatcher_unittest.cc
@@ -24,8 +24,8 @@ namespace { // Test clients. -const char kTestClient1[] = "client_1"; -const char kTestClient2[] = "client_2"; +const char kDeviceSwitcherClient[] = "device_switcher"; +const char kAdaptiveToolbarClient[] = "adaptive_toolbar"; class MockRequestHandler : public RequestHandler { public: @@ -48,21 +48,23 @@ task_environment_.GetMainThreadTaskRunner()); configs_.emplace_back(test_utils::CreateTestConfig( - kTestClient1, SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_NEW_TAB)); + kDeviceSwitcherClient, + SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_DEVICE_SWITCHER)); configs_.emplace_back(test_utils::CreateTestConfig( - kTestClient2, SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_NEW_TAB)); + kAdaptiveToolbarClient, + SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_NEW_TAB)); request_dispatcher_ = std::make_unique<RequestDispatcher>(configs_, nullptr); auto handler1 = std::make_unique<MockRequestHandler>(); request_handler1_ = handler1.get(); - request_dispatcher_->set_request_handler_for_testing(kTestClient1, + request_dispatcher_->set_request_handler_for_testing(kDeviceSwitcherClient, std::move(handler1)); auto handler2 = std::make_unique<MockRequestHandler>(); request_handler2_ = handler2.get(); - request_dispatcher_->set_request_handler_for_testing(kTestClient2, + request_dispatcher_->set_request_handler_for_testing(kAdaptiveToolbarClient, std::move(handler2)); } @@ -93,7 +95,7 @@ base::RunLoop loop; request_dispatcher_->GetClassificationResult( - kTestClient1, options, scoped_refptr<InputContext>(), + kDeviceSwitcherClient, options, scoped_refptr<InputContext>(), base::BindOnce(&RequestDispatcherTest::OnGetClassificationResult, base::Unretained(this), loop.QuitClosure(), ClassificationResult(PredictionStatus::kFailed))); @@ -128,7 +130,7 @@ })); request_dispatcher_->GetClassificationResult( - kTestClient1, options, scoped_refptr<InputContext>(), + kDeviceSwitcherClient, options, scoped_refptr<InputContext>(), base::BindOnce(&RequestDispatcherTest::OnGetClassificationResult, base::Unretained(this), loop.QuitClosure(), result1)); EXPECT_EQ(1, request_dispatcher_->get_pending_actions_size_for_testing()); @@ -144,7 +146,7 @@ })); request_dispatcher_->GetClassificationResult( - kTestClient2, options, scoped_refptr<InputContext>(), + kAdaptiveToolbarClient, options, scoped_refptr<InputContext>(), base::BindOnce(&RequestDispatcherTest::OnGetClassificationResult, base::Unretained(this), loop.QuitClosure(), result2)); EXPECT_EQ(2, request_dispatcher_->get_pending_actions_size_for_testing()); @@ -183,7 +185,7 @@ })); request_dispatcher_->GetClassificationResult( - kTestClient1, options, scoped_refptr<InputContext>(), + kDeviceSwitcherClient, options, scoped_refptr<InputContext>(), base::BindOnce(&RequestDispatcherTest::OnGetClassificationResult, base::Unretained(this), loop.QuitClosure(), result1)); EXPECT_EQ(0, request_dispatcher_->get_pending_actions_size_for_testing()); @@ -199,7 +201,7 @@ })); request_dispatcher_->GetClassificationResult( - kTestClient2, options, scoped_refptr<InputContext>(), + kAdaptiveToolbarClient, options, scoped_refptr<InputContext>(), base::BindOnce(&RequestDispatcherTest::OnGetClassificationResult, base::Unretained(this), loop.QuitClosure(), result2)); loop.Run();
diff --git a/components/segmentation_platform/internal/stats.cc b/components/segmentation_platform/internal/stats.cc index c17764c6..b440b57 100644 --- a/components/segmentation_platform/internal/stats.cc +++ b/components/segmentation_platform/internal/stats.cc
@@ -390,6 +390,15 @@ duration); } +void RecordClassificationRequestTotalDuration( + const std::string& segmentation_key, + base::TimeDelta duration) { + std::string histogram_name = + base::StrCat({"SegmentationPlatform.ClassificationRequest.TotalDuration.", + SegmentationKeyToUmaName(segmentation_key)}); + base::UmaHistogramTimes(histogram_name, duration); +} + void RecordOnDemandSegmentSelectionDuration( const std::string& segmentation_key, const SegmentSelectionResult& result,
diff --git a/components/segmentation_platform/internal/stats.h b/components/segmentation_platform/internal/stats.h index 751e30c..de97980 100644 --- a/components/segmentation_platform/internal/stats.h +++ b/components/segmentation_platform/internal/stats.h
@@ -11,6 +11,7 @@ #include "components/segmentation_platform/public/model_provider.h" #include "components/segmentation_platform/public/proto/segmentation_platform.pb.h" #include "components/segmentation_platform/public/proto/types.pb.h" +#include "components/segmentation_platform/public/result.h" #include "components/segmentation_platform/public/segment_selection_result.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -119,6 +120,14 @@ void RecordModelExecutionDurationTotal(SegmentId segment_id, ModelExecutionStatus status, base::TimeDelta duration); + +// Records the total duration for GetClassificationResult API starting from the +// time request arrives in segmentation service until the result has been +// returned. It includes feature processing and model execution as well. +void RecordClassificationRequestTotalDuration( + const std::string& segmentation_key, + base::TimeDelta duration); + // Records the total duration of on-demand segment selection which includes // running all the models associated with the client and computing result. void RecordOnDemandSegmentSelectionDuration(
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb index 0cdaa38..1590f79 100644 --- a/components/strings/components_strings_am.xtb +++ b/components/strings/components_strings_am.xtb
@@ -1984,6 +1984,7 @@ <translation id="5872692522325383488">አይቢኤኤን ተቀምጧል</translation> <translation id="5873013647450402046">ባንክዎ እርስዎ መሆንዎን ማረጋገጥ ይፈልጋል።</translation> <translation id="5877831137320480913">ውበት እና አካል ብቃት</translation> +<translation id="5879989559903563723">በእንግዳ ሁነታ ውስጥ አይፈቀድም</translation> <translation id="5884465125445718607">#6 የቻይና ፖስታ</translation> <translation id="5887400589839399685">ካርድ ተቀምጧል</translation> <translation id="5887687176710214216">ለመጨረሻ ጊዜ የተጎበኘው ትላንትና</translation> @@ -3226,6 +3227,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">ህግ እና መንግስት</translation> <translation id="8957210676456822347">የተያዥ መግቢያ ፈቀዳ</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">ወደ የጣቢያ ቅንብሮች ይሂዱ</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />አስተያየቶች፦<ph name="MARKUP_2" /> የውሂብ ግንኙነት እንዳለዎት እርግጠኛ ይሁኑ<ph name="MARKUP_3" />ይህንን ድረ-ገጽ ቆይተው ዳግም ይጫኑት<ph name="MARKUP_4" /> ያስገቡትን አድራሻ ይፈትሹ<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">ካርድ አስቀምጥ</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index 56087c5..3aa45e51 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -731,6 +731,7 @@ <translation id="2718207025093645426">لم يتم تحميل أي سياسة للجهاز أو المستخدم المُدار.</translation> <translation id="2721148159707890343">تم إرسال الطلب بنجاح</translation> <translation id="2723669454293168317">تفعيل ميزة "التحقّق من الأمان" في إعدادات Chrome</translation> +<translation id="2725492561136085792">اضغط على مفتاح Enter لتفعيل هذا الإجراء.</translation> <translation id="2726001110728089263">الدُرج الجانبي</translation> <translation id="2728127805433021124">شهادة الخادم موقّعة باستخدام خوارزمية توقيع ضعيفة.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />تشغيل بيانات تشخيص الاتصال<ph name="END_LINK" /></translation> @@ -827,6 +828,7 @@ <translation id="299990983510665749">سيارات هاتشباك</translation> <translation id="3002501248619246229">التحقق من دُرج وسائل الإعلام</translation> <translation id="3005723025932146533">عرض نسخة محفوظة</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />: اضغط على مفتاح التبويب (Tab) لتصفُّح الإجراءات المتوفّرة، ثم اضغط على مفتاح Enter لتنفيذ الإجراء المحدَّد.</translation> <translation id="3013291976881901233">أجهزة MIDI</translation> <translation id="301521992641321250">تم الحظر تلقائيًا</translation> <translation id="3016780570757425217">معرفة موقعك</translation> @@ -1989,6 +1991,7 @@ <translation id="5872692522325383488">تم حفظ رقم الحساب بصيغة IBAN</translation> <translation id="5873013647450402046">يجب تأكيد هويتك للمصرف.</translation> <translation id="5877831137320480913">جمال ولياقة بدنية</translation> +<translation id="5879989559903563723">غير مسموح بهذا الإذن في "وضع الضيف"</translation> <translation id="5884465125445718607">ظرف صيني رقم 6</translation> <translation id="5887400589839399685">تم حفظ البطاقة</translation> <translation id="5887687176710214216">تمّت زيارة الموقع الإلكتروني آخر مرة أمس.</translation> @@ -3233,6 +3236,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">قوانين وحكومات</translation> <translation id="8957210676456822347">تفويض المدخل المشروط الوصول إليه</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">الانتقال إلى إعدادات الموقع الإلكتروني</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />اقتراحات:<ph name="MARKUP_2" />التأكد من أن لديك اتصال بيانات<ph name="MARKUP_3" />إعادة تحميل صفحة الويب هذه لاحقًا<ph name="MARKUP_4" />التحقق من العنوان الذي أدخلته<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">حفظ البطاقة</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb index 2676db5f..42efec5f 100644 --- a/components/strings/components_strings_az.xtb +++ b/components/strings/components_strings_az.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">İdarə olunan istifadəçi və ya cihazda yüklənmiş siyasət yoxdur.</translation> <translation id="2721148159707890343">Sorğu uğurlu oldu</translation> <translation id="2723669454293168317">Chrome ayarlarında Təhlükəsizlik Yoxlanışı icra edin</translation> +<translation id="2725492561136085792">Bu əməliyyatı aktivləşdirmək üçün Enter üzərinə basın.</translation> <translation id="2726001110728089263">Yan Qab</translation> <translation id="2728127805433021124">Server sertifikatı zəif imza alqoritmi istifadə olunaraq daxil edildi.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Bağlantı Diaqnostikası İşləyir<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">Hetçbeklər</translation> <translation id="3002501248619246229">Daxiletmə qabı mediasını yoxlayın</translation> <translation id="3005723025932146533">Saxlanılmış kopyanı göstərin</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, əlçatan əməliyyatlara baxmaq üçün Tab, seçilmiş əməliyyatı icra etmək üçün Enter üzərinə basın.</translation> <translation id="3013291976881901233">MIDI (Musiqi Alətləri Rəqəmsal İnterfeysi) cihazları</translation> <translation id="301521992641321250">Avtomatik olaraq blok edildi</translation> <translation id="3016780570757425217">Məkanınızı bilin</translation> @@ -1981,6 +1983,7 @@ <translation id="5872692522325383488">IBAN yadda saxlanıldı</translation> <translation id="5873013647450402046">Bankınız bunun siz olduğunuzu təsdiq etmək istəyir.</translation> <translation id="5877831137320480913">Gözəllik və fitnes</translation> +<translation id="5879989559903563723">Qonaq rejimində icazə verilmir</translation> <translation id="5884465125445718607">Zərf Çin #6</translation> <translation id="5887400589839399685">Kart yadda saxlanıldı</translation> <translation id="5887687176710214216">Son ziyarət dünən olub</translation> @@ -3222,6 +3225,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Hüquq və hökümət</translation> <translation id="8957210676456822347">Kaptiv Portal Doğrulanması</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Sayt ayarlarına keçin</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Təkliflər:<ph name="MARKUP_2" />Data bağlantınızın olduğuna əmin olun<ph name="MARKUP_3" />Bu veb səhifəni daha sonra yenidən yükləyin<ph name="MARKUP_4" />Daxil etdiyiniz ünvanları yoxlayın<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Kartı yadda saxlayın</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 6ff2a39..b0e3a1fe 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">За управлявания потребител или устройство не са заредени правила.</translation> <translation id="2721148159707890343">Заявката е успешна</translation> <translation id="2723669454293168317">Стартиране на проверка на безопасността от настройките на Chrome</translation> +<translation id="2725492561136085792">Натиснете Enter, за да активирате това действие.</translation> <translation id="2726001110728089263">Странична тава</translation> <translation id="2728127805433021124">Сертификатът на сървъра е подписан със слаб алгоритъм.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Стартирайте диагностика на свързаността<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">Хечбек</translation> <translation id="3002501248619246229">Проверете хартията във входната тава</translation> <translation id="3005723025932146533">Показване на запазено копие</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />. Натиснете Tab, за да видите наличните действия, и след това Enter, за да изпълните избраното.</translation> <translation id="3013291976881901233">MIDI устройства</translation> <translation id="301521992641321250">Автоматично блокирано</translation> <translation id="3016780570757425217">Достъп до местоположението ви.</translation> @@ -1740,6 +1742,8 @@ <translation id="5234764350956374838">Отхвърляне</translation> <translation id="5239623327352565343">Достъпът до местоположението е разрешен</translation> <translation id="5242889659037569123">Багаж и пътнически принадлежности</translation> +<translation id="5244732203286792411">Зарежда се... + Това може да отнеме минута.</translation> <translation id="5250209940322997802">„Свързване с мрежа“</translation> <translation id="52517543715119994">Научете повече за функциите на Chrome</translation> <translation id="5251803541071282808">Облак</translation> @@ -1985,6 +1989,7 @@ <translation id="5872692522325383488">IBAN номерът е запазен</translation> <translation id="5873013647450402046">Банката иска да потвърди самоличността ви.</translation> <translation id="5877831137320480913">Козметика и фитнес</translation> +<translation id="5879989559903563723">Не е разрешено в режим на гост</translation> <translation id="5884465125445718607">Плик, китайски №6</translation> <translation id="5887400589839399685">Картата бе запазена</translation> <translation id="5887687176710214216">Последно посещение: вчера</translation> @@ -3226,6 +3231,7 @@ <translation id="8949493680961858543">A1 x 4</translation> <translation id="8951415078585015151">Законови и правителствени органи</translation> <translation id="8957210676456822347">Упълномощаване в портал за удостоверяване</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Към настройките за сайта</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Предложения:<ph name="MARKUP_2" />Уверете се, че имате връзка за данни.<ph name="MARKUP_3" />Презаредете тази уеб страница по-късно.<ph name="MARKUP_4" />Проверете въведения от вас адрес.<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Запазване на картата</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 0c43406..caf84992 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -1987,6 +1987,7 @@ <translation id="5872692522325383488">L'IBAN s'ha desat</translation> <translation id="5873013647450402046">El banc vol confirmar la teva identitat.</translation> <translation id="5877831137320480913">Bellesa i fitnes</translation> +<translation id="5879989559903563723">No es permet en mode de convidat</translation> <translation id="5884465125445718607">Sobre xinès número 6</translation> <translation id="5887400589839399685">S'ha desat la targeta</translation> <translation id="5887687176710214216">Darrera visita: ahir</translation> @@ -3228,6 +3229,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Legislació i govern</translation> <translation id="8957210676456822347">Autorització de portals captius</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Ves a la configuració del lloc web</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Suggeriments:<ph name="MARKUP_2" />Assegureu-vos que teniu connexió de dades<ph name="MARKUP_3" />Torneu a carregar aquesta pàgina web més tard<ph name="MARKUP_4" />Comproveu l'adreça que heu introduït<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Desa la targeta</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index 6fbd011..ecbeda52 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">Spravovaný uživatel nebo zařízení nemá načtené žádné zásady.</translation> <translation id="2721148159707890343">Požadavek byl úspěšný</translation> <translation id="2723669454293168317">Spusťte v nastavení Chromu bezpečnostní kontrolu</translation> +<translation id="2725492561136085792">Akci aktivujete stisknutím klávesy Enter.</translation> <translation id="2726001110728089263">Boční zásobník</translation> <translation id="2728127805433021124">Certifikát serveru je podepsán slabým algoritmem.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Spustit Diagnostiku připojení<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">Hatchbacky</translation> <translation id="3002501248619246229">Zkontrolujte média ve vstupní přihrádce</translation> <translation id="3005723025932146533">Zobrazit uloženou kopii</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím tabulátoru můžete procházet dostupné akce a stisknutím klávesy Enter vybranou akci provést.</translation> <translation id="3013291976881901233">Zařízení MIDI</translation> <translation id="301521992641321250">Automaticky blokováno</translation> <translation id="3016780570757425217">Přístup k údajům o vaší poloze</translation> @@ -1981,6 +1983,7 @@ <translation id="5872692522325383488">Číslo IBAN bylo uloženo</translation> <translation id="5873013647450402046">Banka chce potvrdit vaši totožnost.</translation> <translation id="5877831137320480913">Krása a fitness</translation> +<translation id="5879989559903563723">V režimu hosta není povoleno</translation> <translation id="5884465125445718607">Obálka čínská č. 6</translation> <translation id="5887400589839399685">Karta byla uložena</translation> <translation id="5887687176710214216">Naposledy navštíveno včera</translation> @@ -3221,6 +3224,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Právo a státní správa</translation> <translation id="8957210676456822347">Autorizace captive portálu</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Přejít do nastavení webu</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Návrhy:<ph name="MARKUP_2" />Zkontrolujte, zda máte datové připojení.<ph name="MARKUP_3" />Načtěte tuto webovou stránku znovu později.<ph name="MARKUP_4" />Zkontrolujte zadanou adresu.<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Uložit kartu</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index 6fde44a..a3d03eb1 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">Der er ikke indlæst en politik for den administrerede bruger eller enhed.</translation> <translation id="2721148159707890343">Anmodning lykkedes</translation> <translation id="2723669454293168317">Kør et sikkerhedstjek i Chrome-indstillingerne</translation> +<translation id="2725492561136085792">Tryk på Enter for at aktivere denne handling.</translation> <translation id="2726001110728089263">Sidebakke</translation> <translation id="2728127805433021124">Serverens certifikat er signeret ved hjælp af en svag signaturalgoritme.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Køre Diagnosticering af forbindelse<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">Hatchbacks</translation> <translation id="3002501248619246229">Tjek det, der er lagt i papirbakken</translation> <translation id="3005723025932146533">Vis gemt kopi</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryk på Tab-tasten for at gennemse tilgængelige handlinger, og tryk derefter på Enter for at udføre den valgte handling.</translation> <translation id="3013291976881901233">MIDI-enheder</translation> <translation id="301521992641321250">Automatisk blokering</translation> <translation id="3016780570757425217">Kende din lokation</translation> @@ -1985,6 +1987,7 @@ <translation id="5872692522325383488">IBAN er gemt</translation> <translation id="5873013647450402046">Din bank vil gerne bekræfte, at det er dig.</translation> <translation id="5877831137320480913">Skønhed og fitness</translation> +<translation id="5879989559903563723">Ikke tilladt i gæstetilstand</translation> <translation id="5884465125445718607">Konvolut Kinesisk nr. 6</translation> <translation id="5887400589839399685">Kortet er gemt</translation> <translation id="5887687176710214216">Senest besøgt i går</translation> @@ -3227,6 +3230,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Lovgivning og myndigheder</translation> <translation id="8957210676456822347">Godkendelse af captive portal</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Gå til indstillingerne for websitet</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Forslag:<ph name="MARKUP_2" />Kontrollér, at du har en dataforbindelse<ph name="MARKUP_3" />Genindlæs denne webside senere<ph name="MARKUP_4" />Kontrollér den indtastede adresse<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Gem kort</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index 31d80f54..13497a72 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -1987,6 +1987,7 @@ <translation id="5872692522325383488">IBAN saved</translation> <translation id="5873013647450402046">Your bank wants to confirm that it's you.</translation> <translation id="5877831137320480913">Beauty and fitness</translation> +<translation id="5879989559903563723">Not allowed in Guest mode</translation> <translation id="5884465125445718607">Envelope Chinese no.6</translation> <translation id="5887400589839399685">Card saved</translation> <translation id="5887687176710214216">Last visited yesterday</translation> @@ -3228,6 +3229,7 @@ <translation id="8949493680961858543">A1 x 4</translation> <translation id="8951415078585015151">Law and government</translation> <translation id="8957210676456822347">Captive Portal Authorisation</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Go to site settings</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Suggestions:<ph name="MARKUP_2" />Make sure that you have a data connection<ph name="MARKUP_3" />Reload this web page later<ph name="MARKUP_4" />Check the address that you entered<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Save card</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 62ff07c..58112be 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">کاربر یا دستگاه تحتمدیریت هیچ خطمشی بارشدهای ندارد.</translation> <translation id="2721148159707890343">درخواست با موفقیت انجام شد</translation> <translation id="2723669454293168317">اجرای «بررسی ایمنی» در تنظیمات Chrome</translation> +<translation id="2725492561136085792">برای فعال کردن این کنش، کلید Enter را فشار دهید.</translation> <translation id="2726001110728089263">سینی جانبی</translation> <translation id="2728127805433021124">گواهی سرور با استفاده از یک الگوریتم امضای ضعیف امضا شده است.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />در حال اجرای عیبیابی اتصال<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">هاچبک</translation> <translation id="3002501248619246229">بررسی رسانه سینی ورودی</translation> <translation id="3005723025932146533">نمایش کپی ذخیره شده</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />، برای مرور کنشهای موجود کلید «جهش» را فشار دهید، سپس برای اجرای کنش انتخابشده کلید Enter را فشار دهید.</translation> <translation id="3013291976881901233">دستگاههای MIDI</translation> <translation id="301521992641321250">مسدودشده بهطور خودکار</translation> <translation id="3016780570757425217">مکانتان را بدانید</translation> @@ -1985,6 +1987,7 @@ <translation id="5872692522325383488">IBAN ذخیره شد</translation> <translation id="5873013647450402046">بانکتان میخواهد هویت شما را تأیید کند.</translation> <translation id="5877831137320480913">زیبایی و تناسب اندام</translation> +<translation id="5879989559903563723">در «حالت مهمان» مجاز نیست</translation> <translation id="5884465125445718607">پاکت چینی شماره ۶</translation> <translation id="5887400589839399685">کارت ذخیره شد</translation> <translation id="5887687176710214216">آخرین بازدید: دیروز</translation> @@ -3226,6 +3229,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">قانون و دولت</translation> <translation id="8957210676456822347">مجوز پورتال محدود</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">رفتن به تنظیمات سایت</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />پیشنهادات:<ph name="MARKUP_2" />مطمئن شوید اتصال داده دارید<ph name="MARKUP_3" />بعداً این صفحه وب را بار کردن مجدد کنید<ph name="MARKUP_4" />آدرسی را که وارد کردهاید، بررسی کنید<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">ذخیره کارت</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index 1b9b86e..bdb4891d 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">મેનેજ કરેલા વપરાશકર્તા અથવા ડિવાઇસ પાસે કોઈ પૉલિસી લોડ કરેલી નથી.</translation> <translation id="2721148159707890343">વિનંતી સફળ થઇ</translation> <translation id="2723669454293168317">Chrome સેટિંગમાં સલામતી માટે તપાસ ચલાવો</translation> +<translation id="2725492561136085792">આ ક્રિયાને સક્રિય કરવા માટે Enter દબાવો.</translation> <translation id="2726001110728089263">બાજુની ટ્રે</translation> <translation id="2728127805433021124">સર્વરનું પ્રમાણપત્ર એક નબળા સહી ઍલ્ગોરિધમનો ઉપયોગ કરીને સહીિત કરેલું છે.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />કનેક્ટિવિટી ડાયગ્નોસ્ટિક્સ ચલાવી રહ્યાં છે<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">હૅચબૅક</translation> <translation id="3002501248619246229">ઇનપુટ ટ્રે મીડિયા ચેક કરો</translation> <translation id="3005723025932146533">સાચવેલી કૉપિ બતાવો</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, ઉપલબ્ધ ક્રિયાઓને બ્રાઉઝ કરવા માટે ટૅબ દબાવો, તે પછી પસંદ કરેલી ક્રિયાને અમલમાં લાવવા માટે Enter દબાવો.</translation> <translation id="3013291976881901233">MIDI ઉપકરણો</translation> <translation id="301521992641321250">ઑટોમૅટિક રીતે બ્લૉક થયું</translation> <translation id="3016780570757425217">તમારું સ્થાન જાણો</translation> @@ -1985,6 +1987,7 @@ <translation id="5872692522325383488">IBAN સાચવ્યો</translation> <translation id="5873013647450402046">તમારી બેંક કન્ફર્મ કરવા માગે છે કે આ તમે જ છો.</translation> <translation id="5877831137320480913">બ્યુટી અને ફિટનેસ</translation> +<translation id="5879989559903563723">અતિથિ મોડમાં મંજૂરી નથી</translation> <translation id="5884465125445718607">એન્વલપ ચાઇનીઝ #6</translation> <translation id="5887400589839399685">કાર્ડ સાચવ્યું</translation> <translation id="5887687176710214216">છેલ્લે કાલે મુલાકાત લીધી</translation> @@ -3226,6 +3229,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">કાયદો અને સરકાર</translation> <translation id="8957210676456822347">કૅપ્ટિવ પોર્ટલ પ્રમાણિત</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">સાઇટ સેટિંગ પર જાઓ</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />સૂચનો:<ph name="MARKUP_2" />ખાતરી કરો કે તમારી પાસે ડેટા કનેક્શન છે<ph name="MARKUP_3" />આ વેબપેજને પછીથી ફરી લોડ કરો<ph name="MARKUP_4" />તમે દાખલ કરેલું ઍડ્રેસ તપાસો<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">કાર્ડ સાચવો</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index 8687bca..70066dc 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">Pengguna atau perangkat terkelola tidak memuat kebijakan.</translation> <translation id="2721148159707890343">Permintaan berhasil</translation> <translation id="2723669454293168317">Jalankan pemeriksaan keamanan di setelan Chrome</translation> +<translation id="2725492561136085792">Tekan Enter untuk mengaktifkan tindakan ini.</translation> <translation id="2726001110728089263">Baki Samping</translation> <translation id="2728127805433021124">Sertifikat server ditandai menggunakan algoritme yang lemah.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Jalankan Diagnostik Konektivitas<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">Hatchback</translation> <translation id="3002501248619246229">Periksa media baki masukan</translation> <translation id="3005723025932146533">Tampilkan salinan yang disimpan</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab untuk menjelajahi tindakan yang tersedia, lalu tekan Enter untuk menjalankan tindakan yang dipilih.</translation> <translation id="3013291976881901233">Perangkat MIDI</translation> <translation id="301521992641321250">Diblokir secara otomatis</translation> <translation id="3016780570757425217">Mengetahui lokasi Anda</translation> @@ -1984,6 +1986,7 @@ <translation id="5872692522325383488">IBAN disimpan</translation> <translation id="5873013647450402046">Bank Anda ingin memastikan bahwa ini memang Anda.</translation> <translation id="5877831137320480913">Kecantikan & kebugaran</translation> +<translation id="5879989559903563723">Tidak diizinkan dalam mode Tamu</translation> <translation id="5884465125445718607">Envelope Chinese #6</translation> <translation id="5887400589839399685">Kartu disimpan</translation> <translation id="5887687176710214216">Terakhir dibuka kemarin</translation> @@ -3221,6 +3224,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Hukum & pemerintah</translation> <translation id="8957210676456822347">Otorisasi Portal Tawanan</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Buka setelan situs</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Saran:<ph name="MARKUP_2" />Pastikan Anda memiliki sambungan data<ph name="MARKUP_3" />Coba muat ulang halaman web ini nanti<ph name="MARKUP_4" />Periksa alamat yang Anda masukkan<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Simpan kartu</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index f2ca048..07685b4 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">לא נטענה מדיניות למכשיר או למשתמש המנוהל.</translation> <translation id="2721148159707890343">הבקשה בוצעה בהצלחה</translation> <translation id="2723669454293168317">הרצה של בדיקת אבטחה בהגדרות Chrome</translation> +<translation id="2725492561136085792">צריך להקיש על Enter כדי להפעיל את הפעולה הזו.</translation> <translation id="2726001110728089263">מגש צידי</translation> <translation id="2728127805433021124">האישור של השרת נחתם באמצעות אלגוריתם של חתימה חלשה.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />מפעיל את אבחון הקישוריות<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">מכוניות האצ'בק</translation> <translation id="3002501248619246229">בדיקת מדיה במגש קלט</translation> <translation id="3005723025932146533">הצגת עותק שמור</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, צריך להקיש על מקש Tab כדי לעיין בפעולות הזמינות, ואז על Enter כדי לבצע את הפעולה שנבחרה.</translation> <translation id="3013291976881901233">התקני MIDI</translation> <translation id="301521992641321250">נחסמה אוטומטית</translation> <translation id="3016780570757425217">לדעת מה המיקום שלך</translation> @@ -1744,6 +1746,8 @@ <translation id="5234764350956374838">סגירה</translation> <translation id="5239623327352565343">יש הרשאת גישה למיקום</translation> <translation id="5242889659037569123">מזוודות ואביזרים לנסיעה</translation> +<translation id="5244732203286792411">בטעינה… + הפעולה עשויה להימשך כמה רגעים.</translation> <translation id="5250209940322997802">"יש להתחבר לרשת"</translation> <translation id="52517543715119994">מידע על התכונות של Chrome</translation> <translation id="5251803541071282808">ענן</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index 6da56d9..199ed03 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">管理対象のユーザーまたはデバイスにポリシーが読み込まれていません。</translation> <translation id="2721148159707890343">リクエストを正常に送信しました</translation> <translation id="2723669454293168317">Chrome の設定で安全確認を実行します</translation> +<translation id="2725492561136085792">Enter キーを押すと、この操作を有効にできます。</translation> <translation id="2726001110728089263">サイドトレイ</translation> <translation id="2728127805433021124">サーバーの証明書は脆弱な署名アルゴリズムを使用して署名されています。</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />接続診断ツールを実行する<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">ハッチバック</translation> <translation id="3002501248619246229">給紙トレイのメディアを確認してください</translation> <translation id="3005723025932146533">保存済みのコピーを表示</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" /> です。Tab キーを押して操作オプションを参照し、Enter キーを押すと、選択した操作を実行できます。</translation> <translation id="3013291976881901233">MIDI デバイス</translation> <translation id="301521992641321250">自動ブロックされました</translation> <translation id="3016780570757425217">ユーザーの現在地の認識</translation> @@ -1985,6 +1987,7 @@ <translation id="5872692522325383488">IBAN を保存しました</translation> <translation id="5873013647450402046">ご利用の銀行またはカード発行会社が本人確認を求めています。</translation> <translation id="5877831137320480913">美容、フィットネス</translation> +<translation id="5879989559903563723">ゲストモードで許可しないサイト</translation> <translation id="5884465125445718607">中国 #6 封筒</translation> <translation id="5887400589839399685">カードが保存されました</translation> <translation id="5887687176710214216">最終アクセス日: 昨日</translation> @@ -3227,6 +3230,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">法律、行政</translation> <translation id="8957210676456822347">キャプティブ ポータル認証</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" /> / <ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">サイトの設定に移動します</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />アドバイス:<ph name="MARKUP_2" />データ接続があることを確認します<ph name="MARKUP_3" />このウェブページを後で再読み込みします<ph name="MARKUP_4" />入力したアドレスを確認します<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">カードを保存</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb index 1bfd55ab..68bca98 100644 --- a/components/strings/components_strings_ka.xtb +++ b/components/strings/components_strings_ka.xtb
@@ -1987,6 +1987,7 @@ <translation id="5872692522325383488">IBAN შენახულია</translation> <translation id="5873013647450402046">თქვენს ბანკს სურს, დაადასტუროს, რომ ეს ნამდვილად თქვენ ხართ.</translation> <translation id="5877831137320480913">სილამაზე და ფიტნესი</translation> +<translation id="5879989559903563723">დაუშვებელია სტუმრის რეჟიმში</translation> <translation id="5884465125445718607">კონვერტი Chinese 6</translation> <translation id="5887400589839399685">ბარათი შენახულია</translation> <translation id="5887687176710214216">ბოლო ვიზიტი იყო გუშინ</translation> @@ -3228,6 +3229,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">სამართალი და მთავრობა</translation> <translation id="8957210676456822347">დაკავებული პორტალების ავტორიზაცია</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">საიტის პარამეტრებზე გადასვლა</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />მითითებები:<ph name="MARKUP_2" />დარწმუნდით, რომ მონაცემთა კავშირი გაქვთ<ph name="MARKUP_3" />ხელახლა ჩატვირთეთ გვერდი მოგვიანებით<ph name="MARKUP_4" />შეამოწმეთ თქვენ მიერ შეყვანილი მისამართი<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">ბარათის შენახვა</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb index 6de8235..0d281a7 100644 --- a/components/strings/components_strings_kk.xtb +++ b/components/strings/components_strings_kk.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">Басқарылатын пайдаланушыда немесе құрылғыда саясат жүктелмеген.</translation> <translation id="2721148159707890343">Сұрау сәтті жіберілді</translation> <translation id="2723669454293168317">Chrome параметрлерінен қауіпсіздік тексерісін іске қосу</translation> +<translation id="2725492561136085792">Бұл әрекетті белсендіру үшін Enter пернесін басыңыз.</translation> <translation id="2726001110728089263">Бүйірлік науа</translation> <translation id="2728127805433021124">Сервер сертификаты әлсіз қолтаңба алгоритмін пайдалану арқылы қол қойылған.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Connectivity Diagnostics құралын қосу<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">Хэтчбектер</translation> <translation id="3002501248619246229">Кіріс науасының деректерін тексеру</translation> <translation id="3005723025932146533">Сақталған көшірмені көрсету</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, қолжетімді әрекеттерді шолу үшін Tab пернесін басып, таңдалған әрекетті орындау үшін Enter пернесін басыңыз.</translation> <translation id="3013291976881901233">MIDI құрылғылары</translation> <translation id="301521992641321250">Автоматты түрде бөгелген</translation> <translation id="3016780570757425217">Орналасқан жеріңізді білу</translation> @@ -1984,6 +1986,7 @@ <translation id="5872692522325383488">IBAN сақталды</translation> <translation id="5873013647450402046">Банк жеке басыңызды растауды сұрайды.</translation> <translation id="5877831137320480913">Сұлулық және фитнес</translation> +<translation id="5879989559903563723">Қонақ режимінде рұқсат етілмеген</translation> <translation id="5884465125445718607">Chinese #6 хатқалтасы</translation> <translation id="5887400589839399685">Карта сақталды</translation> <translation id="5887687176710214216">Соңғы кіру: кеше</translation> @@ -3225,6 +3228,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Заң және үкімет</translation> <translation id="8957210676456822347">Байланысқан портал авторизациясы</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Сайт параметрлеріне өту</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Ұсыныстар:<ph name="MARKUP_2" />Деректер қосылымы бар екендігін тексеріңіз<ph name="MARKUP_3" />Бұл веб-бетті кейінірек қайта жүктеңіз<ph name="MARKUP_4" />Енгізген мекенжайды тексеріңіз<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Картаны сақтау</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index 1db022f1..f4567e2 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">관리 사용자 또는 기기에 로드된 정책이 없습니다.</translation> <translation id="2721148159707890343">요청 성공</translation> <translation id="2723669454293168317">Chrome 설정의 안전 확인 실행</translation> +<translation id="2725492561136085792">이 작업을 활성화하려면 Enter를 누르세요.</translation> <translation id="2726001110728089263">측면 트레이</translation> <translation id="2728127805433021124">서버의 인증서가 안전성이 낮은 서명 알고리즘을 사용하여 서명되어 있습니다.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />연결 진단 프로그램 실행<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">해치백</translation> <translation id="3002501248619246229">입력 트레이 미디어 확인</translation> <translation id="3005723025932146533">저장된 사본 표시</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 눌러 사용 가능한 작업을 둘러보고 Enter를 눌러 선택한 작업을 실행합니다.</translation> <translation id="3013291976881901233">MIDI 기기</translation> <translation id="301521992641321250">자동으로 차단됨</translation> <translation id="3016780570757425217">내 위치 확인</translation> @@ -1985,6 +1987,7 @@ <translation id="5872692522325383488">IBAN이 저장됨</translation> <translation id="5873013647450402046">은행에서 본인 확인을 요청합니다.</translation> <translation id="5877831137320480913">미용 및 피트니스</translation> +<translation id="5879989559903563723">게스트 모드에서 허용되지 않음</translation> <translation id="5884465125445718607">봉투 Chinese #6</translation> <translation id="5887400589839399685">저장된 카드</translation> <translation id="5887687176710214216">최근 방문: 어제</translation> @@ -3225,6 +3228,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">사법 및 정부 기관</translation> <translation id="8957210676456822347">캡티브 포털 승인</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">사이트 설정으로 이동</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />제안사항:<ph name="MARKUP_2" />데이터 연결 상태 확인<ph name="MARKUP_3" />나중에 페이지 새로고침<ph name="MARKUP_4" />입력한 주소 확인<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">카드 저장</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb index 2e7ba8ac..61b819c1 100644 --- a/components/strings/components_strings_ky.xtb +++ b/components/strings/components_strings_ky.xtb
@@ -1984,6 +1984,7 @@ <translation id="5872692522325383488">IBAN коду сакталды</translation> <translation id="5873013647450402046">Банк аныктыгыңызды текшергени жатат.</translation> <translation id="5877831137320480913">Сулуулук жана фитнес</translation> +<translation id="5879989559903563723">Конок режиминде тыюу салынат</translation> <translation id="5884465125445718607">Конверт Кытайча #6</translation> <translation id="5887400589839399685">Карта сакталды</translation> <translation id="5887687176710214216">Кечээ акыркы жолу кирген</translation> @@ -3225,6 +3226,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Мыйзам жана өкмөт</translation> <translation id="8957210676456822347">Туткундоочу порталга уруксат алуу</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Сайттын параметрлерине өтүү</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Сунуштар:<ph name="MARKUP_2" />Мобилдик Интернет туташууңуз бар экенин текшериңиз<ph name="MARKUP_3" />Бул веб-баракчаны кийинчерээк кайра жүктөңүз<ph name="MARKUP_4" />Киргизген дарегиңизди текшериңиз<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Картаны сактоо</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index ede21fe1..732c5472 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -1988,6 +1988,7 @@ <translation id="5872692522325383488">IBAN išsaugotas</translation> <translation id="5873013647450402046">Bankas nori, kad patvirtintumėte savo tapatybę.</translation> <translation id="5877831137320480913">Grožis ir kūno rengyba</translation> +<translation id="5879989559903563723">Neleidžiama svečio režimu</translation> <translation id="5884465125445718607">Nr. 6 kinietiškas vokas</translation> <translation id="5887400589839399685">Kortelė išsaugota</translation> <translation id="5887687176710214216">Paskutinį kartą lankytasi vakar</translation> @@ -3230,6 +3231,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Teisė ir vyriausybė</translation> <translation id="8957210676456822347">Fiksuotojo portalo autorizavimas</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" /> iš <ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Eiti į svetainės nustatymus</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Pasiūlymai:<ph name="MARKUP_2" />įsitikinkite, kad veikia duomenų ryšys;<ph name="MARKUP_3" />vėliau iš naujo įkelkite šį tinklalapį;<ph name="MARKUP_4" />patikrinkite įvestą adresą<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Išsaugoti kortelę</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index 87605455..d766b63 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">Pengguna atau peranti terurus tidak mempunyai dasar yang dimuatkan.</translation> <translation id="2721148159707890343">Permintaan berjaya</translation> <translation id="2723669454293168317">Jalankan semakan keselamatan dalam tetapan Chrome</translation> +<translation id="2725492561136085792">Tekan Enter untuk mengaktifkan tindakan ini.</translation> <translation id="2726001110728089263">Dulang Sisi</translation> <translation id="2728127805433021124">Sijil pelayan ditandatangani menggunakan algoritma tandatangan yang lemah.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Jalankan Diagnostik Sambungan<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">Kereta hatchback</translation> <translation id="3002501248619246229">Semak media dulang input</translation> <translation id="3005723025932146533">Paparkan salinan disimpan</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab untuk menyemak imbas tindakan yang tersedia, kemudian tekan Enter untuk melaksanakan tindakan yang dipilih.</translation> <translation id="3013291976881901233">Peranti MIDI</translation> <translation id="301521992641321250">Disekat secara automatik</translation> <translation id="3016780570757425217">Ketahui lokasi anda</translation> @@ -1986,6 +1988,7 @@ <translation id="5872692522325383488">IBAN disimpan</translation> <translation id="5873013647450402046">Bank anda mahu mengesahkan identiti anda.</translation> <translation id="5877831137320480913">Kecantikan & kecergasan</translation> +<translation id="5879989559903563723">Tidak dibenarkan dalam mod Tetamu</translation> <translation id="5884465125445718607">Sampul Cina #6</translation> <translation id="5887400589839399685">Kad disimpan</translation> <translation id="5887687176710214216">Terakhir dilawati semalam</translation> @@ -3228,6 +3231,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Undang-undang & kerajaan</translation> <translation id="8957210676456822347">Keizinan Portal Tawanan</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Pergi ke tetapan laman</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Cadangan:<ph name="MARKUP_2" />Pastikan anda mempunyai sambungan data<ph name="MARKUP_3" />Muatkan semula halaman web ini kemudian<ph name="MARKUP_4" />Semak alamat yang anda masukkan<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Simpan kad</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index 58f37099..44ed09a7 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">सुपरिवेक्षित प्रयोगकर्ता वा डिभाइसका हकमा कुनै पनि नीति लोड गरिएको छैन।</translation> <translation id="2721148159707890343">अनुरोध सफल भयो</translation> <translation id="2723669454293168317">Chrome का सेटिङमा गई सुरक्षितपनाको जाँच गर्नुहोस्</translation> +<translation id="2725492561136085792">यो कारबाही एक्टिभेट गर्न Enter थिच्नुहोस्।</translation> <translation id="2726001110728089263">छेउको ट्रे</translation> <translation id="2728127805433021124">सर्भरको प्रमाणपत्र एक कमजोर हस्ताक्षर अल्गोरिदम प्रयोग गर्दै हस्ताक्षर गरिएको छ।</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />जडान सम्बन्धी निदान चलाएर हेर्नुहोस्<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">ह्याचब्याक कारहरू</translation> <translation id="3002501248619246229">इनपुट ट्रेको मिडिया जाँच्नुहोस्</translation> <translation id="3005723025932146533">बचत गरिएको प्रति देखाउनुहोस्</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, गर्न सकिने विभिन्न कारबाहीहरू हेर्न Tab थिच्नुहोस् अनि आफूले चयन गरेको कारबाही कार्यान्वयन गर्न Enter थिच्नुहोस्।</translation> <translation id="3013291976881901233">MIDI यन्त्रहरू</translation> <translation id="301521992641321250">स्वतः रोक लगाइयो</translation> <translation id="3016780570757425217">तपाईँको स्थान जान्नुहोस्</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb index 3d7da43..8453241 100644 --- a/components/strings/components_strings_or.xtb +++ b/components/strings/components_strings_or.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">ପରିଚାଳିତ ୟୁଜର କିମ୍ବା ଡିଭାଇସର କୌଣସି ନୀତି ଲୋଡ ହୋଇନାହିଁ।</translation> <translation id="2721148159707890343">ଅନୁରୋଧ ସଫଳ ହୋଇଛି</translation> <translation id="2723669454293168317">Chrome ସେଟିଂସରେ ଏକ ସୁରକ୍ଷା ଯାଞ୍ଚ ଚଲାନ୍ତୁ</translation> +<translation id="2725492561136085792">ଏହି କାର୍ଯ୍ୟକୁ ସକ୍ରିୟ କରିବା ପାଇଁ Enter ଦବାନ୍ତୁ।</translation> <translation id="2726001110728089263">ସାଇଡ୍ ଟ୍ରେ</translation> <translation id="2728127805433021124">ଏକ ଦୁର୍ବଳ ଦସ୍ତଖତ ଥିବା ଅଲ୍ଗୋଦରିଦିମ୍ ବ୍ୟବହାର କରି ସର୍ଭର୍ର ସାର୍ଟିଫିକେଟ୍ ସାଇନ୍ କରାଯାଇଛି।</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />ଚାଲୁଥିବା ସଂଯୋଜନା ଡାଇଗ୍ନୋଷ୍ଟିକ୍ସ<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">ହାଚବ୍ୟାକ</translation> <translation id="3002501248619246229">ଇନପୁଟ୍ ଟ୍ରେ ମିଡିଆ ଯାଞ୍ଚ କରନ୍ତୁ</translation> <translation id="3005723025932146533">ସେଭ୍ ହୋଇଥିବା କପି ଦେଖାନ୍ତୁ</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, ଉପଲବ୍ଧ କାର୍ଯ୍ୟଗୁଡ଼ିକୁ ବ୍ରାଉଜ କରିବା ପାଇଁ Tab ଦବାନ୍ତୁ, ତା'ପରେ ଚୟନିତ କାର୍ଯ୍ୟକୁ କାର୍ଯ୍ୟକାରୀ କରିବାକୁ Enter ଦବାନ୍ତୁ।</translation> <translation id="3013291976881901233">MIDI ଡିଭାଇସ୍ଗୁଡ଼ିକ</translation> <translation id="301521992641321250">ସ୍ୱଚାଳିତ ଭାବେ ବ୍ଲକ୍ କରାଗଲା</translation> <translation id="3016780570757425217">ଆପଣଙ୍କର ଲୋକେସନ୍ ଜାଣନ୍ତୁ</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb index 1071a0b..ecf12ab 100644 --- a/components/strings/components_strings_pa.xtb +++ b/components/strings/components_strings_pa.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">ਪ੍ਰਬੰਧਿਤ ਵਰਤੋਂਕਾਰ ਜਾਂ ਡੀਵਾਈਸ ਲਈ ਕੋਈ ਨੀਤੀ ਲੋਡ ਨਹੀਂ ਕੀਤੀ ਗਈ।</translation> <translation id="2721148159707890343">ਬੇਨਤੀ ਸਫਲ ਹੋਈ</translation> <translation id="2723669454293168317">Chrome ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਸੁਰੱਖਿਆ ਜਾਂਚ ਚਲਾਓ</translation> +<translation id="2725492561136085792">ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਲਈ Enter ਦਬਾਓ।</translation> <translation id="2726001110728089263">ਸਾਈਡ ਟ੍ਰੇਅ</translation> <translation id="2728127805433021124">ਸਰਵਰ ਦਾ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਇੱਕ ਕਮਜ਼ੋਰ ਹਸਤਾਖਰ ਅਲਗੋਰਿਦਮ ਵਰਤਦੇ ਹੋਏ ਸਾਈਨ ਹੋਇਆ ਹੈ।</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />ਕਨੈਕਟੀਵਿਟੀ ਨਿਦਾਨ ਚਲਾਇਆ ਜਾ ਰਿਹਾ ਹੈ<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">ਹੈਚਬੈਕ</translation> <translation id="3002501248619246229">ਇਨਪੁੱਟ ਟ੍ਰੇਅ ਮੀਡੀਆ ਦੀ ਜਾਂਚ ਕਰੋ</translation> <translation id="3005723025932146533">ਰੱਖਿਅਤ ਕੀਤੀ ਕਾਪੀ ਦਿਖਾਓ</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, ਉਪਲਬਧ ਕਾਰਵਾਈਆਂ ਨੂੰ ਬ੍ਰਾਊਜ਼ ਕਰਨ ਲਈ Tab ਦਬਾਓ, ਫਿਰ ਚੁਣੀ ਗਈ ਕਾਰਵਾਈ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ Enter ਦਬਾਓ।</translation> <translation id="3013291976881901233">MIDI ਡੀਵਾਈਸਾਂ</translation> <translation id="301521992641321250">ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਬਲੌਕ ਕੀਤੀ ਗਈ</translation> <translation id="3016780570757425217">ਆਪਣੇ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਬਾਰੇ ਜਾਣੋ</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index 6f7ad992..ef6c913 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -1985,6 +1985,7 @@ <translation id="5872692522325383488">IBAN (Número Internacional de Conta Bancária) guardado</translation> <translation id="5873013647450402046">O banco quer confirmar a sua identidade.</translation> <translation id="5877831137320480913">Beleza e fitness</translation> +<translation id="5879989559903563723">Não permitido no Modo convidado</translation> <translation id="5884465125445718607">Envelope Chinese n.º 6</translation> <translation id="5887400589839399685">Cartão guardado</translation> <translation id="5887687176710214216">Última visita ontem</translation> @@ -3226,6 +3227,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Legislação e governo</translation> <translation id="8957210676456822347">Autorização de portal cativo</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Aceda às definições do site</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Sugestões:<ph name="MARKUP_2" />Assegure-se de que tem uma ligação de dados<ph name="MARKUP_3" />Recarregue esta página Web mais tarde<ph name="MARKUP_4" />Verifique o endereço que introduziu<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Guardar cartão</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index 89de2ae..aa8ed19 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -1985,6 +1985,7 @@ <translation id="5872692522325383488">Codul IBAN a fost salvat</translation> <translation id="5873013647450402046">Banca dorește să îți confirme identitatea.</translation> <translation id="5877831137320480913">Frumusețe și fitness</translation> +<translation id="5879989559903563723">Nu se permite în modul pentru invitați</translation> <translation id="5884465125445718607">Plic chinezesc 6</translation> <translation id="5887400589839399685">Cardul a fost salvat</translation> <translation id="5887687176710214216">Accesat ultima dată ieri</translation> @@ -3227,6 +3228,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Legi și guvernare</translation> <translation id="8957210676456822347">Autorizarea prin portalul captiv</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Accesează setările site-ului</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Sugestii:<ph name="MARKUP_2" />asigură-te că ai o conexiune de date;<ph name="MARKUP_3" />reîncarcă mai târziu această pagină web;<ph name="MARKUP_4" />verifică adresa pe care ai introdus-o.<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Salvează cardul</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index 9beba1fc..d3d91cd 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -1988,6 +1988,7 @@ <translation id="5872692522325383488">Številka IBAN je shranjena</translation> <translation id="5873013647450402046">Vaša banka želi potrditi vašo identiteto.</translation> <translation id="5877831137320480913">Lepota in fitnes</translation> +<translation id="5879989559903563723">Ni dovoljeno v načinu za goste</translation> <translation id="5884465125445718607">Kitajska kuverta št. 6</translation> <translation id="5887400589839399685">Kartica je shranjena</translation> <translation id="5887687176710214216">Nazadnje obiskano včeraj</translation> @@ -3229,6 +3230,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Zakonodaja in država</translation> <translation id="8957210676456822347">Odobritev prestreznega portala</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Na nastavitve spletnega mesta</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Predlogi:<ph name="MARKUP_2" />Poskrbite, da imate podatkovno povezavo<ph name="MARKUP_3" />Znova naložite to spletno stran pozneje<ph name="MARKUP_4" />Preverite naslov, ki ste ga vnesli<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Shrani kartico</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb index bc7383e..4d21c736 100644 --- a/components/strings/components_strings_sr-Latn.xtb +++ b/components/strings/components_strings_sr-Latn.xtb
@@ -1987,6 +1987,7 @@ <translation id="5872692522325383488">IBAN je sačuvan</translation> <translation id="5873013647450402046">Banka želi da potvrdi da ste to vi.</translation> <translation id="5877831137320480913">Lepota i fitnes</translation> +<translation id="5879989559903563723">Nije dozvoljeno u režimu gosta</translation> <translation id="5884465125445718607">Kineska koverta br. 6</translation> <translation id="5887400589839399685">Kartica je sačuvana</translation> <translation id="5887687176710214216">Poslednja poseta: juče</translation> @@ -3228,6 +3229,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Zakoni i vlada</translation> <translation id="8957210676456822347">Ovlašćenje na ulaznom portalu</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Idite na podešavanja sajta</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Predlozi:<ph name="MARKUP_2" />Proverite da li je uspostavljena veza za prenos podataka<ph name="MARKUP_3" />Ponovo učitajte ovu veb-stranicu kasnije<ph name="MARKUP_4" />Proverite adresu koju ste uneli<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Sačuvaj karticu</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index d91db3b..1787d1cc 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -1987,6 +1987,7 @@ <translation id="5872692522325383488">IBAN је сачуван</translation> <translation id="5873013647450402046">Банка жели да потврди да сте то ви.</translation> <translation id="5877831137320480913">Лепота и фитнес</translation> +<translation id="5879989559903563723">Није дозвољено у режиму госта</translation> <translation id="5884465125445718607">Кинеска коверта бр. 6</translation> <translation id="5887400589839399685">Картица је сачувана</translation> <translation id="5887687176710214216">Последња посета: јуче</translation> @@ -3228,6 +3229,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Закони и влада</translation> <translation id="8957210676456822347">Овлашћење на улазном порталу</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Идите на подешавања сајта</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Предлози:<ph name="MARKUP_2" />Проверите да ли је успостављена веза за пренос података<ph name="MARKUP_3" />Поново учитајте ову веб-страницу касније<ph name="MARKUP_4" />Проверите адресу коју сте унели<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Сачувај картицу</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index 245fe4d..a42264a1 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">Mtumiaji au kifaa kinachodhibitiwa hakina sera iliyopakiwa.</translation> <translation id="2721148159707890343">Ombi limefanikiwa</translation> <translation id="2723669454293168317">Fanya ukaguzi wa usalama katika mipangilio ya Chrome</translation> +<translation id="2725492561136085792">Bonyeza Enter ili kuwasha kitendo hiki.</translation> <translation id="2726001110728089263">Trei ya Pembeni</translation> <translation id="2728127805433021124">Cheti cha seva kimetiwa sahihi kwa kutumia algoriti dhaifu ya sahihi.</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Inaendesha Zana ya Kuchunguza Muunganisho<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">Gari aina ya Hatchback</translation> <translation id="3002501248619246229">Angalia yaliyo kwenye trei ya kuingiza</translation> <translation id="3005723025932146533">Onyesha nakala iliyohifadhiwa</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />, bonyeza Tab ili kuvinjari vitendo vyote vilivyopo, kisha bonyeza Enter ili kutekeleza kitendo kilichochaguliwa.</translation> <translation id="3013291976881901233">Vifaa vya MIDI</translation> <translation id="301521992641321250">Imezuiwa kiotomatiki</translation> <translation id="3016780570757425217">kujua mahali ulipo</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index 8eb6275..93d5c7be 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -1983,6 +1983,7 @@ <translation id="5872692522325383488">IBAN சேமிக்கப்பட்டது</translation> <translation id="5873013647450402046">இது நீங்கள்தான் என்பதை உங்கள் பேங்க் உறுதிசெய்ய விரும்புகிறது.</translation> <translation id="5877831137320480913">அழகு & உடற்பயிற்சி</translation> +<translation id="5879989559903563723">கெஸ்ட் பயன்முறையில் அனுமதிக்கப்படாது</translation> <translation id="5884465125445718607">என்வெலப் சைனீஸ் #6</translation> <translation id="5887400589839399685">கார்டு சேமிக்கப்பட்டது</translation> <translation id="5887687176710214216">கடைசியாகப் பார்த்தது: நேற்று</translation> @@ -3223,6 +3224,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">சட்டம் & அரசாங்கம்</translation> <translation id="8957210676456822347">கேப்டிவ் போர்டல் அங்கீகாரம்</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">தள அமைப்புகளுக்குச் செல்லும்</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />பரிந்துரைகள்:<ph name="MARKUP_2" />உங்களுடைய டேட்டா இணைப்பைச் சரிபார்க்கவும்<ph name="MARKUP_3" />இந்த இணையப்பக்கத்தைப் பின்னர் ஏற்றவும்<ph name="MARKUP_4" />நீங்கள் உள்ளிட்ட முகவரியைச் சரிபார்க்கவும்<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">கார்டைச் சேமி</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 97c5037..a40989c2 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -1989,6 +1989,7 @@ <translation id="5872692522325383488">IBAN సేవ్ చేయబడింది</translation> <translation id="5873013647450402046">ఇది మీరేనని మీ బ్యాంక్ నిర్ధారించుకోవాలనుకుంటోంది.</translation> <translation id="5877831137320480913">అందం & ఆరోగ్యం</translation> +<translation id="5879989559903563723">గెస్ట్ మోడ్లో అనుమతి లేదు</translation> <translation id="5884465125445718607">ఎన్వలప్ చైనీస్ #6</translation> <translation id="5887400589839399685">కార్డ్ సేవ్ చేయబడింది</translation> <translation id="5887687176710214216">చివరిగా నిన్న సందర్శించారు</translation> @@ -3230,6 +3231,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">చట్టం & ప్రభుత్వం</translation> <translation id="8957210676456822347">క్యాప్టివ్ పోర్టల్ ప్రామాణీకరణ</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">సైట్ సెట్టింగ్లకు వెళ్లండి</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />సూచనలు:<ph name="MARKUP_2" />మీకు డేటా కనెక్షన్ ఉందని నిర్ధారించుకోండి<ph name="MARKUP_3" />ఈ వెబ్పేజీని తర్వాత మళ్లీ లోడ్ చేయండి<ph name="MARKUP_4" />మీరు నమోదు చేసిన అడ్రస్ చెక్ చేయండి<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">కార్డ్ని సేవ్ చేయండి</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index c376445..ceb23325 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -1741,6 +1741,8 @@ <translation id="5234764350956374838">ปิด</translation> <translation id="5239623327352565343">อนุญาตให้เข้าถึงตําแหน่ง</translation> <translation id="5242889659037569123">กระเป๋าและอุปกรณ์สำหรับการเดินทาง</translation> +<translation id="5244732203286792411">กำลังโหลด... + การดำเนินการนี้อาจใช้เวลาสักครู่</translation> <translation id="5250209940322997802">"เชื่อมต่อกับเครือข่าย"</translation> <translation id="52517543715119994">ดูข้อมูลเกี่ยวกับฟีเจอร์ของ Chrome</translation> <translation id="5251803541071282808">ระบบคลาวด์</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index 440b9a99..c2eceb4 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -1987,6 +1987,7 @@ <translation id="5872692522325383488">IBAN محفوظ کیا گيا</translation> <translation id="5873013647450402046">آپ کا بینک تصدیق کرنا چاہتا ہے کہ یہ آپ ہیں۔</translation> <translation id="5877831137320480913">خوبصورتی اور تندرستی</translation> +<translation id="5879989559903563723">مہمان وضع میں اجازت نہیں ہے</translation> <translation id="5884465125445718607">Chinese #6 لفافہ</translation> <translation id="5887400589839399685">کارڈ محفوظ کیا گیا</translation> <translation id="5887687176710214216">آخری بار گزشتہ کل چیک کیا گیا</translation> @@ -3229,6 +3230,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">قانون اور حکومت</translation> <translation id="8957210676456822347">کیپٹو پورٹل اجازت دہندگی</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">سائٹ ترتیبات پر جائیں</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />تجاویز:<ph name="MARKUP_2" />یقینی بنائیں کہ آپ کے پاس ڈیٹا کنکشن ہے<ph name="MARKUP_3" />یہ ویب صفحہ بعد میں دوبارہ لوڈ کریں<ph name="MARKUP_4" />اپنا درج کردہ پتہ چيک کریں<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">کارڈ کو محفوظ کریں</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index df08e14..9b696ff 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -1987,6 +1987,7 @@ <translation id="5872692522325383488">Đã lưu IBAN</translation> <translation id="5873013647450402046">Ngân hàng của bạn muốn xác nhận danh tính của bạn.</translation> <translation id="5877831137320480913">Làm đẹp và thể hình</translation> +<translation id="5879989559903563723">Không được phép ở Chế độ khách</translation> <translation id="5884465125445718607">Phong bì kiểu Trung số 6</translation> <translation id="5887400589839399685">Đã lưu thẻ</translation> <translation id="5887687176710214216">Lần truy cập gần đây nhất: hôm qua</translation> @@ -3229,6 +3230,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">Luật pháp và chính phủ</translation> <translation id="8957210676456822347">Ủy quyền cổng bị khóa</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">Chuyển đến phần cài đặt trang web</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />Đề xuất:<ph name="MARKUP_2" />Đảm bảo bạn có kết nối dữ liệu<ph name="MARKUP_3" />Tải lại trang web này sau<ph name="MARKUP_4" />Kiểm tra địa chỉ bạn đã nhập<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">Lưu thẻ</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index 3788fd3f..d5e403eb 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">受管使用者或裝置未載入政策。</translation> <translation id="2721148159707890343">要求成功</translation> <translation id="2723669454293168317">在 Chrome 設定中執行安全檢查</translation> +<translation id="2725492561136085792">㩒 Enter 掣就可以啟用呢項操作。</translation> <translation id="2726001110728089263">側匣</translation> <translation id="2728127805433021124">伺服器憑證以防護力較弱的簽章演算法簽署。</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />執行連線診斷<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">掀背車</translation> <translation id="3002501248619246229">檢查輸入紙匣媒體</translation> <translation id="3005723025932146533">顯示儲存的複本</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒 Tab 掣就可以瀏覽可以用嘅操作,然後㩒 Enter 掣就可以執行揀咗嘅操作。</translation> <translation id="3013291976881901233">MIDI 裝置</translation> <translation id="301521992641321250">已自動封鎖</translation> <translation id="3016780570757425217">掌握您的位置</translation> @@ -1986,6 +1988,7 @@ <translation id="5872692522325383488">已儲存 IBAN</translation> <translation id="5873013647450402046">銀行要確認您的身分。</translation> <translation id="5877831137320480913">美容和健身</translation> +<translation id="5879989559903563723">在訪客模式下無法使用</translation> <translation id="5884465125445718607">Chinese #6 信封</translation> <translation id="5887400589839399685">已儲存的付款卡</translation> <translation id="5887687176710214216">上次瀏覽日期:昨天</translation> @@ -3227,6 +3230,7 @@ <translation id="8949493680961858543">A1x4</translation> <translation id="8951415078585015151">法律和政府</translation> <translation id="8957210676456822347">網頁驗證入口授權</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">前往網站設定</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />建議:<ph name="MARKUP_2" />請確保您已建立數據連線<ph name="MARKUP_3" />請稍後重新載入此網頁<ph name="MARKUP_4" />請檢查您輸入的網址<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">儲存付款卡</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index 5dc19b2a..9c49f8c8 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -730,6 +730,7 @@ <translation id="2718207025093645426">受管理的使用者或裝置未載入政策。</translation> <translation id="2721148159707890343">要求成功</translation> <translation id="2723669454293168317">在 Chrome 設定中執行安全檢查</translation> +<translation id="2725492561136085792">按下 Enter 鍵可啟用這項動作。</translation> <translation id="2726001110728089263">側匣</translation> <translation id="2728127805433021124">伺服器憑證是以防護力較弱的簽章演算法進行簽署。</translation> <translation id="2730326759066348565"><ph name="BEGIN_LINK" />執行連線診斷<ph name="END_LINK" /></translation> @@ -826,6 +827,7 @@ <translation id="299990983510665749">掀背車款</translation> <translation id="3002501248619246229">檢查輸入紙匣媒體</translation> <translation id="3005723025932146533">顯示儲存的複本</translation> +<translation id="3009036448238594149"><ph name="ACTION_IN_SUGGEST_FOCUSED_FRIENDLY_MATCH_TEXT" />,按下 Tab 鍵瀏覽可用動作,按下 Enter 鍵則可執行所選動作。</translation> <translation id="3013291976881901233">MIDI 裝置</translation> <translation id="301521992641321250">已自動封鎖</translation> <translation id="3016780570757425217">存取您的位置資訊</translation> @@ -1739,6 +1741,8 @@ <translation id="5234764350956374838">關閉</translation> <translation id="5239623327352565343">允許存取位置資訊</translation> <translation id="5242889659037569123">行李箱與旅遊配備</translation> +<translation id="5244732203286792411">載入中... + 請稍候。</translation> <translation id="5250209940322997802">「連線至網路」</translation> <translation id="52517543715119994">瞭解 Chrome 功能</translation> <translation id="5251803541071282808">雲端</translation> @@ -1984,6 +1988,7 @@ <translation id="5872692522325383488">已儲存 IBAN</translation> <translation id="5873013647450402046">銀行希望確認你的身分。</translation> <translation id="5877831137320480913">美容與健身</translation> +<translation id="5879989559903563723">在訪客模式下無法使用</translation> <translation id="5884465125445718607">Envelope Chinese #6</translation> <translation id="5887400589839399685">已儲存卡片</translation> <translation id="5887687176710214216">上次造訪日期:昨天</translation> @@ -3225,6 +3230,7 @@ <translation id="8949493680961858543">A1 x 4</translation> <translation id="8951415078585015151">法律與政府</translation> <translation id="8957210676456822347">監控式入口網站授權</translation> +<translation id="8959282183248574156"><ph name="NICKNAME_COUNT" />/<ph name="NICKNAME_MAX" /></translation> <translation id="8963117664422609631">前往網站設定</translation> <translation id="8963213021028234748"><ph name="MARKUP_1" />建議:<ph name="MARKUP_2" />確認您的數據連線狀態正常<ph name="MARKUP_3" />稍後再重新載入這個網頁<ph name="MARKUP_4" />檢查您輸入的網址是否正確<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">儲存卡片</translation>
diff --git a/components/viz/common/gpu/context_cache_controller_unittest.cc b/components/viz/common/gpu/context_cache_controller_unittest.cc index e42340d..8141922 100644 --- a/components/viz/common/gpu/context_cache_controller_unittest.cc +++ b/components/viz/common/gpu/context_cache_controller_unittest.cc
@@ -15,6 +15,7 @@ #include "third_party/skia/include/core/SkImage.h" #include "third_party/skia/include/core/SkPixmap.h" #include "third_party/skia/include/gpu/GrDirectContext.h" +#include "third_party/skia/include/gpu/ganesh/SkImageGanesh.h" using ::testing::Mock; using ::testing::StrictMock; @@ -182,7 +183,7 @@ std::vector<uint8_t> image_data(image_info.computeMinByteSize()); SkPixmap pixmap(image_info, image_data.data(), image_info.minRowBytes()); auto image = SkImages::RasterFromPixmapCopy(pixmap); - auto image_gpu = image->makeTextureImage(gr_context); + auto image_gpu = SkImages::TextureFromImage(gr_context, std::move(image)); gr_context->flushAndSubmit(); }
diff --git a/content/browser/preloading/preloading_attempt_impl.cc b/content/browser/preloading/preloading_attempt_impl.cc index ddf4dbf8..9fbf339e 100644 --- a/content/browser/preloading/preloading_attempt_impl.cc +++ b/content/browser/preloading/preloading_attempt_impl.cc
@@ -191,8 +191,15 @@ // Ensure that when the `triggering_outcome_` is kSuccess, then the // accurate_triggering should be true. if (triggering_outcome_ == PreloadingTriggeringOutcome::kSuccess) { - DCHECK(is_accurate_triggering_) - << "TriggeringOutcome set to kSuccess without correct prediction\n"; + // TODO(https://crbug.com/1431055): Fix PreloadingAttempt for Prefetching in + // a different WebContents. It is allowed to activate a prefetched result in + // another WebContents instance, and the WebContents that stores `this` + // instance does not have the opportunity to set the + // `is_accurate_triggering_` flag to true in this case. + if (preloading_type_ != PreloadingType::kPrefetch) { + DCHECK(is_accurate_triggering_) + << "TriggeringOutcome set to kSuccess without correct prediction\n"; + } } // Always record UMA, regardless of sampling.
diff --git a/content/browser/preloading/prerender/prerender_host_registry.cc b/content/browser/preloading/prerender/prerender_host_registry.cc index e56122d..4e337c0 100644 --- a/content/browser/preloading/prerender/prerender_host_registry.cc +++ b/content/browser/preloading/prerender/prerender_host_registry.cc
@@ -1019,10 +1019,10 @@ return; } - // PrerenderHost owns ongoing `navigation_request` indirectly until it is - // ready to commit, so `prerender_host` should always be non-null here. - auto* prerender_host = PrerenderHost::GetPrerenderHostFromFrameTreeNode( - *navigation_request->frame_tree_node()); + // This navigation is running on the main frame in the prerendered page, so + // its FrameTree::Delegate should be PrerenderHost. + auto* prerender_host = static_cast<PrerenderHost*>( + navigation_request->frame_tree_node()->frame_tree().delegate()); CHECK(prerender_host); prerender_host->DidStartNavigation(navigation_handle);
diff --git a/content/browser/renderer_host/navigation_request.h b/content/browser/renderer_host/navigation_request.h index d2d5fd1a..0e7dfb2 100644 --- a/content/browser/renderer_host/navigation_request.h +++ b/content/browser/renderer_host/navigation_request.h
@@ -35,6 +35,7 @@ #include "content/browser/renderer_host/render_frame_host_impl.h" #include "content/browser/site_instance_impl.h" #include "content/browser/webui/web_ui_controller_factory_registry.h" +#include "content/browser/webui/web_ui_impl.h" #include "content/common/content_export.h" #include "content/common/navigation_client.mojom-forward.h" #include "content/public/browser/global_routing_id.h"
diff --git a/content/browser/service_worker/service_worker_register_job.cc b/content/browser/service_worker/service_worker_register_job.cc index 38ca76d0..6bad873 100644 --- a/content/browser/service_worker/service_worker_register_job.cc +++ b/content/browser/service_worker/service_worker_register_job.cc
@@ -394,7 +394,10 @@ // for the completion. context_->registry()->UpdateResourceSha256Checksums( registration()->id(), key_, updated_checksum_map, - /*callback=*/base::DoNothing()); + base::BindOnce([](blink::ServiceWorkerStatusCode status) { + UMA_HISTOGRAM_ENUMERATION( + "ServiceWorker.UpdateResourceSha256ChecksumsResult", status); + })); } ResolvePromise(blink::ServiceWorkerStatusCode::kOk, std::string(), registration());
diff --git a/content/renderer/accessibility/render_accessibility_impl.cc b/content/renderer/accessibility/render_accessibility_impl.cc index 2270a7d..68713cc 100644 --- a/content/renderer/accessibility/render_accessibility_impl.cc +++ b/content/renderer/accessibility/render_accessibility_impl.cc
@@ -543,10 +543,7 @@ DCHECK(!document.IsNull()); auto obj = WebAXObject::FromWebDocumentByID(document, event.id); - DCHECK(!obj.IsDetached() || serialize_post_lifecycle_); - if (obj.IsDetached()) { - return; - } + DCHECK(!obj.IsDetached()); #if BUILDFLAG(IS_ANDROID) // Inline text boxes are needed to support moving by character/word/line. @@ -563,7 +560,9 @@ return; } - DCHECK(!obj.IsDetached() || !serialize_post_lifecycle_); + MarkWebAXObjectDirty(obj, /* subtree= */ false, event.event_from, + event.event_from_action, event.event_intents, + event.event_type); if (IsImmediateProcessingRequiredForEvent(event)) { if (serialize_post_lifecycle_) { @@ -574,12 +573,6 @@ } } - if (!serialize_post_lifecycle_ || !obj.IsDetached()) { - MarkWebAXObjectDirty(obj, /* subtree= */ false, event.event_from, - event.event_from_action, event.event_intents, - event.event_type); - } - if (!serialize_post_lifecycle_) { LegacyScheduleSendPendingAccessibilityEvents(); }
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt index e510d85c..34539494 100644 --- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -393,8 +393,6 @@ crbug.com/1418987 [ linux amd-0x7340 angle-vulkan ] Pixel_OffscreenCanvasWebGLDefaultWorker [ RetryOnFailure ] -crbug.com/1429731 [ chromeos chromeos-board-kevin ] Pixel_WebGL2_ClearBufferfv_Result_Displayed [ Failure ] -crbug.com/1429731 [ chromeos chromeos-board-kevin ] Pixel_WebGLFloat [ Failure ] ####################################################################### # Automated Entries After This Point - Do Not Manually Add Below Here #
diff --git a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt index c959eef..5e54bb8 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
@@ -127,12 +127,7 @@ crbug.com/1377842 [ android ] WebCodecs_EncodeColorSpace_avc1.42001E_prefer-software [ Failure ] crbug.com/1377842 [ android ] WebCodecs_EncodeColorSpace_vp09.00.10.08_prefer-hardware [ Failure ] -crbug.com/1429731 [ chromeos chromeos-board-kevin ] WebCodecs_Encode_hw_decoder_avc1.42001E_prefer-software [ Failure ] -crbug.com/1429731 [ chromeos chromeos-board-kevin ] WebCodecs_EncodingRateControl_av01.0.04M.08_prefer-software_constant_3000000 [ Failure ] -crbug.com/1429731 [ chromeos chromeos-board-kevin ] WebCodecs_EncodingRateControl_avc1.420034_prefer-software_variable_1500000 [ Failure ] -crbug.com/1429731 [ chromeos chromeos-board-kevin ] WebCodecs_EncodingRateControl_vp8_prefer-hardware_constant_1500000 [ Failure ] -crbug.com/1429736 [ chromeos chromeos-board-kevin ] WebCodecs_EncodeColorSpace_avc1.42001E_prefer-hardware [ Failure ] ####################################################################### # Automated Entries After This Point - Do Not Manually Add Below Here #
diff --git a/gpu/command_buffer/service/gr_cache_controller_unittest.cc b/gpu/command_buffer/service/gr_cache_controller_unittest.cc index cfbbfca..59038c4 100644 --- a/gpu/command_buffer/service/gr_cache_controller_unittest.cc +++ b/gpu/command_buffer/service/gr_cache_controller_unittest.cc
@@ -15,6 +15,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkImage.h" +#include "third_party/skia/include/gpu/ganesh/SkImageGanesh.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_share_group.h" #include "ui/gl/gl_surface.h" @@ -73,8 +74,8 @@ SkBitmap bm; SkImageInfo info = SkImageInfo::MakeN32Premul(10, 10); ASSERT_TRUE(bm.tryAllocPixels(info)); - sk_sp<SkImage> uploaded = - SkImages::RasterFromBitmap(bm)->makeTextureImage(gr_context()); + sk_sp<SkImage> uploaded = SkImages::TextureFromImage( + gr_context(), SkImages::RasterFromBitmap(bm)); ASSERT_TRUE(uploaded); } EXPECT_GT(gr_context()->getResourceCachePurgeableBytes(), 0u); @@ -95,8 +96,8 @@ SkBitmap bm; SkImageInfo info = SkImageInfo::MakeN32Premul(10, 10); ASSERT_TRUE(bm.tryAllocPixels(info)); - sk_sp<SkImage> uploaded = - SkImages::RasterFromBitmap(bm)->makeTextureImage(gr_context()); + sk_sp<SkImage> uploaded = SkImages::TextureFromImage( + gr_context(), SkImages::RasterFromBitmap(bm)); ASSERT_TRUE(uploaded); } EXPECT_GT(gr_context()->getResourceCachePurgeableBytes(), 0u);
diff --git a/gpu/command_buffer/service/service_transfer_cache.cc b/gpu/command_buffer/service/service_transfer_cache.cc index bd13501..2949a72 100644 --- a/gpu/command_buffer/service/service_transfer_cache.cc +++ b/gpu/command_buffer/service/service_transfer_cache.cc
@@ -18,6 +18,7 @@ #include "gpu/command_buffer/service/service_discardable_manager.h" #include "third_party/skia/include/core/SkImage.h" #include "third_party/skia/include/gpu/GrBackendSurface.h" +#include "third_party/skia/include/gpu/ganesh/SkImageGanesh.h" #include "ui/gl/trace_util.h" namespace gpu { @@ -43,8 +44,12 @@ dump->AddScalar(MemoryAllocatorDump::kNameSize, MemoryAllocatorDump::kUnitsBytes, entry->CachedSize()); - GrBackendTexture image_backend_texture = - entry->image()->getBackendTexture(false /* flushPendingGrContextIO */); + GrBackendTexture image_backend_texture; + if (!SkImages::GetBackendTextureFromImage( + entry->image(), &image_backend_texture, + false /* flushPendingGrContextIO */)) { + return; + } GrGLTextureInfo info; if (image_backend_texture.getGLTextureInfo(&info)) { auto guid = gl::GetGLTextureRasterGUIDForTracing(info.fID); @@ -98,9 +103,12 @@ // If entry->image() is backed by multiple textures, // getBackendTexture() would end up flattening them to RGB, which is // undesirable. - GrBackendTexture image_backend_texture = - entry->GetPlaneImage(i)->getBackendTexture( - false /* flushPendingGrContextIO */); + GrBackendTexture image_backend_texture; + if (!SkImages::GetBackendTextureFromImage( + entry->GetPlaneImage(i), &image_backend_texture, + false /* flushPendingGrContextIO */)) { + return; + } GrGLTextureInfo info; if (image_backend_texture.getGLTextureInfo(&info)) { auto guid = gl::GetGLTextureRasterGUIDForTracing(info.fID);
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb index 2731d26..ee0699264 100644 --- a/ios/chrome/app/strings/resources/ios_strings_am.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">ማስታወቂያዎች</translation> <translation id="2496626742194544812">ወደ መጀመሪያ ትር ሂድ</translation> <translation id="2500374554657206846">የይለፍ ቃል የሚቀመጡባቸው አማራጮች</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> ዳግም ጥቅም ላይ የዋሉ የይለፍ ቃላት</translation> <translation id="2523363575747517183">ይህ ድር ጣቢያ በተደጋጋሚነት ሌላ መተግበሪያ ለመክፈት እየሞከረ ነው።</translation> <translation id="2529021024822217800">ሁሉንም ክፈት</translation> <translation id="2547458583188611426">ማስመር እየሰራ አይደለም። ማስመር ለመጀመር የይለፍ ሐረግዎን ያስገቡ።</translation> @@ -292,6 +293,7 @@ <translation id="2932085390869194046">የይለፍ ቃል ጠቁም...</translation> <translation id="2932765531295814441">የይለፍ ቃላትን ራስዎ ያክሉ</translation> <translation id="2952581218264071393">1. የChrome ቅንብሮችን ይክፈቱ</translation> +<translation id="2953871438216280742">የንባብ ዝርዝርዎን በGoogle መለያዎ ውስጥ ለመክፈት እና ለማስቀመጥ ይግቡ።</translation> <translation id="2958718410589002129">የይለፍ ቃላት</translation> <translation id="2961210776189273067">ርዕስ</translation> <translation id="2964349545761222050">የሶስተኛ ወገን ኩኪዎችን ያግዱ</translation> @@ -385,6 +387,7 @@ <translation id="3581564640715911333">በሌሎች ቋንቋዎች ለመተርጎም ሐሳብ አቅርብ</translation> <translation id="3588820906588687999">ምስሉን በአዲስ ትር ውስጥ ክፈት</translation> <translation id="3595252146048399851"><ph name="BEGIN_LINK" />ቅንብሮች<ph name="END_LINK" /> ውስጥ በማንኛውም ጊዜ ምን እንደሚያሰምሩ መምረጥ ይችላሉ። Google በእርስዎ ታሪክ ላይ በመመስረት ፍለጋን እና ሌሎች አገልግሎቶችን ግላዊነት ሊያላብስ ይችላል።</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} ደካማ የይለፍ ቃል}one{{COUNT} ደካማ የይለፍ ቃል}other{{COUNT} ደካማ የይለፍ ቃላት}}</translation> <translation id="3603009562372709545">የአገናኝ ዩአርኤል ገልብጥ</translation> <translation id="3607167657931203000">የራስ-ሙላ ውሂብ</translation> <translation id="3608008480985212611">አማራጮችዎን ለማስተዳደር በመለያ ይግቡ።</translation> @@ -622,6 +625,7 @@ <translation id="5197255632782567636">በይነመረብ</translation> <translation id="5211488077761630279">የእርስዎን <ph name="PERMISSION" /> እንዲጠቀም «<ph name="SITE_NAME" />» ይፈቀድለት?</translation> <translation id="5219295696240154694">ድር ላይ ለሁሉም ሰው ደህንነት ለማሻሻል ያግዙ</translation> +<translation id="5221339005270097309">የይለፍ ቃላትን በመፈተሽ ላይ…</translation> <translation id="5228579091201413441">ማመሳሰልን አንቃ</translation> <translation id="5232485538978018676">በሚተዳደር መለያ ይግቡ</translation> <translation id="5234764350956374838">አሰናብት</translation> @@ -661,6 +665,7 @@ Handoff እንዲሁም በSettings ውስጥ ባለው የGeneral ክፍል ላይ መንቃት አለበት፣ እና የእርስዎ መሣሪያዎች ተመሳሳዩን የiCloud መለያ መጠቀም አለባቸው።</translation> <translation id="5551897871312988470">ለመተርጎም ሐሳብ አቅርብ</translation> <translation id="5556459405103347317">ዳግም ጫን</translation> +<translation id="555749644339804659">የይለፍ ቃላትን በመፈተሽ ላይ…</translation> <translation id="556042886152191864">አዘራር</translation> <translation id="5597915316964418992">የትር ፍርግርግን ይክፈቱ</translation> <translation id="560322036295180549">በድርጅትዎ ጠፍቷል</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb index 2f43e8d7..668f74e6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -218,6 +218,7 @@ <translation id="2482878487686419369">الإشعارات</translation> <translation id="2496626742194544812">الانتقال إلى علامة التبويب الأولى</translation> <translation id="2500374554657206846">خيارات حفظ كلمة المرور</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> كلمة مرور مستخدَمة لحساب آخر</translation> <translation id="2523363575747517183">يحاول الموقع الإلكتروني هذا فتح تطبيق آخر بشكلٍ متكرر.</translation> <translation id="2529021024822217800">فتح الكل</translation> <translation id="2547458583188611426">المزامنة غير مفعَّلة. يجب إدخال عبارة المرور لبدء المزامنة.</translation> @@ -227,6 +228,7 @@ <translation id="2576499762020411840">استخدام كلمات المرور في حساب Google وحفظها</translation> <translation id="2578571896248130439">إرسال صفحة الويب</translation> <translation id="2584132361465095047">إضافة حساب...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{بالنسبة إلى علامات التبويب المفتوحة التي لم يتم استخدامها لمدة يوم واحد أو أكثر، يتم نقلها إلى قسم "علامات التبويب غير النشطة" لتتمكّن من التركيز بسهولة على علامات التبويب التي تستخدمها كثيرًا. يمكنك تغيير ذلك متى شئت من خلال الإعدادات.}zero{بالنسبة إلى علامات التبويب المفتوحة التي لم يتم استخدامها لمدة {COUNT} يوم أو أكثر، يتم نقلها إلى قسم "علامات التبويب غير النشطة" لتتمكّن من التركيز بسهولة على علامات التبويب التي تستخدمها كثيرًا. يمكنك تغيير ذلك متى شئت من خلال الإعدادات.}two{بالنسبة إلى علامات التبويب المفتوحة التي لم يتم استخدامها لمدة يومين ({COUNT}) أو أكثر، يتم نقلها إلى قسم "علامات التبويب غير النشطة" لتتمكّن من التركيز بسهولة على علامات التبويب التي تستخدمها كثيرًا. يمكنك تغيير ذلك متى شئت من خلال الإعدادات.}few{بالنسبة إلى علامات التبويب المفتوحة التي لم يتم استخدامها لمدة {COUNT} أيام أو أكثر، يتم نقلها إلى قسم "علامات التبويب غير النشطة" لتتمكّن من التركيز بسهولة على علامات التبويب التي تستخدمها كثيرًا. يمكنك تغيير ذلك متى شئت من خلال الإعدادات.}many{بالنسبة إلى علامات التبويب المفتوحة التي لم يتم استخدامها لمدة {COUNT} يومًا أو أكثر، يتم نقلها إلى قسم "علامات التبويب غير النشطة" لتتمكّن من التركيز بسهولة على علامات التبويب التي تستخدمها كثيرًا. يمكنك تغيير ذلك متى شئت من خلال الإعدادات.}other{بالنسبة إلى علامات التبويب المفتوحة التي لم يتم استخدامها لمدة {COUNT} يوم أو أكثر، يتم نقلها إلى قسم "علامات التبويب غير النشطة" لتتمكّن من التركيز بسهولة على علامات التبويب التي تستخدمها كثيرًا. يمكنك تغيير ذلك متى شئت من خلال الإعدادات.}}</translation> <translation id="2600682495497606169">محو ملفات تعريف الارتباط على هذا الموقع الإلكتروني</translation> <translation id="2609008503159898744">هل تريد إغلاق جميع علامات التبويب؟</translation> <translation id="2625189173221582860">تم نسخ كلمة المرور</translation> @@ -294,6 +296,7 @@ <translation id="2932085390869194046">اقتراح كلمة مرور...</translation> <translation id="2932765531295814441">إضافة كلمات المرور يدويًا</translation> <translation id="2952581218264071393">1- افتَح إعدادات Chrome.</translation> +<translation id="2953871438216280742">سجِّل الدخول لفتح "قائمة القراءة" وحفظها في حسابك على Google.</translation> <translation id="2958718410589002129">كلمات المرور</translation> <translation id="2961210776189273067">العنوان</translation> <translation id="2964349545761222050">حظر ملفات تعريف الارتباط التابعة لجهات خارجية</translation> @@ -387,6 +390,7 @@ <translation id="3581564640715911333">اقتراح ترجمة الصفحات المكتوبة بلغات أخرى</translation> <translation id="3588820906588687999">فتح صورة في علامة تبويب جديدة</translation> <translation id="3595252146048399851">يمكنك متى شئت اختيار البيانات التي تريد مزامنتها، وذلك من خلال <ph name="BEGIN_LINK" />الإعدادات<ph name="END_LINK" />. وقد تستخدم Google السجلّ لتخصيص "بحث Google" والخدمات الأخرى.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{كلمة مرور واحدة ({COUNT}) ضعيفة}zero{{COUNT} كلمة مرور ضعيفة}two{كلمتا مرور ({COUNT}) ضعيفتان}few{{COUNT} كلمات مرور ضعيفة}many{{COUNT} كلمة مرور ضعيفة}other{{COUNT} كلمة مرور ضعيفة}}</translation> <translation id="3603009562372709545">نسخ عنوان URL للرابط</translation> <translation id="3607167657931203000">ملء البيانات تلقائيًا</translation> <translation id="3608008480985212611">يُرجى تسجيل الدخول لإدارة إعداداتك المفضّلة.</translation> @@ -573,6 +577,7 @@ <translation id="4844899002472726590">يمكنك الاطّلاع على المواضيع التي تحظى باهتمامك وتعديلها.</translation> <translation id="4848999860252535517">هل تريد حذف كلمة المرور في <ph name="WEBSITE" />؟</translation> <translation id="4854345657858711387">تعيين رمز المرور</translation> +<translation id="4856498338299082007">في حسابك على Google</translation> <translation id="4858786880085262208">ستتم الترقية إلى بروتوكول HTTPS إذا أمكن. قد تتضمَّن المواقع الإلكترونية الآمنة محتوى غير آمن.</translation> <translation id="4860895144060829044">اتصال</translation> <translation id="4872323082491632254">التحقّق من كلمات المرور</translation> @@ -624,6 +629,7 @@ <translation id="5197255632782567636">الإنترنت</translation> <translation id="5211488077761630279">هل تريد السماح لـ "<ph name="SITE_NAME" />" باستخدام <ph name="PERMISSION" />؟</translation> <translation id="5219295696240154694">المساعدة على تحسين الأمان على الإنترنت لخدمة الجميع</translation> +<translation id="5221339005270097309">جارٍ التحقّق من كلمات المرور…</translation> <translation id="5228579091201413441">تفعيل المزامنة</translation> <translation id="5232485538978018676">تسجيل الدخول باستخدام حساب مُدار</translation> <translation id="5234764350956374838">تجاهل</translation> @@ -663,6 +669,7 @@ لابد من تفعيل Handoff كذلك في القسم العام من الإعدادات، ولابد من استخدام أجهزتك لنفس حساب iCloud.</translation> <translation id="5551897871312988470">اقتراح الترجمة</translation> <translation id="5556459405103347317">إعادة التحميل</translation> +<translation id="555749644339804659">جارٍ التحقّق من كلمات المرور…</translation> <translation id="556042886152191864">زر</translation> <translation id="5597915316964418992">افتح شبكة علامات التبويب.</translation> <translation id="560322036295180549">أوقفت مؤسستك هذا الخيار.</translation> @@ -1089,6 +1096,7 @@ <translation id="821809831108207540">لتخصيص متصفّح Chrome وخلاصة "اقتراحات"، يُرجى تسجيل الدخول وتفعيل المزامنة.</translation> <translation id="8225985093977202398">الصور والملفات المُخزنة مؤقتًا</translation> <translation id="8237382152611443140">فتح AutoFill Password Settings (إعدادات الملء التلقائي لكلمات المرور)</translation> +<translation id="8248969482078657578">الحفاظ على تركيزك من خلال "علامات التبويب غير النشطة"</translation> <translation id="8261506727792406068">حذف</translation> <translation id="8264966119170358612">تم رصد بعض كلمات المرور المحفوظة الخاصة بك ضمن عملية اختراق للبيانات من خارج Google. <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation> <translation id="8265018477030547118">سيتم حفظ كلمة المرور على هذا الجهاز فقط.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb index c34a6f4..802856f9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_az.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Bildirişlər</translation> <translation id="2496626742194544812">İlk Taba keçin</translation> <translation id="2500374554657206846">Parolu Yadda Saxlamaq üçün Seçimlər</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> təkrar işlənən parol</translation> <translation id="2523363575747517183">Bu veb sayt davamlı olaraq digər tətbiqi açmağa çalışır.</translation> <translation id="2529021024822217800">Hamısını açın</translation> <translation id="2547458583188611426">Sinxronlaşdırma işləmir. Sinxronlaşdırmanı başlatmaq üçün parol ifadəsini daxil edin.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">Google Hesabında Parolları İstifadə Edin və Yadda Saxlayın</translation> <translation id="2578571896248130439">Veb səhifəni göndərin</translation> <translation id="2584132361465095047">Hesab əlavə edin...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{Ən çox istifadə etdiyiniz tablara fokuslanmaq üçün ən az bir gün istifadə edilməyən açıq tablar Deaktiv Tablara köçürülür. İstənilən vaxt ayarlarda dəyişə bilərsiniz.}other{Ən çox istifadə etdiyiniz tablara fokuslanmaq üçün ən az {COUNT} gün istifadə edilməyən açıq tablar Deaktiv Tablara köçürülür. İstənilən vaxt ayarlarda dəyişə bilərsiniz.}}</translation> <translation id="2600682495497606169">Sayt Kukilərini Silin</translation> <translation id="2609008503159898744">Bütün Tablar Bağlansın?</translation> <translation id="2625189173221582860">Parol kopyalandı</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">Parol təklif edin...</translation> <translation id="2932765531295814441">Parolları manual olaraq əlavə edin</translation> <translation id="2952581218264071393">1. Chrome Ayarlarını açın</translation> +<translation id="2953871438216280742">Oxu siyahısını açmaq və Google Hesabında saxlamaq üçün daxil olun.</translation> <translation id="2958718410589002129">Parollar</translation> <translation id="2961210776189273067">Başlıq</translation> <translation id="2964349545761222050">Üçüncü Tərəf Kukiləri Bloklayın</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">Səhifələrin digər dillərdə tərcümə edilməsini təklif edin</translation> <translation id="3588820906588687999">Şəkli Yeni Paneldə Açın</translation> <translation id="3595252146048399851">Sinxronizasiya seçimlərini <ph name="BEGIN_LINK" />ayarlarda<ph name="END_LINK" /> edə bilərsiniz. Google tarixçənizə əsasən Axtarış və digər xidmətləri fərdiləşdirə bilər.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} zəif parol}other{{COUNT} zəif parol}}</translation> <translation id="3603009562372709545">Link URL kopyalayın</translation> <translation id="3607167657931203000">Datanı avtomatik doldurun</translation> <translation id="3608008480985212611">Tərcihləri idarə etmək üçün daxil olun.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">Maraqlandığınız mövzulara baxın və redaktə edin</translation> <translation id="4848999860252535517"><ph name="WEBSITE" /> parolu silinsin?</translation> <translation id="4854345657858711387">Parol kodu ayarlayın</translation> +<translation id="4856498338299082007">Google Hesabında</translation> <translation id="4858786880085262208">Mümkün olduqda HTTPS-ə təkmilləşdirin. Təhlükəsiz saytlarda təhlükəsiz olmayan məzmun ola bilər.</translation> <translation id="4860895144060829044">Zəng</translation> <translation id="4872323082491632254">Parolları yoxlayın</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">internet</translation> <translation id="5211488077761630279">"<ph name="SITE_NAME" />" saytının <ph name="PERMISSION" /> istifadə etməsinə icazə verilsin?</translation> <translation id="5219295696240154694">Vebdə hər kəsin güvənliyini artırmağa yardım edin</translation> +<translation id="5221339005270097309">Parollar yoxlanır…</translation> <translation id="5228579091201413441">Sinxronizasiyanı aktiv edin</translation> <translation id="5232485538978018676">İdarə olunan hesab ilə daxil olun</translation> <translation id="5234764350956374838">Kənarlaşdırın</translation> @@ -661,6 +667,7 @@ Handoff Ayarların Ümumi bölməsindən də aktiv edilə bilər və cihazlarınız eyni iCloud hesabı istifadə etməlidir.</translation> <translation id="5551897871312988470">Tərcümə Təklif Edin</translation> <translation id="5556459405103347317">Yenidən yükləyin</translation> +<translation id="555749644339804659">Parollar yoxlanır…</translation> <translation id="556042886152191864">Düymə</translation> <translation id="5597915316964418992">Tab Torunu açın</translation> <translation id="560322036295180549">Təşkilatınız tərəfindən deaktiv edilib</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">Təkliflər lentinizi və Chrome'u fərdiləşdirmək üçün daxil olun və sinxronizasiyanı aktiv edin.</translation> <translation id="8225985093977202398">Keşlənmiş Şəkillər və Fayllar</translation> <translation id="8237382152611443140">Parolların Avtomatik Doldurulması Ayarlarını açın</translation> +<translation id="8248969482078657578">Deaktiv tablar fokuslanmağa kömək edir</translation> <translation id="8261506727792406068">Silin</translation> <translation id="8264966119170358612">Yadda saxlanılmış parollarınızdan bəziləri Google-a aid olmayan data pozulması nəticəsində ələ keçirilib. <ph name="BEGIN_LINK" />Ətraflı məlumat<ph name="END_LINK" /></translation> <translation id="8265018477030547118">Yalnız bu cihazda</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb index 560a452..f8a015c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Известия</translation> <translation id="2496626742194544812">Към първия раздел</translation> <translation id="2500374554657206846">Опции за запазване на паролата</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> повторно използвани пароли</translation> <translation id="2523363575747517183">Този уебсайт многократно се опитва да отвори друго приложение.</translation> <translation id="2529021024822217800">Отваряне на всички</translation> <translation id="2547458583188611426">Синхронизирането не работи. За да стартирате синхронизирането, въведете пропуска си.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">Използване и запазване на пароли в профила ви в Google</translation> <translation id="2578571896248130439">Изпращане на уеб страницата</translation> <translation id="2584132361465095047">Добавяне на профил…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{Отворените раздели, които не сте използвали от един или повече дни, ще бъдат премествани в „Неактивни раздели“, така че лесно да се съсредоточите върху най-използваните от вас. Можете да промените това по всяко време от настройките.}other{Отворените раздели, които не сте използвали от {COUNT} или повече дни, ще бъдат премествани в „Неактивни раздели“, така че лесно да се съсредоточите върху най-използваните от вас. Можете да промените това по всяко време от настройките.}}</translation> <translation id="2600682495497606169">Изчистване на „бисквитките“ от сайта</translation> <translation id="2609008503159898744">Искате ли да затворите всички раздели?</translation> <translation id="2625189173221582860">Паролата е копирана</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">Предложение за парола...</translation> <translation id="2932765531295814441">Ръчно добавяне на пароли</translation> <translation id="2952581218264071393">1. Отворете настройките на Chrome.</translation> +<translation id="2953871438216280742">Влезте в профила си в Google, за да отворите и запазите в него списъка си за четене.</translation> <translation id="2958718410589002129">Пароли</translation> <translation id="2961210776189273067">Обръщение</translation> <translation id="2964349545761222050">Блокиране на „бисквитките“ на трети страни</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">Извеждане на предложения за превод на страниците, написани на други езици</translation> <translation id="3588820906588687999">Отваряне на изображението в нов раздел</translation> <translation id="3595252146048399851">Винаги можете да изберете какво да се синхронизира от <ph name="BEGIN_LINK" />настройките<ph name="END_LINK" />. Google може да персонализира Търсене и други услуги въз основа на историята ви.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} ненадеждна парола}other{{COUNT} ненадеждни пароли}}</translation> <translation id="3603009562372709545">Копиране на URL адреса на връзката</translation> <translation id="3607167657931203000">Автоматично попълване на данни</translation> <translation id="3608008480985212611">Влезте в профила си, за да управлявате предпочитанията си.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">Преглеждайте и редактирайте темите, от които се интересувате</translation> <translation id="4848999860252535517">Да се изтрие ли паролата за <ph name="WEBSITE" />?</translation> <translation id="4854345657858711387">Задайте код за достъп</translation> +<translation id="4856498338299082007">В профила ви в Google</translation> <translation id="4858786880085262208">Надстройте до HTTPS, когато е възможно. В защитените сайтове може да има незащитено вградено съдържание.</translation> <translation id="4860895144060829044">Обаждане</translation> <translation id="4872323082491632254">Проверка на паролите</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">Интернет</translation> <translation id="5211488077761630279">Да се разреши ли на <ph name="SITE_NAME" /> да използва <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Помогнете за всеобщото подобряване на сигурността в мрежата</translation> +<translation id="5221339005270097309">Паролите се проверяват…</translation> <translation id="5228579091201413441">Активиране на синхронизирането</translation> <translation id="5232485538978018676">Влизане с управляван профил</translation> <translation id="5234764350956374838">Отхвърляне</translation> @@ -661,6 +667,7 @@ Трябва да активирате Handoff и в секцията „General“ на Settings, както и да използвате един и същ профил в iCloud на устройствата си.</translation> <translation id="5551897871312988470">Предложения за превод</translation> <translation id="5556459405103347317">Повторно зареждане</translation> +<translation id="555749644339804659">Паролите се проверяват…</translation> <translation id="556042886152191864">Бутон</translation> <translation id="5597915316964418992">Отворете мрежата с раздели.</translation> <translation id="560322036295180549">Изключено от организацията ви</translation> @@ -1015,6 +1022,7 @@ <translation id="7781011649027948662">Да се преведе ли страницата?</translation> <translation id="7781069478569868053">Нов раздел в браузъра</translation> <translation id="7781829728241885113">Вчера</translation> +<translation id="7786246662347093005">{COUNT,plural, =1{След 1 ден}other{След {COUNT} дни}}</translation> <translation id="778855399387580014">Започнете търсене в нов раздел в Chrome.</translation> <translation id="7791543448312431591">Добавяне</translation> <translation id="7807060072011926525">Предоставено от Google</translation> @@ -1087,6 +1095,7 @@ <translation id="821809831108207540">За да персонализирате емисията си в Discover и Chrome, влезте в профила си и включете синхронизирането.</translation> <translation id="8225985093977202398">Кеширани изображения и файлове</translation> <translation id="8237382152611443140">Отворете настройките за автоматично попълване на паролите.</translation> +<translation id="8248969482078657578">Секцията „Неактивни раздели“ ви помага да се съсредоточите</translation> <translation id="8261506727792406068">Изтриване</translation> <translation id="8264966119170358612">Някои от запазените ви пароли са били разкрити вследствие на нарушение на сигурността на данните извън Google. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation> <translation id="8265018477030547118">Само на това устройство</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index 1af1d4e7..8588d329b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Notificacions</translation> <translation id="2496626742194544812">Ves a la primera pestanya</translation> <translation id="2500374554657206846">Opcions per desar la contrasenya</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> contrasenyes reutilitzades</translation> <translation id="2523363575747517183">Aquest lloc web està provant d'obrir una altra aplicació repetidament.</translation> <translation id="2529021024822217800">Obre-les totes</translation> <translation id="2547458583188611426">La sincronització no funciona. Per iniciar la sincronització, introdueix la frase de contrasenya.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">Suggereix una contrasenya...</translation> <translation id="2932765531295814441">Afegeix contrasenyes manualment</translation> <translation id="2952581218264071393">1. Obre la configuració de Chrome.</translation> +<translation id="2953871438216280742">Inicia la sessió per obrir i desar la llista de lectura al teu Compte de Google.</translation> <translation id="2958718410589002129">Contrasenyes</translation> <translation id="2961210776189273067">Títol</translation> <translation id="2964349545761222050">Bloqueja les galetes de tercers</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">Proposa traduir les pàgines en altres idiomes</translation> <translation id="3588820906588687999">Obre la imatge en una pestanya nova</translation> <translation id="3595252146048399851">Pots anar a la <ph name="BEGIN_LINK" />configuració<ph name="END_LINK" /> en qualsevol moment per decidir què vols sincronitzar. És possible que Google personalitzi la Cerca i altres serveis en funció del teu historial.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} contrasenya poc segura}other{{COUNT} contrasenyes poc segures}}</translation> <translation id="3603009562372709545">Copia l'URL de l'enllaç</translation> <translation id="3607167657931203000">Dades d'Emplenament automàtic</translation> <translation id="3608008480985212611">Inicia la sessió per gestionar les teves preferències.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Vols permetre que "<ph name="SITE_NAME" />" utilitzi <ph name="PERMISSION" /> del teu dispositiu?</translation> <translation id="5219295696240154694">Ajuda a millorar la seguretat al web per a tothom</translation> +<translation id="5221339005270097309">Comprovant contrasenyes…</translation> <translation id="5228579091201413441">Activa la sincronització</translation> <translation id="5232485538978018676">Inicia la sessió amb un compte gestionat</translation> <translation id="5234764350956374838">Ignora</translation> @@ -663,6 +667,7 @@ Handoff també ha d'estar activat a la secció General de Configuració, i els vostres dispositius han de fer servir el mateix compte d'iCloud.</translation> <translation id="5551897871312988470">Proposa traduir aquest idioma</translation> <translation id="5556459405103347317">Torna a carregar</translation> +<translation id="555749644339804659">Comprovant contrasenyes…</translation> <translation id="556042886152191864">Botó</translation> <translation id="5597915316964418992">Obre la quadrícula de pestanyes</translation> <translation id="560322036295180549">Desactivat per l'organització</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb index 6ef8d2c..e293b1e0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Oznámení</translation> <translation id="2496626742194544812">Přejít na první kartu</translation> <translation id="2500374554657206846">Možnosti uložení hesla</translation> +<translation id="2502415369140591438">Opakovaně použitá hesla: <ph name="COUNT" /></translation> <translation id="2523363575747517183">Tento web se opakovaně pokouší otevřít jinou aplikaci.</translation> <translation id="2529021024822217800">Otevřít vše</translation> <translation id="2547458583188611426">Synchronizace nefunguje. Zadejte heslovou frázi.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">Používání a ukládání hesel v účtu Google</translation> <translation id="2578571896248130439">Odeslat webovou stránku</translation> <translation id="2584132361465095047">Přidat účet...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{Otevřené karty, které jste den nebo déle nepoužili, se přesunou do části Neaktivní karty, abyste se mohli soustředit na ty, které používáte nejčastěji. V nastavení to můžete kdykoliv změnit.}few{Otevřené karty, které jste {COUNT} dny nebo déle nepoužili, se přesunou do části Neaktivní karty, abyste se mohli soustředit na ty, které používáte nejčastěji. V nastavení to můžete kdykoliv změnit.}many{Otevřené karty, které jste {COUNT} dne nebo déle nepoužili, se přesunou do části Neaktivní karty, abyste se mohli soustředit na ty, které používáte nejčastěji. V nastavení to můžete kdykoliv změnit.}other{Otevřené karty, které jste {COUNT} dní nebo déle nepoužili, se přesunou do části Neaktivní karty, abyste se mohli soustředit na ty, které používáte nejčastěji. V nastavení to můžete kdykoliv změnit.}}</translation> <translation id="2600682495497606169">Vymazat soubory cookie webu</translation> <translation id="2609008503159898744">Zavřít všechny karty?</translation> <translation id="2625189173221582860">Heslo bylo zkopírováno</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">Navrhnout heslo...</translation> <translation id="2932765531295814441">Ruční přidání hesel</translation> <translation id="2952581218264071393">1. Otevřít nastavení Chromu</translation> +<translation id="2953871438216280742">Pokud chcete otevřít a uložit seznam četby ve svém účtu Google, přihlaste se.</translation> <translation id="2958718410589002129">Hesla</translation> <translation id="2961210776189273067">Název</translation> <translation id="2964349545761222050">Blokovat soubory cookie třetích stran</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">Nabízet překlad stránek v jiných jazycích</translation> <translation id="3588820906588687999">Otevřít obrázek na nové kartě</translation> <translation id="3595252146048399851">Synchronizované položky můžete kdykoliv vybrat v <ph name="BEGIN_LINK" />nastavení<ph name="END_LINK" />. Google může personalizovat Vyhledávání a další služby na základě vaší historie.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} slabé heslo}few{{COUNT} slabá hesla}many{{COUNT} slabého hesla}other{{COUNT} slabých hesel}}</translation> <translation id="3603009562372709545">Kopírovat adresu URL odkazu</translation> <translation id="3607167657931203000">Data automatického vyplňování</translation> <translation id="3608008480985212611">Pokud chcete spravovat své preference, přihlaste se.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">Zobrazení a úprava témat, která vás zajímají</translation> <translation id="4848999860252535517">Smazat heslo domény <ph name="WEBSITE" />?</translation> <translation id="4854345657858711387">Nastavte heslo</translation> +<translation id="4856498338299082007">Ve vašem účtu Google</translation> <translation id="4858786880085262208">Pokud je to možné, upgradujte na HTTPS. Na zabezpečených webech může být vložen nezabezpečený obsah.</translation> <translation id="4860895144060829044">Volat</translation> <translation id="4872323082491632254">Zkontrolovat hesla</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Povolit webu <ph name="SITE_NAME" /> používat <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Pomáhejte se zlepšováním bezpečnosti internetu pro všechny</translation> +<translation id="5221339005270097309">Kontrola hesel…</translation> <translation id="5228579091201413441">Aktivace synchronizace</translation> <translation id="5232485538978018676">Přihlášení pomocí spravovaného účtu</translation> <translation id="5234764350956374838">Zavřít</translation> @@ -661,6 +667,7 @@ Funkce Handoff musí být povolena také v Nastavení v sekci Obecné a zařízení musejí používat stejný účet iCloud.</translation> <translation id="5551897871312988470">Nabízet překlad</translation> <translation id="5556459405103347317">Načíst znovu</translation> +<translation id="555749644339804659">Kontrola hesel…</translation> <translation id="556042886152191864">Tlačítko</translation> <translation id="5597915316964418992">Otevřít mřížku karet</translation> <translation id="560322036295180549">Vypnuto vaší organizací</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">Pokud chcete personalizovat kanál Objevit a Chrome, přihlaste se a zapněte synchronizaci.</translation> <translation id="8225985093977202398">Obrázky a soubory v mezipaměti</translation> <translation id="8237382152611443140">Otevřete nastavení automatického vyplňování hesel.</translation> +<translation id="8248969482078657578">Neaktivní karty vám pomohou soustředit se</translation> <translation id="8261506727792406068">Smazat</translation> <translation id="8264966119170358612">Při porušení zabezpečení údajů třetí strany byla vyzrazena některá vaše uložená hesla. <ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation> <translation id="8265018477030547118">Pouze na tomto zařízení</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb index 7a0bbb82..54a2e9c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_da.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Notifikationer</translation> <translation id="2496626742194544812">Gå til første fane</translation> <translation id="2500374554657206846">Valgmuligheder for at gemme adgangskode</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> genbrugte adgangskoder</translation> <translation id="2523363575747517183">Dette website forsøger hele tiden at åbne en anden app.</translation> <translation id="2529021024822217800">Åbn alle</translation> <translation id="2547458583188611426">Synkronisering fungerer ikke. Angiv din adgangssætning for at starte synkroniseringen.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">Brug og gem adgangskoder på din Google-konto</translation> <translation id="2578571896248130439">Send webside</translation> <translation id="2584132361465095047">Tilføj konto...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{Åbne faner, der ikke har været i brug i mindst én dag, flyttes til Inaktive faner, så du nemt kan fokusere på de faner, du bruger mest. Du kan til enhver tid ændre dette i indstillingerne.}one{Åbne faner, der ikke har været i brug i mindst {COUNT} dag, flyttes til Inaktive faner, så du nemt kan fokusere på de faner, du bruger mest. Du kan til enhver tid ændre dette i indstillingerne.}other{Åbne faner, der ikke har været i brug i mindst {COUNT} dage, flyttes til Inaktive faner, så du nemt kan fokusere på de faner, du bruger mest. Du kan til enhver tid ændre dette i indstillingerne.}}</translation> <translation id="2600682495497606169">Ryd cookies fra websitet</translation> <translation id="2609008503159898744">Vil du lukke alle faner?</translation> <translation id="2625189173221582860">Adgangskoden er kopieret</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">Foreslå adgangskode...</translation> <translation id="2932765531295814441">Tilføj adgangskoder manuelt</translation> <translation id="2952581218264071393">1. Åbn indstillingerne for Chrome</translation> +<translation id="2953871438216280742">Log ind for at åbne og gemme din læseliste på din Google-konto.</translation> <translation id="2958718410589002129">Adgangskoder</translation> <translation id="2961210776189273067">Titel</translation> <translation id="2964349545761222050">Bloker cookies fra tredjeparter</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">Tilbyd at oversætte sider på andre sprog</translation> <translation id="3588820906588687999">Åbn billede på ny fane</translation> <translation id="3595252146048399851">Du kan altid vælge, hvad der skal synkroniseres, i <ph name="BEGIN_LINK" />indstillingerne<ph name="END_LINK" />. Google kan tilpasse Søgning og andre tjenester baseret på din historik.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} svag adgangskode}one{{COUNT} svag adgangskode}other{{COUNT} svage adgangskoder}}</translation> <translation id="3603009562372709545">Kopiér linkets webadresse</translation> <translation id="3607167657931203000">AutoFyld-data</translation> <translation id="3608008480985212611">Log ind for at administrere dine præferencer.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">Se og rediger de emner, du er interesseret i</translation> <translation id="4848999860252535517">Vil du slette adgangskoden til <ph name="WEBSITE" />?</translation> <translation id="4854345657858711387">Angiv en adgangskode</translation> +<translation id="4856498338299082007">På din Google-konto</translation> <translation id="4858786880085262208">Opgrader til HTTPS, når det er muligt. Sikre websites indlejrer muligvis indhold, der ikke er sikkert.</translation> <translation id="4860895144060829044">Ring op</translation> <translation id="4872323082491632254">Tjek adgangskoder</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Vil du tillade, at "<ph name="SITE_NAME" />" bruger <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Vær med til at forbedre sikkerheden for alle på nettet</translation> +<translation id="5221339005270097309">Tjekker adgangskoder…</translation> <translation id="5228579091201413441">Aktivér synkronisering</translation> <translation id="5232485538978018676">Log ind med Managerkonto</translation> <translation id="5234764350956374838">Luk</translation> @@ -661,6 +667,7 @@ Handoff skal være aktiveret i afsnittet Generelt i Indstillinger, og dine enheder skal benytte den samme iCloud-konto.</translation> <translation id="5551897871312988470">Tilbyd at oversætte</translation> <translation id="5556459405103347317">Genindlæs</translation> +<translation id="555749644339804659">Tjekker adgangskoder…</translation> <translation id="556042886152191864">Knap</translation> <translation id="5597915316964418992">Åbn fanegitteret</translation> <translation id="560322036295180549">Deaktiveret af din organisation</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">Log ind, og aktivér synkronisering for at tilpasse dit Discover-feed og Chrome.</translation> <translation id="8225985093977202398">Billeder og filer, der er gemt i cache</translation> <translation id="8237382152611443140">Åbn indstillingerne for Autoudfyld adgangskoder</translation> +<translation id="8248969482078657578">Inaktive faner hjælper dig med at holde fokus</translation> <translation id="8261506727792406068">Slet</translation> <translation id="8264966119170358612">Nogle af dine gemte adgangskoder er blevet offentliggjort som følge af et brud på datasikkerheden uden for Google. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation> <translation id="8265018477030547118">Kun på denne enhed</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 276070a9..53a4d2b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Notifications</translation> <translation id="2496626742194544812">Go to first tab</translation> <translation id="2500374554657206846">Options to save password</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> reused passwords</translation> <translation id="2523363575747517183">This website is repeatedly trying to open another application.</translation> <translation id="2529021024822217800">Open All</translation> <translation id="2547458583188611426">Sync is not working. To start sync, enter your passphrase.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">Suggest password...</translation> <translation id="2932765531295814441">Add passwords manually</translation> <translation id="2952581218264071393">1. Open Chrome settings</translation> +<translation id="2953871438216280742">Sign in to open and save your reading list in your Google Account.</translation> <translation id="2958718410589002129">Passwords</translation> <translation id="2961210776189273067">Title</translation> <translation id="2964349545761222050">Block third-party cookies</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">Offer to translate pages in other languages</translation> <translation id="3588820906588687999">Open Image in New Tab</translation> <translation id="3595252146048399851">You can always choose what to sync in <ph name="BEGIN_LINK" />settings<ph name="END_LINK" />. Google may personalise Search and other services based on your history.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} weak password}other{{COUNT} weak passwords}}</translation> <translation id="3603009562372709545">Copy link URL</translation> <translation id="3607167657931203000">Auto-fill Data</translation> <translation id="3608008480985212611">Sign in to manage your preferences</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Allow ‘<ph name="SITE_NAME" />’ to use your <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Help improve security on the web for everyone</translation> +<translation id="5221339005270097309">Checking passwords…</translation> <translation id="5228579091201413441">Enable sync</translation> <translation id="5232485538978018676">Sign in with managed account</translation> <translation id="5234764350956374838">Dismiss</translation> @@ -663,6 +667,7 @@ Handoff must also be enabled in the General section of Settings, and your devices must use the same iCloud account.</translation> <translation id="5551897871312988470">Offer to translate</translation> <translation id="5556459405103347317">Reload</translation> +<translation id="555749644339804659">Checking passwords…</translation> <translation id="556042886152191864">Button</translation> <translation id="5597915316964418992">Open the Tab grid</translation> <translation id="560322036295180549">Turned off by your organisation</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index 3fa2232..80159b1d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -1123,7 +1123,7 @@ <translation id="850600235656508448">Abrir en modo Incógnito</translation> <translation id="8517375800490286174">Licencias de software libre</translation> <translation id="8524799873541103884">Pestañas de <ph name="INCOGNITO" />: de <ph name="FIRST_VISIBLE_TAB" /> a <ph name="LAST_VISIBLE_TAB" /> de <ph name="NUMBER_OF_OPEN_TABS" /></translation> -<translation id="8529767659511976195">Novedad</translation> +<translation id="8529767659511976195">Nuevo</translation> <translation id="8532105204136943229">Año de caducidad</translation> <translation id="8533166274275423134">Abierto en otra parte</translation> <translation id="8533670235862049797">Navegación segura está activada</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb index 25ae4ae9..b7757dd 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">اعلانها</translation> <translation id="2496626742194544812">رفتن به اولین برگه</translation> <translation id="2500374554657206846">گزینههایی برای ذخیره گذرواژه</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> گذرواژه دوبارهاستفادهشده</translation> <translation id="2523363575747517183">این وبسایت بهطور مکرر تلاش میکند برنامه دیگری را باز کند.</translation> <translation id="2529021024822217800">باز کردن همه</translation> <translation id="2547458583188611426">همگامسازی کار نمیکند. برای شروع همگامسازی، گذرعبارت را وارد کنید.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">استفاده و ذخیره گذرواژهها در «حساب Google» شما</translation> <translation id="2578571896248130439">ارسال صفحه وب</translation> <translation id="2584132361465095047">افزودن حساب…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{برگههای بازی که یک روز یا بیشتر از آنها استفاده نشده باشد به «برگههای غیرفعال» منتقل میشود تا بتوانید بهراحتی روی برگههای پراستفادهتان تمرکز کنید. هرزمان بخواهید میتوانید این ویژگی را در تنظیمات تغییر دهید.}one{برگههای بازی که {COUNT} روز یا بیشتر از آنها استفاده نشده باشد به «برگههای غیرفعال» منتقل میشود تا بتوانید بهراحتی روی برگههای پراستفادهتان تمرکز کنید. هرزمان بخواهید میتوانید این ویژگی را در تنظیمات تغییر دهید.}other{برگههای بازی که {COUNT} روز یا بیشتر از آنها استفاده نشده باشد به «برگههای غیرفعال» منتقل میشود تا بتوانید بهراحتی روی برگههای پراستفادهتان تمرکز کنید. هرزمان بخواهید میتوانید این ویژگی را در تنظیمات تغییر دهید.}}</translation> <translation id="2600682495497606169">پاک کردن کوکیهای سایت</translation> <translation id="2609008503159898744">همه برگهها بسته شود؟</translation> <translation id="2625189173221582860">گذرواژه کپی شد</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">پیشنهاد گذرواژه…</translation> <translation id="2932765531295814441">افزودن دستی گذرواژهها</translation> <translation id="2952581218264071393">۱. «تنظیمات Chrome» را باز کنید</translation> +<translation id="2953871438216280742">برای باز کردن و ذخیره کردن فهرست خواندن در «حساب Google»، به سیستم وارد شوید.</translation> <translation id="2958718410589002129">گذرواژهها</translation> <translation id="2961210776189273067">عنوان</translation> <translation id="2964349545761222050">مسدود کردن کوکیهای شخص ثالث</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">پیشنهاد ترجمه صفحات نوشتهشده به زبانهای دیگر</translation> <translation id="3588820906588687999">باز کردن تصویر در برگه جدید</translation> <translation id="3595252146048399851">همواره میتوانید در <ph name="BEGIN_LINK" />تنظیمات<ph name="END_LINK" /> انتخاب کنید چه مواردی همگامسازی شود. Google ممکن است براساس سابقهتان «جستجو» و سرویسهای دیگر را شخصی کند.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} گذرواژه ضعیف}one{{COUNT} گذرواژه ضعیف}other{{COUNT} گذرواژه ضعیف}}</translation> <translation id="3603009562372709545">کپی URL پیوند</translation> <translation id="3607167657931203000">دادههای تکمیل خودکار</translation> <translation id="3608008480985212611">برای مدیریت اولویتهایتان، به سیستم وارد شوید.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">دیدن و ویرایش موضوعهای موردعلاقه</translation> <translation id="4848999860252535517">گذرواژه <ph name="WEBSITE" /> حذف شود؟</translation> <translation id="4854345657858711387">تنظیم گذرنویسه</translation> +<translation id="4856498338299082007">در «حساب Google» شما</translation> <translation id="4858786880085262208">هروقت ممکن باشد، به HTTPS ارتقا پیدا میکنید. سایتهای امن ممکن است محتوای ناامن جاسازی کنند.</translation> <translation id="4860895144060829044">تماس</translation> <translation id="4872323082491632254">بررسی گذرواژهها</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">اینترنت</translation> <translation id="5211488077761630279">«<ph name="SITE_NAME" />» مجاز باشد از <ph name="PERMISSION" /> استفاده کند؟</translation> <translation id="5219295696240154694">به بهبود امنیت برای همه کاربران وب کمک کنید</translation> +<translation id="5221339005270097309">درحال بررسی گذرواژهها…</translation> <translation id="5228579091201413441">فعال کردن همگامسازی</translation> <translation id="5232485538978018676">ورود به سیستم با «حساب مدیریتشده»</translation> <translation id="5234764350956374838">رد کردن</translation> @@ -661,6 +667,7 @@ Handoff باید در بخش عمومی تنظیمات نیز فعال شود و دستگاههای شما باید از یک حساب iCloud استفاده کنند.</translation> <translation id="5551897871312988470">پیشنهاد برای ترجمه</translation> <translation id="5556459405103347317">بار کردن مجدد</translation> +<translation id="555749644339804659">درحال بررسی گذرواژهها…</translation> <translation id="556042886152191864">دکمه</translation> <translation id="5597915316964418992">باز کردن شبکه برگه</translation> <translation id="560322036295180549">سازمانتان آن را خاموش کرده است.</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">برای شخصی کردن جارزن «یافتهها» و Chrome، به سیستم وارد شوید و همگامسازی را روشن کنید.</translation> <translation id="8225985093977202398">تصاویر و فایلهای قرار گرفته در حافظه پنهان</translation> <translation id="8237382152611443140">AutoFill Password Settings (تنظیمات تکمیل خودکار گذرواژه) را باز کنید</translation> +<translation id="8248969482078657578">«برگههای غیرفعال» کمک میکند تمرکزتان را حفظ کنید</translation> <translation id="8261506727792406068">حذف</translation> <translation id="8264966119170358612">برخیاز گذرواژههای ذخیرهشدهتان بهدلیل سرقت اطلاعات شبکه در سایت غیر Google لو رفتهاند. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation> <translation id="8265018477030547118">فقط در این دستگاه</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb index 5761901..777fbd6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">નોટિફિકેશનો</translation> <translation id="2496626742194544812">પહેલી ટૅબ પર જાઓ</translation> <translation id="2500374554657206846">પાસવર્ડ સાચવવાના વિકલ્પો</translation> +<translation id="2502415369140591438">ફરીથી ઉપયોગમાં લેવાયેલા <ph name="COUNT" /> પાસવર્ડ</translation> <translation id="2523363575747517183">આ વેબસાઇટ વારંવાર અન્ય ઍપ્લિકેશન ખોલવાનો પ્રયાસ કરી રહી છે.</translation> <translation id="2529021024822217800">બધા ખોલો</translation> <translation id="2547458583188611426">સિંક કાર્ય કરી રહ્યું નથી. સિંક કરવાનું શરૂ કરવા માટે, તમારો પાસફ્રેઝ દાખલ કરો.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">તમારા Google એકાઉન્ટમાંના પાસવર્ડનો ઉપયોગ કરો અને તેને સાચવો</translation> <translation id="2578571896248130439">વેબપેજ મોકલો</translation> <translation id="2584132361465095047">એકાઉન્ટ ઉમેરો…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{એક કે તેથી વધુ દિવસથી ઉપયોગમાં ન લેવાયેલા ખુલ્લા ટૅબ, નિષ્ક્રિય ટૅબમાં ખસેડવામાં આવે છે જેથી કરીને તમે સૌથી વધુ ઉપયોગમાં લો છો તે ટૅબ પર તમે સરળતાથી ફોકસ કરી શકો. સેટિંગમાં તમે આને કોઈપણ સમયે બદલી શકો છો.}one{{COUNT} કે તેથી વધુ દિવસથી ઉપયોગમાં ન લેવાયેલા ખુલ્લા ટૅબ, નિષ્ક્રિય ટૅબમાં ખસેડવામાં આવે છે જેથી કરીને તમે સૌથી વધુ ઉપયોગમાં લો છો તે ટૅબ પર તમે સરળતાથી ફોકસ કરી શકો. સેટિંગમાં તમે આને કોઈપણ સમયે બદલી શકો છો.}other{{COUNT} કે તેથી વધુ દિવસથી ઉપયોગમાં ન લેવાયેલા ખુલ્લા ટૅબ, નિષ્ક્રિય ટૅબમાં ખસેડવામાં આવે છે જેથી કરીને તમે સૌથી વધુ ઉપયોગમાં લો છો તે ટૅબ પર તમે સરળતાથી ફોકસ કરી શકો. સેટિંગમાં તમે આને કોઈપણ સમયે બદલી શકો છો.}}</translation> <translation id="2600682495497606169">સાઇટ કુકી સાફ કરો</translation> <translation id="2609008503159898744">શું બધી ટૅબ બંધ કરીએ?</translation> <translation id="2625189173221582860">પાસવર્ડ કૉપિ કર્યો</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">પાસવર્ડ સૂચવો...</translation> <translation id="2932765531295814441">પાસવર્ડ મેન્યુઅલી દાખલ કરો</translation> <translation id="2952581218264071393">1. Chrome સેટિંગ ખોલો</translation> +<translation id="2953871438216280742">તમારા Google એકાઉન્ટમાં તમારી વાંચન સૂચિ ખોલવા અને સાચવવા માટે સાઇન ઇન કરો.</translation> <translation id="2958718410589002129">પાસવર્ડ</translation> <translation id="2961210776189273067">શીર્ષક</translation> <translation id="2964349545761222050">ત્રીજા પક્ષની કુકીને બ્લૉક કરો</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">પેજનો અન્ય ભાષાઓમાં અનુવાદ કરવાનું ઑફર કરો</translation> <translation id="3588820906588687999">નવા ટેબમાં છબી ખોલો</translation> <translation id="3595252146048399851">શું સિંક કરવું, તે તમે <ph name="BEGIN_LINK" />સેટિંગ<ph name="END_LINK" />માં જઈને કોઈપણ સમયે પસંદ કરી શકો છો. Google તમારા ઇતિહાસના આધારે Search અને અન્ય સેવાઓને મનગમતી બનાવી શકે છે.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} નબળો પાસવર્ડ}one{{COUNT} નબળો પાસવર્ડ}other{{COUNT} નબળા પાસવર્ડ}}</translation> <translation id="3603009562372709545">લિંક URL કૉપિ કરો</translation> <translation id="3607167657931203000">સ્વતઃભરણ ડેટા</translation> <translation id="3608008480985212611">તમારી પસંદગીઓ મેનેજ કરવા માટે, સાઇન ઇન કરો.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">તમે જેમાં રુચિ ધરાવતા હો, એવા વિષયો જુઓ અને તેમાં ફેરફાર કરો</translation> <translation id="4848999860252535517">શું <ph name="WEBSITE" /> માટેનો પાસવર્ડ ડિલીટ કરીએ?</translation> <translation id="4854345657858711387">એક પાસકોડ સેટ કરો</translation> +<translation id="4856498338299082007">તમારા Google એકાઉન્ટમાં</translation> <translation id="4858786880085262208">જ્યારે શક્ય હોય ત્યારે, HTTPS પર અપગ્રેડ કરો. સુરક્ષિત સાઇટ અસુરક્ષિત કન્ટેન્ટ શામેલ કરી શકે છે.</translation> <translation id="4860895144060829044">કૉલ કરો</translation> <translation id="4872323082491632254">પાસવર્ડ ચેક કરો</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">ઇન્ટરનેટ</translation> <translation id="5211488077761630279">"<ph name="SITE_NAME" />"ને તમારા <ph name="PERMISSION" />નો ઉપયોગ કરવાની મંજૂરી આપીએ?</translation> <translation id="5219295696240154694">વેબ પરની દરેક વ્યક્તિ માટે સુરક્ષાને બહેતર બનાવવા સહાય કરો</translation> +<translation id="5221339005270097309">પાસવર્ડ ચેક કરીએ છીએ…</translation> <translation id="5228579091201413441">સિંક ચાલુ કરો</translation> <translation id="5232485538978018676">મેનેજ કરેલા એકાઉન્ટ વડે સાઇન ઇન કરો</translation> <translation id="5234764350956374838">કાઢી નાખો</translation> @@ -661,6 +667,7 @@ સેટિંગના સામાન્ય વિભાગમાં હેન્ડઓફ ચાલુ હોવું પણ જરૂરી છે અને તમારા ડિવાઇસ, સમાન iCloud એકાઉન્ટનો ઉપયોગ કરતાં હોવા જરૂરી છે.</translation> <translation id="5551897871312988470">અનુવાદ કરવાનું ઑફર કરો</translation> <translation id="5556459405103347317">ફરીથી લોડ કરો</translation> +<translation id="555749644339804659">પાસવર્ડ ચેક કરીએ છીએ…</translation> <translation id="556042886152191864">બટન</translation> <translation id="5597915316964418992">ટૅબ ગ્રિડ ખોલો</translation> <translation id="560322036295180549">તમારી સંસ્થા દ્વારા આ સુવિધા બંધ કરવામાં આવી છે</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">તમારું Discover ફીડ અને Chromeને મનગમતું બનાવવા માટે, સાઇન ઇન કરો અને સિંકની સુવિધા ચાલુ કરો.</translation> <translation id="8225985093977202398">કૅશ કરેલી છબીઓ અને ફાઇલો</translation> <translation id="8237382152611443140">પાસવર્ડ ઑટોમૅટિક રીતે ભરવાની સુવિધાનાં સેટિંગ ખોલો</translation> +<translation id="8248969482078657578">નિષ્ક્રિય ટૅબ તમને ફોકસમાં રહેવામાં સહાય કરે છે</translation> <translation id="8261506727792406068">ડિલીટ કરો</translation> <translation id="8264966119170358612">તમારા અમુક સાચવેલા પાસવર્ડ બિન-Google ડેટા ઉલ્લંઘનમાં જાહેર કરવામાં આવ્યા હતા. <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation> <translation id="8265018477030547118">માત્ર આ જ ડિવાઇસ પર</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb index 6649c6d..285e12c8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_id.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Notifikasi</translation> <translation id="2496626742194544812">Buka Tab Pertama</translation> <translation id="2500374554657206846">Opsi untuk Menyimpan Sandi</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> Sandi digunakan ulang</translation> <translation id="2523363575747517183">Situs ini berulang kali mencoba membuka aplikasi lain.</translation> <translation id="2529021024822217800">Buka Semua</translation> <translation id="2547458583188611426">Sinkronisasi tidak berfungsi. Untuk memulai sinkronisasi, masukkan frasa sandi.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">Simpan dan Gunakan Sandi di Akun Google Anda</translation> <translation id="2578571896248130439">Kirim Halaman</translation> <translation id="2584132361465095047">Tambahkan Akun…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{Tab terbuka yang tidak digunakan selama satu hari atau lebih akan dipindahkan ke Tab Tidak Aktif, sehingga Anda dapat dengan mudah fokus pada tab yang paling sering digunakan. Anda dapat mengubahnya kapan saja di setelan.}other{Tab terbuka yang tidak digunakan selama {COUNT} hari atau lebih akan dipindahkan ke Tab Tidak Aktif, sehingga Anda dapat dengan mudah fokus pada tab yang paling sering digunakan. Anda dapat mengubahnya kapan saja di setelan.}}</translation> <translation id="2600682495497606169">Hapus Cookie Situs</translation> <translation id="2609008503159898744">Tutup Semua Tab?</translation> <translation id="2625189173221582860">Sandi disalin</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">Sarankan Sandi...</translation> <translation id="2932765531295814441">Tambahkan Sandi secara Manual</translation> <translation id="2952581218264071393">1. Buka Setelan Chrome</translation> +<translation id="2953871438216280742">Login untuk membuka dan menyimpan daftar bacaan di Akun Google Anda.</translation> <translation id="2958718410589002129">Sandi</translation> <translation id="2961210776189273067">Gelar</translation> <translation id="2964349545761222050">Blokir Cookie Pihak Ketiga</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">Tawarkan penerjemahan halaman ke dalam bahasa lain</translation> <translation id="3588820906588687999">Buka Gambar di Tab Baru</translation> <translation id="3595252146048399851">Anda dapat memilih jenis data yang akan disinkronkan di <ph name="BEGIN_LINK" />setelan<ph name="END_LINK" /> kapan saja. Google dapat mempersonalisasi Penelusuran dan layanan lainnya berdasarkan histori Anda.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} Sandi lemah}other{{COUNT} Sandi lemah}}</translation> <translation id="3603009562372709545">Salin URL Tautan</translation> <translation id="3607167657931203000">Data Isi-Otomatis</translation> <translation id="3608008480985212611">Login untuk mengelola preferensi Anda.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">Melihat dan mengedit topik yang menarik bagi Anda</translation> <translation id="4848999860252535517">Hapus Sandi untuk <ph name="WEBSITE" />?</translation> <translation id="4854345657858711387">Setel Kode Sandi</translation> +<translation id="4856498338299082007">Di Akun Google Anda</translation> <translation id="4858786880085262208">Upgrade ke HTTPS, jika memungkinkan. Situs aman mungkin menyematkan konten yang tidak aman.</translation> <translation id="4860895144060829044">Telepon</translation> <translation id="4872323082491632254">Periksa Sandi</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Izinkan "<ph name="SITE_NAME" />" menggunakan <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Bantu Tingkatkan Keamanan di Web untuk Semuanya</translation> +<translation id="5221339005270097309">Memeriksa Sandi…</translation> <translation id="5228579091201413441">Aktifkan sinkronisasi</translation> <translation id="5232485538978018676">Login dengan Akun Terkelola</translation> <translation id="5234764350956374838">Tutup</translation> @@ -661,6 +667,7 @@ Handoff juga harus diaktifkan pada bagian General di Settings, dan perangkat Anda harus menggunakan akun iCloud yang sama.</translation> <translation id="5551897871312988470">Tawarkan Penerjemahan</translation> <translation id="5556459405103347317">Muat ulang</translation> +<translation id="555749644339804659">Memeriksa sandi…</translation> <translation id="556042886152191864">Tombol</translation> <translation id="5597915316964418992">Buka Petak Tab</translation> <translation id="560322036295180549">Dinonaktifkan oleh organisasi Anda</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">Untuk mempersonalisasi feed Discover dan Chrome, login dan aktifkan sinkronisasi.</translation> <translation id="8225985093977202398">Gambar & File dalam Cache</translation> <translation id="8237382152611443140">Buka AutoFill Password di Settings</translation> +<translation id="8248969482078657578">Tab Tidak Aktif Membantu Anda Tetap Fokus</translation> <translation id="8261506727792406068">Hapus</translation> <translation id="8264966119170358612">Beberapa sandi tersimpan Anda terekspos dalam pelanggaran data non-Google. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation> <translation id="8265018477030547118">Hanya di perangkat ini</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb index 1e21ead..189ebfec 100644 --- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -225,6 +225,7 @@ <translation id="2576499762020411840">שימוש בסיסמאות ושמירה שלהן בחשבון Google</translation> <translation id="2578571896248130439">שליחת דף האינטרנט</translation> <translation id="2584132361465095047">חשבון חדש…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{כרטיסיות פתוחות שלא נעשה בהן שימוש במשך יום אחד או יותר עוברות לקטע 'כרטיסיות לא פעילות', כך שתהיה לך אפשרות להתמקד בקלות בכרטיסיות שנעשה בהן שימוש בתדירות הגבוהה ביותר. תמיד אפשר לשנות זאת בהגדרות.}one{כרטיסיות פתוחות שלא נעשה בהן שימוש במשך {COUNT} ימים או יותר עוברות לקטע 'כרטיסיות לא פעילות', כך שתהיה לך אפשרות להתמקד בקלות בכרטיסיות שנעשה בהן שימוש בתדירות הגבוהה ביותר. תמיד אפשר לשנות זאת בהגדרות.}two{כרטיסיות פתוחות שלא נעשה בהן שימוש במשך יומיים ({COUNT}) או יותר עוברות לקטע 'כרטיסיות לא פעילות', כך שתהיה לך אפשרות להתמקד בקלות בכרטיסיות שנעשה בהן שימוש בתדירות הגבוהה ביותר. תמיד אפשר לשנות זאת בהגדרות.}other{כרטיסיות פתוחות שלא נעשה בהן שימוש במשך {COUNT} ימים או יותר עוברות לקטע 'כרטיסיות לא פעילות', כך שתהיה לך אפשרות להתמקד בקלות בכרטיסיות שנעשה בהן שימוש בתדירות הגבוהה ביותר. תמיד אפשר לשנות זאת בהגדרות.}}</translation> <translation id="2600682495497606169">ניקוי קובצי ה-cookie של אתרים</translation> <translation id="2609008503159898744">לסגור את כל הכרטיסיות?</translation> <translation id="2625189173221582860">הסיסמה הועתקה</translation> @@ -571,6 +572,7 @@ <translation id="4844899002472726590">הצגה ועריכה של הנושאים שמעניינים אותך</translation> <translation id="4848999860252535517">למחוק את הסיסמה של <ph name="WEBSITE" />?</translation> <translation id="4854345657858711387">עליך להגדיר קוד גישה</translation> +<translation id="4856498338299082007">בחשבון Google שלך</translation> <translation id="4858786880085262208">שדרוג ל-HTTPS, כשיש אפשרות כזו. אתרים מאובטחים עשויים להטמיע תוכן לא מאובטח.</translation> <translation id="4860895144060829044">תרימו טלפון</translation> <translation id="4872323082491632254">בדיקת הסיסמאות</translation> @@ -1015,6 +1017,7 @@ <translation id="7781011649027948662">לתרגם את הדף?</translation> <translation id="7781069478569868053">דף 'כרטיסייה חדשה'</translation> <translation id="7781829728241885113">אתמול</translation> +<translation id="7786246662347093005">{COUNT,plural, =1{אחרי יום אחד}one{אחרי {COUNT} ימים}two{אחרי יומיים ({COUNT})}other{אחרי {COUNT} ימים}}</translation> <translation id="778855399387580014">חיפוש בכרטיסיית Chrome חדשה.</translation> <translation id="7791543448312431591">הוספה</translation> <translation id="7807060072011926525">סופק על ידי Google</translation> @@ -1087,6 +1090,7 @@ <translation id="821809831108207540">כדי להתאים אישית את הפיד ב-Discover ואת Chrome, צריך להיכנס לחשבון ולהפעיל את הסנכרון.</translation> <translation id="8225985093977202398">תמונות וקבצים במטמון</translation> <translation id="8237382152611443140">פותחים את הגדרות המילוי האוטומטי של סיסמאות</translation> +<translation id="8248969482078657578">מתמקדים במה שחשוב בעזרת הקטע 'כרטיסיות לא פעילות'</translation> <translation id="8261506727792406068">מחיקה</translation> <translation id="8264966119170358612">חלק מהסיסמאות השמורות שלך נחשפו ברשומות שאינן של Google עקב פרצה באבטחת מידע. <ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /></translation> <translation id="8265018477030547118">רק במכשיר הזה</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb index 2217698..fa140fa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">通知</translation> <translation id="2496626742194544812">最初のタブに移動</translation> <translation id="2500374554657206846">パスワードの保存オプション</translation> +<translation id="2502415369140591438">使い回されているパスワード: <ph name="COUNT" /> 件</translation> <translation id="2523363575747517183">このウェブサイトは別のアプリケーションを繰り返し開こうとしています。</translation> <translation id="2529021024822217800">すべて開く</translation> <translation id="2547458583188611426">同期が機能していません。同期を開始するには、パスフレーズを入力してください。</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">Google アカウントのパスワードの使用と保存</translation> <translation id="2578571896248130439">ウェブページの送信</translation> <translation id="2584132361465095047">アカウントを追加...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{開いているタブのうち、1 日以上使用していないタブは [アクティブでないタブ] に移されるため、よく使用するタブをすばやく見つけることができます。これは [設定] でいつでも変更できます。}other{{COUNT} 日以上使用していないタブは [アクティブでないタブ] に移されるため、よく使用するタブをすばやく見つけることができます。これは [設定] でいつでも変更できます。}}</translation> <translation id="2600682495497606169">サイトの Cookie を削除</translation> <translation id="2609008503159898744">すべてのタブを閉じますか?</translation> <translation id="2625189173221582860">パスワードがコピーされました</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">パスワードを自動生成...</translation> <translation id="2932765531295814441">パスワードを手動で追加</translation> <translation id="2952581218264071393">1. Chrome の設定を開く</translation> +<translation id="2953871438216280742">ログインすると、Google アカウントでリーディング リストを開いたり保存したりできます。</translation> <translation id="2958718410589002129">パスワード</translation> <translation id="2961210776189273067">敬称</translation> <translation id="2964349545761222050">サードパーティの Cookie をブロックする</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">他の言語のページで翻訳するかどうかを尋ねる</translation> <translation id="3588820906588687999">新しいタブで画像を開く</translation> <translation id="3595252146048399851">同期する項目はいつでも [<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />] で選択できます。Google では、履歴に基づいて検索やその他のサービスをカスタマイズすることがあります。</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{脆弱なパスワード: {COUNT} 件}other{脆弱なパスワード: {COUNT} 件}}</translation> <translation id="3603009562372709545">リンクのURLをコピー</translation> <translation id="3607167657931203000">自動入力のデータ</translation> <translation id="3608008480985212611">設定を管理するにはログインしてください。</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">関心のあるトピックの表示と編集</translation> <translation id="4848999860252535517"><ph name="WEBSITE" /> のパスワードを削除しますか?</translation> <translation id="4854345657858711387">パスコードの設定</translation> +<translation id="4856498338299082007">Google アカウント</translation> <translation id="4858786880085262208">可能であれば、HTTPS にアップグレードします。セキュリティで保護されたサイトに、セキュリティで保護されていないコンテンツが埋め込まれている場合があります。</translation> <translation id="4860895144060829044">通話</translation> <translation id="4872323082491632254">パスワードを確認</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">インターネット</translation> <translation id="5211488077761630279">「<ph name="SITE_NAME" />」に <ph name="PERMISSION" /> の使用を許可しますか?</translation> <translation id="5219295696240154694">すべてのユーザーのウェブ上のセキュリティ強化に協力する</translation> +<translation id="5221339005270097309">パスワードを確認しています...</translation> <translation id="5228579091201413441">同期を有効にする</translation> <translation id="5232485538978018676">管理対象アカウントでログインする</translation> <translation id="5234764350956374838">閉じる</translation> @@ -661,6 +667,7 @@ また[設定]の[一般]画面でHandoffを有効にしておく必要があります。お使いのデバイスでは、iCloudと同じアカウントを使用してください。</translation> <translation id="5551897871312988470">翻訳するか尋ねる</translation> <translation id="5556459405103347317">再読み込み</translation> +<translation id="555749644339804659">パスワードを確認しています…</translation> <translation id="556042886152191864">ボタン</translation> <translation id="5597915316964418992">タブグリッドを開きます</translation> <translation id="560322036295180549">組織によって無効にされています</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">Discover フィードと Chrome をカスタマイズするには、ログインして同期を有効にします。</translation> <translation id="8225985093977202398">キャッシュされた画像とファイル</translation> <translation id="8237382152611443140">[パスワードを自動入力] 設定を開く</translation> +<translation id="8248969482078657578">アクティブでないタブを分類して作業効率を向上</translation> <translation id="8261506727792406068">削除</translation> <translation id="8264966119170358612">保存したパスワードの一部が Google 以外でのデータ侵害で漏洩しました。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation> <translation id="8265018477030547118">保存先: このデバイスのみ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb index c16303dd..de43305 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">შეტყობინებები</translation> <translation id="2496626742194544812">პირველ ჩანართზე გადასვლა</translation> <translation id="2500374554657206846">პაროლის შენახვის ვარიანტები</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> ხელახლა გამოყენებული პაროლი</translation> <translation id="2523363575747517183">ეს ვებსაიტი განუწყვეტლივ ცდილობს სხვა აპლიკაციის გახსნას.</translation> <translation id="2529021024822217800">ყველას გახსნა</translation> <translation id="2547458583188611426">სინქრონიზაცია არ მუშაობს. სინქრონიზაციის დასაწყებად შეიყვანეთ თქვენი საიდუმლო ფრაზა.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">პაროლის შემოთავაზება…</translation> <translation id="2932765531295814441">დაამატეთ პაროლები ხელით</translation> <translation id="2952581218264071393">1. გახსენით Chrome-ის პარამეტრები</translation> +<translation id="2953871438216280742">შედით სისტემაში, რომ გახსნათ და შეინახოთ თქვენი საკითხავი სია თქვენს Google ანგარიშში</translation> <translation id="2958718410589002129">პაროლები</translation> <translation id="2961210776189273067">მიმართვა</translation> <translation id="2964349545761222050">მესამე მხარის ქუქი-ჩანაწერების დაბლოკვა</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">სხვა ენებზე არსებული გვერდების თარგმნის შემოთავაზება</translation> <translation id="3588820906588687999">გამოსახულების გახსნა ახალ ჩანართზე</translation> <translation id="3595252146048399851"><ph name="BEGIN_LINK" />პარამეტრებიდან<ph name="END_LINK" /> ნებისმიერ დროს შეგიძლიათ აირჩიოთ, რისი სინქრონიზაცია გსურთ. თქვენი ისტორიის მეშვეობით Google შეძლებს Search-ისა და სხვა სერვისების თქვენზე მორგებას.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} სუსტი პაროლი}other{{COUNT} სუსტი პაროლი}}</translation> <translation id="3603009562372709545">ბმულის URL-ის კოპირება</translation> <translation id="3607167657931203000">ავტომატური შევსების მონაცემები</translation> <translation id="3608008480985212611">პარამეტრების სამართავად შედით სისტემაში.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">ინტერნეტი</translation> <translation id="5211488077761630279">გსურთ, დართოთ ნება „<ph name="SITE_NAME" />“-ს, გამოიყენოს თქვენი <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">ხელი შეუწყვეთ ვებში უსაფრთხოების ყველასთვის გაუმჯობესებას</translation> +<translation id="5221339005270097309">პაროლების მოწმდება…</translation> <translation id="5228579091201413441">სინქრონიზაციის ჩართვა</translation> <translation id="5232485538978018676">შედით სისტემაში მართული ანგარიშით</translation> <translation id="5234764350956374838">გაუქმება</translation> @@ -663,6 +667,7 @@ Handoff ასევე უნდა იყოს ჩართული პარამეტრების სექციაში „ძირითადი“ და მოწყობილობებში უნდა გამოიყენებოდეს ერთი და იგივე iCloud ანგარიში.</translation> <translation id="5551897871312988470">თარგმანის შემოთავაზება</translation> <translation id="5556459405103347317">ხელახლა ჩატვირთვა</translation> +<translation id="555749644339804659">პაროლების მოწმდება…</translation> <translation id="556042886152191864">ღილაკი</translation> <translation id="5597915316964418992">გახსენით ჩანართების ბადე</translation> <translation id="560322036295180549">გამორთულია თქვენი ორგანიზაციის მიერ</translation> @@ -1081,6 +1086,7 @@ <translation id="8136856065410661948">ამის მეშვეობით შესაძლებელი გახდება, Chrome-ისა და Google Lens-ის მეშვეობით შექმნათ მოვლენები თქვენს Apple Calendar-ში.</translation> <translation id="8156478151976189188">პაროლების სინქრონიზაცია არ მუშაობს</translation> <translation id="8157532349231307196"><ph name="NUMBER_OF_ACCOUNTS" /> ანგარიში</translation> +<translation id="8159358225423560600">ახლახან</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8193953846147532858"><ph name="BEGIN_LINK" />თქვენი მოწყობილობები<ph name="END_LINK" /> · <ph name="EMAIL" /></translation> <translation id="8197543752516192074">გვერდის თარგმნა</translation> @@ -1111,6 +1117,7 @@ <translation id="8393889347136007944"><ph name="THRESHOLD" /> დღის განმავლობაში გამოუყენებელი ჩანართები</translation> <translation id="8407669440184693619">ამ საიტისთვის პაროლები ვერ მოიძებნა</translation> <translation id="842017693807136194">შესულია</translation> +<translation id="8423121072346537366">ახლახან</translation> <translation id="8425693829365242963">თქვენი პაროლები უნიკალურია</translation> <translation id="8428045167754449968">ქალაქი/დაბა</translation> <translation id="8428213095426709021">პარამეტრები</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb index fd12584..f6ae681 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Хабарландырулар</translation> <translation id="2496626742194544812">Бірінші қойындыға өту</translation> <translation id="2500374554657206846">Құпия сөзді сақтау опциялары</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> бұрын қолданылған құпия сөз</translation> <translation id="2523363575747517183">Бұл сайт қайта-қайта басқа қолданбаны ашуға тырысуда.</translation> <translation id="2529021024822217800">Барлығын ашу</translation> <translation id="2547458583188611426">Синхрондау жұмыс істемейді. Синхрондауды бастау үшін құпия фразаны енгізіңіз.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">Google аккаунтыңыздағы құпия сөздерді пайдалану және сақтау</translation> <translation id="2578571896248130439">Веб-бетті жіберу</translation> <translation id="2584132361465095047">Аккаунт қосу…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{Бір күн немесе одан да көп уақыт пайдаланылмаған ашық қойындылар "Белсенді емес қойындылар" қалтасына көшіріледі, осылайша сіз ең көп пайдаланатын қойындыларды оңай ерекшелей аласыз. Мұны кез келген уақытта "Параметрлер" бөлімінен өзгерте аласыз.}other{{COUNT} күн немесе одан да көп уақыт пайдаланылмаған ашық қойындылар "Белсенді емес қойындылар" қалтасына көшіріледі, осылайша сіз ең көп пайдаланатын қойындыларды оңай ерекшелей аласыз. Мұны кез келген уақытта "Параметрлер" бөлімінен өзгерте аласыз.}}</translation> <translation id="2600682495497606169">Сайттың cookie файлдарын өшіру</translation> <translation id="2609008503159898744">Барлық қойындыны жабу керек пе?</translation> <translation id="2625189173221582860">Құпия сөз көшірілді</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">Құпия сөз жасау...</translation> <translation id="2932765531295814441">Құпия сөздерді қолмен қосу</translation> <translation id="2952581218264071393">1. Chrome параметрлерін ашыңыз.</translation> +<translation id="2953871438216280742">Google аккаунтыңызда оқу тізімін ашу және сақтау үшін кіріңіз.</translation> <translation id="2958718410589002129">Құпия сөздер</translation> <translation id="2961210776189273067">Атауы</translation> <translation id="2964349545761222050">Үшінші тараптың cookie файлдарын бөгеу</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">Басқа тілдердегі беттердің аудармасын ұсыну</translation> <translation id="3588820906588687999">Кескінді жаңа қойындыда ашу</translation> <translation id="3595252146048399851">Синхрондалатын контентті кез келген уақытта <ph name="BEGIN_LINK" />Параметрлер<ph name="END_LINK" /> бөлімінде таңдай аласыз. Google жүйесі Search және басқа да қызметтерді тарихыңызға негіздеп жекелендіре алады.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} оңай құпия сөз}other{{COUNT} оңай құпия сөз}}</translation> <translation id="3603009562372709545">URL сілтемесін көшіру</translation> <translation id="3607167657931203000">Автотолтыру деректері</translation> <translation id="3608008480985212611">Параметрлерді басқару үшін аккаунтқа кіріңіз.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">Өзіңізді қызықтыратын тақырыптарды көру және өзгерту</translation> <translation id="4848999860252535517"><ph name="WEBSITE" /> құпия сөзін жою керек пе?</translation> <translation id="4854345657858711387">Тексеру кодын орнату</translation> +<translation id="4856498338299082007">Google аккаунтыңызда</translation> <translation id="4858786880085262208">Мүмкіндігінше HTTPS кеңейтімін пайдаланыңыз. Қорғалған сайттар қауіпсіз емес контентті ендіруі мүмкін.</translation> <translation id="4860895144060829044">Қоңырау шалу</translation> <translation id="4872323082491632254">Құпия сөздерді тексеру</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">Интернет</translation> <translation id="5211488077761630279">"<ph name="SITE_NAME" />" сайтының <ph name="PERMISSION" /> рұқсаттарын пайдалануына рұқсат ету керек пе?</translation> <translation id="5219295696240154694">Интернетті әркім үшін қауіпсіз етуге көмектесіңіз</translation> +<translation id="5221339005270097309">Құпия сөздер тексерілуде…</translation> <translation id="5228579091201413441">Синхрондауды қосу</translation> <translation id="5232485538978018676">Қызметтік аккаунтқа кіру</translation> <translation id="5234764350956374838">Жабу</translation> @@ -661,6 +667,7 @@ Handoff функциясы параметрлердің жалпы бөлімінде қосылуы қажет және құрылғыңыз бірдей iCloud аккаунтын қолдануы керек.</translation> <translation id="5551897871312988470">Аудармасын ұсыну</translation> <translation id="5556459405103347317">Қайта жүктеу</translation> +<translation id="555749644339804659">Құпия сөздер тексерілуде…</translation> <translation id="556042886152191864">Түйме</translation> <translation id="5597915316964418992">Қойынды торын ашу</translation> <translation id="560322036295180549">Ұйымыңыз өшірген.</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">Discover фиді мен Chrome браузерін жекелендіру үшін кіріп, синхрондауды қосыңыз.</translation> <translation id="8225985093977202398">Кэштелген кескіндер мен файлдар</translation> <translation id="8237382152611443140">Құпия сөздерді автотолтыру параметрлерін ашыңыз.</translation> +<translation id="8248969482078657578">Белсенді емес қойындылар зейін қоюыңызға көмектеседі</translation> <translation id="8261506727792406068">Жою</translation> <translation id="8264966119170358612">Google-дан тыс қызметтерде деректер қауіпсіздігі бұзылуына байланысты кейбір сақталған құпия сөздеріңіз жария болды. <ph name="BEGIN_LINK" />Толығырақ<ph name="END_LINK" /></translation> <translation id="8265018477030547118">Тек осы құрылғыда</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb index 856e3c0..f66f95fb 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">알림</translation> <translation id="2496626742194544812">첫 번째 탭으로 이동</translation> <translation id="2500374554657206846">비밀번호 저장 옵션</translation> +<translation id="2502415369140591438">재사용된 비밀번호 <ph name="COUNT" />개</translation> <translation id="2523363575747517183">다른 애플리케이션을 열려는 반복적인 시도가 실행되는 웹사이트입니다.</translation> <translation id="2529021024822217800">모두 열기</translation> <translation id="2547458583188611426">동기화가 작동하지 않습니다. 동기화를 시작하려면 암호를 입력하세요.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">내 Google 계정에서 비밀번호 사용 및 저장</translation> <translation id="2578571896248130439">웹페이지 보내기</translation> <translation id="2584132361465095047">계정 추가...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{1일 이상 사용하지 않는 열린 탭이 비활성 탭으로 이동하므로 가장 많이 사용하는 탭에 쉽게 집중할 수 있습니다. 언제든지 설정에서 변경할 수 있습니다.}other{{COUNT}일 이상 사용하지 않는 열린 탭이 비활성 탭으로 이동하므로 가장 많이 사용하는 탭에 쉽게 집중할 수 있습니다. 언제든지 설정에서 변경할 수 있습니다.}}</translation> <translation id="2600682495497606169">사이트 쿠키 삭제</translation> <translation id="2609008503159898744">모든 탭을 닫을까요?</translation> <translation id="2625189173221582860">비밀번호 복사됨</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">비밀번호 추천...</translation> <translation id="2932765531295814441">수동으로 비밀번호 추가</translation> <translation id="2952581218264071393">1. Chrome 설정 열기</translation> +<translation id="2953871438216280742">Google 계정에서 읽기 목록을 열고 저장하려면 로그인하세요.</translation> <translation id="2958718410589002129">비밀번호</translation> <translation id="2961210776189273067">제목</translation> <translation id="2964349545761222050">서드 파티 쿠키 차단</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">다른 언어로 된 페이지의 번역 옵션 제공</translation> <translation id="3588820906588687999">새 탭에서 이미지 열기</translation> <translation id="3595252146048399851">언제든지 <ph name="BEGIN_LINK" />설정<ph name="END_LINK" />에서 동기화할 항목을 선택할 수 있습니다. Google에서는 사용자의 방문 기록을 기반으로 Google 검색 및 기타 서비스를 맞춤설정할 수 있습니다.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{취약한 비밀번호 {COUNT}개}other{취약한 비밀번호 {COUNT}개}}</translation> <translation id="3603009562372709545">링크 URL 복사</translation> <translation id="3607167657931203000">데이터 자동 완성</translation> <translation id="3608008480985212611">환경설정을 관리하려면 로그인하세요.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">관심 주제를 보고 수정합니다.</translation> <translation id="4848999860252535517"><ph name="WEBSITE" />의 비밀번호를 삭제하시겠습니까?</translation> <translation id="4854345657858711387">비밀번호 설정</translation> +<translation id="4856498338299082007">Google 계정의 북마크</translation> <translation id="4858786880085262208">가능하면 HTTPS로 전환하세요. 안전한 사이트에도 안전하지 않은 콘텐츠가 삽입되어 있을 수 있습니다.</translation> <translation id="4860895144060829044">전화걸기</translation> <translation id="4872323082491632254">비밀번호 확인</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">인터넷</translation> <translation id="5211488077761630279">"<ph name="SITE_NAME" />"에서 내 <ph name="PERMISSION" />을(를) 사용하도록 허용하시겠습니까?</translation> <translation id="5219295696240154694">모든 웹 사용자를 위한 보안 개선에 참여</translation> +<translation id="5221339005270097309">비밀번호 확인 중…</translation> <translation id="5228579091201413441">동기화 사용</translation> <translation id="5232485538978018676">관리 계정으로 로그인</translation> <translation id="5234764350956374838">닫기</translation> @@ -661,6 +667,7 @@ 또한 Handoff는 설정의 일반 섹션에서도 사용 설정할 수 있으며, 이때 기기에서 반드시 동일한 iCloud 계정을 사용해야 합니다.</translation> <translation id="5551897871312988470">번역 옵션 제공</translation> <translation id="5556459405103347317">새로고침</translation> +<translation id="555749644339804659">비밀번호 확인 중…</translation> <translation id="556042886152191864">버튼</translation> <translation id="5597915316964418992">탭 그리드 열기</translation> <translation id="560322036295180549">조직에서 사용 중지했습니다.</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">디스커버 피드와 Chrome을 맞춤설정하려면 로그인하고 동기화를 사용 설정하세요.</translation> <translation id="8225985093977202398">캐시된 이미지 및 파일</translation> <translation id="8237382152611443140">AutoFill Passwords(비밀번호 자동 완성) 설정을 엽니다.</translation> +<translation id="8248969482078657578">집중하는 데 도움이 되는 비활성 탭</translation> <translation id="8261506727792406068">삭제</translation> <translation id="8264966119170358612">저장된 비밀번호 중 일부가 서드 파티의 정보 유출로 인해 노출되었습니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation> <translation id="8265018477030547118">이 기기에서만</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb index 4c911c6..b469ba54e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Билдирмелер</translation> <translation id="2496626742194544812">Биринчи өтмөккө өтүү</translation> <translation id="2500374554657206846">Сырсөздү сактоо параметрлери</translation> +<translation id="2502415369140591438">Кайра колдонулган <ph name="COUNT" /> сырсөз бар</translation> <translation id="2523363575747517183">Бул вебсайт башка колдонмону ачууга бир нече жолу аракет кылууда.</translation> <translation id="2529021024822217800">Баарын ачуу</translation> <translation id="2547458583188611426">Шайкештирилген жок. Шайкештирүүнү баштоо үчүн сыр сүйлөмүңүздү киргизиңиз.</translation> @@ -292,6 +293,7 @@ <translation id="2932085390869194046">Сырсөз сунушталсын…</translation> <translation id="2932765531295814441">Сырсөздөрдү кол менен кошуу</translation> <translation id="2952581218264071393">1. Chrome'дун параметрлерин ачыңыз</translation> +<translation id="2953871438216280742">Окуу тизмесин ачып жана Google аккаунтуңузга сактоо үчүн аккаунтуңузга кириңиз.</translation> <translation id="2958718410589002129">Сырсөздөр</translation> <translation id="2961210776189273067">Аталышы</translation> <translation id="2964349545761222050">Үчүнчү тараптын cookie файлдарын бөгөттөө</translation> @@ -385,6 +387,7 @@ <translation id="3581564640715911333">Башка тилдердеги барактарды которуу сунушталсын</translation> <translation id="3588820906588687999">Сүрөттү жаңы өтмөктө ачуу</translation> <translation id="3595252146048399851">Эмнени шайкештирүү керек экенин ар дайым <ph name="BEGIN_LINK" />параметрлерден<ph name="END_LINK" /> тандай аласыз. Google таржымалыңыздын негизинде Издөөнү жана башка кызматтарды жекелештириши мүмкүн.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} начар сырсөз бар}other{{COUNT} начар сырсөз бар}}</translation> <translation id="3603009562372709545">Шилтеменин URL көчүрүү</translation> <translation id="3607167657931203000">Дайындарды автотолтуруу</translation> <translation id="3608008480985212611">Параметрлериңизди тескөө үчүн аккаунтуңузга кириңиз.</translation> @@ -591,7 +594,7 @@ <translation id="4986678885919050584">Ушул түзмөктөн өчүрүү</translation> <translation id="498985224078955265">Бул өтмөктү башка түзмөккө жөнөтүү үчүн эки түзмөктөн тең Chrome'го кириңиз.</translation> <translation id="5005498671520578047">Сырсөздү көчүрүү</translation> -<translation id="5016420433031926653">Төмөнкүгө жөнөтүү: <ph name="USER_EMAIL" /></translation> +<translation id="5016420433031926653">Кимге: <ph name="USER_EMAIL" /></translation> <translation id="5017828934289857214">Мага кийинчерээк эскертилсин</translation> <translation id="5037676449506322593">Баарын тандоо</translation> <translation id="5039804452771397117">Уруксат берүү</translation> @@ -622,6 +625,7 @@ <translation id="5197255632782567636">Интернет</translation> <translation id="5211488077761630279">"<ph name="SITE_NAME" />" сайтына <ph name="PERMISSION" /> колдонууга уруксат бересизби?</translation> <translation id="5219295696240154694">Баары үчүн Интернеттеги коопсуздукту арттырууга жардам берүү</translation> +<translation id="5221339005270097309">Сырсөздөр текшерилүүдө…</translation> <translation id="5228579091201413441">Шайкештирүүнү иштетүү</translation> <translation id="5232485538978018676">Башкарылган аккаунт менен кирүү</translation> <translation id="5234764350956374838">Этибарга албоо</translation> @@ -661,6 +665,7 @@ Handoff Жөндөөлөрдүн жалпы бөлүмүндө да иштетилип, түзмөктөрүңүз бирдей iCloud каттоо эсебин колдонушу керек.</translation> <translation id="5551897871312988470">Которуу сунушталсын</translation> <translation id="5556459405103347317">Кайра жүктөө</translation> +<translation id="555749644339804659">Сырсөздөр текшерилүүдө…</translation> <translation id="556042886152191864">Баскыч</translation> <translation id="5597915316964418992">Өтмөк торчосун ачуу</translation> <translation id="560322036295180549">Уюмуңуз тарабынан өчүрүлгөн</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb index 5715314..9a248704 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -1086,6 +1086,7 @@ <translation id="8136856065410661948">ຂໍ້ມູນນີ້ຈະໃຊ້ເພື່ອສ້າງນັດໝາຍໃນປະຕິທິນ Apple ຂອງທ່ານຈາກ Chrome ແລະ Google Lens.</translation> <translation id="8156478151976189188">ການຊິ້ງຂໍ້ມູນລະຫັດຜ່ານບໍ່ເຮັດວຽກ</translation> <translation id="8157532349231307196"><ph name="NUMBER_OF_ACCOUNTS" /> ບັນຊີ</translation> +<translation id="8159358225423560600">ຕອນນີ້</translation> <translation id="8179976553408161302">ປ້ອນເຂົ້າ</translation> <translation id="8193953846147532858"><ph name="BEGIN_LINK" />ອຸປະກອນຂອງທ່ານ<ph name="END_LINK" /> · <ph name="EMAIL" /></translation> <translation id="8197543752516192074">ແປໜ້າ</translation> @@ -1116,6 +1117,7 @@ <translation id="8393889347136007944">ແຖບທີ່ບໍ່ໄດ້ນຳໃຊ້ເປັນເວລາ <ph name="THRESHOLD" /> ມື້</translation> <translation id="8407669440184693619">ບໍ່ເຫັນລະຫັດຜ່ານສຳລັບເວັບໄຊນີ້</translation> <translation id="842017693807136194">ເຂົ້າສູ່ລະບົບດ້ວຍ</translation> +<translation id="8423121072346537366">ຕອນນີ້</translation> <translation id="8425693829365242963">ລະຫັດຜ່ານຂອງທ່ານບໍ່ຊໍ້າກັນ</translation> <translation id="8428045167754449968">ເມືອງ</translation> <translation id="8428213095426709021">ການຕັ້ງຄ່າ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index 8349298..14f02a5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Pranešimai</translation> <translation id="2496626742194544812">Eiti į pirmą skirtuką</translation> <translation id="2500374554657206846">Slaptažodžio išsaugojimo parinktys</translation> +<translation id="2502415369140591438">Pakartotinai naudojamų slaptažodžių: <ph name="COUNT" /></translation> <translation id="2523363575747517183">Ši svetainė pakartotinai bando atidaryti kitą programą.</translation> <translation id="2529021024822217800">Atidaryti viską</translation> <translation id="2547458583188611426">Sinchronizavimas neveikia. Jei norite pradėti sinchronizuoti, įveskite slaptafrazę.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">Siūlyti slaptažodį...</translation> <translation id="2932765531295814441">Slaptažodžių pridėjimas neautomatiškai</translation> <translation id="2952581218264071393">1. Atidarykite „Chrome“ nustatymus</translation> +<translation id="2953871438216280742">Prisijunkite, kad atidarytumėte ir išsaugotumėte skaitymo sąrašą „Google“ paskyroje.</translation> <translation id="2958718410589002129">Slaptažodžiai</translation> <translation id="2961210776189273067">Kreipinys / titulas</translation> <translation id="2964349545761222050">Trečiosios šalies slapukų blokavimas</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">Siūlyti versti puslapius į kitas kalbas</translation> <translation id="3588820906588687999">Atidaryti vaizdą naujo skirtuko lape</translation> <translation id="3595252146048399851">Bet kada galite pasirinkti, ką norite sinchronizuoti, skiltyje <ph name="BEGIN_LINK" />„Nustatymai“<ph name="END_LINK" />. „Google“ gali suasmeninti Paiešką ir kitas paslaugas pagal jūsų istoriją.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} nesudėtingas slaptažodis}one{{COUNT} nesudėtingas slaptažodis}few{{COUNT} nesudėtingi slaptažodžiai}many{{COUNT} nesudėtingo slaptažodžio}other{{COUNT} nesudėtingų slaptažodžių}}</translation> <translation id="3603009562372709545">Kopijuoti nuorodos URL</translation> <translation id="3607167657931203000">Autom. pild. duom.</translation> <translation id="3608008480985212611">Prisijunkite, kad galėtumėte tvarkyti nuostatas.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">Internetas</translation> <translation id="5211488077761630279">Leisti „<ph name="SITE_NAME" />“ naudoti leidimą „<ph name="PERMISSION" />“?</translation> <translation id="5219295696240154694">Padėkite pagerinti visų naudotojų saugą žiniatinklyje</translation> +<translation id="5221339005270097309">Tikrinami slaptažodžiai…</translation> <translation id="5228579091201413441">Įgalinti sinchronizavimą</translation> <translation id="5232485538978018676">Prisijunkite naudodami valdomą paskyrą</translation> <translation id="5234764350956374838">Atsisakyti</translation> @@ -663,6 +667,7 @@ Be to, reikia įgalinti „Handoff“ nustatymų skiltyje „Bendrieji“, o įrenginiuose turi būti naudojama ta pati „iCloud“ paskyra.</translation> <translation id="5551897871312988470">Siūlyti versti</translation> <translation id="5556459405103347317">Įkelti iš naujo</translation> +<translation id="555749644339804659">Tikrinami slaptažodžiai…</translation> <translation id="556042886152191864">Mygtukas</translation> <translation id="5597915316964418992">Atidarykite skirtuko tinklelį</translation> <translation id="560322036295180549">Išjungė jūsų organizacija</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index 096d4ba..ce56f93b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Pemberitahuan</translation> <translation id="2496626742194544812">Pergi ke Tab Pertama</translation> <translation id="2500374554657206846">Pilihan untuk Menyimpan Kata Laluan</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> Kata laluan yang digunakan semula</translation> <translation id="2523363575747517183">Tapak web ini berulang kali cuba membuka aplikasi lain.</translation> <translation id="2529021024822217800">Buka Semua</translation> <translation id="2547458583188611426">Penyegerakan tidak berfungsi. Masukkan ungkapan laluan anda untuk memulakan penyegerakan.</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">Gunakan dan Simpan Kata Laluan dalam Google Account Anda</translation> <translation id="2578571896248130439">Hantar Halaman Web</translation> <translation id="2584132361465095047">Tambahkan Akaun...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{Tab terbuka yang tidak digunakan selama satu hari atau lebih akan dialihkan kepada Tab Tidak Aktif supaya anda mudah fokus pada tab yang sering digunakan. Anda boleh menukar pilihan ini pada bila-bila masa dalam tetapan.}other{Tab terbuka yang tidak digunakan selama {COUNT} hari atau lebih akan dialihkan kepada Tab Tidak Aktif supaya anda mudah fokus pada tab yang sering digunakan. Anda boleh menukar pilihan ini pada bila-bila masa dalam tetapan.}}</translation> <translation id="2600682495497606169">Kosongkan Kuki Tapak</translation> <translation id="2609008503159898744">Tutup Semua Tab?</translation> <translation id="2625189173221582860">Kata laluan disalin</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">Cadangkan Kata Laluan...</translation> <translation id="2932765531295814441">Tambah Kata Laluan Secara Manual</translation> <translation id="2952581218264071393">1. Buka Tetapan Chrome</translation> +<translation id="2953871438216280742">Log masuk untuk membuka dan menyimpan senarai bacaan anda dalam Google Account anda.</translation> <translation id="2958718410589002129">Kata laluan</translation> <translation id="2961210776189273067">Tajuk</translation> <translation id="2964349545761222050">Sekat Kuki Pihak Ketiga</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">Tawaran untuk menterjemah halaman dalam bahasa lain</translation> <translation id="3588820906588687999">Buka Imej dalam Tab Baharu</translation> <translation id="3595252146048399851">Anda boleh memilih item yang hendak disegerakkan dalam <ph name="BEGIN_LINK" />tetapan<ph name="END_LINK" /> pada bila-bila masa. Google mungkin memeribadikan Carian dan perkhidmatan lain berdasarkan sejarah anda.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} Kata laluan lemah}other{{COUNT} Kata laluan lemah}}</translation> <translation id="3603009562372709545">Salin URL Paut</translation> <translation id="3607167657931203000">Autolengkap Data</translation> <translation id="3608008480985212611">Log masuk untuk mengurus keutamaan anda.</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">Lihat dan edit topik yang anda minati</translation> <translation id="4848999860252535517">Padamkan Kata Laluan untuk <ph name="WEBSITE" />?</translation> <translation id="4854345657858711387">Tetapkan Kod Laluan</translation> +<translation id="4856498338299082007">Dalam Google Account Anda</translation> <translation id="4858786880085262208">Tingkatkan kepada HTTPS, jika boleh. Laman selamat mungkin membenamkan kandungan yang tidak selamat.</translation> <translation id="4860895144060829044">Hubungi</translation> <translation id="4872323082491632254">Semak Kata Laluan</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Benarkan "<ph name="SITE_NAME" />" untuk menggunakan <ph name="PERMISSION" /> anda?</translation> <translation id="5219295696240154694">Bantu Tingkatkan Keselamatan pada Web untuk Semua</translation> +<translation id="5221339005270097309">Menyemak Kata laluan…</translation> <translation id="5228579091201413441">Dayakan penyegerakan</translation> <translation id="5232485538978018676">Log masuk dengan Akaun Terurus</translation> <translation id="5234764350956374838">Ketepikan</translation> @@ -661,6 +667,7 @@ Serah mestilah turut didayakan dalam bahagian Umum pada Tetapan dan peranti anda mestilah menggunakan akaun iCloud yang sama.</translation> <translation id="5551897871312988470">Tawaran untuk Menterjemah</translation> <translation id="5556459405103347317">Muat Semula</translation> +<translation id="555749644339804659">Menyemak kata laluan…</translation> <translation id="556042886152191864">Butang</translation> <translation id="5597915316964418992">Buka Grid Tab</translation> <translation id="560322036295180549">Dimatikan oleh organisasi anda</translation> @@ -1087,6 +1094,7 @@ <translation id="821809831108207540">Untuk memeribadikan suapan Temukan dan Chrome anda, log masuk dan hidupkan penyegerakan.</translation> <translation id="8225985093977202398">Imej dan Fail Dicache</translation> <translation id="8237382152611443140">Buka Tetapan Kata Laluan Autolengkap</translation> +<translation id="8248969482078657578">Tab Tidak Aktif Membantu Anda Sentiasa Fokus</translation> <translation id="8261506727792406068">Padam</translation> <translation id="8264966119170358612">Sesetengah kata laluan anda yang disimpan telah terdedah dalam pelanggaran data bukan Google. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation> <translation id="8265018477030547118">Hanya pada peranti ini</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb index 732e09c6..a77b713 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -226,6 +226,7 @@ <translation id="2576499762020411840">मेरो Google खातामा पासवर्डहरू सेभ गरिऊन् र ती पासवर्डहरू प्रयोग गरिऊन्</translation> <translation id="2578571896248130439">वेबपृष्ठ पठाउनुहोस्</translation> <translation id="2584132361465095047">खाता थप्नुहोस्...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{तपाईं आफूले सबैभन्दा बढी प्रयोग गर्ने ट्याबहरूमा सजिलै ध्यान केन्द्रित गर्न सक्नुहोस् भन्नाका लागि एक दिन वा सोभन्दा बढी समयदेखि प्रयोग नगरिएका ट्याबहरू सारेर "निष्क्रिय ट्याबहरू" खण्डमा लगिन्छ। तपाईं जुनसुकै बेला सेटिङमा गई यो कुरा बदल्न सक्नुहुन्छ।}other{तपाईं आफूले सबैभन्दा बढी प्रयोग गर्ने ट्याबहरूमा सजिलै ध्यान केन्द्रित गर्न सक्नुहोस् भन्नाका लागि {COUNT} दिन वा सोभन्दा बढी समयदेखि प्रयोग नगरिएका ट्याबहरू सारेर "निष्क्रिय ट्याबहरू" खण्डमा लगिन्छ। तपाईं जुनसुकै बेला सेटिङमा गई यो कुरा बदल्न सक्नुहुन्छ।}}</translation> <translation id="2600682495497606169">साइटका कुकीहरू हटाउनुहोस्</translation> <translation id="2609008503159898744">सबै ट्याबहरू बन्द गर्ने हो?</translation> <translation id="2625189173221582860">पासवर्ड प्रतिलिपि गरियो</translation> @@ -574,6 +575,7 @@ <translation id="4844899002472726590">आफूलाई रुचि भएका विषयहरू हेर्नुहोस् र बदल्नुहोस्</translation> <translation id="4848999860252535517"><ph name="WEBSITE" /> को पासवर्ड मेटाउने हो?</translation> <translation id="4854345657858711387">कुनै पासकोड सेट गर्नुहोस्</translation> +<translation id="4856498338299082007">तपाईंको Google खातामा सेभ गरिएका</translation> <translation id="4858786880085262208">सम्भव हुँदा अपग्रेड गरी HTTPS बनाइयोस्। सुरक्षित साइटहरूले असुरक्षित खालका सामग्री इम्बेड गर्न सक्छन्।</translation> <translation id="4860895144060829044">कल गर्नुहोस्</translation> <translation id="4872323082491632254">पासवर्डहरू जाँच्नुहोस्</translation> @@ -1092,6 +1094,7 @@ <translation id="821809831108207540">तपाईं आफ्नो Discover फिड र Chrome पर्सनलाइज गर्न चाहनुहुन्छ भने साइन इन गर्नुहोस् र सिंक गर्ने सुविधा अन गर्नुहोस्।</translation> <translation id="8225985093977202398">क्यास गरिएका छवि र फाइलहरू</translation> <translation id="8237382152611443140">पासवर्ड स्वतः भर्ने सुविधासम्बन्धी सेटिङ खोल्नुहोस्</translation> +<translation id="8248969482078657578">"निष्क्रिय ट्याबहरू" ले तपाईंलाई ध्यान केन्द्रित गर्न सघाउँछ</translation> <translation id="8261506727792406068">मेट्नुहोस्</translation> <translation id="8264966119170358612">तपाईंका सेभ गरिएका केही पासवर्डहरू तेस्रो पक्षले गरेको डेटा चोरीको घटनामा देखिएका थिए। <ph name="BEGIN_LINK" />थप जान्नुहोस्<ph name="END_LINK" /></translation> <translation id="8265018477030547118">यो डिभाइसमा मात्र</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb index 9fb28647..8833425 100644 --- a/ios/chrome/app/strings/resources/ios_strings_or.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -225,6 +225,7 @@ <translation id="2576499762020411840">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରୁ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ବ୍ୟବହାର କରି ସେଥିରେ ସେଭ କରନ୍ତୁ</translation> <translation id="2578571896248130439">ୱେବ୍ପୃଷ୍ଠା ପଠାନ୍ତୁ</translation> <translation id="2584132361465095047">ଆକାଉଣ୍ଟ ଯୋଗ କରନ୍ତୁ…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{ଗୋଟିଏ କିମ୍ବା ଅଧିକ ଦିନ ଧରି ବ୍ୟବହାର ହୋଇନଥିବା ଖୋଲା ଟାବଗୁଡ଼ିକ ନିଷ୍କ୍ରିୟ ଟାବକୁ ମୁଭ କରାଯାଇଛି, ଫଳରେ ଆପଣ ସବୁଠୁ ଅଧିକ ବ୍ୟବହାର କରୁଥିବା ଟାବଗୁଡ଼ିକ ଉପରେ ସହଜରେ ଫୋକସ କରିପାରିବେ। ଆପଣ ଯେ କୌଣସି ସମୟରେ ସେଟିଂସରେ ଏହାକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।}other{{COUNT} କିମ୍ବା ଅଧିକ ଦିନ ଧରି ବ୍ୟବହାର ହୋଇନଥିବା ଖୋଲା ଟାବଗୁଡ଼ିକ ନିଷ୍କ୍ରିୟ ଟାବକୁ ମୁଭ କରାଯାଇଛି, ଫଳରେ ଆପଣ ସବୁଠୁ ଅଧିକ ବ୍ୟବହାର କରୁଥିବା ଟାବଗୁଡ଼ିକ ଉପରେ ସହଜରେ ଫୋକସ କରିପାରିବେ। ଆପଣ ଯେ କୌଣସି ସମୟରେ ସେଟିଂସରେ ଏହାକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।}}</translation> <translation id="2600682495497606169">ସାଇଟ୍ କୁକୀଗୁଡ଼ିକ ଖାଲି କରନ୍ତୁ</translation> <translation id="2609008503159898744">ସମସ୍ତ ଟାବକୁ ବନ୍ଦ କରିବେ?</translation> <translation id="2625189173221582860">ପାସ୍ୱର୍ଡ କପି ହୋଇଛି</translation> @@ -569,6 +570,7 @@ <translation id="4844899002472726590">ଆପଣଙ୍କ ଆଗ୍ରହ ଥିବା ବିଷୟଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ ଏବଂ ଏଡିଟ କରନ୍ତୁ</translation> <translation id="4848999860252535517"><ph name="WEBSITE" />ର ପାସୱାର୍ଡ ଡିଲିଟ କରିବେ?</translation> <translation id="4854345657858711387">ଏକ ପାସ୍କୋଡ୍ ସେଟ୍ କରନ୍ତୁ</translation> +<translation id="4856498338299082007">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ</translation> <translation id="4858786880085262208">ସମ୍ଭବ ହେଲେ, HTTPSରେ ଅପଗ୍ରେଡ କରନ୍ତୁ। ସୁରକ୍ଷିତ ସାଇଟଗୁଡ଼ିକ ସୁରକ୍ଷିତ ନଥିବା ବିଷୟବସ୍ତୁକୁ ଏମ୍ବେଡ କରିନପାରେ।</translation> <translation id="4860895144060829044">କଲ୍ କରନ୍ତୁ</translation> <translation id="4872323082491632254">ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରନ୍ତୁ</translation> @@ -1085,6 +1087,7 @@ <translation id="821809831108207540">ଆପଣଙ୍କ ଡିସ୍କଭର ଫିଡ ଏବଂ Chromeକୁ ପର୍ସନାଲାଇଜ କରିବା ପାଇଁ ସାଇନ ଇନ କରି ସିଙ୍କ ଚାଲୁ କରନ୍ତୁ।</translation> <translation id="8225985093977202398">କେଚ୍ ହୋଇଥିବା ଛବି ଏବଂ ଫାଇଲ୍</translation> <translation id="8237382152611443140">"ପାସୱାର୍ଡ ସ୍ୱତଃପୂରଣ କରନ୍ତୁ" ସେଟିଂସ ଖୋଲନ୍ତୁ</translation> +<translation id="8248969482078657578">ନିଷ୍କ୍ରିୟ ଟାବଗୁଡ଼ିକ ଆପଣଙ୍କୁ ଫୋକସ ରହିବାରେ ସାହାଯ୍ୟ କରେ</translation> <translation id="8261506727792406068">ବିଲୋପ</translation> <translation id="8264966119170358612">ଏକ ଅଣ-Google ଡାଟା ଉଲ୍ଲଙ୍ଘନ ଯୋଗୁଁ ଆପଣଙ୍କର ସେଭ କରାଯାଇଥିବା କିଛି ପାସୱାର୍ଡ ଚୋରି ହୋଇଯାଇଛି। <ph name="BEGIN_LINK" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="END_LINK" /></translation> <translation id="8265018477030547118">କେବଳ ଏହି ଡିଭାଇସରେ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb index 8596279..4aa6b35 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -225,6 +225,7 @@ <translation id="2576499762020411840">ਆਪਣੇ Google ਖਾਤੇ ਤੋਂ ਪਾਸਵਰਡ ਵਰਤੋ ਅਤੇ ਰੱਖਿਅਤ ਕਰੋ</translation> <translation id="2578571896248130439">ਵੈੱਬਪੰਨਾ ਭੇਜੋ</translation> <translation id="2584132361465095047">ਖਾਤਾ ਸ਼ਾਮਲ ਕਰੋ…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{ਇੱਕ ਦਿਨ ਜਾਂ ਇਸ ਤੋਂ ਵੱਧ ਸਮੇਂ ਤੋਂ ਨਹੀਂ ਵਰਤੀਆਂ ਗਈਆਂ ਟੈਬਾਂ ਨੂੰ ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬਾਂ ਵਿੱਚ ਲਿਜਾਇਆ ਜਾਵੇਗਾ ਤਾਂ ਜੋ ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਟੈਬਾਂ 'ਤੇ ਆਸਾਨੀ ਨਾਲ ਫੋਕਸ ਕਰ ਸਕੋ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਸਭ ਤੋਂ ਵੱਧ ਵਰਤਦੇ ਹੋ। ਤੁਸੀਂ ਕਿਸੇ ਵੇਲੇ ਵੀ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਇਸਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ।}one{{COUNT} ਦਿਨ ਜਾਂ ਇਸ ਤੋਂ ਵੱਧ ਸਮੇਂ ਤੋਂ ਨਹੀਂ ਵਰਤੀਆਂ ਗਈਆਂ ਟੈਬਾਂ ਨੂੰ ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬਾਂ ਵਿੱਚ ਲਿਜਾਇਆ ਜਾਵੇਗਾ ਤਾਂ ਜੋ ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਟੈਬਾਂ 'ਤੇ ਆਸਾਨੀ ਨਾਲ ਫੋਕਸ ਕਰ ਸਕੋ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਸਭ ਤੋਂ ਵੱਧ ਵਰਤਦੇ ਹੋ। ਤੁਸੀਂ ਕਿਸੇ ਵੇਲੇ ਵੀ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਇਸਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ।}other{{COUNT} ਦਿਨਾਂ ਜਾਂ ਇਸ ਤੋਂ ਵੱਧ ਸਮੇਂ ਤੋਂ ਨਹੀਂ ਵਰਤੀਆਂ ਗਈਆਂ ਟੈਬਾਂ ਨੂੰ ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬਾਂ ਵਿੱਚ ਲਿਜਾਇਆ ਜਾਵੇਗਾ ਤਾਂ ਜੋ ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਟੈਬਾਂ 'ਤੇ ਆਸਾਨੀ ਨਾਲ ਫੋਕਸ ਕਰ ਸਕੋ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਸਭ ਤੋਂ ਵੱਧ ਵਰਤਦੇ ਹੋ। ਤੁਸੀਂ ਕਿਸੇ ਵੇਲੇ ਵੀ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਇਸਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ।}}</translation> <translation id="2600682495497606169">ਸਾਈਟ ਕੁਕੀਜ਼ ਕਲੀਅਰ ਕਰੋ</translation> <translation id="2609008503159898744">ਕੀ ਸਾਰੀਆਂ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?</translation> <translation id="2625189173221582860">ਪਾਸਵਰਡ ਕਾਪੀ ਕੀਤਾ ਗਿਆ</translation> @@ -571,6 +572,7 @@ <translation id="4844899002472726590">ਆਪਣੀ ਦਿਲਚਸਪੀ ਵਾਲੇ ਵਿਸ਼ਿਆਂ ਨੂੰ ਦੇਖੋ ਅਤੇ ਉਨ੍ਹਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation> <translation id="4848999860252535517">ਕੀ <ph name="WEBSITE" /> ਦੇ ਪਾਸਵਰਡ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?</translation> <translation id="4854345657858711387">ਕੋਈ ਪਾਸਕੋਡ ਸੈੱਟ ਕਰੋ</translation> +<translation id="4856498338299082007">ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ</translation> <translation id="4858786880085262208">ਜਦੋਂ ਵੀ ਹੋ ਸਕੇ, HTTPS 'ਤੇ ਅੱਪਗ੍ਰੇਡ ਕਰੋ। ਸੁਰੱਖਿਅਤ ਸਾਈਟਾਂ ਵਿੱਚ ਅਸੁਰੱਖਿਅਤ ਸਮੱਗਰੀ ਪਰੋਈ ਹੋ ਸਕਦੀ ਹੈ।</translation> <translation id="4860895144060829044">ਕਾਲ ਕਰੋ</translation> <translation id="4872323082491632254">ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰੋ</translation> @@ -1087,6 +1089,7 @@ <translation id="821809831108207540">ਆਪਣੀ Discover ਫ਼ੀਡ ਅਤੇ Chrome ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ, ਸਾਈਨ-ਇਨ ਕਰੋ ਅਤੇ ਸਿੰਕ ਚਾਲੂ ਕਰੋ।</translation> <translation id="8225985093977202398">ਕੈਸ਼ ਕੀਤੇ ਚਿਤਰ ਅਤੇ ਫ਼ਾਈਲਾਂ</translation> <translation id="8237382152611443140">ਆਟੋਫਿਲ ਪਾਸਵਰਡ ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ</translation> +<translation id="8248969482078657578">ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬਾਂ ਨਾਲ ਤੁਹਾਨੂੰ ਫੋਕਸ ਬਣਾਏ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਮਿਲਦੀ ਹੈ</translation> <translation id="8261506727792406068">ਮਿਟਾਓ</translation> <translation id="8264966119170358612">ਤੁਹਾਡੇ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡਾਂ ਵਿੱਚੋਂ ਕੁਝ ਗੈਰ-Google ਡਾਟਾ ਉਲੰਘਣਾ ਵਿੱਚ ਪ੍ਰਗਟ ਹੋਏ ਸਨ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation> <translation id="8265018477030547118">ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ</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 54beb48..ab8ee00 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Notificações</translation> <translation id="2496626742194544812">Ir para o primeiro separador</translation> <translation id="2500374554657206846">Opções para Guardar palavra-passe</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> palavras-passe reutilizadas</translation> <translation id="2523363575747517183">Este Website está a tentar repetidamente abrir outra aplicação.</translation> <translation id="2529021024822217800">Abrir todos</translation> <translation id="2547458583188611426">A sincronização não está a funcionar. Para iniciar a sincronização, introduza a sua frase de acesso.</translation> @@ -292,6 +293,7 @@ <translation id="2932085390869194046">Sugerir palavra-passe…</translation> <translation id="2932765531295814441">Adicione palavras-passe manualmente</translation> <translation id="2952581218264071393">1. Abra as definições do Chrome.</translation> +<translation id="2953871438216280742">Inicie sessão para abrir e guardar a sua Lista de leitura na Conta Google.</translation> <translation id="2958718410589002129">Palavras-passe</translation> <translation id="2961210776189273067">Título</translation> <translation id="2964349545761222050">Bloquear cookies de terceiros</translation> @@ -385,6 +387,7 @@ <translation id="3581564640715911333">Proponha a tradução de páginas noutros idiomas</translation> <translation id="3588820906588687999">Abrir imagem num novo separador</translation> <translation id="3595252146048399851">Pode escolher o que quer sincronizar nas <ph name="BEGIN_LINK" />definições<ph name="END_LINK" />. A Google pode personalizar a Pesquisa e outros serviços com base no seu histórico.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} palavra-passe fraca}other{{COUNT} palavras-passe fracas}}</translation> <translation id="3603009562372709545">Copiar URL do Link</translation> <translation id="3607167657931203000">Dados de preenchimento automático</translation> <translation id="3608008480985212611">Iniciar sessão para gerir as suas preferências.</translation> @@ -622,6 +625,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Permitir que "<ph name="SITE_NAME" />" use a autorização <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Ajude a melhorar a segurança na Web para todos</translation> +<translation id="5221339005270097309">A verificar palav.-passe…</translation> <translation id="5228579091201413441">Ativar a sincronização</translation> <translation id="5232485538978018676">Inicie sessão com uma conta gerida</translation> <translation id="5234764350956374838">Ignorar</translation> @@ -661,6 +665,7 @@ A Entrega também tem de estar ativada na secção Geral das Definições e os seus dispositivos têm de utilizar a mesma conta iCloud.</translation> <translation id="5551897871312988470">Propor tradução</translation> <translation id="5556459405103347317">Recarregar</translation> +<translation id="555749644339804659">A verificar palav.-passe…</translation> <translation id="556042886152191864">Botão</translation> <translation id="5597915316964418992">Abra a grelha de separadores</translation> <translation id="560322036295180549">Desativado pela sua entidade</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb index 2d1aeb4..dd3e670 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Notificări</translation> <translation id="2496626742194544812">Accesează prima filă</translation> <translation id="2500374554657206846">Opțiuni pentru Salvarea parolei</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> parole refolosite</translation> <translation id="2523363575747517183">Acest site încearcă în mod repetat să deschidă altă aplicație.</translation> <translation id="2529021024822217800">Deschide-le pe toate</translation> <translation id="2547458583188611426">Sincronizarea nu funcționează. Pentru a porni sincronizarea, introdu expresia de acces.</translation> @@ -292,6 +293,7 @@ <translation id="2932085390869194046">Sugerează o parolă...</translation> <translation id="2932765531295814441">Adaugă manual parole</translation> <translation id="2952581218264071393">1. deschide setările Chrome;</translation> +<translation id="2953871438216280742">Conectează-te pentru a deschide și a salva lista de lecturi în Contul Google.</translation> <translation id="2958718410589002129">Parole</translation> <translation id="2961210776189273067">Titlu</translation> <translation id="2964349545761222050">Blochează cookie-urile terță parte</translation> @@ -385,6 +387,7 @@ <translation id="3581564640715911333">Oferă traducerea paginilor în alte limbi</translation> <translation id="3588820906588687999">Deschide imaginea într-o filă nouă</translation> <translation id="3595252146048399851">Poți să alegi oricând ce să sincronizezi în <ph name="BEGIN_LINK" />setări<ph name="END_LINK" />. Google poate personaliza Căutarea și alte servicii pe baza istoricului.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} parolă slabă}few{{COUNT} parole slabe}other{{COUNT} de parole slabe}}</translation> <translation id="3603009562372709545">Copiază adresa URL a linkului</translation> <translation id="3607167657931203000">Datele de completare automată</translation> <translation id="3608008480985212611">Conectează-te pentru a-ți gestiona preferințele.</translation> @@ -622,6 +625,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Permiți ca <ph name="SITE_NAME" /> să-ți folosească <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Contribuie la îmbunătățirea securității pe web pentru toată lumea</translation> +<translation id="5221339005270097309">Se verifică parolele…</translation> <translation id="5228579091201413441">Activează sincronizarea</translation> <translation id="5232485538978018676">Conectează-te cu un cont gestionat</translation> <translation id="5234764350956374838">Închide</translation> @@ -661,6 +665,7 @@ Trebuie să activezi Handoff în secțiunea General din Setări, iar dispozitivele trebuie să folosească același cont iCloud.</translation> <translation id="5551897871312988470">Oferă traducerea</translation> <translation id="5556459405103347317">Reîncarcă</translation> +<translation id="555749644339804659">Se verifică parolele…</translation> <translation id="556042886152191864">Buton</translation> <translation id="5597915316964418992">Deschide grila cu file</translation> <translation id="560322036295180549">Dezactivată de organizație</translation> @@ -1079,6 +1084,7 @@ <translation id="8136856065410661948">Acesta se va folosi pentru a crea evenimente în Apple Calendar din Chrome și Google Lens.</translation> <translation id="8156478151976189188">Sincronizarea parolelor nu funcționează</translation> <translation id="8157532349231307196"><ph name="NUMBER_OF_ACCOUNTS" /> (de) conturi</translation> +<translation id="8159358225423560600">adineauri</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8193953846147532858"><ph name="BEGIN_LINK" />Dispozitivele tale<ph name="END_LINK" /> · <ph name="EMAIL" /></translation> <translation id="8197543752516192074">Tradu pagina</translation> @@ -1108,6 +1114,7 @@ <translation id="8393889347136007944">Filele nu au fost folosite de <ph name="THRESHOLD" /> zile</translation> <translation id="8407669440184693619">Nu s-au găsit parole pentru acest site</translation> <translation id="842017693807136194">Conectat(ă) cu</translation> +<translation id="8423121072346537366">Adineauri</translation> <translation id="8425693829365242963">Parolele sunt unice</translation> <translation id="8428045167754449968">Oraș</translation> <translation id="8428213095426709021">Setări</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb index 1cbe89f..a22f403 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Obvestila</translation> <translation id="2496626742194544812">Na prvi zavihek</translation> <translation id="2500374554657206846">Možnosti shranjevanja gesel</translation> +<translation id="2502415369140591438">Št. znova uporabljenih gesel: <ph name="COUNT" /></translation> <translation id="2523363575747517183">To spletno mesto nenehno poskuša odpreti drugo aplikacijo.</translation> <translation id="2529021024822217800">Odpri vse</translation> <translation id="2547458583188611426">Sinhronizacija ne deluje. Če želite začeti sinhronizacijo, vnesite geslo.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">Predlagaj geslo …</translation> <translation id="2932765531295814441">Ročno dodajanje gesel</translation> <translation id="2952581218264071393">1. Odprite nastavitve brskalnika Chrome.</translation> +<translation id="2953871438216280742">Prijavite se, če želite odpreti in shraniti bralni seznam v račun Google.</translation> <translation id="2958718410589002129">Gesla</translation> <translation id="2961210776189273067">Naslov</translation> <translation id="2964349545761222050">Blokiranje piškotkov drugih spletnih mest</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">Ponudi prevajanje strani v drugih jezikih</translation> <translation id="3588820906588687999">Odpri sliko na novem zavihku</translation> <translation id="3595252146048399851">V <ph name="BEGIN_LINK" />nastavitvah<ph name="END_LINK" /> lahko kadar koli izberete, kaj želite sinhronizirati. Google lahko prilagodi Iskanje Google in druge storitve glede na vašo zgodovino.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} šibko geslo}one{{COUNT} šibko geslo}two{{COUNT} šibki gesli}few{{COUNT} šibka gesla}other{{COUNT} šibkih gesel}}</translation> <translation id="3603009562372709545">Kopiraj URL povezave</translation> <translation id="3607167657931203000">Autofill Data</translation> <translation id="3608008480985212611">Prijavite se, če želite upravljati nastavitve.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Ali spletnemu mestu »<ph name="SITE_NAME" />« dovolite uporabo dovoljenja za <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Pomagajte izboljšati varnost v spletu za vse</translation> +<translation id="5221339005270097309">Preverjanje gesel …</translation> <translation id="5228579091201413441">Omogoči sinhronizacijo</translation> <translation id="5232485538978018676">Prijava z upravljanim računom</translation> <translation id="5234764350956374838">Opusti</translation> @@ -663,6 +667,7 @@ Handoff must also be enabled in the General section of Settings, and your devices must use the same iCloud account.</translation> <translation id="5551897871312988470">Ponudi prevajanje</translation> <translation id="5556459405103347317">Znova naloži</translation> +<translation id="555749644339804659">Preverjanje gesel …</translation> <translation id="556042886152191864">Gumb</translation> <translation id="5597915316964418992">Odprite mrežo zavihkov</translation> <translation id="560322036295180549">Izklopila organizacija.</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 38c93061..eda5a93 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Obaveštenja</translation> <translation id="2496626742194544812">Ide na prvu karticu</translation> <translation id="2500374554657206846">Opcije za čuvanje lozinke</translation> +<translation id="2502415369140591438">Lozinki koje koristite za više naloga: <ph name="COUNT" /></translation> <translation id="2523363575747517183">Ovaj veb-sajt neprekidno pokušava da otvori drugu aplikaciju.</translation> <translation id="2529021024822217800">Otvori sve</translation> <translation id="2547458583188611426">Sinhronizacija ne radi. Da biste pokrenuli sinhronizaciju, unesite pristupnu frazu.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">Predloži lozinku...</translation> <translation id="2932765531295814441">Dodajte lozinke ručno</translation> <translation id="2952581218264071393">1. Otvorite podešavanja Chrome-a</translation> +<translation id="2953871438216280742">Prijavite se da biste otvorili i sačuvali listu za čitanje na Google nalogu.</translation> <translation id="2958718410589002129">Lozinke</translation> <translation id="2961210776189273067">Zvanje</translation> <translation id="2964349545761222050">Blokiraj kolačiće treće strane</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">Ponudi prevod stranica na drugim jezicima</translation> <translation id="3588820906588687999">Otvori sliku na novoj kartici</translation> <translation id="3595252146048399851">Uvek možete da odaberete šta ćete sinhronizovati u <ph name="BEGIN_LINK" />podešavanjima<ph name="END_LINK" />. Google može da personalizuje Pretragu i druge usluge na osnovu istorije.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} slaba lozinka}one{{COUNT} slaba lozinka}few{{COUNT} slabe lozinke}other{{COUNT} slabih lozinki}}</translation> <translation id="3603009562372709545">Kopiraj URL adresu linka</translation> <translation id="3607167657931203000">Podaci automatskog popunjavanja</translation> <translation id="3608008480985212611">Prijavite se da biste upravljali podešavanjima.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Želite da dozvolite da <ph name="SITE_NAME" /> koristi dozvolu <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Poboljšajte bezbednost na vebu za svakoga</translation> +<translation id="5221339005270097309">Proveravaju se lozinke…</translation> <translation id="5228579091201413441">Omogući sinhronizaciju</translation> <translation id="5232485538978018676">Prijavite se pomoću upravljanog naloga</translation> <translation id="5234764350956374838">Odbaci</translation> @@ -663,6 +667,7 @@ Handoff treba da se omogući u odeljku General (Opšte) u meniju Settings (Podešavanja), a uređaji moraju da koriste isti iCloud nalog.</translation> <translation id="5551897871312988470">Ponudi prevod</translation> <translation id="5556459405103347317">Učitaj ponovo</translation> +<translation id="555749644339804659">Proveravaju se lozinke…</translation> <translation id="556042886152191864">Dugme</translation> <translation id="5597915316964418992">Otvorite mrežu za kartice</translation> <translation id="560322036295180549">Isključila je organizacija</translation> @@ -1081,6 +1086,7 @@ <translation id="8136856065410661948">Ovo će se koristiti za pravljenje događaja u Apple Calendar-u iz Chrome-a i Google objektiva.</translation> <translation id="8156478151976189188">Sinhronizacija lozinki ne radi</translation> <translation id="8157532349231307196"><ph name="NUMBER_OF_ACCOUNTS" /> naloga</translation> +<translation id="8159358225423560600">malopre</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8193953846147532858"><ph name="BEGIN_LINK" />Uređaji<ph name="END_LINK" /> · <ph name="EMAIL" /></translation> <translation id="8197543752516192074">Prevedi stranicu</translation> @@ -1111,6 +1117,7 @@ <translation id="8393889347136007944">Kartice se ne koriste <ph name="THRESHOLD" /> dana</translation> <translation id="8407669440184693619">Nije pronađena nijedna lozinka za ovaj sajt</translation> <translation id="842017693807136194">Prijavljeni ste pomoću:</translation> +<translation id="8423121072346537366">Malopre</translation> <translation id="8425693829365242963">Vaše lozinke su jedinstvene</translation> <translation id="8428045167754449968">Grad/mesto</translation> <translation id="8428213095426709021">Podešavanja</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index 5aee87b..13454c5f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Обавештења</translation> <translation id="2496626742194544812">Иде на прву картицу</translation> <translation id="2500374554657206846">Опције за чување лозинке</translation> +<translation id="2502415369140591438">Лозинки које користите за више налога: <ph name="COUNT" /></translation> <translation id="2523363575747517183">Овај веб-сајт непрекидно покушава да отвори другу апликацију.</translation> <translation id="2529021024822217800">Отвори све</translation> <translation id="2547458583188611426">Синхронизација не ради. Да бисте покренули синхронизацију, унесите приступну фразу.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">Предложи лозинку...</translation> <translation id="2932765531295814441">Додајте лозинке ручно</translation> <translation id="2952581218264071393">1. Отворите подешавања Chrome-а</translation> +<translation id="2953871438216280742">Пријавите се да бисте отворили и сачували листу за читање на Google налогу.</translation> <translation id="2958718410589002129">Лозинке</translation> <translation id="2961210776189273067">Звање</translation> <translation id="2964349545761222050">Блокирај колачиће треће стране</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">Понуди превод страница на другим језицима</translation> <translation id="3588820906588687999">Отвори слику на новој картици</translation> <translation id="3595252146048399851">Увек можете да одаберете шта ћете синхронизовати у <ph name="BEGIN_LINK" />подешавањима<ph name="END_LINK" />. Google може да персонализује Претрагу и друге услуге на основу историје.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} слаба лозинка}one{{COUNT} слаба лозинка}few{{COUNT} слабе лозинке}other{{COUNT} слабих лозинки}}</translation> <translation id="3603009562372709545">Копирај URL адресу линка</translation> <translation id="3607167657931203000">Подаци аутоматског попуњавања</translation> <translation id="3608008480985212611">Пријавите се да бисте управљали подешавањима.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">Интернет</translation> <translation id="5211488077761630279">Желите да дозволите да <ph name="SITE_NAME" /> користи дозволу <ph name="PERMISSION" />?</translation> <translation id="5219295696240154694">Побољшајте безбедност на вебу за свакога</translation> +<translation id="5221339005270097309">Проверавају се лозинке…</translation> <translation id="5228579091201413441">Омогући синхронизацију</translation> <translation id="5232485538978018676">Пријавите се помоћу управљаног налога</translation> <translation id="5234764350956374838">Одбаци</translation> @@ -663,6 +667,7 @@ Handoff треба да се омогући у одељку General (Опште) у менију Settings (Подешавања), а уређаји морају да користе исти iCloud налог.</translation> <translation id="5551897871312988470">Понуди превод</translation> <translation id="5556459405103347317">Учитај поново</translation> +<translation id="555749644339804659">Проверавају се лозинке…</translation> <translation id="556042886152191864">Дугме</translation> <translation id="5597915316964418992">Отворите мрежу за картице</translation> <translation id="560322036295180549">Искључила је организација</translation> @@ -1081,6 +1086,7 @@ <translation id="8136856065410661948">Ово ће се користити за прављење догађаја у Apple Calendar-у из Chrome-а и Google објектива.</translation> <translation id="8156478151976189188">Синхронизација лозинки не ради</translation> <translation id="8157532349231307196"><ph name="NUMBER_OF_ACCOUNTS" /> налога</translation> +<translation id="8159358225423560600">малопре</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8193953846147532858"><ph name="BEGIN_LINK" />Уређаји<ph name="END_LINK" /> · <ph name="EMAIL" /></translation> <translation id="8197543752516192074">Преведи страницу</translation> @@ -1111,6 +1117,7 @@ <translation id="8393889347136007944">Картице се не користе <ph name="THRESHOLD" /> дана</translation> <translation id="8407669440184693619">Није пронађена ниједна лозинка за овај сајт</translation> <translation id="842017693807136194">Пријављени сте помоћу:</translation> +<translation id="8423121072346537366">Малопре</translation> <translation id="8425693829365242963">Ваше лозинке су јединствене</translation> <translation id="8428045167754449968">Град/место</translation> <translation id="8428213095426709021">Подешавања</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index 9563279..11e826b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -225,6 +225,7 @@ <translation id="2576499762020411840">Tumia na Uhifadhi Manenosiri kwenye Akaunti Yako ya Google</translation> <translation id="2578571896248130439">Tuma Ukurasa wa Wavuti</translation> <translation id="2584132361465095047">Ongeza Akaunti...</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{Fungua vichupo ambavyo havijatumika kwa siku moja au zaidi ili vihamishiwe kwenye vichupo visivyo hai ili uweze kuangazia kwa wepesi vichupo unavyovitumia zaidi. Unaweza kubadilisha hali hii wakati wowote katika mipangilio.}other{Fungua vichupo ambavyo havijatumika kwa siku {COUNT} au zaidi ili vihamishiwe kwenye vichupo visivyo hai ili uweze kuangazia kwa wepesi vichupo unavyovitumia zaidi. Unaweza kubadilisha hali hii wakati wowote katika mipangilio.}}</translation> <translation id="2600682495497606169">Futa Vidakuzi vya Tovuti</translation> <translation id="2609008503159898744">Unataka Kufunga Vichupo Vyote?</translation> <translation id="2625189173221582860">Nenosiri limenakiliwa</translation> @@ -571,6 +572,7 @@ <translation id="4844899002472726590">Angalia na ubadilishe mada zinazokuvutia</translation> <translation id="4848999860252535517">Ungependa kufuta Nenosiri la <ph name="WEBSITE" />?</translation> <translation id="4854345657858711387">Weka Nambari ya Siri</translation> +<translation id="4856498338299082007">Katika Akaunti Yako ya Google</translation> <translation id="4858786880085262208">Boresha ili iwe HTTPS inapowezekana. Tovuti zilizo salama huenda zikapachika maudhui ambayo si salama.</translation> <translation id="4860895144060829044">Piga simu</translation> <translation id="4872323082491632254">Kagua Manenosiri</translation> @@ -1087,6 +1089,7 @@ <translation id="821809831108207540">Ili kuweka mapendeleo kwenye mipasho yako ya Gundua na Chrome, ingia katika akaunti na uwashe usawazishaji.</translation> <translation id="8225985093977202398">Picha na Faili Zilizowekwa katika Akiba</translation> <translation id="8237382152611443140">Fungua Mipangilio ya Kujaza Manenosiri Kiotomatiki</translation> +<translation id="8248969482078657578">Vichupo Visivyo Hai Vinakusaidia Uendelee Kuangazia</translation> <translation id="8261506727792406068">Futa</translation> <translation id="8264966119170358612">Baadhi ya manenosiri uliyohifadhi yalifichuliwa katika ufichuzi haramu wa data kwenye tovuti isiyo ya Google. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation> <translation id="8265018477030547118">Kwenye kifaa hiki pekee</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index 27759ae..359a8d4a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">அறிவிப்புகள்</translation> <translation id="2496626742194544812">முதல் பக்கத்திற்குச் செல்</translation> <translation id="2500374554657206846">கடவுச்சொல்லைச் சேமிப்பதற்கான விருப்பத்தேர்வுகள்</translation> +<translation id="2502415369140591438">ஏற்கெனவே பயன்படுத்திய கடவுச்சொற்கள்: <ph name="COUNT" /></translation> <translation id="2523363575747517183">இந்த இணையதளம், மற்றொரு பயன்பாட்டைத் திறப்பதற்கு மீண்டும் மீண்டும் முயல்கிறது.</translation> <translation id="2529021024822217800">எல்லாவற்றையும் திற</translation> <translation id="2547458583188611426">ஒத்திசைவு இயங்கவில்லை. ஒத்திசைவைத் தொடங்க கடவுச்சொற்றொடரை உள்ளிடவும்.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">கடவுச்சொல்லைப் பரிந்துரை...</translation> <translation id="2932765531295814441">கடவுச்சொற்களை நேரடியாகச் சேர்க்கவும்</translation> <translation id="2952581218264071393">1. Chrome அமைப்புகளைத் திறக்கவும்</translation> +<translation id="2953871438216280742">Google Account கணக்கில் உங்கள் வாசிப்புப் பட்டியலைத் திறப்பதற்கும் சேமிப்பதற்கும் உள்நுழையவும்.</translation> <translation id="2958718410589002129">கடவுச்சொற்கள்</translation> <translation id="2961210776189273067">பெயரின் முன்னொட்டு</translation> <translation id="2964349545761222050">மூன்றாம் தரப்புக் குக்கீகளைத் தடு</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">பக்கங்களைப் பிற மொழிகளில் மொழிபெயர்க்க அனுமதி</translation> <translation id="3588820906588687999">படத்தைப் புதிய தாவலில் திற</translation> <translation id="3595252146048399851">எதையெல்லாம் ஒத்திசைக்க வேண்டும் என்பதை <ph name="BEGIN_LINK" />அமைப்புகளுக்குச்<ph name="END_LINK" /> சென்று எப்போது வேண்டுமானாலும் தேர்வுசெய்யலாம். உங்கள் பதிவுகளின் அடிப்படையில் Search மற்றும் பிற சேவைகளை Google பிரத்தியேகமாக்கலாம்.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{வலுவற்ற கடவுச்சொல்: {COUNT}}other{வலுவற்ற கடவுச்சொற்கள்: {COUNT}}}</translation> <translation id="3603009562372709545">இணைப்பு URL ஐ நகலெடு</translation> <translation id="3607167657931203000">தன்னிரப்பி தரவு</translation> <translation id="3608008480985212611">உங்கள் விருப்பத்தேர்வுகளை நிர்வகிக்க உள்நுழையுங்கள்.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">இணையம்</translation> <translation id="5211488077761630279">உங்கள் <ph name="PERMISSION" /> பயன்படுத்த "<ph name="SITE_NAME" />" தளத்தை அனுமதிக்கவா?</translation> <translation id="5219295696240154694">இணையத்தில் உள்ள அனைவரின் பாதுகாப்பையும் மேம்படுத்த உதவுங்கள்</translation> +<translation id="5221339005270097309">சரிபார்க்கிறது…</translation> <translation id="5228579091201413441">ஒத்திசைவை இயக்கு</translation> <translation id="5232485538978018676">நிர்வகிக்கப்படும் கணக்கு மூலம் உள்நுழைதல்</translation> <translation id="5234764350956374838">நிராகரி</translation> @@ -663,6 +667,7 @@ அமைப்புகளின் பொது பிரிவிலும் ஹேண்ட்ஆஃப் இயக்கப்பட்டிருக்க வேண்டும் மற்றும் உங்கள் சாதனங்கள் ஒரே iCloud கணக்கைப் பயன்படுத்த வேண்டும்.</translation> <translation id="5551897871312988470">மொழிபெயர்க்க அனுமதி</translation> <translation id="5556459405103347317">மீண்டும் ஏற்று</translation> +<translation id="555749644339804659">சரிபார்க்கிறது…</translation> <translation id="556042886152191864">பட்டன்</translation> <translation id="5597915316964418992">பக்கத்தின் கட்டக் கட்சியைத் திறக்கவும்</translation> <translation id="560322036295180549">உங்கள் நிறுவனம் முடக்கியுள்ளது</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb index cf9d16c..09ba4cf1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_te.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">నోటిఫికేషన్లు</translation> <translation id="2496626742194544812">మొదటి ట్యాబ్కు వెళ్లండి</translation> <translation id="2500374554657206846">పాస్వర్డ్ను సేవ్ చేసే ఎంపికలు</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> వేరే చోట వాడిన పాస్వర్డ్లు</translation> <translation id="2523363575747517183">ఈ వెబ్సైట్ మరో అప్లికేషన్ను తెరవడానికి పలుసార్లు ప్రయత్నిస్తోంది.</translation> <translation id="2529021024822217800">అన్నీ తెరువు</translation> <translation id="2547458583188611426">సింక్ పని చేయడం లేదు. సింక్ను ప్రారంభించడానికి రహస్య పదబంధాన్ని ఎంటర్ చేయండి.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">పాస్వర్డ్ను సూచించు...</translation> <translation id="2932765531295814441">పాస్వర్డ్లను మాన్యువల్గా జోడించండి</translation> <translation id="2952581218264071393">1. Chrome సెట్టింగ్లను తెరవండి</translation> +<translation id="2953871438216280742">మీ చదవాల్సిన లిస్ట్ను మీ Google ఖాతాలో తెరిచి, సేవ్ చేయడానికి సైన్ ఇన్ చేయండి.</translation> <translation id="2958718410589002129">పాస్వర్డ్లు</translation> <translation id="2961210776189273067">టైటిల్</translation> <translation id="2964349545761222050">థర్డ్-పార్టీ కుక్కీలను బ్లాక్ చేయండి</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">ఇతర భాషలలో ఉన్న పేజీలను అనువదించడాన్ని ఆఫర్ చేస్తుంది</translation> <translation id="3588820906588687999">చిత్రాన్ని కొత్త ట్యాబ్లో తెరువు</translation> <translation id="3595252146048399851">ఏది సింక్ చేయాలనే దాన్ని, మీరు ఎప్పుడైనా <ph name="BEGIN_LINK" />సెట్టింగ్లలో<ph name="END_LINK" /> ఎంచుకోవచ్చు. Google మీ హిస్టరీ ఆధారంగా Search, ఇతర సర్వీస్లను వ్యక్తిగతీకరించవచ్చు.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} బలహీనమైన పాస్వర్డ్}other{{COUNT} బలహీనమైన పాస్వర్డ్లు}}</translation> <translation id="3603009562372709545">లింక్ URLను కాపీ చేయి</translation> <translation id="3607167657931203000">స్వీయపూర్తి డేటా</translation> <translation id="3608008480985212611">మీ ప్రాధాన్యతలను మేనేజ్ చేయడానికి సైన్ ఇన్ చేయండి.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">ఇంటర్నెట్</translation> <translation id="5211488077761630279">మీ <ph name="PERMISSION" />ను ఉపయోగించడానికి "<ph name="SITE_NAME" />"ను అనుమతించాలా?</translation> <translation id="5219295696240154694">వెబ్లో ప్రతిఒక్కరి భద్రతను మెరుగుపరచడంలో సహాయపడండి</translation> +<translation id="5221339005270097309">పాస్వర్డ్ల చెకింగ్…</translation> <translation id="5228579091201413441">సింక్ను ప్రారంభించండి</translation> <translation id="5232485538978018676">నిర్వహించబడుతున్న ఖాతాతో సైన్ ఇన్ చేయండి</translation> <translation id="5234764350956374838">తొలగించండి</translation> @@ -663,6 +667,7 @@ హ్యాండ్ఆఫ్ను తప్పనిసరిగా సాధారణ సెట్టింగ్ల విభాగంలో కూడా ప్రారంభించాలి. మీ పరికరాలు తప్పనిసరిగా ఒకే iCloud ఖాతాను ఉపయోగించాలి.</translation> <translation id="5551897871312988470">అనువదించడం ఆఫర్ చేస్తుంది</translation> <translation id="5556459405103347317">మళ్లీ లోడ్ చేయి</translation> +<translation id="555749644339804659">పాస్వర్డ్ల చెకింగ్…</translation> <translation id="556042886152191864">బటన్</translation> <translation id="5597915316964418992">ట్యాబ్ గ్రిడ్ను తెరవండి</translation> <translation id="560322036295180549">మీ సంస్థ ఆఫ్ చేసింది</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index 3f434c67..e5704b3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -1022,6 +1022,7 @@ <translation id="7781011649027948662">แปลหน้าเว็บไหม</translation> <translation id="7781069478569868053">หน้าแท็บใหม่</translation> <translation id="7781829728241885113">เมื่อวานนี้</translation> +<translation id="7786246662347093005">{COUNT,plural, =1{หลังจาก 1 วัน}other{หลังจาก {COUNT} วัน}}</translation> <translation id="778855399387580014">เริ่มการค้นหาในแท็บใหม่ของ Chrome</translation> <translation id="7791543448312431591">เพิ่ม</translation> <translation id="7807060072011926525">ให้บริการโดย Google</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb index cbd6c400..00d2eab 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">اطلاعات</translation> <translation id="2496626742194544812">پہلے ٹیب پر جائیں</translation> <translation id="2500374554657206846">پاس ورڈ محفوظ کرنے کے اختیارات</translation> +<translation id="2502415369140591438">دوبارہ استعمال کردہ <ph name="COUNT" /> پاس ورڈز</translation> <translation id="2523363575747517183">یہ ویب سائٹ بار بار ایک اور ایپلیکیشن کھولنے کی کوشش کر رہی ہے۔</translation> <translation id="2529021024822217800">تمام کھولیں</translation> <translation id="2547458583188611426">مطابقت پذیری کام نہیں کر رہی ہے۔ مطابقت پذیری شروع کرنے کے لیے اپنا پاس فریز درج کریں۔</translation> @@ -292,6 +293,7 @@ <translation id="2932085390869194046">پاس ورڈ تجویز کریں...</translation> <translation id="2932765531295814441">دستی طور پر پاس ورڈز شامل کریں</translation> <translation id="2952581218264071393">1۔ Chrome کی ترتیبات کھولیں</translation> +<translation id="2953871438216280742">اپنے Google اکاؤنٹ میں اپنی پڑھنے کی فہرست کو کھولنے اور محفوظ کرنے کے لیے سائن ان کریں۔</translation> <translation id="2958718410589002129">پاس ورڈز</translation> <translation id="2961210776189273067">عنوان</translation> <translation id="2964349545761222050">فریق ثالث کوکیز کو مسدود کریں</translation> @@ -385,6 +387,7 @@ <translation id="3581564640715911333">صفحات کو دیگر زبانوں میں ترجمہ کرنے کی پیشکش کریں</translation> <translation id="3588820906588687999">تصویر نئے ٹیب میں کھولیں</translation> <translation id="3595252146048399851">آپ کسی بھی وقت اس بات کا انتخاب کر سکتے ہیں کہ <ph name="BEGIN_LINK" />ترتیبات<ph name="END_LINK" /> میں کس چیز کی مطابقت پذیری کرنی ہے۔ Google آپ کی سرگزشت کی بنیاد پر تلاش اور دیگر سروسز کو ذاتی نوعیت کا بنا سکتا ہے۔</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} کمزور پاس ورڈ}other{{COUNT} کمزور پاس ورڈز}}</translation> <translation id="3603009562372709545">لنک URL کاپی کریں</translation> <translation id="3607167657931203000">آٹو فل ڈیٹا</translation> <translation id="3608008480985212611">اپنی ترجیحات کا نظم کرنے کے لیے سائن ان کریں۔</translation> @@ -622,6 +625,7 @@ <translation id="5197255632782567636">انٹرنیٹ</translation> <translation id="5211488077761630279">اپنے <ph name="PERMISSION" /> کا استعمال کرنے کے لیے "<ph name="SITE_NAME" />" کو اجازت دیں؟</translation> <translation id="5219295696240154694">سبھی کے لیے ویب پر سیکیورٹی کو بہتر بنانے میں مدد کریں</translation> +<translation id="5221339005270097309">پاس ورڈز چیک ہو رہے ہیں…</translation> <translation id="5228579091201413441">مطابقت پذیری فعال کریں</translation> <translation id="5232485538978018676">نظم کردہ اکاؤنٹ کے ساتھ سائن ان کریں</translation> <translation id="5234764350956374838">برخاست کریں</translation> @@ -661,6 +665,7 @@ Handoff ترتیبات کے عام سیکشن میں بھی فعال ہونی ضروری ہے اور آپ کے آلات کو وہی iCloud اکاؤنٹ استعمال کرنا چاہیے۔</translation> <translation id="5551897871312988470">ترجمہ کی پیشکش کریں</translation> <translation id="5556459405103347317">دوبارہ لوڈ کریں</translation> +<translation id="555749644339804659">پاس ورڈز چیک ہو رہے ہیں…</translation> <translation id="556042886152191864">بٹن</translation> <translation id="5597915316964418992">ٹیب گرڈ کھولیں</translation> <translation id="560322036295180549">آپ کی تنظیم کے ذریعے اف کر دیا گیا</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index 16f981fd..bb575dd 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">Thông báo</translation> <translation id="2496626742194544812">Chuyển đến thẻ đầu tiên</translation> <translation id="2500374554657206846">Các tùy chọn lưu mật khẩu</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> Mật khẩu trùng lặp</translation> <translation id="2523363575747517183">Trang web này đang liên tục tìm cách mở một ứng dụng khác.</translation> <translation id="2529021024822217800">Mở tất cả</translation> <translation id="2547458583188611426">Tính năng đồng bộ hoá không hoạt động. Để bắt đầu đồng bộ hoá, hãy nhập cụm mật khẩu của bạn.</translation> @@ -293,6 +294,7 @@ <translation id="2932085390869194046">Đề xuất mật khẩu...</translation> <translation id="2932765531295814441">Thêm mật khẩu theo cách thủ công</translation> <translation id="2952581218264071393">1. Mở phần Cài đặt của Chrome</translation> +<translation id="2953871438216280742">Đăng nhập để mở và lưu danh sách đọc trong Tài khoản Google của bạn.</translation> <translation id="2958718410589002129">Mật khẩu</translation> <translation id="2961210776189273067">Danh xưng</translation> <translation id="2964349545761222050">Chặn cookie của bên thứ ba</translation> @@ -386,6 +388,7 @@ <translation id="3581564640715911333">Đề xuất dịch trang bằng các ngôn ngữ khác</translation> <translation id="3588820906588687999">Mở ảnh trong thẻ mới</translation> <translation id="3595252146048399851">Bạn có thể chọn nội dung muốn đồng bộ hoá trong phần <ph name="BEGIN_LINK" />cài đặt<ph name="END_LINK" /> bất cứ lúc nào. Google có thể cá nhân hoá dịch vụ Tìm kiếm và các dịch vụ khác dựa trên nhật ký của bạn.</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} Mật khẩu yếu}other{{COUNT} Mật khẩu yếu}}</translation> <translation id="3603009562372709545">Sao chép URL liên kết</translation> <translation id="3607167657931203000">Dữ liệu tự động điền</translation> <translation id="3608008480985212611">Đăng nhập để quản lý lựa chọn ưu tiên của bạn.</translation> @@ -624,6 +627,7 @@ <translation id="5197255632782567636">Internet</translation> <translation id="5211488077761630279">Cho phép "<ph name="SITE_NAME" />" sử dụng <ph name="PERMISSION" /> của bạn?</translation> <translation id="5219295696240154694">Giúp tăng cường bảo mật cho mọi người trên mạng</translation> +<translation id="5221339005270097309">Đang kiểm tra mật khẩu…</translation> <translation id="5228579091201413441">Bật đồng bộ hóa</translation> <translation id="5232485538978018676">Đăng nhập bằng Tài khoản được quản lý</translation> <translation id="5234764350956374838">Bỏ qua</translation> @@ -663,6 +667,7 @@ Đồng thời, bạn phải bật tính năng tiếp nối trong phần Chung của cài đặt và thiết bị của bạn phải sử dụng cùng một tài khoản iCloud.</translation> <translation id="5551897871312988470">Đề xuất dịch</translation> <translation id="5556459405103347317">Tải lại</translation> +<translation id="555749644339804659">Đang kiểm tra mật khẩu…</translation> <translation id="556042886152191864">Nút</translation> <translation id="5597915316964418992">Mở lưới thẻ</translation> <translation id="560322036295180549">Do tổ chức của bạn tắt</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 6a16e59..3284c7d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">通知</translation> <translation id="2496626742194544812">前往第一個分頁</translation> <translation id="2500374554657206846">儲存密碼選項</translation> +<translation id="2502415369140591438"><ph name="COUNT" /> 個重用密碼</translation> <translation id="2523363575747517183">這個網站嘗試重覆開啟另一個應用程式。</translation> <translation id="2529021024822217800">全部開啟</translation> <translation id="2547458583188611426">同步處理無法運作。如要開始同步處理,請輸入密碼短語。</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">將密碼儲存至 Google 帳戶中並自動填入</translation> <translation id="2578571896248130439">傳送網頁</translation> <translation id="2584132361465095047">新增帳戶…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{如開啟的分頁已有 1 日或以上未使用,系統就會轉成「閒置分頁」,方便您順暢使用常用分頁。您可隨時在設定中變更此設定。}other{如開啟的分頁已有 {COUNT} 日或以上未使用,系統就會轉成「閒置分頁」,方便您順暢使用常用分頁。您可隨時在設定中變更此設定。}}</translation> <translation id="2600682495497606169">清除網站 Cookie</translation> <translation id="2609008503159898744">要關閉所有分頁嗎?</translation> <translation id="2625189173221582860">已複製密碼</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">建議密碼…</translation> <translation id="2932765531295814441">手動新增密碼</translation> <translation id="2952581218264071393">1. 開啟 Chrome 設定</translation> +<translation id="2953871438216280742">登入即可開啟 Google 帳戶的閱讀清單及儲存清單項目。</translation> <translation id="2958718410589002129">密碼</translation> <translation id="2961210776189273067">標題</translation> <translation id="2964349545761222050">封鎖第三方 Cookie</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">詢問是否將網頁內容翻譯成其他語言</translation> <translation id="3588820906588687999">在新分頁中開啟圖片</translation> <translation id="3595252146048399851">您隨時可在<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />中選擇要同步的資料。Google 可能會根據您的記錄,提供個人化「搜尋」和其他服務。</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{{COUNT} 個安全度低的密碼}other{{COUNT} 個安全度低的密碼}}</translation> <translation id="3603009562372709545">複製連結網址</translation> <translation id="3607167657931203000">自動填入資料</translation> <translation id="3608008480985212611">登入即可管理偏好設定。</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">查看和編輯您感興趣的主題</translation> <translation id="4848999860252535517">要刪除 <ph name="WEBSITE" /> 的密碼嗎?</translation> <translation id="4854345657858711387">設定密碼</translation> +<translation id="4856498338299082007">在 Google 帳戶中</translation> <translation id="4858786880085262208">盡可能升級為 HTTPS。即使是安全的網站,仍有可能嵌入不安全的內容。</translation> <translation id="4860895144060829044">撥號</translation> <translation id="4872323082491632254">檢查密碼</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">互聯網</translation> <translation id="5211488077761630279">要允許「<ph name="SITE_NAME" />」使用<ph name="PERMISSION" />嗎?</translation> <translation id="5219295696240154694">協助改善其他使用者的網絡安全性</translation> +<translation id="5221339005270097309">正在檢查密碼…</translation> <translation id="5228579091201413441">啟用同步功能</translation> <translation id="5232485538978018676">使用受管理的帳戶登入</translation> <translation id="5234764350956374838">關閉</translation> @@ -661,6 +667,7 @@ 您必須先在「設定」的「一般」部分啟用 Handoff,且裝置須使用相同的 iCloud 帳戶。</translation> <translation id="5551897871312988470">提供翻譯</translation> <translation id="5556459405103347317">重新載入</translation> +<translation id="555749644339804659">正在檢查密碼…</translation> <translation id="556042886152191864">按鈕</translation> <translation id="5597915316964418992">開啟「分頁網格」</translation> <translation id="560322036295180549">已由您的機構停用</translation> @@ -1078,6 +1085,7 @@ <translation id="8136856065410661948">系統會透過此操作,在 Chrome 和「Google 智能鏡頭」的「Apple 日曆」中建立活動。</translation> <translation id="8156478151976189188">密碼同步功能無法正常運作</translation> <translation id="8157532349231307196"><ph name="NUMBER_OF_ACCOUNTS" /> 個帳戶</translation> +<translation id="8159358225423560600">剛剛</translation> <translation id="8179976553408161302">Enter 鍵</translation> <translation id="8193953846147532858"><ph name="BEGIN_LINK" />您的裝置<ph name="END_LINK" /> · <ph name="EMAIL" /></translation> <translation id="8197543752516192074">翻譯網頁</translation> @@ -1086,6 +1094,7 @@ <translation id="821809831108207540">如要個人化「探索」動態消息和 Chrome,請登入並開啟同步功能。</translation> <translation id="8225985093977202398">快取圖片和檔案</translation> <translation id="8237382152611443140">開啟「自動填入密碼」設定</translation> +<translation id="8248969482078657578">「閒置分頁」可助您保持專注</translation> <translation id="8261506727792406068">刪除</translation> <translation id="8264966119170358612">非 Google 資料外洩中包含部分您儲存的密碼。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> <translation id="8265018477030547118">只儲存在此裝置上</translation> @@ -1107,6 +1116,7 @@ <translation id="8393889347136007944">分頁已有 <ph name="THRESHOLD" /> 日未曾使用</translation> <translation id="8407669440184693619">找不到此網站的密碼</translation> <translation id="842017693807136194">目前登入身分</translation> +<translation id="8423121072346537366">剛剛</translation> <translation id="8425693829365242963">沒有重複使用的密碼</translation> <translation id="8428045167754449968">城市/鄉鎮</translation> <translation id="8428213095426709021">設定</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 046a5201..ff13754 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -216,6 +216,7 @@ <translation id="2482878487686419369">通知</translation> <translation id="2496626742194544812">前往第一個分頁</translation> <translation id="2500374554657206846">儲存密碼的選項</translation> +<translation id="2502415369140591438">有 <ph name="COUNT" /> 組重複使用的密碼</translation> <translation id="2523363575747517183">這個網站不斷嘗試開啟其他應用程式。</translation> <translation id="2529021024822217800">全部開啟</translation> <translation id="2547458583188611426">目前未同步資料。如要開始同步,請輸入通關密語。</translation> @@ -225,6 +226,7 @@ <translation id="2576499762020411840">將密碼儲存到 Google 帳戶並自動填入</translation> <translation id="2578571896248130439">傳送網頁</translation> <translation id="2584132361465095047">新增帳戶…</translation> +<translation id="2595587704210555261">{COUNT,plural, =1{如果開啟的分頁已 1 天以上未使用,這些分頁就會轉成閒置狀態,方便你將注意力放在常用的分頁上。你隨時可以前往設定進行變更。}other{如果開啟的分頁已 {COUNT} 天以上未使用,這些分頁就會轉成閒置狀態,方便你將注意力放在常用的分頁上。你隨時可以前往設定進行變更。}}</translation> <translation id="2600682495497606169">清除網站 Cookie</translation> <translation id="2609008503159898744">要關閉所有分頁嗎?</translation> <translation id="2625189173221582860">已複製密碼</translation> @@ -292,6 +294,7 @@ <translation id="2932085390869194046">建議密碼...</translation> <translation id="2932765531295814441">手動新增密碼</translation> <translation id="2952581218264071393">1. 開啟 Chrome 設定</translation> +<translation id="2953871438216280742">登入即可開啟 Google 帳戶的閱讀清單及儲存清單項目。</translation> <translation id="2958718410589002129">密碼</translation> <translation id="2961210776189273067">稱謂</translation> <translation id="2964349545761222050">封鎖第三方 Cookie</translation> @@ -385,6 +388,7 @@ <translation id="3581564640715911333">詢問是否要將網頁內容翻譯成其他語言</translation> <translation id="3588820906588687999">在新分頁中開啟圖片</translation> <translation id="3595252146048399851">你隨時可以在<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />中選擇要同步處理的資料。Google 可能會根據你的歷史記錄在 Google 搜尋等其他服務中提供個人化體驗。</translation> +<translation id="3595588371156514964">{COUNT,plural, =1{有 {COUNT} 組低強度密碼}other{有 {COUNT} 組低強度密碼}}</translation> <translation id="3603009562372709545">複製連結網址</translation> <translation id="3607167657931203000">自動填入資料</translation> <translation id="3608008480985212611">如要管理偏好設定,請登入帳戶。</translation> @@ -571,6 +575,7 @@ <translation id="4844899002472726590">查看及編輯你感興趣的主題</translation> <translation id="4848999860252535517">要刪除 <ph name="WEBSITE" /> 的密碼嗎?</translation> <translation id="4854345657858711387">請設定螢幕解鎖密碼</translation> +<translation id="4856498338299082007">在你的 Google 帳戶中</translation> <translation id="4858786880085262208">可能的話,升級為 HTTPS。即使是安全的網站,仍有可能嵌入不安全的內容。</translation> <translation id="4860895144060829044">撥號</translation> <translation id="4872323082491632254">檢查密碼</translation> @@ -622,6 +627,7 @@ <translation id="5197255632782567636">網際網路</translation> <translation id="5211488077761630279">要允許「<ph name="SITE_NAME" />」使用<ph name="PERMISSION" />嗎?</translation> <translation id="5219295696240154694">協助我們為所有人改善網路安全性</translation> +<translation id="5221339005270097309">正在檢查密碼…</translation> <translation id="5228579091201413441">啟用同步功能</translation> <translation id="5232485538978018676">使用受管理的帳戶登入</translation> <translation id="5234764350956374838">關閉</translation> @@ -661,6 +667,7 @@ 此外,您必須在 [設定] 的「一般設定」部分中啟用 Handoff,且您的裝置必須使用同一個 iCloud 帳戶。</translation> <translation id="5551897871312988470">提供翻譯選項</translation> <translation id="5556459405103347317">重新載入</translation> +<translation id="555749644339804659">正在檢查密碼…</translation> <translation id="556042886152191864">按鈕</translation> <translation id="5597915316964418992">開啟分頁方格</translation> <translation id="560322036295180549">已由貴機構停用</translation> @@ -1015,6 +1022,7 @@ <translation id="7781011649027948662">是否要翻譯網頁?</translation> <translation id="7781069478569868053">新分頁</translation> <translation id="7781829728241885113">昨天</translation> +<translation id="7786246662347093005">{COUNT,plural, =1{1 天後}other{{COUNT} 天後}}</translation> <translation id="778855399387580014">在 Chrome 新分頁中進行搜尋。</translation> <translation id="7791543448312431591">新增</translation> <translation id="7807060072011926525">由 Google 提供</translation> @@ -1079,6 +1087,7 @@ <translation id="8136856065410661948">系統將使用 Chrome 和 Google 智慧鏡頭中的內容在 Apple 行事曆中建立活動。</translation> <translation id="8156478151976189188">Password Sync 無法正常運作</translation> <translation id="8157532349231307196"><ph name="NUMBER_OF_ACCOUNTS" /> 個帳戶</translation> +<translation id="8159358225423560600">剛剛</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8193953846147532858"><ph name="BEGIN_LINK" />你的裝置<ph name="END_LINK" /> · <ph name="EMAIL" /></translation> <translation id="8197543752516192074">翻譯網頁</translation> @@ -1087,6 +1096,7 @@ <translation id="821809831108207540">如要個人化「探索」動態消息和 Chrome,請登入並開啟同步功能。</translation> <translation id="8225985093977202398">快取圖片和檔案</translation> <translation id="8237382152611443140">開啟 [自動填入密碼] 設定</translation> +<translation id="8248969482078657578">將分頁設為閒置狀態,助你保持專注</translation> <translation id="8261506727792406068">刪除</translation> <translation id="8264966119170358612">由於發生第三方 (非 Google) 資料侵害事件,你儲存的某些密碼已外洩。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> <translation id="8265018477030547118">僅儲存在這部裝置上</translation> @@ -1108,6 +1118,7 @@ <translation id="8393889347136007944">已有 <ph name="THRESHOLD" /> 天未使用的分頁</translation> <translation id="8407669440184693619">找不到這個網站的密碼</translation> <translation id="842017693807136194">目前登入身分</translation> +<translation id="8423121072346537366">剛剛</translation> <translation id="8425693829365242963">沒有重複使用的密碼</translation> <translation id="8428045167754449968">鄉/鎮/市/區</translation> <translation id="8428213095426709021">設定</translation>
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 index f318026..668cd21e 100644 --- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -c97f38f87e945bb062a685c5511dbc976197f8bf \ No newline at end of file +0ce1b6c10061f2c385f9014d38d90c2bb4e78b87 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 index a783617..3c3fd23 100644 --- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -533351e42d8aac03076579212b42592108096e27 \ No newline at end of file +8f88a228685214a5a386f54ec2602ee55722f6a9 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index 440d3a34..5311bbc 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -1dc5b58b50b1f39921372cd0aab9d00cdbe1bfbf \ No newline at end of file +e4c7d5304f338c2aa23183ef81e61aa59bfc55a3 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index 24f5edf0..9b142d5 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -b44c40f2b4f16f07fad5d33d842528c505896a95 \ No newline at end of file +896d6f8dc48c80301f5d1c7523ffe77484a48d07 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index 5e390f4..55caadeb 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -4c8a0a7c32e0b7bc31717d0a1bd3c3943f84c8df \ No newline at end of file +6e9a4cc24a02c332afa22ae788de71e3780748ea \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index a1fea4d..a43bd94 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -e5bd7c0fbdcfaeca7e4def2afdd593d03e5b6811 \ No newline at end of file +5bc708731aaed135177667f9e41b36f73a1f3af8 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 index 3905b97..6ee5bea1 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -00a428b5f669049faaa81c8bf48f94b346677f59 \ No newline at end of file +46be6fcb6c37efb994ea4797f21e9a05696247fe \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 index d2422685..f76856d 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -8b30618f2c884288ad21f85255c17183b0d7ed7b \ No newline at end of file +43ed53a3aac6062ba506e250ee0bf9d60c5bf21a \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index c1c1618..4bfd7db 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -29899589da25fde8e2e3067d71606b13332f17b6 \ No newline at end of file +1c9a1c3dde35ad76818b43d9bb95a64c87e3039e \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index 1a459cbb..6428cf63 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -90f41a7248148a336f8f28c2c22d7b8b1e6e0b28 \ No newline at end of file +07ce33fe1534da188c1140836a7bb6ce3dbe2746 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index e30d7cc..bd640df 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -c32ad19773f2036f6d0a16ab3b8a3b5ac6ba2fce \ No newline at end of file +6766a949ad5ef01cbde215489ccd424db9ab0db4 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index 4964c45..b6d31d62 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -1910a5f8554b619026a30507d14ecd6a58e4d6a9 \ No newline at end of file +f03057ac780647d29ba5484ccd309271c49225b1 \ No newline at end of file
diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn index 9beb7f7..f74a607 100644 --- a/media/gpu/test/BUILD.gn +++ b/media/gpu/test/BUILD.gn
@@ -214,28 +214,31 @@ ] } -static_library("video_encoder") { - testonly = true - sources = [ - "bitstream_helpers.cc", - "bitstream_helpers.h", - "video_encoder/bitstream_file_writer.cc", - "video_encoder/bitstream_file_writer.h", - "video_encoder/bitstream_validator.cc", - "video_encoder/bitstream_validator.h", - "video_encoder/decoder_buffer_validator.cc", - "video_encoder/decoder_buffer_validator.h", - "video_encoder/video_encoder.cc", - "video_encoder/video_encoder.h", - "video_encoder/video_encoder_client.cc", - "video_encoder/video_encoder_client.h", - ] - deps = [ - ":test_helpers", - "//media/gpu", - "//media/parsers", - "//testing/gtest:gtest", - ] +if (use_libgav1_parser) { + static_library("video_encoder") { + testonly = true + sources = [ + "bitstream_helpers.cc", + "bitstream_helpers.h", + "video_encoder/bitstream_file_writer.cc", + "video_encoder/bitstream_file_writer.h", + "video_encoder/bitstream_validator.cc", + "video_encoder/bitstream_validator.h", + "video_encoder/decoder_buffer_validator.cc", + "video_encoder/decoder_buffer_validator.h", + "video_encoder/video_encoder.cc", + "video_encoder/video_encoder.h", + "video_encoder/video_encoder_client.cc", + "video_encoder/video_encoder_client.h", + ] + deps = [ + ":test_helpers", + "//media/gpu", + "//media/parsers", + "//testing/gtest:gtest", + "//third_party/libgav1:libgav1_parser", + ] + } } static_library("video_encoder_test_environment") {
diff --git a/media/gpu/test/video_encode_accelerator_perf_tests.cc b/media/gpu/test/video_encode_accelerator_perf_tests.cc index e8406a21..d1252a3d 100644 --- a/media/gpu/test/video_encode_accelerator_perf_tests.cc +++ b/media/gpu/test/video_encode_accelerator_perf_tests.cc
@@ -65,7 +65,7 @@ --vmodule enable verbose mode for the specified module, --codec codec profile to encode, "h264 (baseline)", - "h264main, "h264high", "vp8" and "vp9" + "h264main, "h264high", "vp8", "vp9", "av1". --num_spatial_layers the number of spatial layers of the encoded bitstream. A default value is 1. Only affected if --codec=vp9 currently.
diff --git a/media/gpu/test/video_encode_accelerator_tests.cc b/media/gpu/test/video_encode_accelerator_tests.cc index f2e8b16a9..0c94fcf0 100644 --- a/media/gpu/test/video_encode_accelerator_tests.cc +++ b/media/gpu/test/video_encode_accelerator_tests.cc
@@ -69,7 +69,7 @@ e.g. --vmodule=*media/gpu*=2. --codec codec profile to encode, "h264" (baseline), - "h264main, "h264high", "vp8" and "vp9". + "h264main, "h264high", "vp8", "vp9", "av1". H264 Baseline is selected if unspecified. --num_temporal_layers the number of temporal layers of the encoded bitstream. A default value is 1. @@ -284,6 +284,9 @@ config.output_profile, visible_rect, config.num_spatial_layers, config.num_temporal_layers)); break; + case VideoCodec::kAV1: + bitstream_processors.emplace_back(new AV1Validator(visible_rect)); + break; default: LOG(ERROR) << "Unsupported profile: " << GetProfileName(config.output_profile);
diff --git a/media/gpu/test/video_encoder/bitstream_validator.cc b/media/gpu/test/video_encoder/bitstream_validator.cc index a810655..daa7cf90 100644 --- a/media/gpu/test/video_encoder/bitstream_validator.cc +++ b/media/gpu/test/video_encoder/bitstream_validator.cc
@@ -18,6 +18,7 @@ #include "media/base/media_util.h" #include "media/base/video_decoder_config.h" #include "media/base/video_frame.h" +#include "media/filters/dav1d_video_decoder.h" #include "media/filters/ffmpeg_video_decoder.h" #include "media/filters/vpx_video_decoder.h" #include "media/gpu/macros.h" @@ -36,6 +37,13 @@ std::unique_ptr<MediaLog>* media_log) { std::unique_ptr<VideoDecoder> decoder; + if (codec == VideoCodec::kAV1) { +#if BUILDFLAG(ENABLE_DAV1D_DECODER) + *media_log = std::make_unique<NullMediaLog>(); + decoder = std::make_unique<Dav1dVideoDecoder>(media_log->get()); +#endif + } + if (codec == VideoCodec::kVP8 || codec == VideoCodec::kVP9) { #if BUILDFLAG(ENABLE_LIBVPX) LOG_ASSERT(!base::FeatureList::IsEnabled(kFFmpegDecodeOpaqueVP8));
diff --git a/media/gpu/test/video_encoder/decoder_buffer_validator.cc b/media/gpu/test/video_encoder/decoder_buffer_validator.cc index 3b4e762f4..2920e5b7 100644 --- a/media/gpu/test/video_encoder/decoder_buffer_validator.cc +++ b/media/gpu/test/video_encoder/decoder_buffer_validator.cc
@@ -606,5 +606,71 @@ return true; } + +AV1Validator::AV1Validator(const gfx::Rect& visible_rect) + : DecoderBufferValidator(visible_rect, /*num_temporal_layers=*/1), + buffer_pool_(libgav1::OnInternalFrameBufferSizeChanged, + libgav1::GetInternalFrameBuffer, + libgav1::ReleaseInternalFrameBuffer, + &buffer_list_) {} + +// TODO(b/268487938): Add more robust testing here. Currently we only perform +// the most basic validation that the bitstream parses correctly and has the +// right dimensions. +bool AV1Validator::Validate(const DecoderBuffer& decoder_buffer, + const BitstreamBufferMetadata& metadata) { + libgav1::ObuParser av1_parser(decoder_buffer.data(), + decoder_buffer.data_size(), 0, &buffer_pool_, + &decoder_state_); + libgav1::RefCountedBufferPtr curr_frame; + + if (sequence_header_) { + av1_parser.set_sequence_header(*sequence_header_); + } + + auto parse_status = av1_parser.ParseOneFrame(&curr_frame); + if (parse_status != libgav1::kStatusOk) { + LOG(ERROR) << "Failed parsing frame. Status: " << parse_status; + return false; + } + + if (av1_parser.frame_header().width != visible_rect_.width() || + av1_parser.frame_header().height != visible_rect_.height()) { + LOG(ERROR) << "Mismatched frame dimensions."; + LOG(ERROR) << "Got width=" << av1_parser.frame_header().width + << " height=" << av1_parser.frame_header().height; + LOG(ERROR) << "Expected width=" << visible_rect_.width() + << " height=" << visible_rect_.height(); + return false; + } + + if (av1_parser.frame_header().frame_type != libgav1::FrameType::kFrameKey && + frame_num_ == 0) { + LOG(ERROR) << "First frame must be keyframe"; + return false; + } + + if (av1_parser.frame_header().frame_type == libgav1::FrameType::kFrameKey) { + frame_num_ = 0; + } + + if (av1_parser.frame_header().order_hint != (frame_num_ & 0xFF)) { + LOG(ERROR) << "Incorrect frame order hint"; + LOG(ERROR) << "Got: " << av1_parser.frame_header().order_hint; + LOG(ERROR) << "Expected: " << (int)(frame_num_ & 0xFF); + return false; + } + + // Update our state for the next frame. + if (av1_parser.frame_header().frame_type == libgav1::FrameType::kFrameKey) { + sequence_header_ = av1_parser.sequence_header(); + } + decoder_state_.UpdateReferenceFrames( + curr_frame, av1_parser.frame_header().refresh_frame_flags); + + frame_num_++; + + return true; +} } // namespace test } // namespace media
diff --git a/media/gpu/test/video_encoder/decoder_buffer_validator.h b/media/gpu/test/video_encoder/decoder_buffer_validator.h index 783655993..4bb0ecd9 100644 --- a/media/gpu/test/video_encoder/decoder_buffer_validator.h +++ b/media/gpu/test/video_encoder/decoder_buffer_validator.h
@@ -13,6 +13,7 @@ #include "media/gpu/test/bitstream_helpers.h" #include "media/parsers/vp8_parser.h" #include "media/video/h264_parser.h" +#include "third_party/libgav1/src/src/obu_parser.h" #include "ui/gfx/geometry/rect.h" namespace media { @@ -132,6 +133,24 @@ // buffer has been invalidated (e.g. due to sync points). std::array<absl::optional<BufferState>, kVp9NumRefFrames> reference_buffers_; }; + +class AV1Validator : public DecoderBufferValidator { + public: + // TODO(greenjustin): Add support for more than 1 spatial and temporal layer + // if we need it. + explicit AV1Validator(const gfx::Rect& visible_rect); + ~AV1Validator() override = default; + + private: + bool Validate(const DecoderBuffer& decoder_buffer, + const BitstreamBufferMetadata& metadata) override; + + libgav1::InternalFrameBufferList buffer_list_; + libgav1::BufferPool buffer_pool_; + libgav1::DecoderState decoder_state_; + absl::optional<libgav1::ObuSequenceHeader> sequence_header_ = absl::nullopt; + uint64_t frame_num_ = 0; +}; } // namespace test } // namespace media #endif // MEDIA_GPU_TEST_VIDEO_ENCODER_DECODER_BUFFER_VALIDATOR_H_
diff --git a/media/gpu/test/video_encoder/video_encoder_test_environment.cc b/media/gpu/test/video_encoder/video_encoder_test_environment.cc index ff81bfc9..78cb91e 100644 --- a/media/gpu/test/video_encoder/video_encoder_test_environment.cc +++ b/media/gpu/test/video_encoder/video_encoder_test_environment.cc
@@ -35,6 +35,7 @@ {"h264high", H264PROFILE_HIGH}, {"vp8", VP8PROFILE_ANY}, {"vp9", VP9PROFILE_PROFILE0}, + {"av1", AV1PROFILE_PROFILE_MAIN}, }; uint32_t GetDefaultTargetBitrate(const gfx::Size& resolution,
diff --git a/media/gpu/test/video_test_helpers.cc b/media/gpu/test/video_test_helpers.cc index 0b83296..a68551501 100644 --- a/media/gpu/test/video_test_helpers.cc +++ b/media/gpu/test/video_test_helpers.cc
@@ -114,6 +114,9 @@ case VideoCodec::kVP9: strcpy(&ivf_header[8], "VP90"); break; + case VideoCodec::kAV1: + strcpy(&ivf_header[8], "AV01"); + break; default: LOG(ERROR) << "Unknown codec: " << GetCodecName(codec); return false;
diff --git a/media/gpu/vaapi/vaapi_video_encode_accelerator.cc b/media/gpu/vaapi/vaapi_video_encode_accelerator.cc index eb497d7..c9ba7cc 100644 --- a/media/gpu/vaapi/vaapi_video_encode_accelerator.cc +++ b/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
@@ -41,6 +41,7 @@ #include "media/gpu/gpu_video_encode_accelerator_helpers.h" #include "media/gpu/h264_dpb.h" #include "media/gpu/macros.h" +#include "media/gpu/vaapi/av1_vaapi_video_encoder_delegate.h" #include "media/gpu/vaapi/h264_vaapi_video_encoder_delegate.h" #include "media/gpu/vaapi/va_surface.h" #include "media/gpu/vaapi/vaapi_common.h" @@ -199,7 +200,7 @@ const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile); if (codec != VideoCodec::kH264 && codec != VideoCodec::kVP8 && - codec != VideoCodec::kVP9) { + codec != VideoCodec::kVP9 && codec != VideoCodec::kAV1) { MEDIA_LOG(ERROR, media_log.get()) << "Unsupported profile: " << GetProfileName(config.output_profile); return false; @@ -292,6 +293,7 @@ break; case VideoCodec::kVP8: case VideoCodec::kVP9: + case VideoCodec::kAV1: mode = VaapiWrapper::kEncodeConstantQuantizationParameter; break; default: @@ -354,6 +356,12 @@ vaapi_wrapper_, error_cb); } break; + case VideoCodec::kAV1: + if (!IsConfiguredForTesting()) { + encoder_ = std::make_unique<AV1VaapiVideoEncoderDelegate>( + vaapi_wrapper_, error_cb); + } + break; default: NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_); return; @@ -827,6 +835,10 @@ case VideoCodec::kVP9: picture = new VaapiVP9Picture(std::move(reconstructed_surface)); break; + case VideoCodec::kAV1: + picture = new VaapiAV1Picture(/*display_va_surface=*/nullptr, + std::move(reconstructed_surface)); + break; default: return nullptr; }
diff --git a/media/renderers/paint_canvas_video_renderer.cc b/media/renderers/paint_canvas_video_renderer.cc index 9d0348691..78581e3 100644 --- a/media/renderers/paint_canvas_video_renderer.cc +++ b/media/renderers/paint_canvas_video_renderer.cc
@@ -925,8 +925,14 @@ raster_context_provider_->RasterInterface(); if (sk_image_) { GrGLTextureInfo texture_info; - if (!sk_image_->getBackendTexture(/*flushPendingGrContextIO=*/true) - .getGLTextureInfo(&texture_info)) { + GrBackendTexture texture; + if (!SkImages::GetBackendTextureFromImage( + sk_image_, &texture, + /*flushPendingGrContextIO=*/true)) { + DLOG(ERROR) << "Failed to get backend texture for VideoTextureBacking."; + return false; + } + if (!texture.getGLTextureInfo(&texture_info)) { DLOG(ERROR) << "Failed to getGLTextureInfo for VideoTextureBacking."; return false; } @@ -939,9 +945,14 @@ } void FlushPendingSkiaOps() override { - if (!raster_context_provider_ || !sk_image_) + if (!raster_context_provider_ || !sk_image_) { return; - sk_image_->flushAndSubmit(raster_context_provider_->GrContext()); + } + GrDirectContext* ctx = raster_context_provider_->GrContext(); + if (!ctx) { + return; + } + ctx->flushAndSubmit(sk_image_); } private:
diff --git a/net/base/network_config_watcher_mac.cc b/net/base/network_config_watcher_mac.cc index 3e3240b..312801d0 100644 --- a/net/base/network_config_watcher_mac.cc +++ b/net/base/network_config_watcher_mac.cc
@@ -27,85 +27,6 @@ const base::TimeDelta kRetryInterval = base::Seconds(1); const int kMaxRetry = 5; -// Maps SCError to an enum for UMA logging. These values are persisted to logs, -// and should not be renumbered. Added to investigate https://crbug.com/547877. -enum class SCStatusCode { - // Unmapped error codes. - SC_UNKNOWN = 0, - - // These map to the corresponding SCError. - SC_OK = 1, - SC_FAILED = 2, - SC_INVALID_ARGUMENT = 3, - SC_ACCESS_ERROR = 4, - SC_NO_KEY = 5, - SC_KEY_EXISTS = 6, - SC_LOCKED = 7, - SC_NEED_LOCK = 8, - SC_NO_STORE_SESSION = 9, - SC_NO_STORE_SERVER = 10, - SC_NOTIFIER_ACTIVE = 11, - SC_NO_PREFS_SESSION = 12, - SC_PREFS_BUSY = 13, - SC_NO_CONFIG_FILE = 14, - SC_NO_LINK = 15, - SC_STALE = 16, - SC_MAX_LINK = 17, - SC_REACHABILITY_UNKNOWN = 18, - SC_CONNECTION_NO_SERVICE = 19, - SC_CONNECTION_IGNORE = 20, - - // Maximum value for histogram bucket. - SC_COUNT, -}; - -SCStatusCode ConvertToSCStatusCode(int sc_error) { - switch (sc_error) { - case kSCStatusOK: - return SCStatusCode::SC_OK; - case kSCStatusFailed: - return SCStatusCode::SC_FAILED; - case kSCStatusInvalidArgument: - return SCStatusCode::SC_INVALID_ARGUMENT; - case kSCStatusAccessError: - return SCStatusCode::SC_ACCESS_ERROR; - case kSCStatusNoKey: - return SCStatusCode::SC_NO_KEY; - case kSCStatusKeyExists: - return SCStatusCode::SC_KEY_EXISTS; - case kSCStatusLocked: - return SCStatusCode::SC_LOCKED; - case kSCStatusNeedLock: - return SCStatusCode::SC_NEED_LOCK; - case kSCStatusNoStoreSession: - return SCStatusCode::SC_NO_STORE_SESSION; - case kSCStatusNoStoreServer: - return SCStatusCode::SC_NO_STORE_SERVER; - case kSCStatusNotifierActive: - return SCStatusCode::SC_NOTIFIER_ACTIVE; - case kSCStatusNoPrefsSession: - return SCStatusCode::SC_NO_PREFS_SESSION; - case kSCStatusPrefsBusy: - return SCStatusCode::SC_PREFS_BUSY; - case kSCStatusNoConfigFile: - return SCStatusCode::SC_NO_CONFIG_FILE; - case kSCStatusNoLink: - return SCStatusCode::SC_NO_LINK; - case kSCStatusStale: - return SCStatusCode::SC_STALE; - case kSCStatusMaxLink: - return SCStatusCode::SC_MAX_LINK; - case kSCStatusReachabilityUnknown: - return SCStatusCode::SC_REACHABILITY_UNKNOWN; - case kSCStatusConnectionNoService: - return SCStatusCode::SC_CONNECTION_NO_SERVICE; - case kSCStatusConnectionIgnore: - return SCStatusCode::SC_CONNECTION_IGNORE; - default: - return SCStatusCode::SC_UNKNOWN; - } -} - // Called back by OS. Calls OnNetworkConfigChange(). void DynamicStoreCallback(SCDynamicStoreRef /* store */, CFArrayRef changed_keys, @@ -198,16 +119,6 @@ return; } - // There are kMaxRetry + 2 buckets. The 0 bucket is where no retry is - // performed. The kMaxRetry + 1 bucket is where all retries have failed. - int histogram_bucket = num_retry_; - if (!success) { - DCHECK_EQ(kMaxRetry, num_retry_); - histogram_bucket = kMaxRetry + 1; - } - UMA_HISTOGRAM_EXACT_LINEAR( - "Net.NetworkConfigWatcherMac.SCDynamicStore.NumRetry", histogram_bucket, - kMaxRetry + 2); #else DCHECK(success); #endif // !BUILDFLAG(IS_IOS) @@ -230,9 +141,6 @@ int error = SCError(); LOG(ERROR) << "SCDynamicStoreCreate failed with Error: " << error << " - " << SCErrorString(error); - UMA_HISTOGRAM_ENUMERATION( - "Net.NetworkConfigWatcherMac.SCDynamicStore.Create", - ConvertToSCStatusCode(error), SCStatusCode::SC_COUNT); return false; } run_loop_source_.reset( @@ -241,9 +149,6 @@ int error = SCError(); LOG(ERROR) << "SCDynamicStoreCreateRunLoopSource failed with Error: " << error << " - " << SCErrorString(error); - UMA_HISTOGRAM_ENUMERATION( - "Net.NetworkConfigWatcherMac.SCDynamicStore.Create.RunLoopSource", - ConvertToSCStatusCode(error), SCStatusCode::SC_COUNT); return false; } CFRunLoopAddSource(CFRunLoopGetCurrent(), run_loop_source_.get(),
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc index 5cbf09a..d417d43 100644 --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc
@@ -491,6 +491,43 @@ return addresses; } +void RecordResolveTimeDiffForBucket(const char* histogram_variant, + const char* histogram_bucket, + base::TimeDelta diff) { + base::UmaHistogramTimes( + base::StrCat({"Net.Dns.ResolveTimeDiff.", histogram_variant, + ".FirstRecord", histogram_bucket}), + diff); +} + +void RecordResolveTimeDiff(const char* histogram_variant, + base::TimeTicks start_time, + base::TimeTicks first_record_end_time, + base::TimeTicks second_record_end_time) { + CHECK_LE(start_time, first_record_end_time); + CHECK_LE(first_record_end_time, second_record_end_time); + base::TimeDelta first_elapsed = first_record_end_time - start_time; + base::TimeDelta diff = second_record_end_time - first_record_end_time; + + if (first_elapsed < base::Milliseconds(10)) { + RecordResolveTimeDiffForBucket(histogram_variant, "FasterThan10ms", diff); + } else if (first_elapsed < base::Milliseconds(25)) { + RecordResolveTimeDiffForBucket(histogram_variant, "10msTo25ms", diff); + } else if (first_elapsed < base::Milliseconds(50)) { + RecordResolveTimeDiffForBucket(histogram_variant, "25msTo50ms", diff); + } else if (first_elapsed < base::Milliseconds(100)) { + RecordResolveTimeDiffForBucket(histogram_variant, "50msTo100ms", diff); + } else if (first_elapsed < base::Milliseconds(250)) { + RecordResolveTimeDiffForBucket(histogram_variant, "100msTo250ms", diff); + } else if (first_elapsed < base::Milliseconds(500)) { + RecordResolveTimeDiffForBucket(histogram_variant, "250msTo500ms", diff); + } else if (first_elapsed < base::Seconds(1)) { + RecordResolveTimeDiffForBucket(histogram_variant, "500msTo1s", diff); + } else { + RecordResolveTimeDiffForBucket(histogram_variant, "SlowerThan1s", diff); + } +} + } // namespace //----------------------------------------------------------------------------- @@ -1209,7 +1246,8 @@ TransactionInfo transaction_info = std::move( transactions_in_progress_.extract(transaction_info_it).value()); - base::TimeDelta elapsed_time = tick_clock_->NowTicks() - task_start_time_; + const base::TimeTicks now = tick_clock_->NowTicks(); + base::TimeDelta elapsed_time = now - task_start_time_; enum HttpssvcDnsRcode rcode_for_httpssvc = HttpssvcDnsRcode::kNoError; if (httpssvc_metrics_) { if (net_error == ERR_DNS_TIMED_OUT) { @@ -1311,6 +1349,34 @@ HideMetadataResultsIfNotDesired(results); + switch (transaction_info.type) { + case DnsQueryType::A: + a_record_end_time_ = now; + if (!aaaa_record_end_time_.is_null()) { + RecordResolveTimeDiff("AAAABeforeA", task_start_time_, + aaaa_record_end_time_, a_record_end_time_); + } + break; + case DnsQueryType::AAAA: + aaaa_record_end_time_ = now; + if (!a_record_end_time_.is_null()) { + RecordResolveTimeDiff("ABeforeAAAA", task_start_time_, + a_record_end_time_, aaaa_record_end_time_); + } + break; + case DnsQueryType::HTTPS: { + base::TimeTicks first_address_end_time = + std::min(a_record_end_time_, aaaa_record_end_time_); + if (!first_address_end_time.is_null()) { + RecordResolveTimeDiff("AddressRecordBeforeHTTPS", task_start_time_, + first_address_end_time, now); + } + break; + } + default: + break; + } + // Merge results with saved results from previous transactions. if (saved_results_) { // If saved result is a deferred failure, try again to complete with that @@ -1666,6 +1732,10 @@ // cancellation of the transaction. std::set<TransactionInfo> transactions_in_progress_; + // For histograms. + base::TimeTicks a_record_end_time_; + base::TimeTicks aaaa_record_end_time_; + absl::optional<HostCache::Entry> saved_results_; bool saved_results_is_failure_ = false;
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins index 1a1306e..5f3c3a3f 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-04-09 12:54 UTC +# Last updated: 2023-04-10 12:55 UTC PinsListTimestamp -1681044895 +1681131302 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/skia/BUILD.gn b/skia/BUILD.gn index 227f928..8d4d027 100644 --- a/skia/BUILD.gn +++ b/skia/BUILD.gn
@@ -45,6 +45,9 @@ "SK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\"", "SK_WIN_FONTMGR_NO_SIMULATIONS", "SK_DISABLE_LEGACY_IMAGE_FACTORIES", + "SK_DISABLE_LEGACY_MAKE_TEXTURE_IMAGE", + "SK_DISABLE_LEGACY_IMAGE_FLUSH", + "SK_DISABLE_LEGACY_GET_BACKEND_TEXTURE", ] include_dirs = [ "//third_party/skia" ]
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 13380a83..ecbed0f 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -464,26 +464,6 @@ ] } ], - "AndroidTabSelectionEditorV2": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "enable_bookmarks": "true", - "enable_longpress_entry": "true", - "enable_share": "true" - }, - "enable_features": [ - "TabSelectionEditorV2" - ] - } - ] - } - ], "AppCloseRefreshClankStudy": [ { "platforms": [ @@ -2601,7 +2581,7 @@ ], "experiments": [ { - "name": "EnabledGroup60_20230127", + "name": "EnabledGroup60_20230307", "params": { "BoostUrgent": "60" },
diff --git a/third_party/blink/renderer/core/OWNERS b/third_party/blink/renderer/core/OWNERS index fab98f32..801d3209 100644 --- a/third_party/blink/renderer/core/OWNERS +++ b/third_party/blink/renderer/core/OWNERS
@@ -57,7 +57,6 @@ pkasting@chromium.org rego@igalia.com rbuis@igalia.com -schenney@chromium.org senorblanco@chromium.org skobes@chromium.org svillar@igalia.com
diff --git a/third_party/blink/renderer/core/content_capture/OWNERS b/third_party/blink/renderer/core/content_capture/OWNERS index ef41f5b..ef0372c 100644 --- a/third_party/blink/renderer/core/content_capture/OWNERS +++ b/third_party/blink/renderer/core/content_capture/OWNERS
@@ -1,3 +1,2 @@ pdr@chromium.org -michaelbai@chromium.org wangxianzhu@chromium.org
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index b2c5219..a6a00a4 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -9113,16 +9113,7 @@ // https://wicg.github.io/nav-speculation/prerendering.html#prerendering-browsing-context-activate // Step 8.3.4 "Fire an event named prerenderingchange at doc." - if (RuntimeEnabledFeatures::Prerender2RelatedFeaturesEnabled( - GetExecutionContext())) { - DispatchEvent(*Event::Create(event_type_names::kPrerenderingchange)); - } else { - AddConsoleMessage(MakeGarbageCollected<ConsoleMessage>( - mojom::blink::ConsoleMessageSource::kJavaScript, - mojom::blink::ConsoleMessageLevel::kWarning, - "Failed to dispatch 'prerenderingchange' event: Prerender2 feature is " - "not enabled on the document.")); - } + DispatchEvent(*Event::Create(event_type_names::kPrerenderingchange)); // Step 8.3.5 "For each steps in doc’s post-prerendering activation steps // list:"
diff --git a/third_party/blink/renderer/core/dom/document.idl b/third_party/blink/renderer/core/dom/document.idl index 5bcd619..c01a0bd 100644 --- a/third_party/blink/renderer/core/dom/document.idl +++ b/third_party/blink/renderer/core/dom/document.idl
@@ -172,7 +172,7 @@ readonly attribute boolean wasDiscarded; // https://wicg.github.io/nav-speculation/prerendering.html#dom-document-prerendering - [RuntimeEnabled=Prerender2RelatedFeatures, Measure] readonly attribute boolean prerendering; + [Measure] readonly attribute boolean prerendering; // Non-exposed API, used to evaluate and test soft navigation heuristics [RuntimeEnabled=SoftNavigationHeuristics] readonly attribute unsigned long softNavigations; @@ -212,7 +212,7 @@ attribute EventHandler onbeforecut; attribute EventHandler onbeforepaste; attribute EventHandler onfreeze; - [RuntimeEnabled=Prerender2RelatedFeatures, Measure] attribute EventHandler onprerenderingchange; + [Measure] attribute EventHandler onprerenderingchange; attribute EventHandler onresume; attribute EventHandler onsearch; attribute EventHandler onvisibilitychange;
diff --git a/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.cc b/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.cc index 59a1654..e985360 100644 --- a/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.cc +++ b/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.cc
@@ -415,7 +415,26 @@ void HTMLFencedFrameElement::ParseAttribute( const AttributeModificationParams& params) { - if (params.name == html_names::kSandboxAttr) { + if (params.name == html_names::kSrcAttr) { + if (RuntimeEnabledFeatures::FencedFramesAPIChangesEnabled( + GetExecutionContext())) { + // Temporarily allow `src` to be set in a fenced frame if API changes is + // disabled. This functionality will be removed by fenced frames launch. + return; + } + if (config_) { + DCHECK(config_->url()); + GetDocument().AddConsoleMessage(MakeGarbageCollected<ConsoleMessage>( + mojom::blink::ConsoleMessageSource::kJavaScript, + mojom::blink::ConsoleMessageLevel::kWarning, + "Changing the `src` attribute on a fenced frame has no effect after " + "it has already been installed a config with a specified url.")); + return; + } + + KURL url = GetNonEmptyURLAttribute(html_names::kSrcAttr); + Navigate(url); + } else if (params.name == html_names::kSandboxAttr) { sandbox_->DidUpdateAttributeValue(params.old_value, params.new_value); network::mojom::blink::WebSandboxFlags current_flags = @@ -454,6 +473,10 @@ } } +bool HTMLFencedFrameElement::IsURLAttribute(const Attribute& attribute) const { + return attribute.GetName() == html_names::kSrcAttr; +} + bool HTMLFencedFrameElement::IsPresentationAttribute( const QualifiedName& name) const { if (name == html_names::kWidthAttr || name == html_names::kHeightAttr) @@ -643,6 +666,9 @@ if (config_) { NavigateToConfig(); + } else if (!RuntimeEnabledFeatures::FencedFramesAPIChangesEnabled( + GetExecutionContext())) { + Navigate(GetNonEmptyURLAttribute(html_names::kSrcAttr)); } }
diff --git a/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.h b/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.h index 202cfc6..4ae0771 100644 --- a/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.h +++ b/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.h
@@ -144,6 +144,7 @@ // Element overrides. void ParseAttribute(const AttributeModificationParams&) override; + bool IsURLAttribute(const Attribute&) const override; bool IsPresentationAttribute(const QualifiedName&) const override; void CollectStyleForPresentationAttribute( const QualifiedName&,
diff --git a/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl b/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl index a931f4a..9b493b4 100644 --- a/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl +++ b/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl
@@ -6,6 +6,7 @@ [Exposed=Window, HTMLConstructor, RuntimeEnabled=FencedFrames] interface HTMLFencedFrameElement : HTMLElement { + [CEReactions, Reflect, URL] attribute USVString src; [CEReactions, RuntimeEnabled=FencedFramesAPIChanges, MeasureAs=FencedFrameConfigAttribute] attribute FencedFrameConfig? config; [CEReactions, Reflect] attribute DOMString width; [CEReactions, Reflect] attribute DOMString height;
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc index 51649258..c7eb569 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
@@ -480,11 +480,13 @@ ++start_offset; } - wtf_size_t end_offset = text.find(kNewlineCharacter, offset_); - base_direction_ = NGBidiParagraph::BaseDirectionForString( - end_offset == kNotFound - ? StringView(text, start_offset) - : StringView(text, start_offset, end_offset - start_offset)); + base_direction_ = + NGBidiParagraph::BaseDirectionForString(StringView(text, start_offset)) + // `plaintext` uses P2 and P3 of UAX#9: + // https://w3c.github.io/csswg-drafts/css-writing-modes-3/#valdef-unicode-bidi-plaintext + // which sets to LTR if no strong characters. + // https://unicode.org/reports/tr9/#P3 + .value_or(TextDirection::kLtr); } void NGLineBreaker::RecalcClonedBoxDecorations() {
diff --git a/third_party/blink/renderer/core/streams/readable_byte_stream_controller.cc b/third_party/blink/renderer/core/streams/readable_byte_stream_controller.cc index 23faaab8..7f76ebb0 100644 --- a/third_party/blink/renderer/core/streams/readable_byte_stream_controller.cc +++ b/third_party/blink/renderer/core/streams/readable_byte_stream_controller.cc
@@ -1314,7 +1314,7 @@ controller->controlled_readable_stream_->state_; // 4. If state is "closed", if (state == ReadableStream::kClosed) { - // a. If bytesWtitten is not 0, throw a TypeError exception. + // a. If bytesWritten is not 0, throw a TypeError exception. if (bytes_written != 0) { exception_state.ThrowTypeError("bytes written is not 0"); return;
diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc index 60dd16c..98516f7 100644 --- a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc +++ b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc
@@ -329,12 +329,9 @@ builder.AddString("type", type()); builder.AddNumber("redirectCount", redirectCount()); - if (RuntimeEnabledFeatures::Prerender2RelatedFeaturesEnabled( - ExecutionContext::From(builder.GetScriptState()))) { - builder.AddNumber( - "activationStart", - PerformanceNavigationTimingActivationStart::activationStart(*this)); - } + builder.AddNumber( + "activationStart", + PerformanceNavigationTimingActivationStart::activationStart(*this)); if (RuntimeEnabledFeatures::BackForwardCacheNotRestoredReasonsEnabled( ExecutionContext::From(builder.GetScriptState()))) {
diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timing_activation_start.idl b/third_party/blink/renderer/core/timing/performance_navigation_timing_activation_start.idl index 47bf8dd..2796b08 100644 --- a/third_party/blink/renderer/core/timing/performance_navigation_timing_activation_start.idl +++ b/third_party/blink/renderer/core/timing/performance_navigation_timing_activation_start.idl
@@ -4,8 +4,7 @@ // https://wicg.github.io/nav-speculation/prerendering.html#performance-navigation-timing-extension [ - ImplementedAs=PerformanceNavigationTimingActivationStart, - RuntimeEnabled=Prerender2RelatedFeatures + ImplementedAs=PerformanceNavigationTimingActivationStart ] partial interface PerformanceNavigationTiming { readonly attribute DOMHighResTimeStamp activationStart; }; \ No newline at end of file
diff --git a/third_party/blink/renderer/platform/fonts/font.cc b/third_party/blink/renderer/platform/fonts/font.cc index 5d24b0d..6db2a27 100644 --- a/third_party/blink/renderer/platform/fonts/font.cc +++ b/third_party/blink/renderer/platform/fonts/font.cc
@@ -37,7 +37,7 @@ #include "third_party/blink/renderer/platform/fonts/simple_font_data.h" #include "third_party/blink/renderer/platform/fonts/text_run_paint_info.h" #include "third_party/blink/renderer/platform/geometry/layout_unit.h" -#include "third_party/blink/renderer/platform/text/bidi_resolver.h" +#include "third_party/blink/renderer/platform/text/bidi_paragraph.h" #include "third_party/blink/renderer/platform/text/character.h" #include "third_party/blink/renderer/platform/text/text_run.h" #include "third_party/blink/renderer/platform/text/text_run_iterator.h" @@ -275,30 +275,41 @@ const TextRun& run = run_info.run; DCHECK_EQ(run_info.from, 0u); DCHECK_EQ(run_info.to, run.length()); - BidiResolver<TextRunIterator, BidiCharacterRun> bidi_resolver; - bidi_resolver.SetStatus( - BidiStatus(run.Direction(), run.DirectionalOverride())); - bidi_resolver.SetPositionIgnoringNestedIsolates(TextRunIterator(&run, 0)); - - // FIXME: This ownership should be reversed. We should pass BidiRunList - // to BidiResolver in createBidiRunsForLine. - BidiRunList<BidiCharacterRun>& bidi_runs = bidi_resolver.Runs(); - bidi_resolver.CreateBidiRunsForLine(TextRunIterator(&run, run.length())); - if (!bidi_runs.RunCount()) + if (!run.length()) { return true; + } + + if (UNLIKELY(run.DirectionalOverride())) { + // If directional override, create a new string with Unicode directional + // override characters. + const String text_with_override = + BidiParagraph::StringWithDirectionalOverride(run.ToStringView(), + run.Direction()); + TextRun run_with_override = run_info.run; + run_with_override.SetText(text_with_override); + run_with_override.SetCharactersLength(text_with_override.length()); + run_with_override.SetDirectionalOverride(false); + return DrawBidiText(canvas, TextRunPaintInfo(run_with_override), point, + custom_font_not_ready_action, flags, draw_type); + } + + BidiParagraph::Runs bidi_runs; + if (run.Is8Bit() && IsLtr(run.Direction())) { + // U+0000-00FF are L or neutral, it's unidirectional if 8 bits and LTR. + bidi_runs.emplace_back(0, run.length(), 0); + } else { + String text = run.ToStringView().ToString(); + text.Ensure16Bit(); + BidiParagraph bidi(text, run.Direction()); + bidi.GetVisualRuns(text, &bidi_runs); + } gfx::PointF curr_point = point; - BidiCharacterRun* bidi_run = bidi_runs.FirstRun(); CachingWordShaper word_shaper(*this); - while (bidi_run) { - TextRun subrun = - run.SubRun(bidi_run->Start(), bidi_run->Stop() - bidi_run->Start()); - bool is_rtl = bidi_run->Level() % 2; - subrun.SetDirection(is_rtl ? TextDirection::kRtl : TextDirection::kLtr); - subrun.SetDirectionalOverride(bidi_run->DirOverride(false)); - + for (const BidiParagraph::Run& bidi_run : bidi_runs) { + TextRun subrun = run.SubRun(bidi_run.start, bidi_run.Length()); + subrun.SetDirection(bidi_run.Direction()); TextRunPaintInfo subrun_info(subrun); - ShapeResultBuffer buffer; word_shaper.FillResultBuffer(subrun_info, &buffer); @@ -311,11 +322,8 @@ : ShapeResultBloberizer::Type::kEmitText); DrawBlobs(canvas, flags, bloberizer.Blobs(), curr_point); - bidi_run = bidi_run->Next(); curr_point.Offset(bloberizer.Advance(), 0); } - - bidi_runs.DeleteRuns(); return true; }
diff --git a/third_party/blink/renderer/platform/graphics/mailbox_texture_backing.cc b/third_party/blink/renderer/platform/graphics/mailbox_texture_backing.cc index f8c5177e..8106822c 100644 --- a/third_party/blink/renderer/platform/graphics/mailbox_texture_backing.cc +++ b/third_party/blink/renderer/platform/graphics/mailbox_texture_backing.cc
@@ -9,6 +9,7 @@ #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h" #include "third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_wrapper.h" #include "third_party/skia/include/core/SkImage.h" +#include "third_party/skia/include/gpu/GrDirectContext.h" namespace blink { @@ -110,10 +111,15 @@ void MailboxTextureBacking::FlushPendingSkiaOps() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - if (!context_provider_wrapper_ || !sk_image_) + if (!context_provider_wrapper_ || !sk_image_) { return; - sk_image_->flushAndSubmit( - context_provider_wrapper_->ContextProvider()->GetGrContext()); + } + GrDirectContext* ctx = + context_provider_wrapper_->ContextProvider()->GetGrContext(); + if (!ctx) { + return; + } + ctx->flushAndSubmit(sk_image_); } } // namespace blink
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index dc8b975c..01ace06 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2673,19 +2673,6 @@ name: "Prerender2", status: "stable", }, - // This RTE feature is used to indicate the status of RTE feature Prerender2 - // and an embedder feature flag that enables the Prerender2. With this flag - // on, the related functions document.prerendering, - // document.onprerenderingchange, and activationStart will be exported. - { - name: "Prerender2RelatedFeatures", - implied_by: ["Prerender2"], - base_feature: "none", - // This is not going into origin trial, "origin_trial_feature_name" is - // required for using the "implied_by" behaviour. - origin_trial_feature_name: "Prerender2RelatedFeatures__DONOTUSE", - public: true, - }, { name: "Presentation", public: true,
diff --git a/third_party/blink/renderer/platform/text/bidi_paragraph.cc b/third_party/blink/renderer/platform/text/bidi_paragraph.cc index b0ec65e..9f48fee 100644 --- a/third_party/blink/renderer/platform/text/bidi_paragraph.cc +++ b/third_party/blink/renderer/platform/text/bidi_paragraph.cc
@@ -5,12 +5,15 @@ #include "third_party/blink/renderer/platform/text//bidi_paragraph.h" #include "third_party/blink/renderer/platform/text/icu_error.h" +#include "third_party/blink/renderer/platform/wtf/text/character_names.h" +#include "third_party/blink/renderer/platform/wtf/text/string_builder.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { bool BidiParagraph::SetParagraph(const String& text, absl::optional<TextDirection> base_direction) { + DCHECK(!text.IsNull()); DCHECK(!ubidi_); ubidi_ = UBidiPtr(ubidi_open()); @@ -38,14 +41,65 @@ return true; } -TextDirection BidiParagraph::BaseDirectionForString(const StringView& text) { - DCHECK(!text.Is8Bit()); - if (text.Is8Bit()) { - return TextDirection::kLtr; +// static +template <> +absl::optional<TextDirection> BidiParagraph::BaseDirectionForString( + base::span<const LChar> text) { + for (const LChar ch : text) { + if (u_charDirection(ch) == U_LEFT_TO_RIGHT) { + return TextDirection::kLtr; + } + + if (ch == kNewlineCharacter) { + break; + } } - UBiDiDirection direction = - ubidi_getBaseDirection(text.Characters16(), text.length()); - return direction == UBIDI_RTL ? TextDirection::kRtl : TextDirection::kLtr; + return absl::nullopt; +} + +// static +template <> +absl::optional<TextDirection> BidiParagraph::BaseDirectionForString( + base::span<const UChar> text) { + const UChar* data = text.data(); + const size_t len = text.size(); + for (size_t i = 0; i < len;) { + UChar32 ch; + U16_NEXT(data, i, len, ch); + switch (u_charDirection(ch)) { + case U_LEFT_TO_RIGHT: + return TextDirection::kLtr; + case U_RIGHT_TO_LEFT: + case U_RIGHT_TO_LEFT_ARABIC: + return TextDirection::kRtl; + default: + break; + } + + if (ch == kNewlineCharacter) { + break; + } + } + return absl::nullopt; +} + +// static +absl::optional<TextDirection> BidiParagraph::BaseDirectionForString( + const StringView& text) { + return text.Is8Bit() ? BaseDirectionForString(text.Span8()) + : BaseDirectionForString(text.Span16()); +} + +// static +String BidiParagraph::StringWithDirectionalOverride(const StringView& text, + TextDirection direction) { + StringBuilder builder; + builder.Reserve16BitCapacity(text.length() + 2); + builder.Append(IsLtr(direction) ? kLeftToRightOverrideCharacter + : kRightToLeftOverrideCharacter); + builder.Append(text); + builder.Append(kPopDirectionalFormattingCharacter); + return builder.ToString(); } unsigned BidiParagraph::GetLogicalRun(unsigned start, UBiDiLevel* level) const { @@ -65,6 +119,26 @@ } } +void BidiParagraph::GetVisualRuns(const String& text, Runs* runs) const { + DCHECK(runs->empty()); + + Runs logical_runs; + GetLogicalRuns(text, &logical_runs); + + Vector<UBiDiLevel, 32> levels; + levels.ReserveInitialCapacity(logical_runs.size()); + for (const Run& run : logical_runs) { + levels.push_back(run.level); + } + Vector<int32_t, 32> indices_in_visual_order(logical_runs.size()); + IndicesInVisualOrder(levels, &indices_in_visual_order); + + for (int32_t index : indices_in_visual_order) { + runs->push_back(logical_runs[index]); + } +} + +// static void BidiParagraph::IndicesInVisualOrder( const Vector<UBiDiLevel, 32>& levels, Vector<int32_t, 32>* indices_in_visual_order_out) {
diff --git a/third_party/blink/renderer/platform/text/bidi_paragraph.h b/third_party/blink/renderer/platform/text/bidi_paragraph.h index cd265bf..afe1441 100644 --- a/third_party/blink/renderer/platform/text/bidi_paragraph.h +++ b/third_party/blink/renderer/platform/text/bidi_paragraph.h
@@ -8,6 +8,7 @@ #include <unicode/ubidi.h> #include "base/check_op.h" +#include "base/containers/span.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/platform/text/text_direction.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" @@ -27,6 +28,12 @@ STACK_ALLOCATED(); public: + BidiParagraph() = default; + BidiParagraph(const String& text, + absl::optional<TextDirection> base_direction) { + SetParagraph(text, base_direction); + } + // Splits the given paragraph to bidi runs and resolves the bidi embedding // level of each run. // @@ -46,10 +53,19 @@ TextDirection BaseDirection() const { return base_direction_; } // Compute the base direction for a given string using the heuristic - // rules defined in UAX#9. - // This is generally determined by the first strong character. + // rules defined in UAX#9. It determines the direction by the first strong + // character, or returns `nullopt` if no strong characters are found before + // the first segment break. // http://unicode.org/reports/tr9/#The_Paragraph_Level - static TextDirection BaseDirectionForString(const StringView&); + static absl::optional<TextDirection> BaseDirectionForString( + const StringView&); + + // Create a string that enforces directional override by wrapping the given + // string with a Unicode BiDi override character (LRO or ROL) and PDF. + // https://unicode.org/reports/tr9/#Explicit_Directional_Overrides + // https://unicode.org/reports/tr9/#Terminating_Explicit_Directional_Embeddings_and_Overrides + static String StringWithDirectionalOverride(const StringView& text, + TextDirection direction); struct Run { Run(unsigned start, unsigned end, UBiDiLevel level) @@ -70,15 +86,20 @@ }; using Runs = Vector<Run, 32>; - // Get a list of |Run| in the logical order (before bidi reorder.) - // |text| must be the same one as |SetParagraph|. - // This is higher-level API for |GetLogicalRun|. + // Get a list of `Run` in the logical order (before bidi reorder.) + // `text` must be the same one as `SetParagraph`. + // This is higher-level API for `GetLogicalRun`. void GetLogicalRuns(const String& text, Runs* runs) const; // Returns the end offset of a logical run that starts from the |start| // offset. unsigned GetLogicalRun(unsigned start, UBiDiLevel*) const; + // Get a list of `Run` in the visual order (after bidi reorder.) + // `text` must be the same one as `SetParagraph`. + // This is higher-level API for `GetLogicalRuns` and `IndicesInVisualOrder`. + void GetVisualRuns(const String& text, Runs* runs) const; + // Create a list of indices in the visual order. // A wrapper for ICU |ubidi_reorderVisual()|. static void IndicesInVisualOrder( @@ -86,6 +107,10 @@ Vector<int32_t, 32>* indices_in_visual_order_out); private: + template <typename TChar> + static absl::optional<TextDirection> BaseDirectionForString( + base::span<const TChar>); + struct UBiDiDeleter { void operator()(UBiDi* ubidi) const { ubidi_close(ubidi); } };
diff --git a/third_party/blink/renderer/platform/text/bidi_paragraph_test.cc b/third_party/blink/renderer/platform/text/bidi_paragraph_test.cc index b5178a84..6be4f73 100644 --- a/third_party/blink/renderer/platform/text/bidi_paragraph_test.cc +++ b/third_party/blink/renderer/platform/text/bidi_paragraph_test.cc
@@ -37,4 +37,44 @@ BidiParagraph::Run(7, 11, 1))); } +static struct BaseDirectionData { + const UChar* text; + absl::optional<TextDirection> direction; +} base_direction_data[] = { + {u"A", TextDirection::kLtr}, + {u"\u05D0", TextDirection::kRtl}, + // "!" is a neutral character in the ASCII range. + {u"!", absl::nullopt}, + // Surrogate pair, Avestan is RTL. crbug.com/488904. + {u"\U00010B15", TextDirection::kRtl}, + // Surrogate pair, Emoji is neutral. crbug.com/559932. + {u"\U0001F62D", absl::nullopt}, + // Leading neutral characters should be ignored. + {u"!A", TextDirection::kLtr}, + {u"!A\u05D0", TextDirection::kLtr}, + {u"!\u05D0Z", TextDirection::kRtl}, + // Strong characters after a segment break should be ignored. + {u"!\nA", absl::nullopt}, + {u"!\nA\u05D0", absl::nullopt}, + {u"!\n\u05D0Z", absl::nullopt}}; +class BaseDirectionTest : public testing::TestWithParam<BaseDirectionData> {}; +INSTANTIATE_TEST_SUITE_P(BidiParagraph, + BaseDirectionTest, + testing::ValuesIn(base_direction_data)); + +TEST_P(BaseDirectionTest, Data) { + const BaseDirectionData& test = GetParam(); + String text(test.text); + EXPECT_EQ(BidiParagraph::BaseDirectionForString(text), test.direction) + << text; + + // Test the 8 bits code path if all characters are 8 bits. + if (text.IsAllSpecialCharacters<[](UChar ch) { return ch <= 0x00FF; }>()) { + String text8 = + String::Make8BitFrom16BitSource(text.Characters16(), text.length()); + EXPECT_EQ(BidiParagraph::BaseDirectionForString(text8), test.direction) + << text; + } +} + } // namespace blink
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index b265487c..24e0840 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -5575,9 +5575,6 @@ crbug.com/1295980 virtual/fenced-frame-mparch/wpt_internal/fenced_frame/user-activation.https.html [ Failure Pass Timeout ] crbug.com/1298633 http/tests/inspector-protocol/network/cross-origin-isolation/coep-load-error-reporting-worker.js [ Pass Timeout ] -# Sheriff 2022-03-18 -crbug.com/1290040 external/wpt/service-workers/service-worker/same-site-cookies.https.html [ Crash Failure Pass Timeout ] - # WebAudio flaky timeout (crbug.com/1307741) crbug.com/1307741 [ Mac ] external/wpt/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html [ Timeout ] crbug.com/1307741 webaudio/AudioParam/audioparam-k-rate.html [ Timeout ]
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/prefetch.https.html b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/prefetch.https.html new file mode 100644 index 0000000..48de5ad --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/prefetch.https.html
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<meta name="timeout" content="long"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/dispatcher/dispatcher.js"></script> +<script src="/speculation-rules/prerender/resources/utils.js"></script> +<body> +<script> +setup(() => assertSpeculationRulesIsSupported()); + +promise_test(async t => { + const {tryToActivate, getNetworkRequestCount} = + await create_prerendered_page(t, {}, {prefetch: true}, {}); + + assert_equals(await tryToActivate(), 'activated'); + assert_equals(await getNetworkRequestCount(), '2', 'Network request count'); +}, "Prerender navigation requests don't use prefetched results (for now)"); +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/exec.py b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/exec.py index 835a3f0..de06361 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/exec.py +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/exec.py
@@ -8,6 +8,19 @@ else: code = 200 + if b"uuid" in request.GET: + path = '/speculation-rules/prerender/resources/exec.py' + uuid = request.GET.first(b"uuid") + with request.server.stash.lock: + count = request.server.stash.take(uuid, path) or 0 + if b"get-fetch-count" in request.GET: + response.status = 200 + response.content = '%d' % count + request.server.stash.put(uuid, count, path) + return + count += 1 + request.server.stash.put(uuid, count, path) + with open(os.path.join(os.path.dirname(isomorphic_decode(__file__)), "exec.html"), u"r") as fn: response.content = fn.read() response.status = code
diff --git a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/utils.js b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/utils.js index f3a49f1..99c26137 100644 --- a/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/utils.js +++ b/third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/utils.js
@@ -192,7 +192,8 @@ // `opt` provides additional query params for the prerendered URL. // `init_opt` provides additional query params for the page that triggers -// the prerender. +// the prerender. If `init_opt.prefetch` is set to true, prefetch is also +// triggered before the prerendering. // `rule_extras` provides additional parameters for the speculation rule used // to trigger prerendering. async function create_prerendered_page(t, opt = {}, init_opt = {}, rule_extras = {}) { @@ -217,6 +218,23 @@ params.set(p, opt[p]); const url = `${baseUrl}?${params.toString()}`; + if (init_opt.prefetch) { + await init_remote.execute_script((url, rule_extras) => { + const a = document.createElement('a'); + a.href = url; + a.innerText = 'Activate (prefetch)'; + document.body.appendChild(a); + const rules = document.createElement('script'); + rules.type = "speculationrules"; + rules.text = JSON.stringify( + {prefetch: [{source: 'list', urls: [url], ...rule_extras}]}); + document.head.appendChild(rules); + }, [url, rule_extras]); + + // Wait for the completion of the prefetch. + await new Promise(resolve => t.step_timeout(resolve, 3000)); + } + await init_remote.execute_script((url, rule_extras) => { const a = document.createElement('a'); a.href = url; @@ -266,10 +284,16 @@ throw new Error('Should not be prerendering at this point') } + // Get the number of network requests for the prerendered page URL. + async function getNetworkRequestCount() { + return await (await fetch(url + '&get-fetch-count')).text(); + } + return { exec: (fn, args) => prerender_remote.execute_script(fn, args), activate, - tryToActivate + tryToActivate, + getNetworkRequestCount }; }
diff --git a/third_party/blink/web_tests/fast/canvas/bidi-multi-run-expected.html b/third_party/blink/web_tests/fast/canvas/bidi-multi-run-expected.html index 899085c..e5b4614 100644 --- a/third_party/blink/web_tests/fast/canvas/bidi-multi-run-expected.html +++ b/third_party/blink/web_tests/fast/canvas/bidi-multi-run-expected.html
@@ -8,8 +8,8 @@ ctx.font = '15px Arial'; ctx.fillText('foobar', 10, 20); - ctx.fillText('foorab', 10, 40); - ctx.fillText('oofbar', 10, 60); + ctx.fillText('rabfoo', 10, 40); + ctx.fillText('baroof', 10, 60); ctx.fillText('raboof', 10, 80); </script>
diff --git a/third_party/blink/web_tests/fast/canvas/bidi-override-expected.html b/third_party/blink/web_tests/fast/canvas/bidi-override-expected.html new file mode 100644 index 0000000..480d84e --- /dev/null +++ b/third_party/blink/web_tests/fast/canvas/bidi-override-expected.html
@@ -0,0 +1,14 @@ +<!DOCTYPE html> +<style> +canvas { + direction: rtl; + border: 1px solid; +} +</style> +<canvas id="canvas" width="500" height="300"></canvas> +<script> +const canvas = document.getElementById('canvas'); +const ctx = canvas.getContext('2d'); +ctx.font = '48px serif'; +ctx.fillText('rab oof', 250, 50); +</script>
diff --git a/third_party/blink/web_tests/fast/canvas/bidi-override.html b/third_party/blink/web_tests/fast/canvas/bidi-override.html new file mode 100644 index 0000000..cb033b9 --- /dev/null +++ b/third_party/blink/web_tests/fast/canvas/bidi-override.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<style> +canvas { + unicode-bidi: bidi-override; + direction: rtl; + border: 1px solid; +} +</style> +<canvas id="canvas" width="500" height="300"></canvas> +<script> +const canvas = document.getElementById('canvas'); +const ctx = canvas.getContext('2d'); +ctx.font = '48px serif'; +ctx.fillText('foo bar', 250, 50); +</script>
diff --git a/third_party/blink/web_tests/webaudio/internals/audioworkletnode-gc.https.html b/third_party/blink/web_tests/webaudio/internals/audioworkletnode-gc.https.html index 0682250..127d03de 100644 --- a/third_party/blink/web_tests/webaudio/internals/audioworkletnode-gc.https.html +++ b/third_party/blink/web_tests/webaudio/internals/audioworkletnode-gc.https.html
@@ -12,8 +12,10 @@ // it immediately. Then manually trigger GC and check the number of // living WebAudio objects. See: https://crbug.com/1298955 promise_test(async () => { - // Check the pre-condition first. - assert_equals(internals.audioHandlerCount(), 0); + // Just to make sure there's no residues from other internal tests. + await asyncGC(); + assert_equals(internals.audioHandlerCount(), 0, + 'the initial handler count should be zero.'); const context = new AudioContext(); const filePath = 'worklet-processors/falsy-processor.js'; @@ -39,7 +41,8 @@ // will be deleted a bit later. await context.close(); - assert_equals(internals.audioHandlerCount(), 1); + assert_equals(internals.audioHandlerCount(), 1, + 'the handler count after GC should be 1.'); resolve(); }; @@ -47,9 +50,11 @@ workletNode.connect(context.destination); // Two handlers: the destination node and a woklet node. - assert_equals(internals.audioHandlerCount(), 2); + assert_equals( + internals.audioHandlerCount(), 2, + 'the handler count should be 2 (destination and worklet)'); }); }, 'Test GC of AudioWorkletNode'); </script> </body> -</html> +</html> \ No newline at end of file
diff --git a/tools/cast3p/cast_core.version b/tools/cast3p/cast_core.version index 8d26dea4..8b9b028 100644 --- a/tools/cast3p/cast_core.version +++ b/tools/cast3p/cast_core.version
@@ -1 +1 @@ -cast_20230321_1054_RC04 +cast_20230306_0602_RC07
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 4d8ddc1f..a899d66 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -60209,6 +60209,7 @@ <int value="-964676765" label="enable-accelerated-mjpeg-decode"/> <int value="-964620377" label="CSSOMViewScrollCoordinates:enabled"/> <int value="-963683462" label="EnablePalmSuppression:enabled"/> + <int value="-962233051" label="PasspointSettings:enabled"/> <int value="-962030536" label="ChromeDuetLabeled:enabled"/> <int value="-961427615" label="WebviewTagMPArchBehavior:enabled"/> <int value="-960851702" label="EcheSWADisableStunServer:disabled"/> @@ -61292,6 +61293,7 @@ <int value="-354783358" label="NTPSaveToOffline:disabled"/> <int value="-353182790" label="ConsistentOmniboxGeolocation:disabled"/> <int value="-353180213" label="DevicePosture:disabled"/> + <int value="-352731236" label="DIPS:enabled"/> <int value="-351830087" label="AssistantConsentSimplifiedText:enabled"/> <int value="-351744276" label="ExperimentalAccessibilityDictationContextChecking:enabled"/> @@ -62977,6 +62979,7 @@ <int value="564522013" label="Av1Decoder:disabled"/> <int value="565254510" label="LensRegionSearchStaticPage:disabled"/> <int value="565406673" label="EnableVirtualKeyboardMdUi:enabled"/> + <int value="566031886" label="DIPS:disabled"/> <int value="567368307" label="enable-experimental-canvas-features"/> <int value="570469494" label="LoginDetection:disabled"/> <int value="570882482" label="CrOSDspBasedAecAllowed:enabled"/> @@ -65756,6 +65759,7 @@ <int value="2085186092" label="BulkPrinters:disabled"/> <int value="2085438501" label="ChromeHome:enabled"/> <int value="2087069781" label="ui-debug-tools:enabled"/> + <int value="2087994185" label="PasspointSettings:disabled"/> <int value="2088061188" label="LibinputHandleTouchpad:enabled"/> <int value="2088446947" label="enable-ephemeral-guest-profiles-on-desktop"/> <int value="2089897928" label="enable-audio-focus"/> @@ -92221,30 +92225,6 @@ <int value="1" label="Scroll on main-thread"/> </enum> -<enum name="SCStatusCode"> - <int value="0" label="Unknown"/> - <int value="1" label="OK"/> - <int value="2" label="Failed"/> - <int value="3" label="Invalid argument"/> - <int value="4" label="Access error"/> - <int value="5" label="No key"/> - <int value="6" label="Key exists"/> - <int value="7" label="Locked"/> - <int value="8" label="Need lock"/> - <int value="9" label="No store session"/> - <int value="10" label="No store server"/> - <int value="11" label="Notifier active"/> - <int value="12" label="No prefs session"/> - <int value="13" label="Prefs busy"/> - <int value="14" label="No config file"/> - <int value="15" label="No link"/> - <int value="16" label="Stale"/> - <int value="17" label="Max link"/> - <int value="18" label="Reachability unknown"/> - <int value="19" label="No service"/> - <int value="20" label="Ignore"/> -</enum> - <enum name="SCTAuditingReportCompletionStatus"> <int value="0" label="kSuccessFirstTry">Succeeded on first try</int> <int value="1" label="kSuccessAfterRetries">Succeeded after retrying</int>
diff --git a/tools/metrics/histograms/metadata/net/histograms.xml b/tools/metrics/histograms/metadata/net/histograms.xml index 76ee50f..521460b 100644 --- a/tools/metrics/histograms/metadata/net/histograms.xml +++ b/tools/metrics/histograms/metadata/net/histograms.xml
@@ -27,6 +27,23 @@ <variant name="Secure" summary="DoH is enabled"/> </variants> +<variants name="DnsResolveTimeDiffBucket"> + <variant name="FirstRecord10msTo25ms" + summary="between 10ms (inclusive) and 25ms (exclusive)"/> + <variant name="FirstRecord25msTo50ms" + summary="between 25ms (inclusive) and 50ms (exclusive)"/> + <variant name="FirstRecord50msTo100ms" + summary="between 50ms (inclusive) and 100ms (exclusive)"/> + <variant name="FirstRecord100msTo250ms" + summary="between 100ms (inclusive) and 250ms (exclusive)"/> + <variant name="FirstRecord250msTo500ms" + summary="between 250ms (inclusive) and 500ms (exclusive)"/> + <variant name="FirstRecord500msTo1s" + summary="between 500ms (inclusive) and 1s (exclusive)"/> + <variant name="FirstRecordFasterThan10ms" summary="less than 10ms"/> + <variant name="FirstRecordSlowerThan1s" summary="more than or equal to 1s"/> +</variants> + <variants name="URLLoaderThrottleStages"> <variant name="BeforeWillProcessResponse"/> <variant name="WillOnCompleteWithError"/> @@ -1508,6 +1525,33 @@ </summary> </histogram> +<histogram name="Net.DNS.ResolveTimeDiff.AddressRecordBeforeHTTPS.{Bucket}" + units="ms" expires_after="2023-10-06"> + <owner>bashi@chromium.org</owner> + <owner>chrome-network-stack@google.com</owner> + <summary> + Time difference between the first address record (A or AAAA) and HTTPS + record were resolved. Recorded when an address record was resolved before + HTTPS record and the address record was resolved {Bucket}. + </summary> + <token key="Bucket" variants="DnsResolveTimeDiffBucket"/> +</histogram> + +<histogram name="Net.DNS.ResolveTimeDiff.{Variant}.{Bucket}" units="ms" + expires_after="2023-10-06"> + <owner>bashi@chromium.org</owner> + <owner>chrome-network-stack@google.com</owner> + <summary> + Time difference between A and AAAA records were resolved. Recorded when + {Variant}, and the first one was resolved {Bucket}. + </summary> + <token key="Bucket" variants="DnsResolveTimeDiffBucket"/> + <token key="Variant"> + <variant name="AAAABeforeA" summary="AAAA resolved before A"/> + <variant name="ABeforeAAAA" summary="A resolved before AAAA"/> + </token> +</histogram> + <histogram name="Net.DNS.SecureDnsMode.Automatic.ResolveTime" units="ms" expires_after="2023-09-17"> <owner>horo@chromium.org</owner> @@ -2152,39 +2196,6 @@ </summary> </histogram> -<histogram name="Net.NetworkConfigWatcherMac.SCDynamicStore.Create" - enum="SCStatusCode" expires_after="M85"> - <owner>mef@chromium.org</owner> - <owner>pauljensen@chromium.org</owner> - <summary> - This is logged when SCDynamicStoreCreate fails in - network_config_watcher_mac.cc. - </summary> -</histogram> - -<histogram - name="Net.NetworkConfigWatcherMac.SCDynamicStore.Create.RunLoopSource" - enum="SCStatusCode" expires_after="M85"> - <owner>mef@chromium.org</owner> - <owner>pauljensen@chromium.org</owner> - <summary> - This is logged when SCDynamicStoreCreateRunLoopSource fails in - network_config_watcher_mac.cc. - </summary> -</histogram> - -<histogram name="Net.NetworkConfigWatcherMac.SCDynamicStore.NumRetry" - units="retries" expires_after="M85"> - <owner>mef@chromium.org</owner> - <owner>pauljensen@chromium.org</owner> - <summary> - This is logged when retrying SCDynamicStore has stopped after either - receiving a success or hitting the maximum number of retries in - network_config_watcher_mac.cc. The 0 bucket is where no retry is performed, - and the maximal bucket is where all retries have failed. - </summary> -</histogram> - <histogram name="Net.NetworkErrorLogging.SignedExchangeRequestOutcome" enum="NetNetworkErrorLoggingRequestOutcome" expires_after="2023-03-29"> <owner>ksakamoto@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml index c0c6a99..cd6554a 100644 --- a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml +++ b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
@@ -161,6 +161,23 @@ </summary> </histogram> +<histogram + name="SegmentationPlatform.ClassificationRequest.TotalDuration.{SegmentationKey}" + units="ms" expires_after="2023-10-10"> + <owner>ritikagup@google.com</owner> + <owner>chrome-segmentation-platform@google.com</owner> + <summary> + Records the total duration for Classification API call for the given + {SegmentationKey} including the time required for feature processing and + model execution as well. + + Starts recording every time the GetClassificationAPI is called for + {SegmentationKey}. Records the duration when ClassificationResult is + returned. + </summary> + <token key="SegmentationKey" variants="SegmentationKey"/> +</histogram> + <histogram name="SegmentationPlatform.DeviceCountByOsType.{OsType}" units="devices" expires_after="2023-10-01"> <owner>junzou@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/service/histograms.xml b/tools/metrics/histograms/metadata/service/histograms.xml index 22fd8549..324a8e9 100644 --- a/tools/metrics/histograms/metadata/service/histograms.xml +++ b/tools/metrics/histograms/metadata/service/histograms.xml
@@ -1037,6 +1037,18 @@ </summary> </histogram> +<histogram name="ServiceWorker.ResourceSha256Checksums.Update.Status" + enum="ServiceWorkerStatusCode" expires_after="2023-10-10"> + <owner>sisidovski@chromium.org</owner> + <owner>chrome-worker@google.com</owner> + <summary> + The result of the checksum update operation. Each ServiceWorker resource + should have a sha256 cehcksum hash string in the database, and that will be + updated when there is a change in ServiceWorker scripts, or the field is + empty. + </summary> +</histogram> + <histogram name="ServiceWorker.SkipCallingFindRegistrationForClientUrl" enum="BooleanSkipped" expires_after="2023-10-01"> <owner>chikamune@chromium.org</owner>
diff --git a/ui/lottie/OWNERS b/ui/lottie/OWNERS index 55477237..63d6531 100644 --- a/ui/lottie/OWNERS +++ b/ui/lottie/OWNERS
@@ -1,2 +1 @@ -amusbach@chromium.org fmalita@chromium.org
diff --git a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager_unittest.cc b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager_unittest.cc index c52bdcd..10166d9a 100644 --- a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager_unittest.cc +++ b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager_unittest.cc
@@ -204,7 +204,16 @@ ASSERT_EQ(drm_gpu_display_manager_->GetDisplays().size(), kMaxDrmConnectors); } -TEST_F(DrmGpuDisplayManagerTest, FindAndConfigureDisplaysOnSameDrmDevice) { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_FindAndConfigureDisplaysOnSameDrmDevice \ + DISABLED_FindAndConfigureDisplaysOnSameDrmDevice +#else +#define MAYBE_FindAndConfigureDisplaysOnSameDrmDevice \ + FindAndConfigureDisplaysOnSameDrmDevice +#endif +TEST_F(DrmGpuDisplayManagerTest, + MAYBE_FindAndConfigureDisplaysOnSameDrmDevice) { // One DRM device. auto drm_state = MockDrmDevice::MockDrmState::CreateStateWithAllProperties(); @@ -250,8 +259,16 @@ // This case tests scenarios in which a display ID is searched across multiple // DRM devices, such as in DisplayLink hubs. +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_FindAndConfigureDisplaysAcrossDifferentDrmDevices \ + DISABLED_FindAndConfigureDisplaysAcrossDifferentDrmDevices +#else +#define MAYBE_FindAndConfigureDisplaysAcrossDifferentDrmDevices \ + FindAndConfigureDisplaysAcrossDifferentDrmDevices +#endif TEST_F(DrmGpuDisplayManagerTest, - FindAndConfigureDisplaysAcrossDifferentDrmDevices) { + MAYBE_FindAndConfigureDisplaysAcrossDifferentDrmDevices) { // Add 3 DRM devices, each with one active display. for (size_t i = 0; i < 3; ++i) { auto drm_state = @@ -296,8 +313,16 @@ ASSERT_TRUE(ConfigureDisplays(display_snapshots)); } +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_OriginsPersistThroughSimilarExtendedModeConfigurations \ + DISABLED_OriginsPersistThroughSimilarExtendedModeConfigurations +#else +#define MAYBE_OriginsPersistThroughSimilarExtendedModeConfigurations \ + OriginsPersistThroughSimilarExtendedModeConfigurations +#endif TEST_F(DrmGpuDisplayManagerTest, - OriginsPersistThroughSimilarExtendedModeConfigurations) { + MAYBE_OriginsPersistThroughSimilarExtendedModeConfigurations) { // One DRM device. auto drm_state = MockDrmDevice::MockDrmState::CreateStateWithAllProperties();
diff --git a/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc b/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc index 9c6f002..94bcf32f 100644 --- a/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc +++ b/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc
@@ -42,12 +42,19 @@ } // namespace -class DrmOverlayValidatorTest : public testing::Test { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_DrmOverlayValidatorTest DISABLED_DrmOverlayValidatorTest +#else +#define MAYBE_DrmOverlayValidatorTest DrmOverlayValidatorTest +#endif +class MAYBE_DrmOverlayValidatorTest : public testing::Test { public: - DrmOverlayValidatorTest() = default; + MAYBE_DrmOverlayValidatorTest() = default; - DrmOverlayValidatorTest(const DrmOverlayValidatorTest&) = delete; - DrmOverlayValidatorTest& operator=(const DrmOverlayValidatorTest&) = delete; + MAYBE_DrmOverlayValidatorTest(const MAYBE_DrmOverlayValidatorTest&) = delete; + MAYBE_DrmOverlayValidatorTest& operator=( + const MAYBE_DrmOverlayValidatorTest&) = delete; void SetUp() override; void TearDown() override; @@ -140,7 +147,7 @@ void SetupControllers(); }; -void DrmOverlayValidatorTest::SetUp() { +void MAYBE_DrmOverlayValidatorTest::SetUp() { on_swap_buffers_count_ = 0; last_swap_buffers_result_ = gfx::SwapResult::SWAP_FAILED; @@ -149,7 +156,7 @@ drm_ = new MockDrmDevice(std::move(gbm)); } -void DrmOverlayValidatorTest::InitDrmStatesAndControllers( +void MAYBE_DrmOverlayValidatorTest::InitDrmStatesAndControllers( const std::vector<CrtcState>& crtc_states, const std::vector<PlaneState>& movable_planes) { size_t plane_count = crtc_states[0].planes.size(); @@ -195,7 +202,7 @@ SetupControllers(); } -void DrmOverlayValidatorTest::SetupControllers() { +void MAYBE_DrmOverlayValidatorTest::SetupControllers() { uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -245,7 +252,8 @@ AddPlane(overlay_candidate); } -void DrmOverlayValidatorTest::AddPlane(const OverlaySurfaceCandidate& params) { +void MAYBE_DrmOverlayValidatorTest::AddPlane( + const OverlaySurfaceCandidate& params) { scoped_refptr<DrmDevice> drm = window_->GetController()->GetDrmDevice(); scoped_refptr<DrmFramebuffer> drm_framebuffer = CreateOverlayBuffer( @@ -255,13 +263,13 @@ gfx::ToNearestRect(params.display_rect), params.crop_rect, true, nullptr); } -void DrmOverlayValidatorTest::TearDown() { +void MAYBE_DrmOverlayValidatorTest::TearDown() { std::unique_ptr<DrmWindow> window = screen_manager_->RemoveWindow(kDefaultWidgetHandle); window->Shutdown(); } -TEST_F(DrmOverlayValidatorTest, WindowWithNoController) { +TEST_F(MAYBE_DrmOverlayValidatorTest, WindowWithNoController) { CrtcState crtc_state = {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}; InitDrmStatesAndControllers({crtc_state}); @@ -276,7 +284,8 @@ window_->SetController(controller); } -TEST_F(DrmOverlayValidatorTest, DontPromoteMoreLayersThanAvailablePlanes) { +TEST_F(MAYBE_DrmOverlayValidatorTest, + DontPromoteMoreLayersThanAvailablePlanes) { CrtcState crtc_state = {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}; InitDrmStatesAndControllers({crtc_state}); @@ -286,7 +295,8 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_NOT); } -TEST_F(DrmOverlayValidatorTest, DontCollapseOverlayToPrimaryInFullScreen) { +TEST_F(MAYBE_DrmOverlayValidatorTest, + DontCollapseOverlayToPrimaryInFullScreen) { CrtcState crtc_state = {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}; InitDrmStatesAndControllers({crtc_state}); @@ -303,7 +313,7 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_NOT); } -TEST_F(DrmOverlayValidatorTest, OverlayFormat_XRGB) { +TEST_F(MAYBE_DrmOverlayValidatorTest, OverlayFormat_XRGB) { // This test checks for optimal format in case of non full screen video case. // This should be XRGB when overlay doesn't support YUV. CrtcState state = { @@ -322,7 +332,7 @@ EXPECT_EQ(param, OVERLAY_STATUS_ABLE); } -TEST_F(DrmOverlayValidatorTest, OverlayFormat_YUV) { +TEST_F(MAYBE_DrmOverlayValidatorTest, OverlayFormat_YUV) { // This test checks for optimal format in case of non full screen video case. // Prefer YUV as optimal format when Overlay supports it and scaling is // needed. @@ -347,7 +357,7 @@ EXPECT_EQ(param, OVERLAY_STATUS_ABLE); } -TEST_F(DrmOverlayValidatorTest, RejectYUVBuffersIfNotSupported) { +TEST_F(MAYBE_DrmOverlayValidatorTest, RejectYUVBuffersIfNotSupported) { // Check case where buffer storage format is already YUV 420 but planes don't // support it. CrtcState state = {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, @@ -367,7 +377,7 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_NOT); } -TEST_F(DrmOverlayValidatorTest, +TEST_F(MAYBE_DrmOverlayValidatorTest, RejectYUVBuffersIfNotSupported_MirroredControllers) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, @@ -396,7 +406,7 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_ABLE); } -TEST_F(DrmOverlayValidatorTest, +TEST_F(MAYBE_DrmOverlayValidatorTest, RejectYUVBuffersIfNotSupported_NoPackedFormatsInMirroredCrtc) { // This configuration should not be promoted to Overlay when either of the // controllers don't support YUV 420 format. @@ -429,7 +439,7 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_NOT); } -TEST_F(DrmOverlayValidatorTest, +TEST_F(MAYBE_DrmOverlayValidatorTest, RejectYUVBuffersIfNotSupported_NoPackedFormatsInPrimaryDisplay) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, @@ -459,7 +469,7 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_NOT); } -TEST_F(DrmOverlayValidatorTest, OptimalFormatXRGB_MirroredControllers) { +TEST_F(MAYBE_DrmOverlayValidatorTest, OptimalFormatXRGB_MirroredControllers) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888, DRM_FORMAT_NV12}}}}, @@ -483,7 +493,7 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_ABLE); } -TEST_F(DrmOverlayValidatorTest, +TEST_F(MAYBE_DrmOverlayValidatorTest, OptimalFormatXRGB_NoPackedFormatInMirroredCrtc) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, @@ -507,7 +517,7 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_ABLE); } -TEST_F(DrmOverlayValidatorTest, +TEST_F(MAYBE_DrmOverlayValidatorTest, OptimalFormatXRGB_NoPackedFormatInPrimaryDisplay) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, @@ -531,7 +541,7 @@ EXPECT_EQ(returns.back(), OVERLAY_STATUS_ABLE); } -TEST_F(DrmOverlayValidatorTest, RejectBufferAllocationFail) { +TEST_F(MAYBE_DrmOverlayValidatorTest, RejectBufferAllocationFail) { CrtcState crtc_state = {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}; InitDrmStatesAndControllers({crtc_state}); @@ -548,7 +558,7 @@ // This test verifies that the Ozone/DRM implementation does not reject overlay // candidates purely on the basis of having non-integer bounds. Instead, they // should be rounded to the nearest integer. -TEST_F(DrmOverlayValidatorTest, NonIntegerDisplayRect) { +TEST_F(MAYBE_DrmOverlayValidatorTest, NonIntegerDisplayRect) { CrtcState state = { .planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888, DRM_FORMAT_NV12}}}}; @@ -566,10 +576,10 @@ } class TestAtOnceDrmOverlayValidatorTest - : public DrmOverlayValidatorTest, + : public MAYBE_DrmOverlayValidatorTest, public testing::WithParamInterface<bool> {}; -TEST_F(DrmOverlayValidatorTest, FourCandidates_OneCommit) { +TEST_F(MAYBE_DrmOverlayValidatorTest, FourCandidates_OneCommit) { // Four planes. CrtcState crtc_state = {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888}}, @@ -597,7 +607,7 @@ EXPECT_EQ(drm_->get_commit_count() - setup_commits, 1); } -TEST_F(DrmOverlayValidatorTest, FourCandidatesTwoPlanes_OneCommit) { +TEST_F(MAYBE_DrmOverlayValidatorTest, FourCandidatesTwoPlanes_OneCommit) { // Only two planes. CrtcState crtc_state = {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888}}}}; @@ -624,7 +634,7 @@ EXPECT_EQ(drm_->get_commit_count() - setup_commits, 1); } -TEST_F(DrmOverlayValidatorTest, TwoOfSixIgnored_OneCommit) { +TEST_F(MAYBE_DrmOverlayValidatorTest, TwoOfSixIgnored_OneCommit) { // Six planes. CrtcState crtc_state = {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888}}, @@ -663,7 +673,7 @@ EXPECT_EQ(drm_->get_commit_count() - setup_commits, 1); } -TEST_F(DrmOverlayValidatorTest, PinnedPlanesCantBeReused) { +TEST_F(MAYBE_DrmOverlayValidatorTest, PinnedPlanesCantBeReused) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}, {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}}; @@ -682,7 +692,7 @@ << "The overlay plane should not be available."; } -TEST_F(DrmOverlayValidatorTest, UnpinnedMovablePlanesCanBeUsed) { +TEST_F(MAYBE_DrmOverlayValidatorTest, UnpinnedMovablePlanesCanBeUsed) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}, {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}};
diff --git a/ui/ozone/platform/drm/gpu/drm_window_unittest.cc b/ui/ozone/platform/drm/gpu/drm_window_unittest.cc index f2e14d9..3199f06 100644 --- a/ui/ozone/platform/drm/gpu/drm_window_unittest.cc +++ b/ui/ozone/platform/drm/gpu/drm_window_unittest.cc
@@ -71,12 +71,18 @@ } // namespace -class DrmWindowTest : public testing::Test { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_DrmWindowTest DISABLED_DrmWindowTest +#else +#define MAYBE_DrmWindowTest DrmWindowTest +#endif +class MAYBE_DrmWindowTest : public testing::Test { public: - DrmWindowTest() = default; + MAYBE_DrmWindowTest() = default; - DrmWindowTest(const DrmWindowTest&) = delete; - DrmWindowTest& operator=(const DrmWindowTest&) = delete; + MAYBE_DrmWindowTest(const MAYBE_DrmWindowTest&) = delete; + MAYBE_DrmWindowTest& operator=(const MAYBE_DrmWindowTest&) = delete; void SetUp() override; void TearDown() override; @@ -116,7 +122,7 @@ uint32_t connector_id_ = 0; }; -void DrmWindowTest::SetUp() { +void MAYBE_DrmWindowTest::SetUp() { on_successful_swap_buffers_count_ = 0; last_swap_buffers_result_ = gfx::SwapResult::SWAP_FAILED; @@ -146,13 +152,14 @@ screen_manager_->AddWindow(kDefaultWidgetHandle, std::move(window)); } -void DrmWindowTest::TearDown() { +void MAYBE_DrmWindowTest::TearDown() { std::unique_ptr<DrmWindow> window = screen_manager_->RemoveWindow(kDefaultWidgetHandle); window->Shutdown(); } -void DrmWindowTest::InitializeDrmState(MockDrmDevice* drm, bool is_atomic) { +void MAYBE_DrmWindowTest::InitializeDrmState(MockDrmDevice* drm, + bool is_atomic) { drm->SetPropertyBlob(MockDrmDevice::AllocateInFormatsBlob( kInFormatsBlobIdBase, {DRM_FORMAT_XRGB8888}, {})); auto drm_state = MockDrmDevice::MockDrmState::CreateStateWithDefaultObjects( @@ -160,7 +167,7 @@ drm->InitializeState(drm_state, /*use_atomic=*/false); } -TEST_F(DrmWindowTest, SetCursorImage) { +TEST_F(MAYBE_DrmWindowTest, SetCursorImage) { const gfx::Size cursor_size(6, 4); screen_manager_->GetWindow(kDefaultWidgetHandle) ->SetCursor(std::vector<SkBitmap>(1, AllocateBitmap(cursor_size)), @@ -186,7 +193,7 @@ } } -TEST_F(DrmWindowTest, CheckCursorSurfaceAfterChangingDevice) { +TEST_F(MAYBE_DrmWindowTest, CheckCursorSurfaceAfterChangingDevice) { const gfx::Size cursor_size(6, 4); screen_manager_->GetWindow(kDefaultWidgetHandle) ->SetCursor(std::vector<SkBitmap>(1, AllocateBitmap(cursor_size)), @@ -217,17 +224,18 @@ EXPECT_NE(0u, drm->get_cursor_handle_for_crtc(crtc_id_)); } -TEST_F(DrmWindowTest, CheckPageflipSuccessOnSuccessfulSwap) { +TEST_F(MAYBE_DrmWindowTest, CheckPageflipSuccessOnSuccessfulSwap) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); // Window was re-sized, so the expectation is to re-create the buffers first. DrmWindow* window = screen_manager_->GetWindow(kDefaultWidgetHandle); drm_->set_page_flip_expectation(false); - window->SchedulePageFlip( - DrmOverlayPlane::Clone(planes), - base::BindOnce(&DrmWindowTest::OnSubmission, base::Unretained(this)), - base::BindOnce(&DrmWindowTest::OnPresentation, base::Unretained(this))); + window->SchedulePageFlip(DrmOverlayPlane::Clone(planes), + base::BindOnce(&MAYBE_DrmWindowTest::OnSubmission, + base::Unretained(this)), + base::BindOnce(&MAYBE_DrmWindowTest::OnPresentation, + base::Unretained(this))); drm_->RunCallbacks(); EXPECT_EQ(0, on_successful_swap_buffers_count_); EXPECT_EQ(gfx::SwapResult::SWAP_NAK_RECREATE_BUFFERS, @@ -237,10 +245,11 @@ // Page flip succeeds, so GPU self-destruct should not engage. drm_->set_page_flip_expectation(true); - window->SchedulePageFlip( - DrmOverlayPlane::Clone(planes), - base::BindOnce(&DrmWindowTest::OnSubmission, base::Unretained(this)), - base::BindOnce(&DrmWindowTest::OnPresentation, base::Unretained(this))); + window->SchedulePageFlip(DrmOverlayPlane::Clone(planes), + base::BindOnce(&MAYBE_DrmWindowTest::OnSubmission, + base::Unretained(this)), + base::BindOnce(&MAYBE_DrmWindowTest::OnPresentation, + base::Unretained(this))); drm_->RunCallbacks(); EXPECT_EQ(1, on_successful_swap_buffers_count_); EXPECT_EQ(gfx::SwapResult::SWAP_ACK, last_swap_buffers_result_); @@ -249,17 +258,18 @@ task_environment_.FastForwardBy(kWaitForModesetTimeout); } -TEST_F(DrmWindowTest, CheckPageflipFailureOnFailedSwap) { +TEST_F(MAYBE_DrmWindowTest, CheckPageflipFailureOnFailedSwap) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); // Window was re-sized, so the expectation is to re-create the buffers first. DrmWindow* window = screen_manager_->GetWindow(kDefaultWidgetHandle); drm_->set_page_flip_expectation(false); - window->SchedulePageFlip( - DrmOverlayPlane::Clone(planes), - base::BindOnce(&DrmWindowTest::OnSubmission, base::Unretained(this)), - base::BindOnce(&DrmWindowTest::OnPresentation, base::Unretained(this))); + window->SchedulePageFlip(DrmOverlayPlane::Clone(planes), + base::BindOnce(&MAYBE_DrmWindowTest::OnSubmission, + base::Unretained(this)), + base::BindOnce(&MAYBE_DrmWindowTest::OnPresentation, + base::Unretained(this))); drm_->RunCallbacks(); EXPECT_EQ(0, on_successful_swap_buffers_count_); EXPECT_EQ(gfx::SwapResult::SWAP_NAK_RECREATE_BUFFERS, @@ -268,10 +278,11 @@ last_presentation_feedback_.flags); // Page flip still fails, so we expect GPU self-destruct timer to kick in. - window->SchedulePageFlip( - DrmOverlayPlane::Clone(planes), - base::BindOnce(&DrmWindowTest::OnSubmission, base::Unretained(this)), - base::BindOnce(&DrmWindowTest::OnPresentation, base::Unretained(this))); + window->SchedulePageFlip(DrmOverlayPlane::Clone(planes), + base::BindOnce(&MAYBE_DrmWindowTest::OnSubmission, + base::Unretained(this)), + base::BindOnce(&MAYBE_DrmWindowTest::OnPresentation, + base::Unretained(this))); drm_->RunCallbacks(); EXPECT_EQ(0, on_successful_swap_buffers_count_); EXPECT_EQ(gfx::SwapResult::SWAP_FAILED, last_swap_buffers_result_);
diff --git a/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc b/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc index de0de8f..ac52236f 100644 --- a/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc +++ b/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc
@@ -81,15 +81,23 @@ base::WriteFileDescriptor(write_fd.get(), "a"); } -class HardwareDisplayControllerTest : public testing::Test { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_HardwareDisplayControllerTest \ + DISABLED_HardwareDisplayControllerTest +#else +#define MAYBE_HardwareDisplayControllerTest HardwareDisplayControllerTest +#endif +class MAYBE_HardwareDisplayControllerTest : public testing::Test { public: - HardwareDisplayControllerTest() = default; + MAYBE_HardwareDisplayControllerTest() = default; - HardwareDisplayControllerTest(const HardwareDisplayControllerTest&) = delete; - HardwareDisplayControllerTest& operator=( - const HardwareDisplayControllerTest&) = delete; + MAYBE_HardwareDisplayControllerTest( + const MAYBE_HardwareDisplayControllerTest&) = delete; + MAYBE_HardwareDisplayControllerTest& operator=( + const MAYBE_HardwareDisplayControllerTest&) = delete; - ~HardwareDisplayControllerTest() override = default; + ~MAYBE_HardwareDisplayControllerTest() override = default; void SetUp() override; void TearDown() override; @@ -143,7 +151,7 @@ uint32_t secondary_crtc_ = 0; }; -void HardwareDisplayControllerTest::SetUp() { +void MAYBE_HardwareDisplayControllerTest::SetUp() { successful_page_flips_count_ = 0; last_swap_result_ = gfx::SwapResult::SWAP_FAILED; @@ -152,13 +160,14 @@ InitializeDrmDevice(/* use_atomic= */ true); } -void HardwareDisplayControllerTest::TearDown() { +void MAYBE_HardwareDisplayControllerTest::TearDown() { controller_.reset(); drm_ = nullptr; } -void HardwareDisplayControllerTest::InitializeDrmDevice(bool use_atomic, - size_t movable_planes) { +void MAYBE_HardwareDisplayControllerTest::InitializeDrmDevice( + bool use_atomic, + size_t movable_planes) { // This will change the plane_manager of the drm. // HardwareDisplayController is tied to the plane_manager CRTC states. // Destruct the controller before destructing the plane manager its CRTC @@ -185,7 +194,7 @@ gfx::Point()); } -bool HardwareDisplayControllerTest::ModesetWithPlanes( +bool MAYBE_HardwareDisplayControllerTest::ModesetWithPlanes( const DrmOverlayPlaneList& modeset_planes) { CommitRequest commit_request; controller_->GetModesetProps(&commit_request, modeset_planes, kDefaultMode, @@ -199,7 +208,7 @@ return status; } -bool HardwareDisplayControllerTest::DisableController() { +bool MAYBE_HardwareDisplayControllerTest::DisableController() { CommitRequest commit_request; controller_->GetDisableProps(&commit_request); CommitRequest request_for_update = commit_request; @@ -211,30 +220,30 @@ return status; } -void HardwareDisplayControllerTest::SchedulePageFlip( +void MAYBE_HardwareDisplayControllerTest::SchedulePageFlip( DrmOverlayPlaneList planes) { controller_->SchedulePageFlip( std::move(planes), - base::BindOnce(&HardwareDisplayControllerTest::OnSubmission, + base::BindOnce(&MAYBE_HardwareDisplayControllerTest::OnSubmission, base::Unretained(this)), - base::BindOnce(&HardwareDisplayControllerTest::OnPresentation, + base::BindOnce(&MAYBE_HardwareDisplayControllerTest::OnPresentation, base::Unretained(this))); } -void HardwareDisplayControllerTest::OnSubmission( +void MAYBE_HardwareDisplayControllerTest::OnSubmission( gfx::SwapResult result, gfx::GpuFenceHandle release_fence) { last_swap_result_ = result; } -void HardwareDisplayControllerTest::OnPresentation( +void MAYBE_HardwareDisplayControllerTest::OnPresentation( const gfx::PresentationFeedback& feedback) { if (!feedback.failed()) successful_page_flips_count_++; last_presentation_feedback_ = feedback; } -uint64_t HardwareDisplayControllerTest::GetPlanePropertyValue( +uint64_t MAYBE_HardwareDisplayControllerTest::GetPlanePropertyValue( uint32_t plane, const std::string& property_name) { DrmWrapper::Property p{}; @@ -245,7 +254,7 @@ return p.value; } -TEST_F(HardwareDisplayControllerTest, CheckModesettingResult) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckModesettingResult) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); @@ -254,7 +263,7 @@ DrmOverlayPlane::GetPrimaryPlane(modeset_planes)->buffer->HasOneRef()); } -TEST_F(HardwareDisplayControllerTest, CrtcPropsAfterModeset) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CrtcPropsAfterModeset) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -281,7 +290,7 @@ } } -TEST_F(HardwareDisplayControllerTest, ConnectorPropsAfterModeset) { +TEST_F(MAYBE_HardwareDisplayControllerTest, ConnectorPropsAfterModeset) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -304,7 +313,7 @@ } } -TEST_F(HardwareDisplayControllerTest, PlanePropsAfterModeset) { +TEST_F(MAYBE_HardwareDisplayControllerTest, PlanePropsAfterModeset) { const FakeFenceFD fake_fence_fd; DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), fake_fence_fd.GetGpuFence()); @@ -392,7 +401,7 @@ } } -TEST_F(HardwareDisplayControllerTest, FenceFdValueChange) { +TEST_F(MAYBE_HardwareDisplayControllerTest, FenceFdValueChange) { DrmOverlayPlaneList modeset_planes; DrmOverlayPlane plane(CreateBuffer(), nullptr); modeset_planes.push_back(plane.Clone()); @@ -446,7 +455,7 @@ } } -TEST_F(HardwareDisplayControllerTest, CheckDisableResetsProps) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckDisableResetsProps) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -554,7 +563,7 @@ } } -TEST_F(HardwareDisplayControllerTest, CheckStateAfterPageFlip) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckStateAfterPageFlip) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -579,7 +588,7 @@ EXPECT_EQ(0u, GetPlanePropertyValue(kPlaneOffset + 1, "FB_ID")); } -TEST_F(HardwareDisplayControllerTest, CheckStateIfModesetFails) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckStateIfModesetFails) { InitializeDrmDevice(/* use_atomic */ false); drm_->set_set_crtc_expectation(false); @@ -588,7 +597,7 @@ EXPECT_FALSE(ModesetWithPlanes(modeset_planes)); } -TEST_F(HardwareDisplayControllerTest, CheckOverlayPresent) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckOverlayPresent) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); planes.emplace_back(CreateOverlayBuffer(), 1, gfx::OVERLAY_TRANSFORM_NONE, @@ -608,7 +617,7 @@ EXPECT_NE(0u, GetPlanePropertyValue(kPlaneOffset + 1, "FB_ID")); } -TEST_F(HardwareDisplayControllerTest, CheckOverlayTestMode) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckOverlayTestMode) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); planes.emplace_back(CreateOverlayBuffer(), 1, gfx::OVERLAY_TRANSFORM_NONE, @@ -642,7 +651,7 @@ EXPECT_NE(0u, GetPlanePropertyValue(kPlaneOffset + 1, "FB_ID")); } -TEST_F(HardwareDisplayControllerTest, AcceptUnderlays) { +TEST_F(MAYBE_HardwareDisplayControllerTest, AcceptUnderlays) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); planes.emplace_back(CreateBuffer(), -1, gfx::OVERLAY_TRANSFORM_NONE, @@ -657,7 +666,7 @@ EXPECT_EQ(1, successful_page_flips_count_); } -TEST_F(HardwareDisplayControllerTest, PageflipMirroredControllers) { +TEST_F(MAYBE_HardwareDisplayControllerTest, PageflipMirroredControllers) { controller_->AddCrtc(std::make_unique<CrtcController>( drm_.get(), secondary_crtc_, drm_->connector_property(1).id)); @@ -683,7 +692,7 @@ } } -TEST_F(HardwareDisplayControllerTest, PlaneStateAfterRemoveCrtc) { +TEST_F(MAYBE_HardwareDisplayControllerTest, PlaneStateAfterRemoveCrtc) { controller_->AddCrtc(std::make_unique<CrtcController>( drm_.get(), secondary_crtc_, drm_->connector_property(1).id)); @@ -728,7 +737,7 @@ EXPECT_EQ(secondary_crtc_, secondary_crtc_plane->owning_crtc()); } -TEST_F(HardwareDisplayControllerTest, PlaneStateAfterDestroyingCrtc) { +TEST_F(MAYBE_HardwareDisplayControllerTest, PlaneStateAfterDestroyingCrtc) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(planes)); @@ -753,7 +762,7 @@ EXPECT_EQ(crtc_nullid, owned_plane->owning_crtc()); } -TEST_F(HardwareDisplayControllerTest, PlaneStateAfterAddCrtc) { +TEST_F(MAYBE_HardwareDisplayControllerTest, PlaneStateAfterAddCrtc) { controller_->AddCrtc(std::make_unique<CrtcController>( drm_.get(), secondary_crtc_, drm_->connector_property(1).id)); @@ -789,9 +798,9 @@ primary_crtc_plane->set_owning_crtc(0); hdc_controller->SchedulePageFlip( DrmOverlayPlane::Clone(planes), - base::BindOnce(&HardwareDisplayControllerTest::OnSubmission, + base::BindOnce(&MAYBE_HardwareDisplayControllerTest::OnSubmission, base::Unretained(this)), - base::BindOnce(&HardwareDisplayControllerTest::OnPresentation, + base::BindOnce(&MAYBE_HardwareDisplayControllerTest::OnPresentation, base::Unretained(this))); drm_->RunCallbacks(); EXPECT_EQ(gfx::SwapResult::SWAP_ACK, last_swap_result_); @@ -800,7 +809,7 @@ EXPECT_EQ(primary_crtc_, primary_crtc_plane->owning_crtc()); } -TEST_F(HardwareDisplayControllerTest, ModesetWhilePageFlipping) { +TEST_F(MAYBE_HardwareDisplayControllerTest, ModesetWhilePageFlipping) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(planes)); @@ -813,7 +822,8 @@ EXPECT_EQ(1, successful_page_flips_count_); } -TEST_F(HardwareDisplayControllerTest, FailPageFlippingWithNoSavingModeset) { +TEST_F(MAYBE_HardwareDisplayControllerTest, + FailPageFlippingWithNoSavingModeset) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); ASSERT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -832,7 +842,7 @@ kGpuCrashLogTimeout); } -TEST_F(HardwareDisplayControllerTest, FailPageFlippingWithSavingModeset) { +TEST_F(MAYBE_HardwareDisplayControllerTest, FailPageFlippingWithSavingModeset) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); ASSERT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -859,7 +869,7 @@ task_environment_.FastForwardBy(kWaitForModesetTimeout); } -TEST_F(HardwareDisplayControllerTest, +TEST_F(MAYBE_HardwareDisplayControllerTest, RecreateBuffersOnOldPlanesPageFlipFailure) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); @@ -887,7 +897,7 @@ EXPECT_EQ(1, successful_page_flips_count_); } -TEST_F(HardwareDisplayControllerTest, CheckNoPrimaryPlaneOnFlip) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckNoPrimaryPlaneOnFlip) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -903,7 +913,7 @@ EXPECT_EQ(1, successful_page_flips_count_); } -TEST_F(HardwareDisplayControllerTest, PageFlipWithUnassignablePlanes) { +TEST_F(MAYBE_HardwareDisplayControllerTest, PageFlipWithUnassignablePlanes) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); ASSERT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -931,7 +941,7 @@ EXPECT_EQ(gfx::SwapResult::SWAP_NAK_RECREATE_BUFFERS, last_swap_result_); } -TEST_F(HardwareDisplayControllerTest, SomePlaneAssignmentFailuresAreOk) { +TEST_F(MAYBE_HardwareDisplayControllerTest, SomePlaneAssignmentFailuresAreOk) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); ASSERT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -980,7 +990,8 @@ task_environment_.FastForwardBy(kWaitForModesetTimeout); } -TEST_F(HardwareDisplayControllerTest, CrashOnTooManyFlakyPlaneAssignments) { +TEST_F(MAYBE_HardwareDisplayControllerTest, + CrashOnTooManyFlakyPlaneAssignments) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); ASSERT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -1042,7 +1053,8 @@ flakes, kPlaneAssignmentFlakeThreshold)); } -TEST_F(HardwareDisplayControllerTest, CrashOnTooManyFailedPlaneAssignments) { +TEST_F(MAYBE_HardwareDisplayControllerTest, + CrashOnTooManyFailedPlaneAssignments) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); ASSERT_TRUE(ModesetWithPlanes(modeset_planes)); @@ -1097,7 +1109,7 @@ kPlaneAssignmentMaximumFailures)); } -TEST_F(HardwareDisplayControllerTest, AddCrtcMidPageFlip) { +TEST_F(MAYBE_HardwareDisplayControllerTest, AddCrtcMidPageFlip) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(planes)); @@ -1112,7 +1124,7 @@ EXPECT_EQ(1, successful_page_flips_count_); } -TEST_F(HardwareDisplayControllerTest, RemoveCrtcMidPageFlip) { +TEST_F(MAYBE_HardwareDisplayControllerTest, RemoveCrtcMidPageFlip) { DrmOverlayPlaneList planes; planes.emplace_back(CreateBuffer(), nullptr); EXPECT_TRUE(ModesetWithPlanes(planes)); @@ -1126,7 +1138,7 @@ EXPECT_EQ(1, successful_page_flips_count_); } -TEST_F(HardwareDisplayControllerTest, Disable) { +TEST_F(MAYBE_HardwareDisplayControllerTest, Disable) { // Page flipping overlays is only supported on atomic configurations. InitializeDrmDevice(/* use_atomic= */ true); @@ -1152,7 +1164,7 @@ ASSERT_EQ(0, planes_in_use); } -TEST_F(HardwareDisplayControllerTest, PageflipAfterModeset) { +TEST_F(MAYBE_HardwareDisplayControllerTest, PageflipAfterModeset) { DrmOverlayPlaneList planes; scoped_refptr<DrmFramebuffer> buffer = CreateBuffer(); planes.emplace_back(buffer, nullptr); @@ -1174,7 +1186,7 @@ .modeset_framebuffers.empty()); } -TEST_F(HardwareDisplayControllerTest, PageflipBeforeModeset) { +TEST_F(MAYBE_HardwareDisplayControllerTest, PageflipBeforeModeset) { DrmOverlayPlaneList planes; scoped_refptr<DrmFramebuffer> buffer = CreateBuffer(); planes.emplace_back(buffer, nullptr); @@ -1204,7 +1216,7 @@ } } -TEST_F(HardwareDisplayControllerTest, MultiplePlanesModeset) { +TEST_F(MAYBE_HardwareDisplayControllerTest, MultiplePlanesModeset) { DrmOverlayPlaneList modeset_planes; modeset_planes.emplace_back(CreateBuffer(), nullptr); modeset_planes.emplace_back(CreateBuffer(), nullptr); @@ -1221,7 +1233,7 @@ } } -TEST_F(HardwareDisplayControllerTest, CheckPinningAfterPageFlip) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckPinningAfterPageFlip) { InitializeDrmDevice(/*use_atomic=*/true, /*movable_planes=*/1); DrmOverlayPlaneList modeset_planes; @@ -1250,7 +1262,7 @@ EXPECT_EQ(3u, in_use_planes); } -TEST_F(HardwareDisplayControllerTest, CheckPinningAfterFailedPageFlip) { +TEST_F(MAYBE_HardwareDisplayControllerTest, CheckPinningAfterFailedPageFlip) { InitializeDrmDevice(/*use_atomic=*/true, /*movable_planes=*/1); DrmOverlayPlaneList modeset_planes; @@ -1286,7 +1298,7 @@ "be in use after a failed flip."; } -TEST_F(HardwareDisplayControllerTest, +TEST_F(MAYBE_HardwareDisplayControllerTest, PinnedPlanesAreRespectedDuringModesetting) { InitializeDrmDevice(/*use_atomic=*/true, /*movable_planes=*/1); @@ -1314,7 +1326,8 @@ EXPECT_EQ(1, drm_->get_commit_count()); } -TEST_F(HardwareDisplayControllerTest, AddingAndRemovingCrtcsWithMovablePlanes) { +TEST_F(MAYBE_HardwareDisplayControllerTest, + AddingAndRemovingCrtcsWithMovablePlanes) { InitializeDrmDevice(/*use_atomic=*/true, /*movable_planes=*/1); controller_->AddCrtc(std::make_unique<CrtcController>( @@ -1370,7 +1383,7 @@ } } -TEST_F(HardwareDisplayControllerTest, +TEST_F(MAYBE_HardwareDisplayControllerTest, ModesettingWithMirroringAndMultipleMovablePlanes) { InitializeDrmDevice(/*use_atomic=*/true, /*movable_planes=*/2);
diff --git a/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_unittest.cc b/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_unittest.cc index 67359bfa90..94beec77 100644 --- a/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_unittest.cc +++ b/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_unittest.cc
@@ -170,7 +170,13 @@ using HardwareDisplayPlaneManagerLegacyTest = HardwareDisplayPlaneManagerTest; using HardwareDisplayPlaneManagerAtomicTest = HardwareDisplayPlaneManagerTest; -TEST_P(HardwareDisplayPlaneManagerTest, ResettingConnectorCache) { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_ResettingConnectorCache DISABLED_ResettingConnectorCache +#else +#define MAYBE_ResettingConnectorCache ResettingConnectorCache +#endif +TEST_P(HardwareDisplayPlaneManagerTest, MAYBE_ResettingConnectorCache) { const int connector_and_crtc_count = 3; auto drm_state = MockDrmDevice::MockDrmState::CreateStateWithDefaultObjects( connector_and_crtc_count, @@ -438,7 +444,13 @@ &state_, assigns, fake_drm_->crtc_property(0).id)); } -TEST_P(HardwareDisplayPlaneManagerAtomicTest, Modeset) { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_Modeset DISABLED_Modeset +#else +#define MAYBE_Modeset Modeset +#endif +TEST_P(HardwareDisplayPlaneManagerAtomicTest, MAYBE_Modeset) { auto drm_state = MockDrmDevice::MockDrmState::CreateStateWithDefaultObjects( /*crtc_count=*/1, /*planes_per_crtc=*/1); fake_drm_->InitializeState(drm_state, /*use_atomic=*/true); @@ -474,7 +486,13 @@ EXPECT_EQ(1, fake_drm_->get_commit_count()); } -TEST_P(HardwareDisplayPlaneManagerAtomicTest, CheckPropsAfterModeset) { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_CheckPropsAfterModeset DISABLED_CheckPropsAfterModeset +#else +#define MAYBE_CheckPropsAfterModeset CheckPropsAfterModeset +#endif +TEST_P(HardwareDisplayPlaneManagerAtomicTest, MAYBE_CheckPropsAfterModeset) { auto drm_state = MockDrmDevice::MockDrmState::CreateStateWithDefaultObjects( /*crtc_count=*/1, /*planes_per_crtc=*/1); fake_drm_->InitializeState(drm_state, /*use_atomic=*/true); @@ -511,7 +529,13 @@ EXPECT_EQ(kModePropId, crtc_prop_for_name.id); } -TEST_P(HardwareDisplayPlaneManagerAtomicTest, CheckPropsAfterDisable) { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_CheckPropsAfterDisable DISABLED_CheckPropsAfterDisable +#else +#define MAYBE_CheckPropsAfterDisable CheckPropsAfterDisable +#endif +TEST_P(HardwareDisplayPlaneManagerAtomicTest, MAYBE_CheckPropsAfterDisable) { auto drm_state = MockDrmDevice::MockDrmState::CreateStateWithDefaultObjects( /*crtc_count=*/1, /*planes_per_crtc=*/1); fake_drm_->InitializeState(drm_state, /*use_atomic=*/true); @@ -548,7 +572,13 @@ EXPECT_EQ(0U, crtc_prop_for_name.value); } -TEST_P(HardwareDisplayPlaneManagerAtomicTest, CheckVrrAfterModeset) { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_CheckVrrAfterModeset DISABLED_CheckVrrAfterModeset +#else +#define MAYBE_CheckVrrAfterModeset CheckVrrAfterModeset +#endif +TEST_P(HardwareDisplayPlaneManagerAtomicTest, MAYBE_CheckVrrAfterModeset) { auto drm_state = MockDrmDevice::MockDrmState::CreateStateWithDefaultObjects( /*crtc_count=*/1, /*planes_per_crtc=*/2); drm_state.crtc_properties[0].properties.push_back(
diff --git a/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc b/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc index 3fc5892..7ecde05 100644 --- a/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc +++ b/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc
@@ -43,7 +43,13 @@ } // namespace -class ScreenManagerTest : public testing::Test { +// TODO(crbug.com/1431767): Re-enable this test +#if defined(LEAK_SANITIZER) +#define MAYBE_ScreenManagerTest DISABLED_ScreenManagerTest +#else +#define MAYBE_ScreenManagerTest ScreenManagerTest +#endif +class MAYBE_ScreenManagerTest : public testing::Test { public: struct PlaneState { std::vector<uint32_t> formats; @@ -53,12 +59,12 @@ std::vector<PlaneState> planes; }; - ScreenManagerTest() = default; + MAYBE_ScreenManagerTest() = default; - ScreenManagerTest(const ScreenManagerTest&) = delete; - ScreenManagerTest& operator=(const ScreenManagerTest&) = delete; + MAYBE_ScreenManagerTest(const MAYBE_ScreenManagerTest&) = delete; + MAYBE_ScreenManagerTest& operator=(const MAYBE_ScreenManagerTest&) = delete; - ~ScreenManagerTest() override = default; + ~MAYBE_ScreenManagerTest() override = default; gfx::Rect GetPrimaryBounds() const { return gfx::Rect(0, 0, kDefaultMode.hdisplay, kDefaultMode.vdisplay); @@ -175,14 +181,14 @@ {I915_FORMAT_MOD_Yf_TILED_CCS, 100}}; }; -TEST_F(ScreenManagerTest, CheckWithNoControllers) { +TEST_F(MAYBE_ScreenManagerTest, CheckWithNoControllers) { EXPECT_FALSE(screen_manager_->GetDisplayController(GetPrimaryBounds())); EXPECT_EQ(drm_->get_test_modeset_count(), 0); EXPECT_EQ(drm_->get_commit_modeset_count(), 0); EXPECT_EQ(drm_->get_commit_count(), 0); } -TEST_F(ScreenManagerTest, CheckWithValidController) { +TEST_F(MAYBE_ScreenManagerTest, CheckWithValidController) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -206,7 +212,7 @@ EXPECT_TRUE(controller->HasCrtc(drm_, crtc_id)); } -TEST_F(ScreenManagerTest, CheckWithSeamlessModeset) { +TEST_F(MAYBE_ScreenManagerTest, CheckWithSeamlessModeset) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -226,7 +232,7 @@ EXPECT_EQ(drm_->get_seamless_modeset_count(), 1); } -TEST_F(ScreenManagerTest, CheckWithInvalidBounds) { +TEST_F(MAYBE_ScreenManagerTest, CheckWithInvalidBounds) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -245,7 +251,7 @@ EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); } -TEST_F(ScreenManagerTest, CheckForSecondValidController) { +TEST_F(MAYBE_ScreenManagerTest, CheckForSecondValidController) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -277,7 +283,7 @@ EXPECT_TRUE(screen_manager_->GetDisplayController(GetSecondaryBounds())); } -TEST_F(ScreenManagerTest, CheckMultipleDisplaysWithinModifiersLimit) { +TEST_F(MAYBE_ScreenManagerTest, CheckMultipleDisplaysWithinModifiersLimit) { int max_supported_displays_with_modifier = 2; drm_->SetSystemLimitOfModifiers( modifiers_overhead_[I915_FORMAT_MOD_Yf_TILED_CCS] * @@ -312,7 +318,7 @@ EXPECT_EQ(drm_->get_commit_modeset_count(), 1); } -TEST_F(ScreenManagerTest, CheckMultipleDisplaysOutsideModifiersLimit) { +TEST_F(MAYBE_ScreenManagerTest, CheckMultipleDisplaysOutsideModifiersLimit) { int max_supported_displays_with_modifier = 2; drm_->SetSystemLimitOfModifiers(modifiers_overhead_[DRM_FORMAT_MOD_LINEAR] * max_supported_displays_with_modifier); @@ -348,7 +354,7 @@ EXPECT_EQ(drm_->get_commit_modeset_count(), 1); } -TEST_F(ScreenManagerTest, CheckDisplaysWith0Limit) { +TEST_F(MAYBE_ScreenManagerTest, CheckDisplaysWith0Limit) { drm_->SetSystemLimitOfModifiers(0); InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true, @@ -382,7 +388,7 @@ EXPECT_EQ(drm_->get_commit_modeset_count(), 0); } -TEST_F(ScreenManagerTest, CheckControllerAfterItIsRemoved) { +TEST_F(MAYBE_ScreenManagerTest, CheckControllerAfterItIsRemoved) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -405,7 +411,7 @@ EXPECT_FALSE(screen_manager_->GetDisplayController(GetPrimaryBounds())); } -TEST_F(ScreenManagerTest, CheckControllerAfterDisabled) { +TEST_F(MAYBE_ScreenManagerTest, CheckControllerAfterDisabled) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -440,7 +446,7 @@ EXPECT_FALSE(screen_manager_->GetDisplayController(GetPrimaryBounds())); } -TEST_F(ScreenManagerTest, CheckMultipleControllersAfterBeingRemoved) { +TEST_F(MAYBE_ScreenManagerTest, CheckMultipleControllersAfterBeingRemoved) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -477,7 +483,7 @@ EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); } -TEST_F(ScreenManagerTest, CheckMultipleControllersAfterBeingDisabled) { +TEST_F(MAYBE_ScreenManagerTest, CheckMultipleControllersAfterBeingDisabled) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -525,7 +531,7 @@ EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); } -TEST_F(ScreenManagerTest, CheckDuplicateConfiguration) { +TEST_F(MAYBE_ScreenManagerTest, CheckDuplicateConfiguration) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic*/ false); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -557,7 +563,7 @@ EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); } -TEST_F(ScreenManagerTest, CheckChangingMode) { +TEST_F(MAYBE_ScreenManagerTest, CheckChangingMode) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -597,7 +603,7 @@ EXPECT_EQ(new_mode.hdisplay, mode.hdisplay); } -TEST_F(ScreenManagerTest, CheckChangingVrrState) { +TEST_F(MAYBE_ScreenManagerTest, CheckChangingVrrState) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -635,7 +641,7 @@ } } -TEST_F(ScreenManagerTest, CheckForControllersInMirroredMode) { +TEST_F(MAYBE_ScreenManagerTest, CheckForControllersInMirroredMode) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -664,7 +670,7 @@ EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); } -TEST_F(ScreenManagerTest, CheckMirrorModeTransitions) { +TEST_F(MAYBE_ScreenManagerTest, CheckMirrorModeTransitions) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888, DRM_FORMAT_NV12}}}}, @@ -734,7 +740,7 @@ // Make sure we're using each display's mode when doing mirror mode otherwise // the timings may be off. -TEST_F(ScreenManagerTest, CheckMirrorModeModesettingWithDisplaysMode) { +TEST_F(MAYBE_ScreenManagerTest, CheckMirrorModeModesettingWithDisplaysMode) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -775,7 +781,7 @@ } } -TEST_F(ScreenManagerTest, MonitorGoneInMirrorMode) { +TEST_F(MAYBE_ScreenManagerTest, MonitorGoneInMirrorMode) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -813,7 +819,7 @@ EXPECT_FALSE(controller->HasCrtc(drm_, secondary_crtc_id)); } -TEST_F(ScreenManagerTest, MonitorDisabledInMirrorMode) { +TEST_F(MAYBE_ScreenManagerTest, MonitorDisabledInMirrorMode) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -857,7 +863,7 @@ EXPECT_FALSE(controller->HasCrtc(drm_, secondary_crtc_id)); } -TEST_F(ScreenManagerTest, DoNotEnterMirrorModeUnlessSameBounds) { +TEST_F(MAYBE_ScreenManagerTest, DoNotEnterMirrorModeUnlessSameBounds) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -901,7 +907,7 @@ screen_manager_->GetDisplayController(GetPrimaryBounds())->IsMirrored()); } -TEST_F(ScreenManagerTest, ReuseFramebufferIfDisabledThenReEnabled) { +TEST_F(MAYBE_ScreenManagerTest, ReuseFramebufferIfDisabledThenReEnabled) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/false); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -938,7 +944,7 @@ EXPECT_NE(framebuffer, drm_->current_framebuffer()); } -TEST_F(ScreenManagerTest, CheckMirrorModeAfterBeginReEnabled) { +TEST_F(MAYBE_ScreenManagerTest, CheckMirrorModeAfterBeginReEnabled) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t primary_crtc_id = drm_->crtc_property(0).id; uint32_t primary_connector_id = drm_->connector_property(0).id; @@ -991,7 +997,7 @@ EXPECT_TRUE(controller->IsMirrored()); } -TEST_F(ScreenManagerTest, ConfigureOnDifferentDrmDevices) { +TEST_F(MAYBE_ScreenManagerTest, ConfigureOnDifferentDrmDevices) { auto gbm_device = std::make_unique<MockGbmDevice>(); scoped_refptr<MockDrmDevice> drm2 = new MockDrmDevice(std::move(gbm_device)); @@ -1035,7 +1041,7 @@ // Tests that two devices that may share the same object IDs are // treated independently. -TEST_F(ScreenManagerTest, +TEST_F(MAYBE_ScreenManagerTest, CheckProperConfigurationWithDifferentDeviceAndSameCrtc) { auto gbm_device = std::make_unique<MockGbmDevice>(); scoped_refptr<MockDrmDevice> drm2 = new MockDrmDevice(std::move(gbm_device)); @@ -1077,7 +1083,7 @@ EXPECT_EQ(drm2, controller2->crtc_controllers()[0]->drm()); } -TEST_F(ScreenManagerTest, CheckControllerToWindowMappingWithSameBounds) { +TEST_F(MAYBE_ScreenManagerTest, CheckControllerToWindowMappingWithSameBounds) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1103,7 +1109,8 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, CheckControllerToWindowMappingWithDifferentBounds) { +TEST_F(MAYBE_ScreenManagerTest, + CheckControllerToWindowMappingWithDifferentBounds) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1131,7 +1138,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, +TEST_F(MAYBE_ScreenManagerTest, CheckControllerToWindowMappingWithOverlappingWindows) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; @@ -1166,7 +1173,7 @@ } } -TEST_F(ScreenManagerTest, ShouldDissociateWindowOnControllerRemoval) { +TEST_F(MAYBE_ScreenManagerTest, ShouldDissociateWindowOnControllerRemoval) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1199,7 +1206,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, EnableControllerWhenWindowHasNoBuffer) { +TEST_F(MAYBE_ScreenManagerTest, EnableControllerWhenWindowHasNoBuffer) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/false); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1240,7 +1247,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, EnableControllerWhenWindowHasBuffer) { +TEST_F(MAYBE_ScreenManagerTest, EnableControllerWhenWindowHasBuffer) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/false); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1273,7 +1280,8 @@ } // See crbug.com/868010 -TEST_F(ScreenManagerTest, DISABLED_RejectBufferWithIncompatibleModifiers) { +TEST_F(MAYBE_ScreenManagerTest, + DISABLED_RejectBufferWithIncompatibleModifiers) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1310,7 +1318,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, ConfigureDisplayControllerShouldModesetOnce) { +TEST_F(MAYBE_ScreenManagerTest, ConfigureDisplayControllerShouldModesetOnce) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/false); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1338,7 +1346,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, ShouldNotHardwareMirrorDifferentDrmDevices) { +TEST_F(MAYBE_ScreenManagerTest, ShouldNotHardwareMirrorDifferentDrmDevices) { auto gbm_device1 = std::make_unique<MockGbmDevice>(); auto drm_device1 = base::MakeRefCounted<MockDrmDevice>(std::move(gbm_device1)); @@ -1485,7 +1493,7 @@ } // crbug.com/888553 -TEST_F(ScreenManagerTest, ShouldNotUnbindFramebufferOnJoiningMirror) { +TEST_F(MAYBE_ScreenManagerTest, ShouldNotUnbindFramebufferOnJoiningMirror) { auto gbm_device = std::make_unique<MockGbmDevice>(); auto drm_device = base::MakeRefCounted<MockDrmDevice>(std::move(gbm_device)); InitializeDrmStateWithDefault(drm_device.get(), /*is_atomic=*/false); @@ -1548,7 +1556,7 @@ screen_manager.RemoveWindow(1)->Shutdown(); } -TEST_F(ScreenManagerTest, DrmFramebufferSequenceIdIncrementingAtModeset) { +TEST_F(MAYBE_ScreenManagerTest, DrmFramebufferSequenceIdIncrementingAtModeset) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1595,7 +1603,7 @@ CHECK_EQ(pre_modeset_buffer->modeset_sequence_id_at_allocation(), 0); } -TEST_F(ScreenManagerTest, CloningPlanesOnModeset) { +TEST_F(MAYBE_ScreenManagerTest, CloningPlanesOnModeset) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1630,7 +1638,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, CloningMultiplePlanesOnModeset) { +TEST_F(MAYBE_ScreenManagerTest, CloningMultiplePlanesOnModeset) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888}}}}}; @@ -1675,7 +1683,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, ModesetWithClonedPlanesNoOverlays) { +TEST_F(MAYBE_ScreenManagerTest, ModesetWithClonedPlanesNoOverlays) { InitializeDrmStateWithDefault(drm_.get(), /*is_atomic=*/true); uint32_t crtc_id = drm_->crtc_property(0).id; uint32_t connector_id = drm_->connector_property(0).id; @@ -1712,7 +1720,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, ModesetWithClonedPlanesWithOverlaySucceeding) { +TEST_F(MAYBE_ScreenManagerTest, ModesetWithClonedPlanesWithOverlaySucceeding) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888}}}}}; @@ -1760,7 +1768,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, ModesetWithClonedPlanesWithOverlayFailing) { +TEST_F(MAYBE_ScreenManagerTest, ModesetWithClonedPlanesWithOverlayFailing) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888}}}}}; @@ -1809,7 +1817,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, ModesetWithNewBuffersOnModifiersChange) { +TEST_F(MAYBE_ScreenManagerTest, ModesetWithNewBuffersOnModifiersChange) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}, {.formats = {DRM_FORMAT_XRGB8888}}}}}; @@ -1860,7 +1868,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, PinnedPlanesAndHwMirroring) { +TEST_F(MAYBE_ScreenManagerTest, PinnedPlanesAndHwMirroring) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}, {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}, @@ -1918,7 +1926,7 @@ window->Shutdown(); } -TEST_F(ScreenManagerTest, PinnedPlanesAndModesetting) { +TEST_F(MAYBE_ScreenManagerTest, PinnedPlanesAndModesetting) { std::vector<CrtcState> crtc_states = { {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}}, {.planes = {{.formats = {DRM_FORMAT_XRGB8888}}}},
diff --git a/ui/strings/translations/ui_strings_am.xtb b/ui/strings/translations/ui_strings_am.xtb index 59444d5..3aff300e 100644 --- a/ui/strings/translations/ui_strings_am.xtb +++ b/ui/strings/translations/ui_strings_am.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">መልዕክት ይላኩ</translation> <translation id="8394908167088220973">ሚዲያ አጫውት/ለአፍታ አቁም</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1ዓ}one{#ዓ}other{#ዓ}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> ፋይል(.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> ኪባ/ሰ</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> ተጨማሪ</translation>
diff --git a/ui/strings/translations/ui_strings_ar.xtb b/ui/strings/translations/ui_strings_ar.xtb index 078fe72..3e8efb8 100644 --- a/ui/strings/translations/ui_strings_ar.xtb +++ b/ui/strings/translations/ui_strings_ar.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">إرسال رسالة</translation> <translation id="8394908167088220973">تشغيل/إيقاف الوسائط</translation> <translation id="8458811141851741261">{YEARS,plural, =1{عام واحد}zero{# عام}two{عامان (#)}few{# أعوام}many{# عامًا}other{# عام}}</translation> +<translation id="8598144894266192959">%<ph name="NUMBER" /></translation> <translation id="8602707065186045623">ملف <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> كيلوبايت/ثانية</translation> <translation id="8725488761726303204"><ph name="NUMBER" />+ أخرى</translation>
diff --git a/ui/strings/translations/ui_strings_az.xtb b/ui/strings/translations/ui_strings_az.xtb index c033eeec..f4c1d48 100644 --- a/ui/strings/translations/ui_strings_az.xtb +++ b/ui/strings/translations/ui_strings_az.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Mesaj göndərin</translation> <translation id="8394908167088220973">Medianı Oxudun/Durdurun</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1il}other{#il}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> Fayl (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> əlavə</translation>
diff --git a/ui/strings/translations/ui_strings_bg.xtb b/ui/strings/translations/ui_strings_bg.xtb index 26074170..c4ffadfd 100644 --- a/ui/strings/translations/ui_strings_bg.xtb +++ b/ui/strings/translations/ui_strings_bg.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Изпратете съобщение</translation> <translation id="8394908167088220973">Мултимедия, пускане/пауза</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 г.}other{# г.}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> файл (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> КБ/сек</translation> <translation id="8725488761726303204">+ още <ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_ca.xtb b/ui/strings/translations/ui_strings_ca.xtb index 1ee808a..517037b 100644 --- a/ui/strings/translations/ui_strings_ca.xtb +++ b/ui/strings/translations/ui_strings_ca.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Envia el missatge</translation> <translation id="8394908167088220973">Fitxer multimèdia: reprodueix/posa en pausa</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 a}other{# a}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623">Fitxer <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">i <ph name="NUMBER" /> més</translation>
diff --git a/ui/strings/translations/ui_strings_cs.xtb b/ui/strings/translations/ui_strings_cs.xtb index b527f5a..9fb3a88 100644 --- a/ui/strings/translations/ui_strings_cs.xtb +++ b/ui/strings/translations/ui_strings_cs.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Odeslat zprávu</translation> <translation id="8394908167088220973">Média – přehrát/pozastavit</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 r}few{# r}many{# r}other{# r}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" /> %</translation> <translation id="8602707065186045623">Soubor <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> kB/s</translation> <translation id="8725488761726303204">a ještě <ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_da.xtb b/ui/strings/translations/ui_strings_da.xtb index db7bf9c..574c0108 100644 --- a/ui/strings/translations/ui_strings_da.xtb +++ b/ui/strings/translations/ui_strings_da.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Send en besked</translation> <translation id="8394908167088220973">Medie: Afspil/Pause</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 år}one{# år}other{# år}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" /> %</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> Fil (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> kB/sek.</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> mere</translation>
diff --git a/ui/strings/translations/ui_strings_en-GB.xtb b/ui/strings/translations/ui_strings_en-GB.xtb index a82fe028f..4a6fbe2 100644 --- a/ui/strings/translations/ui_strings_en-GB.xtb +++ b/ui/strings/translations/ui_strings_en-GB.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Send message</translation> <translation id="8394908167088220973">Media Play/Pause</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1y}other{#y}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> File (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> more</translation>
diff --git a/ui/strings/translations/ui_strings_fa.xtb b/ui/strings/translations/ui_strings_fa.xtb index 85387b151..a2bd071c 100644 --- a/ui/strings/translations/ui_strings_fa.xtb +++ b/ui/strings/translations/ui_strings_fa.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">ارسال پیام</translation> <translation id="8394908167088220973">پخش/مکث رسانه</translation> <translation id="8458811141851741261">{YEARS,plural, =1{۱ سال}one{# سال}other{# سال}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />٪</translation> <translation id="8602707065186045623">فایل <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> کیلوبایت/ثانیه</translation> <translation id="8725488761726303204"><ph name="NUMBER" /> مورد دیگر</translation>
diff --git a/ui/strings/translations/ui_strings_gu.xtb b/ui/strings/translations/ui_strings_gu.xtb index 4e8353b4..ef5aaa9d 100644 --- a/ui/strings/translations/ui_strings_gu.xtb +++ b/ui/strings/translations/ui_strings_gu.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">સંદેશ મોકલો</translation> <translation id="8394908167088220973">મીડિયા ચલાવો/થોભાવો</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 વ}one{# વ}other{# વ}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> ફાઇલ (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> વધુ</translation>
diff --git a/ui/strings/translations/ui_strings_id.xtb b/ui/strings/translations/ui_strings_id.xtb index b882099..9851beb 100644 --- a/ui/strings/translations/ui_strings_id.xtb +++ b/ui/strings/translations/ui_strings_id.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Kirim pesan</translation> <translation id="8394908167088220973">Putar/Jeda Media</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1t}other{#t}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> File (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/dtk</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> lagi</translation>
diff --git a/ui/strings/translations/ui_strings_ja.xtb b/ui/strings/translations/ui_strings_ja.xtb index 1cc1c62a..b90f9bf 100644 --- a/ui/strings/translations/ui_strings_ja.xtb +++ b/ui/strings/translations/ui_strings_ja.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">メッセージを送信</translation> <translation id="8394908167088220973">メディアの再生/一時停止</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1年}other{#年}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> ファイル (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/秒</translation> <translation id="8725488761726303204">他 <ph name="NUMBER" /> 件</translation>
diff --git a/ui/strings/translations/ui_strings_ka.xtb b/ui/strings/translations/ui_strings_ka.xtb index b43b381d..337b67b 100644 --- a/ui/strings/translations/ui_strings_ka.xtb +++ b/ui/strings/translations/ui_strings_ka.xtb
@@ -6,6 +6,7 @@ <translation id="1127811143501539442">{DAYS,plural, =1{1 დღის წინ}other{# დღის წინ}}</translation> <translation id="1156623771253174079">{SECONDS,plural, =1{1 წუთის წინ}other{# წუთის წინ}}</translation> <translation id="1169783199079129864">{MINUTES,plural, =1{1 წთ}other{# წთ}}</translation> +<translation id="1178017578188974117">{DAYS,plural, =1{1 დღის წინ}other{# დღის წინ}}</translation> <translation id="1181037720776840403">ამოშლა</translation> <translation id="1243314992276662751">ატვირთვა</translation> <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ვერ გაზიარდა</translation> @@ -15,7 +16,9 @@ <translation id="1368832886055348810">მარცხნიდან მარჯვნივ</translation> <translation id="1383876407941801731">ძიება</translation> <translation id="1398853756734560583">გაშლა</translation> +<translation id="1432724887402139994">{SECONDS,plural, =1{1 წუთის წინ}other{# წუთის წინ}}</translation> <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> ვერ ზიარდება</translation> +<translation id="1523230076022876491">{MONTHS,plural, =1{1 თვის წინ}other{# თვის წინ}}</translation> <translation id="1591184457164800433">{MINUTES,plural, =1{1 წუთი და }other{# წუთი და }}</translation> <translation id="1643823602425662293">შეტყობინება</translation> <translation id="169515659049020177">Shift</translation> @@ -106,6 +109,7 @@ <translation id="4491109536499578614">გამოსახულება</translation> <translation id="4565377596337484307">პაროლის დამალვა</translation> <translation id="4588090240171750605">გადაადგილება მარჯვნივ</translation> +<translation id="4689010477870442157">{YEARS,plural, =1{1 წლის წინ}other{# წლის წინ}}</translation> <translation id="4724120544754982507">შეტყობინებათა ცენტრი, <ph name="UNREAD_NOTIFICATION_COUNT" /> წაუკითხავი შეტყობინება</translation> <translation id="4729257764711776855">ნომერი</translation> <translation id="4746179598275229723">გაფართოების ჩამაგრება მოიხსნა</translation> @@ -201,6 +205,7 @@ <translation id="8393700583063109961">შეტყობინების გაგზავნა</translation> <translation id="8394908167088220973">მედიის დაკვრა/პაუზა</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 წ.}other{# წ.}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> ფაილი (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> კბ/წ</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> სხვა</translation> @@ -211,10 +216,12 @@ <translation id="8867568208303837180">მიმდინარეობს გაგზავნა…</translation> <translation id="8876215549894133151">ფორმატი:</translation> <translation id="8901569739625249689"><ph name="QUANTITY" /> კბ</translation> +<translation id="8927924178504495502">{HOURS,plural, =1{1 საათის წინ}other{# საათის წინ}}</translation> <translation id="8996630695507351249">დარწმუნდით, რომ <ph name="TARGET_DEVICE_NAME" /> დაკავშირებულია ინტერნეტთან.</translation> <translation id="9044832324875206639">{SECONDS,plural, =1{1 წმ}other{# წმ}}</translation> <translation id="9059834730836941392">შეტყობინების ჩაკეცვა</translation> <translation id="9170848237812810038">მოქმედების დაბრ&უნება</translation> <translation id="932327136139879170">საწყისი გვერდი</translation> <translation id="944069440740578670">წაუკითხავი შეტყობინებები</translation> +<translation id="966963601246348639">{SECONDS,plural, =1{1 წამის წინ}other{# წამის წინ}}</translation> </translationbundle> \ No newline at end of file
diff --git a/ui/strings/translations/ui_strings_kk.xtb b/ui/strings/translations/ui_strings_kk.xtb index 32707bc..a579eac 100644 --- a/ui/strings/translations/ui_strings_kk.xtb +++ b/ui/strings/translations/ui_strings_kk.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Хабар жіберу</translation> <translation id="8394908167088220973">Медиа ойнату/кідірту</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 жыл}other{# жыл}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> файлы (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> КБ/с</translation> <translation id="8725488761726303204">+ тағы <ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_ko.xtb b/ui/strings/translations/ui_strings_ko.xtb index 024901a..87134ae 100644 --- a/ui/strings/translations/ui_strings_ko.xtb +++ b/ui/strings/translations/ui_strings_ko.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">메시지 보내기</translation> <translation id="8394908167088220973">미디어 재생/일시중지</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1년}other{#년}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> 파일(.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" />KB/초</translation> <translation id="8725488761726303204">+<ph name="NUMBER" />개</translation>
diff --git a/ui/strings/translations/ui_strings_ky.xtb b/ui/strings/translations/ui_strings_ky.xtb index 6c0e428..e8df7123 100644 --- a/ui/strings/translations/ui_strings_ky.xtb +++ b/ui/strings/translations/ui_strings_ky.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Билдирүү жөнөтүү</translation> <translation id="8394908167088220973">Медиа файлды ойнотуу/бир азга токтотуу</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 ж.}other{# ж.}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> файл (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> Кб/сек</translation> <translation id="8725488761726303204">дагы <ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_lo.xtb b/ui/strings/translations/ui_strings_lo.xtb index 44361287..59be9f8 100644 --- a/ui/strings/translations/ui_strings_lo.xtb +++ b/ui/strings/translations/ui_strings_lo.xtb
@@ -6,6 +6,7 @@ <translation id="1127811143501539442">{DAYS,plural, =1{1 ວັນກ່ອນນີ້}other{ # ວັນກ່ອນນີ້}}</translation> <translation id="1156623771253174079">{SECONDS,plural, =1{1 ນາທີກ່ອນນີ້}other{# ນາທີກ່ອນນີ້}}</translation> <translation id="1169783199079129864">{MINUTES,plural, =1{1 ແມັດ}other{# ແມັດ}}</translation> +<translation id="1178017578188974117">{DAYS,plural, =1{1 ມື້ກ່ອນ}other{# ມື້ກ່ອນ}}</translation> <translation id="1181037720776840403">ລຶບອອກ</translation> <translation id="1243314992276662751">ອັບໂຫຼດ</translation> <translation id="1266864766717917324">ບໍ່ສາມາດແບ່ງປັນ <ph name="CONTENT_TYPE" /> ໄດ້</translation> @@ -15,7 +16,9 @@ <translation id="1368832886055348810">ຊ້າຍຫາຂວາ</translation> <translation id="1383876407941801731">ຊອກຫາ</translation> <translation id="1398853756734560583">ຂະຫຍາຍໃຫຍ່</translation> +<translation id="1432724887402139994">{SECONDS,plural, =1{1 ນາທີກ່ອນ}other{# ນາທີກ່ອນ}}</translation> <translation id="1450753235335490080">ບໍ່ສາມາດແບ່ງປັນ <ph name="CONTENT_TYPE" /> ໄດ້</translation> +<translation id="1523230076022876491">{MONTHS,plural, =1{1 ເດືອນກ່ອນ}other{# ເດືອນກ່ອນ}}</translation> <translation id="1591184457164800433">{MINUTES,plural, =1{1 ນາທີ ແລະ }other{# ນາທີ ແລະ }}</translation> <translation id="1643823602425662293">ການແຈ້ງເຕືອນ</translation> <translation id="169515659049020177">Shift</translation> @@ -106,6 +109,7 @@ <translation id="4491109536499578614">ຮູບ</translation> <translation id="4565377596337484307">ເຊື່ອງລະຫັດຜ່ານ</translation> <translation id="4588090240171750605">ເລື່ອນໄປທາງຂວາ</translation> +<translation id="4689010477870442157">{YEARS,plural, =1{1 ປີກ່ອນ}other{# ປີກ່ອນ}}</translation> <translation id="4724120544754982507">ສູນການແຈ້ງເຕືອນ, <ph name="UNREAD_NOTIFICATION_COUNT" /> ການແຈ້ງເຕືອນທີ່ຍັງບໍ່ໄດ້ອ່ານ</translation> <translation id="4729257764711776855">ເບີໂທ</translation> <translation id="4746179598275229723">ຖອນໝຸດສ່ວນຂະຫຍາຍແລ້ວ</translation> @@ -212,10 +216,12 @@ <translation id="8867568208303837180">ກຳລັງສົ່ງ...</translation> <translation id="8876215549894133151">ຮູບແບບ:</translation> <translation id="8901569739625249689"><ph name="QUANTITY" /> KB</translation> +<translation id="8927924178504495502">{HOURS,plural, =1{1 ຊົ່ວໂມງກ່ອນ}other{# ຊົ່ວໂມງກ່ອນ}}</translation> <translation id="8996630695507351249">ກວດໃຫ້ແນ່ໃຈວ່າ <ph name="TARGET_DEVICE_NAME" /> ເຊື່ອມຕໍ່ກັບອິນເຕີເນັດ.</translation> <translation id="9044832324875206639">{SECONDS,plural, =1{1 ວິນາທີ}other{# ວິນາທີ}}</translation> <translation id="9059834730836941392">ຫຍໍ້ການແຈ້ງເຕືອນລົງ</translation> <translation id="9170848237812810038">ບໍ່ເຮັດ</translation> <translation id="932327136139879170">ບ້ານ</translation> <translation id="944069440740578670">ການແຈ້ງເຕືອນທີ່ຍັງບໍ່ໄດ້ອ່ານ</translation> +<translation id="966963601246348639">{SECONDS,plural, =1{1 ວິນາທີກ່ອນ}other{# ວິນາທີກ່ອນ}}</translation> </translationbundle> \ No newline at end of file
diff --git a/ui/strings/translations/ui_strings_lt.xtb b/ui/strings/translations/ui_strings_lt.xtb index 22daf83..74650d2 100644 --- a/ui/strings/translations/ui_strings_lt.xtb +++ b/ui/strings/translations/ui_strings_lt.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Siųsti pranešimą</translation> <translation id="8394908167088220973">Leisti / pristabdyti mediją</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 m.}one{# m.}few{# m.}many{# m.}other{# m.}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" /> proc.</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> failas (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB per sek.</translation> <translation id="8725488761726303204">Dar <ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_ms.xtb b/ui/strings/translations/ui_strings_ms.xtb index fcbad09..a214154 100644 --- a/ui/strings/translations/ui_strings_ms.xtb +++ b/ui/strings/translations/ui_strings_ms.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Hantar mesej</translation> <translation id="8394908167088220973">Main/Jeda Media</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1t}other{#t}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> Fail (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> lagi</translation>
diff --git a/ui/strings/translations/ui_strings_pt-PT.xtb b/ui/strings/translations/ui_strings_pt-PT.xtb index 3101a78..b776998 100644 --- a/ui/strings/translations/ui_strings_pt-PT.xtb +++ b/ui/strings/translations/ui_strings_pt-PT.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Enviar mensagem</translation> <translation id="8394908167088220973">Reproduzir/interromper multimédia</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 a}other{# a}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623">Ficheiro <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_ro.xtb b/ui/strings/translations/ui_strings_ro.xtb index 4fa58ba..d58a3c9 100644 --- a/ui/strings/translations/ui_strings_ro.xtb +++ b/ui/strings/translations/ui_strings_ro.xtb
@@ -6,6 +6,7 @@ <translation id="1127811143501539442">{DAYS,plural, =1{Acum o zi}few{Acum # zile}other{Acum # de zile}}</translation> <translation id="1156623771253174079">{SECONDS,plural, =1{Acum 1 minut}few{Acum # minute}other{Acum # de minute}}</translation> <translation id="1169783199079129864">{MINUTES,plural, =1{1 min.}few{# min.}other{# min.}}</translation> +<translation id="1178017578188974117">{DAYS,plural, =1{Acum o zi}few{acum # zile}other{acum # de zile}}</translation> <translation id="1181037720776840403">Elimină</translation> <translation id="1243314992276662751">Încărcați</translation> <translation id="1266864766717917324">Nu s-a trimis <ph name="CONTENT_TYPE" /></translation> @@ -15,7 +16,9 @@ <translation id="1368832886055348810">De la stânga la dreapta</translation> <translation id="1383876407941801731">Caută</translation> <translation id="1398853756734560583">Maximizează</translation> +<translation id="1432724887402139994">{SECONDS,plural, =1{Acum un minut}few{Acum # minute}other{Acum # de minute}}</translation> <translation id="1450753235335490080">Nu se poate trimite <ph name="CONTENT_TYPE" /></translation> +<translation id="1523230076022876491">{MONTHS,plural, =1{Acum o lună}few{Acum # luni}other{Acum # de luni}}</translation> <translation id="1591184457164800433">{MINUTES,plural, =1{Un minut și }few{# minute și }other{# de minute și }}</translation> <translation id="1643823602425662293">Notificare</translation> <translation id="169515659049020177">Shift</translation> @@ -106,6 +109,7 @@ <translation id="4491109536499578614">Imagine</translation> <translation id="4565377596337484307">Ascunde parola</translation> <translation id="4588090240171750605">Derulează spre dreapta</translation> +<translation id="4689010477870442157">{YEARS,plural, =1{Acum un an}few{Acum # ani}other{Acum # de ani}}</translation> <translation id="4724120544754982507">Centrul de notificări, <ph name="UNREAD_NOTIFICATION_COUNT" /> notificări necitite</translation> <translation id="4729257764711776855">număr</translation> <translation id="4746179598275229723">Fixarea extensiei a fost anulată</translation> @@ -201,6 +205,7 @@ <translation id="8393700583063109961">Trimite un mesaj</translation> <translation id="8394908167088220973">Redați/întrerupeți conținutul media</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 an}few{# ani}other{# ani}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" /> %</translation> <translation id="8602707065186045623">Fișier <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KO/s</translation> <translation id="8725488761726303204">Peste <ph name="NUMBER" /></translation> @@ -211,10 +216,12 @@ <translation id="8867568208303837180">Se trimite...</translation> <translation id="8876215549894133151">Format:</translation> <translation id="8901569739625249689"><ph name="QUANTITY" /> KO</translation> +<translation id="8927924178504495502">{HOURS,plural, =1{Acum o oră}few{Acum # ore}other{Acum # de ore}}</translation> <translation id="8996630695507351249">Asigură-te că dispozitivul <ph name="TARGET_DEVICE_NAME" /> este conectat la internet.</translation> <translation id="9044832324875206639">{SECONDS,plural, =1{O sec.}few{# sec.}other{# sec.}}</translation> <translation id="9059834730836941392">Restrânge notificarea</translation> <translation id="9170848237812810038">&Anulează</translation> <translation id="932327136139879170">Pagina de pornire</translation> <translation id="944069440740578670">Notificări necitite</translation> +<translation id="966963601246348639">{SECONDS,plural, =1{Acum o secundă}few{Acum # secunde}other{Acum # de secunde}}</translation> </translationbundle> \ No newline at end of file
diff --git a/ui/strings/translations/ui_strings_sl.xtb b/ui/strings/translations/ui_strings_sl.xtb index d0c65fc..75e1adb 100644 --- a/ui/strings/translations/ui_strings_sl.xtb +++ b/ui/strings/translations/ui_strings_sl.xtb
@@ -200,6 +200,7 @@ <translation id="8393700583063109961">Pošlji sporočilo</translation> <translation id="8394908167088220973">Ustavitev/začasna ustavitev</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 l}one{# l}two{# l}few{# l}other{# l}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" /> %</translation> <translation id="8602707065186045623">Datoteka <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">in še <ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_sr-Latn.xtb b/ui/strings/translations/ui_strings_sr-Latn.xtb index 9d258291..31f7526 100644 --- a/ui/strings/translations/ui_strings_sr-Latn.xtb +++ b/ui/strings/translations/ui_strings_sr-Latn.xtb
@@ -6,6 +6,7 @@ <translation id="1127811143501539442">{DAYS,plural, =1{Pre 1 dan}one{Pre # dan}few{Pre # dana}other{Pre # dana}}</translation> <translation id="1156623771253174079">{SECONDS,plural, =1{Pre 1 minut}one{Pre # minut}few{Pre # minuta}other{Pre # minuta}}</translation> <translation id="1169783199079129864">{MINUTES,plural, =1{1 m}one{# m}few{# m}other{# m}}</translation> +<translation id="1178017578188974117">{DAYS,plural, =1{Pre 1 dan}one{Pre # dan}few{Pre # dana}other{Pre # dana}}</translation> <translation id="1181037720776840403">Ukloni</translation> <translation id="1243314992276662751">Otpremi</translation> <translation id="1266864766717917324">Nije uspelo deljenje: <ph name="CONTENT_TYPE" /></translation> @@ -15,7 +16,9 @@ <translation id="1368832886055348810">Sleva nadesno</translation> <translation id="1383876407941801731">Pretraži</translation> <translation id="1398853756734560583">Uvećaj</translation> +<translation id="1432724887402139994">{SECONDS,plural, =1{Pre 1 minut}one{Pre # minut}few{Pre # minuta}other{Pre # minuta}}</translation> <translation id="1450753235335490080">Nije uspelo deljenje: <ph name="CONTENT_TYPE" /></translation> +<translation id="1523230076022876491">{MONTHS,plural, =1{Pre 1 mesec}one{Pre # mesec}few{Pre # meseca}other{Pre # meseci}}</translation> <translation id="1591184457164800433">{MINUTES,plural, =1{1 minut i }one{# minut i }few{# minuta i }other{# minuta i }}</translation> <translation id="1643823602425662293">Obaveštenje</translation> <translation id="169515659049020177">Shift</translation> @@ -106,6 +109,7 @@ <translation id="4491109536499578614">Slika</translation> <translation id="4565377596337484307">Sakrij lozinku</translation> <translation id="4588090240171750605">Pomeri nadesno</translation> +<translation id="4689010477870442157">{YEARS,plural, =1{Pre godinu dana}one{Pre # godinu}few{Pre # godine}other{Pre # godina}}</translation> <translation id="4724120544754982507">Centar za obaveštenja, nepročitanih obaveštenja: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation> <translation id="4729257764711776855">broj</translation> <translation id="4746179598275229723">Dodatak je otkačen</translation> @@ -201,6 +205,7 @@ <translation id="8393700583063109961">Pošaljite poruku</translation> <translation id="8394908167088220973">Puštanje/pauziranje medija</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 g}one{# g}few{# g}other{# g}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> datoteka (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">i još <ph name="NUMBER" /></translation> @@ -211,10 +216,12 @@ <translation id="8867568208303837180">Slanje...</translation> <translation id="8876215549894133151">Format:</translation> <translation id="8901569739625249689"><ph name="QUANTITY" /> KB</translation> +<translation id="8927924178504495502">{HOURS,plural, =1{Pre 1 sat}one{Pre # sat}few{Pre # sata}other{Pre # sati}}</translation> <translation id="8996630695507351249">Uverite se da je <ph name="TARGET_DEVICE_NAME" /> povezan na internet.</translation> <translation id="9044832324875206639">{SECONDS,plural, =1{1 sek}one{# sek}few{# sek}other{# sek}}</translation> <translation id="9059834730836941392">Skupi obaveštenje</translation> <translation id="9170848237812810038">&Opozovi</translation> <translation id="932327136139879170">Početna</translation> <translation id="944069440740578670">Nepročitana obaveštenja</translation> +<translation id="966963601246348639">{SECONDS,plural, =1{Pre 1 sekunde}one{Pre # sekunde}few{Pre # sekunde}other{Pre # sekundi}}</translation> </translationbundle> \ No newline at end of file
diff --git a/ui/strings/translations/ui_strings_sr.xtb b/ui/strings/translations/ui_strings_sr.xtb index a2f781f..f04956a3 100644 --- a/ui/strings/translations/ui_strings_sr.xtb +++ b/ui/strings/translations/ui_strings_sr.xtb
@@ -6,6 +6,7 @@ <translation id="1127811143501539442">{DAYS,plural, =1{Пре 1 дан}one{Пре # дан}few{Пре # дана}other{Пре # дана}}</translation> <translation id="1156623771253174079">{SECONDS,plural, =1{Пре 1 минут}one{Пре # минут}few{Пре # минута}other{Пре # минута}}</translation> <translation id="1169783199079129864">{MINUTES,plural, =1{1 м}one{# м}few{# м}other{# м}}</translation> +<translation id="1178017578188974117">{DAYS,plural, =1{Пре 1 дан}one{Пре # дан}few{Пре # данa}other{Пре # данa}}</translation> <translation id="1181037720776840403">Уклони</translation> <translation id="1243314992276662751">Отпреми</translation> <translation id="1266864766717917324">Није успело дељење: <ph name="CONTENT_TYPE" /></translation> @@ -15,7 +16,9 @@ <translation id="1368832886055348810">Слева надесно</translation> <translation id="1383876407941801731">Претражи</translation> <translation id="1398853756734560583">Увећај</translation> +<translation id="1432724887402139994">{SECONDS,plural, =1{Пре 1 минут}one{Пре # минут}few{Пре # минутa}other{Пре # минутa}}</translation> <translation id="1450753235335490080">Није успело дељење: <ph name="CONTENT_TYPE" /></translation> +<translation id="1523230076022876491">{MONTHS,plural, =1{Пре 1 месец}one{Пре # месец}few{Пре # месеца}other{Пре # месеци}}</translation> <translation id="1591184457164800433">{MINUTES,plural, =1{1 минут и }one{# минут и }few{# минута и }other{# минута и }}</translation> <translation id="1643823602425662293">Обавештење</translation> <translation id="169515659049020177">Shift</translation> @@ -106,6 +109,7 @@ <translation id="4491109536499578614">Слика</translation> <translation id="4565377596337484307">Сакриј лозинку</translation> <translation id="4588090240171750605">Помери надесно</translation> +<translation id="4689010477870442157">{YEARS,plural, =1{Пре годину дана}one{Пре # годину}few{Пре # године}other{Пре # година}}</translation> <translation id="4724120544754982507">Центар за обавештења, непрочитаних обавештења: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation> <translation id="4729257764711776855">број</translation> <translation id="4746179598275229723">Додатак је откачен</translation> @@ -201,6 +205,7 @@ <translation id="8393700583063109961">Пошаљите поруку</translation> <translation id="8394908167088220973">Пуштање/паузирање медија</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 г}one{# г}few{# г}other{# г}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> датотека (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">и још <ph name="NUMBER" /></translation> @@ -211,10 +216,12 @@ <translation id="8867568208303837180">Слање...</translation> <translation id="8876215549894133151">Формат:</translation> <translation id="8901569739625249689"><ph name="QUANTITY" /> KB</translation> +<translation id="8927924178504495502">{HOURS,plural, =1{Пре 1 сат}one{Пре # сат}few{Пре # сата}other{Пре # сати}}</translation> <translation id="8996630695507351249">Уверите се да је <ph name="TARGET_DEVICE_NAME" /> повезан на интернет.</translation> <translation id="9044832324875206639">{SECONDS,plural, =1{1 сек}one{# сек}few{# сек}other{# сек}}</translation> <translation id="9059834730836941392">Скупи обавештење</translation> <translation id="9170848237812810038">&Опозови</translation> <translation id="932327136139879170">Почетна</translation> <translation id="944069440740578670">Непрочитана обавештења</translation> +<translation id="966963601246348639">{SECONDS,plural, =1{Пре 1 секунде}one{Пре # секунде}few{Пре # секунде}other{Пре # секунди}}</translation> </translationbundle> \ No newline at end of file
diff --git a/ui/strings/translations/ui_strings_ta.xtb b/ui/strings/translations/ui_strings_ta.xtb index d971dce0..0f07be6 100644 --- a/ui/strings/translations/ui_strings_ta.xtb +++ b/ui/strings/translations/ui_strings_ta.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">செய்தி அனுப்பு</translation> <translation id="8394908167088220973">ஊடகத்தை இயக்கு/இடைநிறுத்து</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1ஆ}other{#ஆ}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" />ஃபைல்(.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> கி.பை./வி</translation> <translation id="8725488761726303204">மேலும் <ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_te.xtb b/ui/strings/translations/ui_strings_te.xtb index ba1381c..a66effbb 100644 --- a/ui/strings/translations/ui_strings_te.xtb +++ b/ui/strings/translations/ui_strings_te.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">మెసేజ్ను పంపండి</translation> <translation id="8394908167088220973">మీడియా ప్లే/పాజ్</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1సం}other{#సం}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> ఫైల్ (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/సె</translation> <translation id="8725488761726303204">+ మరో <ph name="NUMBER" /></translation>
diff --git a/ui/strings/translations/ui_strings_ur.xtb b/ui/strings/translations/ui_strings_ur.xtb index a9aca7a..2766fa85 100644 --- a/ui/strings/translations/ui_strings_ur.xtb +++ b/ui/strings/translations/ui_strings_ur.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">پیغام بھیجیں</translation> <translation id="8394908167088220973">میڈیا چلائیں/موقوف کریں</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1y}other{#y}}</translation> +<translation id="8598144894266192959">%<ph name="NUMBER" /></translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> فائل (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> مزید</translation>
diff --git a/ui/strings/translations/ui_strings_vi.xtb b/ui/strings/translations/ui_strings_vi.xtb index 2bb1689..6100c7d 100644 --- a/ui/strings/translations/ui_strings_vi.xtb +++ b/ui/strings/translations/ui_strings_vi.xtb
@@ -201,6 +201,7 @@ <translation id="8393700583063109961">Gửi tin nhắn</translation> <translation id="8394908167088220973">Phát/Tạm dừng trình phát phương tiện</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 năm}other{# năm}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623">Tệp <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> <translation id="8725488761726303204">+<ph name="NUMBER" /> mục khác</translation>
diff --git a/ui/strings/translations/ui_strings_zh-HK.xtb b/ui/strings/translations/ui_strings_zh-HK.xtb index 5e9fca14..e1d9dded 100644 --- a/ui/strings/translations/ui_strings_zh-HK.xtb +++ b/ui/strings/translations/ui_strings_zh-HK.xtb
@@ -6,6 +6,7 @@ <translation id="1127811143501539442">{DAYS,plural, =1{1 天前}other{# 天前}}</translation> <translation id="1156623771253174079">{SECONDS,plural, =1{1 分鐘前}other{# 分鐘前}}</translation> <translation id="1169783199079129864">{MINUTES,plural, =1{1 分鐘}other{# 分鐘}}</translation> +<translation id="1178017578188974117">{DAYS,plural, =1{1 天前}other{# 天前}}</translation> <translation id="1181037720776840403">移除</translation> <translation id="1243314992276662751">上載</translation> <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation> @@ -15,7 +16,9 @@ <translation id="1368832886055348810">由左至右</translation> <translation id="1383876407941801731">搜尋</translation> <translation id="1398853756734560583">最大化</translation> +<translation id="1432724887402139994">{SECONDS,plural, =1{1 分鐘前}other{# 分鐘前}}</translation> <translation id="1450753235335490080">無法分享<ph name="CONTENT_TYPE" /></translation> +<translation id="1523230076022876491">{MONTHS,plural, =1{1 個月前}other{# 個月前}}</translation> <translation id="1591184457164800433">{MINUTES,plural, =1{1 分鐘和}other{# 分鐘和}}</translation> <translation id="1643823602425662293">通知</translation> <translation id="169515659049020177">Shift</translation> @@ -106,6 +109,7 @@ <translation id="4491109536499578614">圖片</translation> <translation id="4565377596337484307">隱藏密碼</translation> <translation id="4588090240171750605">向右捲動</translation> +<translation id="4689010477870442157">{YEARS,plural, =1{1 年前}other{# 年前}}</translation> <translation id="4724120544754982507">通知中心,<ph name="UNREAD_NOTIFICATION_COUNT" /> 則未讀通知</translation> <translation id="4729257764711776855">電話號碼</translation> <translation id="4746179598275229723">已取消固定擴充程式</translation> @@ -201,6 +205,7 @@ <translation id="8393700583063109961">傳送訊息</translation> <translation id="8394908167088220973">媒體播放/暫停</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 年}other{# 年}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> 檔案 (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/秒</translation> <translation id="8725488761726303204">還有另外 <ph name="NUMBER" /> 項</translation> @@ -211,10 +216,12 @@ <translation id="8867568208303837180">正在傳送…</translation> <translation id="8876215549894133151">格式:</translation> <translation id="8901569739625249689"><ph name="QUANTITY" /> KB</translation> +<translation id="8927924178504495502">{HOURS,plural, =1{1 小時前}other{# 小時前}}</translation> <translation id="8996630695507351249">請確定 <ph name="TARGET_DEVICE_NAME" /> 已連接互聯網。</translation> <translation id="9044832324875206639">{SECONDS,plural, =1{1 秒}other{# 秒}}</translation> <translation id="9059834730836941392">收合通知</translation> <translation id="9170848237812810038">復原(&U)</translation> <translation id="932327136139879170">首頁</translation> <translation id="944069440740578670">未睇嘅通知</translation> +<translation id="966963601246348639">{SECONDS,plural, =1{1 秒前}other{# 秒前}}</translation> </translationbundle> \ No newline at end of file
diff --git a/ui/strings/translations/ui_strings_zh-TW.xtb b/ui/strings/translations/ui_strings_zh-TW.xtb index 7f87646..db855ad 100644 --- a/ui/strings/translations/ui_strings_zh-TW.xtb +++ b/ui/strings/translations/ui_strings_zh-TW.xtb
@@ -6,6 +6,7 @@ <translation id="1127811143501539442">{DAYS,plural, =1{1 天前}other{# 天前}}</translation> <translation id="1156623771253174079">{SECONDS,plural, =1{1 分鐘前}other{# 分鐘前}}</translation> <translation id="1169783199079129864">{MINUTES,plural, =1{1 分鐘}other{# 分鐘}}</translation> +<translation id="1178017578188974117">{DAYS,plural, =1{1 天前}other{# 天前}}</translation> <translation id="1181037720776840403">移除</translation> <translation id="1243314992276662751">上傳</translation> <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation> @@ -15,7 +16,9 @@ <translation id="1368832886055348810">由左至右</translation> <translation id="1383876407941801731">搜尋</translation> <translation id="1398853756734560583">放到最大</translation> +<translation id="1432724887402139994">{SECONDS,plural, =1{1 分鐘前}other{# 分鐘前}}</translation> <translation id="1450753235335490080">無法分享<ph name="CONTENT_TYPE" /></translation> +<translation id="1523230076022876491">{MONTHS,plural, =1{1 個月前}other{# 個月前}}</translation> <translation id="1591184457164800433">{MINUTES,plural, =1{1 分鐘 }other{# 分鐘 }}</translation> <translation id="1643823602425662293">通知</translation> <translation id="169515659049020177">Shift</translation> @@ -106,6 +109,7 @@ <translation id="4491109536499578614">圖片</translation> <translation id="4565377596337484307">隱藏密碼</translation> <translation id="4588090240171750605">向右捲動</translation> +<translation id="4689010477870442157">{YEARS,plural, =1{1 年前}other{# 年前}}</translation> <translation id="4724120544754982507">通知中心,<ph name="UNREAD_NOTIFICATION_COUNT" /> 則未讀通知</translation> <translation id="4729257764711776855">電話號碼</translation> <translation id="4746179598275229723">已取消固定擴充功能</translation> @@ -201,6 +205,7 @@ <translation id="8393700583063109961">傳送訊息</translation> <translation id="8394908167088220973">媒體播放/暫停</translation> <translation id="8458811141851741261">{YEARS,plural, =1{1 年}other{# 年}}</translation> +<translation id="8598144894266192959"><ph name="NUMBER" />%</translation> <translation id="8602707065186045623"><ph name="SAVEAS_EXTENSION_TYPE" /> 檔案 (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation> <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/秒</translation> <translation id="8725488761726303204">還有另外 <ph name="NUMBER" /> 個清單項目</translation> @@ -211,10 +216,12 @@ <translation id="8867568208303837180">傳送中… </translation> <translation id="8876215549894133151">格式:</translation> <translation id="8901569739625249689"><ph name="QUANTITY" /> KB</translation> +<translation id="8927924178504495502">{HOURS,plural, =1{1 小時前}other{# 小時前}}</translation> <translation id="8996630695507351249">請確認「<ph name="TARGET_DEVICE_NAME" />」已連上網際網路。</translation> <translation id="9044832324875206639">{SECONDS,plural, =1{1 秒}other{# 秒}}</translation> <translation id="9059834730836941392">收合通知</translation> <translation id="9170848237812810038">取消(&U)</translation> <translation id="932327136139879170">首頁</translation> <translation id="944069440740578670">未讀通知</translation> +<translation id="966963601246348639">{SECONDS,plural, =1{1 秒前}other{# 秒前}}</translation> </translationbundle> \ No newline at end of file